《符号数学基础》PPT课件

上传人:wuyo****995 文档编号:244776049 上传时间:2024-10-06 格式:PPT 页数:21 大小:303.49KB
返回 下载 相关 举报
《符号数学基础》PPT课件_第1页
第1页 / 共21页
《符号数学基础》PPT课件_第2页
第2页 / 共21页
《符号数学基础》PPT课件_第3页
第3页 / 共21页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,广西大学电气工程学院,Matlab程序设计,第四章,符号数学基础,(,符号计算,),一、符号对象和符号表达式,在MATLAB中,数值和数值变量用于数值的存储和各种数值计算,而,符号常数、符号变量、符号函数、符号操作,等则是用来形成,符号表达式,,严格按照代数、微积分等课程中的规则、公式进行运算,并尽可能给出解析表达式结果。,(一)符号对象的生成和使用,凡进行过数值计算的人都知道:数值表达式所用的变量必须事先被赋过值,否则该表达式无法计算。,Symbolic Math Toolbox 2.1版沿用数值计算的这种模式,,规定,:在进行符号计算时,首先要定义基本的符号对象(可以是常数、变量、表达式),然后利用这些基本符号对象去构成新的表达式,进而从事所需的符号运算。,在运算中,凡是由包含符号对象的表达式所生成的衍生对象也都是符号对象。,定义基本符号对象的指令,定义基本符号对象的指令,定义基本符号对象的指令有两个:sym,syms.,它们的常用使用格式如下:,f=sym(arg),把数字、字符串或表达式arg转换为符号对象f,f=sym(argn,flagn),把数值或数值表达式argn转换为flagn格式的符号对象,argv=sym(argv,flagv),按flagv指定的要求把字符串argv定义为符号对象argv,syms(argv1,argv2,argvk),把字符argv1,argv2,argvk定义为基本符号对象,syms argv1 argv2 argvk,上述格式的简洁形式,例,例1:,符号常数形成中的差异,a1=1/3,pi/7,sqrt(5),pi+sqrt(5),a2=,sym(,1/3,pi/7,sqrt(5),pi+sqrt(5),),a3=sym(,1/3,pi/7,sqrt(5),pi+sqrt(5),),例2:把字符表达式转换为符号变量,y=sym(2*sin(x)*,cos,(x),y=simple(y),(二)符号计算中的算符和基本函数,基本运算符,算符“+”、“-”、“*”、“”、“/”、“”分别实现矩阵的加、减、乘、左除、右除、求幂运算。,算符“.*”、“.”、“./”、“.”分别实现“元素对元素”的数组乘、左除、右除、求幂运算。,算符“”、“.”分别实现矩阵的共轭转置、非共轭转置。,关系运算符,算符“=”、“=”分别对算符两边的对象进行“相等”、“不等”的比较。当事实为“真”时,比较结果用1表示;当事实为“假”时,比较结果则用0表示。,三角函数、双曲函数及它们的反函数,除atan2仅能用于数值计算外,其余的三角函数(如sin)、双曲函数(如cosh)及它们的反函数(如asin,acosh),无论在数值计算还是符号计算中,它们的使用方法相同。,指数、对数函数,在数值、符号计算中,函数sqrt、exp、expm的使用方法完全相同。至于对数函数,符号计算中只有自然对数log(在一般教科书中用ln),而没有数值计算中的log2,log10。,复数函数,涉及复数的共轭conj、求实部real、求虚部imag和求模abs函数,在符号、数值计算中的使用方法相同。但,注意,,在符号计算中,MATLAB没有提供求相角的指令。,矩阵代数指令,在符号计算中,MATLAB提供的常用矩阵代数指令有diag,triu,tril,inv,det,rank,rref,null,colspace,poly,expm,eig,svd。它们的用法几乎与数值计算中的情况完全一样,只有svd稍微不同。,(三)识别对象类别的指令,数值计算对象、符号计算对象、字符串是MATLAB中最常遇到的数据对象。它们遵循着各自不同的运算法则,但有时在外形上却十分相似。为管理和使用方便,MATLAB提供了一些识别不同数据对象的指令,常用的有,class,isa,whos,等。,例:数据对象及其识别指令的使用。,(四)符号表达式中默认符号变量(自由变量)的确定,为符号操作和计算的需要,MATLAB提供一个findsym指令,可实现对表达式中所有自由符号变量或指定数目的独立自变量的自动认定。,findsym(EXPR),确认表达式EXPR中所有“自由”符号“变量”,findsym(EXPR,N),从表达式EXPR中确认出靠x最近的N个独立自变量。,注,:,EXPR可以是符号矩阵。此时,该指令对自由变量的确认是对整个矩阵进行的,而不是对矩阵元素逐个进行的。,按照自然科学中的习惯,findsym(EXPR,N)把EXPR表达式中N个最靠近x的自由符号变量确认为“独立自由变量”。注意字母的大小写。在此认为大写字母离小写x的距离总大于所有小写字母离x的距离。,二、符号对象的操作和转换,(一)符号表达式的操作,符号运算中有许多操作指令,如,collect,(合并同类项)、,expand,(对指定项展开)、,factor,(进行因式或因子分解)、,horner,(转换成嵌套形式)、,numden,(提取公因式)、,simplify,(恒等式简化)、,pretty,(习惯方式显示)等,其中最常用的是,simple(EXPR),运用包括simplify在内的各种指令把EXPR转换成最简短形式,注,:EXPR可以是符号表达式或矩阵。在这种情况下,这些指令将对该矩阵的元素逐个进行操作。,(二)置换操作,子表达式,置换操作,符号计算结果显得烦冗的一个重要原因是:有些子表达式会多次出现在不同地方。,为了使表达式简洁易读,MATLAB提供了如下指令:,RS,ssub=,subexpr,(S,ssub),运用符号变量ssub置换子表达式,重写S为RS。,例:把复杂表达式中所含的多个相同子表达式用一个符号代替,使表达简洁。,置换原则,:只有比较长的子表达式才被置换;至于比较短的子表达式,即便多次重复出现,也不被置换。,通用置换指令,RES=,subs,(ES,old,new),用new置换ES中的old后产生RES,RES=,subs,(ES,new),用new置换ES中的自由变量后产生RES,(三)符号对象与其它数据对象间的转换,数值、符号、字符是MATLAB中的三种不同的数据类型。,MATLAB为每种数据类型提供了各自特定的生成指令和操作指令。,为实现不同数据类型的交互,MATLAB提供了一系列的转换指令。,数值型,符号结果,符号常数 符号量(表达式),数值,字符串(表达式),ASCII码,vpa,vpa,double,double,sym,char,sym,double,char,str2num str2double sscanf,int2str num2str mat2str sprintf,三、符号微积分,与数值计算相比,一般说来,符号计算需要消耗更多的计算机资源,但这并不意味着符号计算可有可无。在某些场合,符号计算处理问题反比数值计算更为简明快捷。,符号极限,符号微分,符号积分,符号序列的求和,Taylor级数展开,(一)符号极限,极限是微积分的基础。在MATLAB中,极限的求解由limit函数实现。,limit,(F,x,a),计算符号表达式F在x,a条件下的极限,limit,(F,a),计算符号表达式F中默认自变量趋向于a条件下的极限,limit,(F),计算符号表达式F在默认自变量趋向于0时的极限,limit,(F,x,a,right)和,limit,(F,x,a,left),计算符号表达式F在x,a条件下的右极限和左极限,(二)符号微分,求导数、高阶导数、偏导数是数学分析的重要内容。由机器实现求导的MATLAB指令如下:,dfdvn=,diff,(f,v,n)求 。,注:,f是矩阵时,求导对元素逐个进行,但自变量定义在整个矩阵上。,v确省时,自变量会自动由findsym确认;n缺省时,默认n=1。,注意,:在数值计算中,指令diff是用来求差分的。,(三)符号积分,积分有不定积分、定积分、旁义积分和重积分等。一般说来,积分比微分更难求取。MATLAB的int指令能够接通MAPLE,并进行十分有效的机器求积。,与数值积分相比,符号积分指令简单,适应性强,但可能占用机器时间很长。,有时符号积分也可能给出相当冗长而生疏的“闭”符号表达式,有时可能给不出“闭”解。凡MATLAB求积不能给出“闭”解时,int运行结束将给出警告提示和积分的原式。,intf=,int,(f,v),给出f对指定变量v的(不带积分常数的)不定积分,Intf=,int,(f,v,a,b),给出f对指定变量v的定积分,(四)符号序列的求和,对于数学上的通式求和 问题,可用MATLAB的求和指令解决。,s=,symsum,(f,v,a,b),求通式f在指定变量v取遍a,b中所有整数时的和,注:,f是矩阵时,求和对元素逐个进行,但自变量定义在整个矩阵上。,v确省时,f中的自变量由findsym自动辨识;b可以取有限整数,也可以取无穷大。,a,b可同时缺省,此时默认求和的自变量区间为0,v-1。,(五)Taylor级数展开,taylor,(f),计算符号表达式f在默认自变量等于0处的5阶,Taylor级数展开式,taylor,(f,n,v),计算符号表达式f在指定变量v=0处的n-1阶,Taylor级数展开式,taylor,(f,n,v,a),计算符号表达式f在指定变量v=a处的n-1阶,Taylor级数展开式,四、符号代数方程的求解,线性方程组的符号解,矩阵计算是求解线性方程组最简便有效的方法。在MATLAB和Symbolic Toolbox中,不管数据对象是数值还是符号,实现矩阵运算的指令形式几乎完全相同。因此,对于求解线性方程组符号解的问题,可套用求数值解的方法进行。,例:求线性方程组d+n/2+p/2=q,n+d+q-p=10,q+d-n/4=p,q+p-n-8d=1的解。,一般代数方程组的解,一般代数方程包括线性(Linear)、非线性(Nonlinear)和超越方程(Transcedental equation)等,求解指令是solve。,S=,solve,(eq1,eq2,,eqn,v1,v2,vn),求方程组关于指定变量的解(推荐格式),S=,solve,(eq1,eq2,,eqn,v1,v2,vn),求方程组关于指定变量的解(可用格式),五、符号微分方程的求解,符号解法和数值解法的,互补作用,求微分方程符号解的一般指令,S=,dsolve,(a_1,a_2,,a_n),求解常微分方程最完整、通用的指令调用格式,微分方程符号解示例,1、求微分方程dx/dt=y,dy/dt=-x的解。,2、求解两点边值问题:xy-3y=x2,y(1)=0,y(5)=0。(注意:相应的数值解法比较复杂)。,思考:,1、观察一个数(在此用记述)在以下四条不同指令作用下的异同:,a=,b=sym(),c=sym(,d),d=sym(),在此,分别取7/3,pi/3,pi*3(1/3),log(23),exp(2),sin(0.3*pi);而异同通过vpa(abs(a-d),vpa(abs(b-d),vpa(abs(c-d)等来观察。,2、说出以下三条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?,3/7+0.1,sym(3/7+0.1),vpa(sym(3/7+0.1),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!