MATLAB符号运算

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

符号计算符号计算是数字运算的自然扩展,其特点包括:不受计算误差的困扰;计算可以给出完全正确的封闭解或任意精度的数值解;计算的指令比较简单,所需要的时间较长。目录1符号计算入门2符号对象的创建和使用3任意精度计算4符号表达式的化简和替换5符号矩阵计算6符号微积分7符号积分变换8符号方程求解9可视化数学分析界面1符号计算入门1.求解代数方程2.求解微分方程3.计算导数4.计算定积分自然科学理论分析中的公式、关系式及其推导是符号计算要解决的问题。MATLAB数值计算的对象是数值,而符号计算的对象则是非数值的符号字符串。1.求解代数方程2.求解微分方程3.计算导数4.计算定积分2符号对象的创建和使用2.1创建符号对象和表达式2.2符号对象的基本运算在符号计算中,需定义一种新的数据类型sym类。sym类的实例就是符号对象,符号对象是一种数据结构,用来存储代表符号变量、表达式和矩阵的字符串。2.1创建符号对象和表达式1.符号常量2.符号变量3.符号表达式4.符号矩阵函数sym()和命令syms创建符号常量、变量、函数以及表达式,函数class()检验符号对象类型。(1)函数sym()函数sym()的具体使用方法如下:s=sym(A,flag);s=sym(‘A’,flag)。(2)命令syms命令syms的具体使用方法如下:symss1,…,snflag。(3)函数class()函数class()的具体使用方法如下:str=class(object)。1.符号常量符号常量是一种符号对象。数值常量如果作为函数命令sym()的输入参量,就建立了一个符号对象—符号常量。2.符号变量符号变量通常是由一个或几个特定的字符表示。符号变量的命名规则如下所示:变量名可以由英文字母、数字和下划线组成;变量名应以英语字母开头;组成变量名的字母长度不大于31个;区分大小写。在MATLAB中,用函数sym()和命令syms来创建符号变量。3.符号表达式符号表达式是由以下部分组成的符号对象:符号常量;符号变量;符号运算符;专用函数。4.符号矩阵元素是符号对象的矩阵叫做符号矩阵。2.2符号对象的基本运算1.基本运算符2.关系运算符3.三角函数、双曲函数以及它们的反函数4.指数、对数函数5.复数函数6.矩阵函数运算符“+”、“-”、“*”、“\”、“/”、“^”分别实现矩阵的加、减、乘、左除、右除和求幂运算。运算符“.*”、“./”、“.\”、“.^”分别实现“元素对元素”的数组乘、左除、右除和求幂运算。运算符“'”、“.'”分别实现矩阵的共轭转置和非共轭转置。1.基本运算符运算符“==”和“~=”分别对运算符两边的对象进行“相等”、“不等”的比较。当事实为“真”时,返回结果1;当事实为“假”时,返回结果0。2.关系运算符除函数atan2()仅能用于数值计算外,其余的三角函数、双曲函数及它们的反函数都能用于符号计算。3.三角函数、双曲函数及其反函数4.指数、对数函数函数sqrt()、exp()、expm()、log()、log2()和log10()都能用于符号计算。函数conj()、real()、imag()和abs()都能用于符号计算,但相角函数没有提供。5.复数函数6.矩阵函数函数diag()、triu()、tril()、inv()、det()、rank()、rref()、null()、colspace()、poly()、expm()和eig()都能用于符号计算。3任意精度计算1.digits(d)2.vpa(A,d)3.double(A)符号计算的显著特点是计算过程中不会出现舍入误差,从而可以得到任意精度的数值解。MATLAB提供以下函数实现将符号计算得到的精确值转换成任意精度。设定精度为d位有效数字,默认值是32。1.digits(d)2.vpa(A,d)对符号计算得到的精确值进行近似,有效位数为d位,若不指定d,则按当前有效位数输出。3.double(A)对符号计算得到的精确值转换为双精度。4符号表达式的化简和替换4.1符号表达式的化简4.2符号表达式的替换MATLAB提供函数实现对符号计算的结果进行化简和替换,如:因式分解;同类项合并;符号表达式展开、化简;通分、符号替换。4.1符号表达式的化简1.函数collect()2.函数expand()3.函数horner()4.函数factor()5.函数simplify()6.函数simple()1.函数collect()函数collect()将符号表达式中同类项合并,其具体使用方法如下:R=collect(S):将表达式S中的相同次幂的项合并;R=collect(S,v):将表达式S中变量v的相同次幂的项合并。2.函数expand()函数expand()将符号表达式进行展开,其具体使用方法如下:R=expand(S):将表达式S中的各项进行展开。3.函数horner()函数horner()将符号表达式转换成嵌套形式,其具体使用方法如下:R=horner(S):将符号多项式矩阵S中的每个多项式转换成它们的嵌套形式。4.函数factor()函数factor()对符号多项式进行因式分解,其具体使用方法如下:R=factor(X):如果X是一个多项式或多项式矩阵,该函数将X表示成低阶多项式相乘的形式;如果X不能分解成有理多项式乘积的形式,则返回X本身。5.函数simplify()函数simplify()将符号表达式按一定规则简化,其具体使用方法如下:R=simplify(S):该函数可应用于包含和式、方根、分数的乘方、等符号表达式矩阵S。6.函数simple()该函数是将符号表达式表示成最简形式,其具体使用方法如下:r=simple(S):用几种不同的算术简化规则对符号表达式进行简化,并显示中间过程;[r,how]=simple(S):不显示中间过程,并附加返回最简形式对应的简化方法。4.2符号表达式的替换1.函数subexpr()2.函数subs()在MATLAB中,用函数subexpr()和subs()来实现符号替换,从而简化符号表达式。1.函数subexpr()函数subexpr()将符号表达式中重复出现的字符串用符号变量代替,其具体使用方法如下:[Y,SIGMA]=subexpr(S,SIGMA):指定用符号变量SIGMA来代替符号表达式中重复出现的字符串;[Y,SIGMA]=subexpr(S,‘SIGMA’):这种形式和上一种形式的不同在于第2个输入参数是字符或字符串。2.函数subs()函数subs()用指定符号替换符号表达式中的某一特定符号,其具体使用方法如下:R=subs(S,Old,New):用新符号变量New替代原来符号表达式S中的变量Old。5符号矩阵计算1.基本代数运算2.线性代数运算3.特征值分解4.约当标准型5.奇异值分解1.基本代数运算两符号矩阵进行加减运算时必须满足数值矩阵加减的规则。符号矩阵进行线性代数运算时和数值矩阵的一样。2.线性代数运算3.特征值分解函数eig()求符号方阵的特征值和特征向量,其具体用法如下:E=eig(A):求符号方阵A的符号特征值E;[v,E]=eig(A):求符号方阵A的符号特征值E和相应的特征向量v。函数jordan()求矩阵的约当标准形,其具体用法如下:J=jordan(A):计算矩阵A的约当标准型;[V,J]=jordan(A):附加返回相应的变换矩阵V。4.约当标准型5.奇异值分解函数svd()求矩阵的奇异值分解,其具体用法如下:S=svd(A):给出符号矩阵的奇异值对角矩阵,其计算精度由函数digits()来指定;[U,S,V]=svd(A):附加给出U和V两个正交矩阵且满足A=U*S*V'。6符号微积分1.符号表达式的极限2.符号表达式的微分3.符号表达式的积分4.级数求和5.泰勒级数1.符号表达式的极限函数limit()求表达式的极限,其具体用法如下:limit(F,x,a):求当x→a时,符号表达式F的极限;limit(F,a):求符号表达式F的默认自变量趋近于a时的极限;limit(F):求符号表达式F的默认自变量趋近于0时的极限;limit(F,x,a,'right')或limit(F,x,a,'left'):分别求取符号表达式F的右极限和左极限。函数diff()来求表达式的微分,其具体用法如下:diff(S,‘v’):将符号“v”视作变量,对符号表达式或矩阵S求微分;2.符号表达式的微分diff(S,n):将S中的默认变量求n阶微分;diff(S,'v',n):将符号“v”视作变量,对符号表达式或矩阵S求n阶微分。函数int()求表达式的积分,其具体用法如下:R=int(S):用默认变量求符号表达式S的不定积分;3.符号表达式的积分R=int(S,v):用符号标量v作为变量求符号表达式S的不定积分值;R=int(S,a,b):符号表达式采用默认变量;R=int(S,v,a,b):符号表达式采用符号标量v作为标量,求当v从a到b时,符号表达式S的定积分值。函数symsum()来对符号表达式进行求和,其具体用法如下:r=symsum(s,a,b):求符号表达式s中默认变量从a到b的有限和;r=symsum(s,v,a,b):求符号表达式s中变量v从a到b的有限和。4.级数求和函数taylor()对符号表达式进行泰勒级数展开,其具体用法如下:r=taylor(f):返回f在变量等于0处的5阶泰勒展开式;5.泰勒级数r=taylor(f,n,v):符号表达式f以符号标量v作为自变量,返回f的n-1阶泰勒展开式。r=taylor(f,n,v,a):返回符号表达式f在v=a处的n-1阶泰勒展开式。7符号积分变换1.Fourier变换2.Laplace变换3.Z变换在数学中经常采用变换的方法,将复杂的运算转化为简单的运算,如数量的乘除可以通过对数变换成加减。积分变换就是通过积分运算实现变换。1.Fourier变换Fw=fourier(ft,t,w):求时域函数ft的Fourier变换Fw;ft=ifourier(Fw,w,t):求频域函数Fw的Fourier反变换。2.Laplace变换函数laplace()和ilaplace()实现f(t)到F(s)和F(s)到f(t)的变换,其具体用法如下:Fs=laplace(ft,t,s):求时域函数ft的Laplace变换Fs;ft=ilaplace(Fs,s,t):求频域函数Fs的Laplace反变换ft。3.Z变换函数ztrans()和iztrans()来实现f(n)到F(z)和F(z)到f(n)的变换,其具体用法如下:FZ=ztrans(fn,n,z):求采样点fn的Z变换FZ;fn=iztrans(FZ,z,n):求FZ的Z反变换fn。8符号方程求解1.代数方程2.微分方程符号方程可以分为代数方程和微分方程。代数方程可以细分为线性方程和非线性方程两类;微分方程可以细分为常微分方程和偏微分方程。1.代数方程函数solve()求解代数方程,其具体用法如下:g=solve(eq):其中eq可以是符号表达式或不带符号的字符串,该函数求解方程eq=0;g=solve(eq,var):求解方程eq=0,其自变量由参数var指定;g=solve(eq1,eq2,…,eqn):求解由符号表达式或不带符号的字符串eq1,eq2,…,eqn组成的方程组;g=solve(eq1,eq2,…,eqn,var1,var2,…,varn):求解由符号表达式或不带等号的字符串eq1,eq2,…,eqn组成的方程组。2.微分方程函数dsolve()求解微分方程,其具体用法如下。r=dsolve(‘eq1,eq2,…’,‘cond1,cond2,…’,‘v’):求由eq1,eq2……指定的常微分方程组的符号解;r=dsolve('eq1','eq2',…,'cond1','con

1 / 103
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功