第6章 Matlab 符号运算V2_第1页
第6章 Matlab 符号运算V2_第2页
第6章 Matlab 符号运算V2_第3页
第6章 Matlab 符号运算V2_第4页
第6章 Matlab 符号运算V2_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1数学软件数学软件 Matlab Matlab 符号运算符号运算2本讲主要内容本讲主要内容n Matlab 符号运算介绍符号运算介绍n 符号对象与基本符号运算符号对象与基本符号运算n findsym 和和 subsn 常见符号运算常见符号运算3符号运算符号运算l 计算以计算以推理方式推理方式进行,不受计算误差累积所带来的困扰进行,不受计算误差累积所带来的困扰 l 符号计算指令的调用比较简单,与教科书上的公式相近符号计算指令的调用比较简单,与教科书上的公式相近 l 符号计算可以给出完全正确的封闭解,或任意精度的数符号计算可以给出完全正确的封闭解,或任意精度的数值解(封闭解不存在时值解(封闭解不存

2、在时 )l 符号计算所需的符号计算所需的运行时间相对较长运行时间相对较长q 符号运算的特点符号运算的特点 4Matlab 符号运算符号运算l Matlab 符号运算是通过符号运算是通过符号数学工具箱符号数学工具箱(Symbolic Math Toolbox)来实现的。来实现的。 l Matlab 的符号数学工具箱可以完成几乎所有得符号运的符号数学工具箱可以完成几乎所有得符号运算功能,如:算功能,如:符号表达式的运算符号表达式的运算,符号矩阵的运算符号矩阵的运算,符号符号微积分微积分,符号作图符号作图,符号代数方程求解符号代数方程求解,符号微分方程求符号微分方程求解解等。等。l 此外,该工具箱还

3、支持此外,该工具箱还支持可变精度运算可变精度运算,即支持以指定的,即支持以指定的精度返回结果。精度返回结果。 q Matlab 符号运算符号运算 5符号运算举例符号运算举例l 求一元二次方程求一元二次方程 ax2 + bx + c = 0 的根的根 solve(a*x2+b*x+c=0)l 求的根求的根 f (x) = (cos x)2 的一次导数的一次导数 x=sym(x); diff(cos(x)2)l 计算计算 f (x) = x2 在区间在区间 a, b 上的定积分上的定积分 syms a b x; int(x2,a,b)6l 符号对象符号对象:在进行符号运算时,必须先定义基本的在进行

4、符号运算时,必须先定义基本的符号对符号对象象,可以是符号常量、符号变量、符号表达式等,可以是符号常量、符号变量、符号表达式等 l 符号对象是一种数据结构符号对象是一种数据结构 符号对象符号对象l 符号表达式符号表达式:含有符号对象的表达式称含有符号对象的表达式称l 符号矩阵符号矩阵/数组数组:元素为符号表达式的矩阵:元素为符号表达式的矩阵/数组数组 7l sym 函数用来建立函数用来建立单个单个符号变量,一般调用格式为:符号变量,一般调用格式为:q 符号对象的符号对象的定义定义/声明声明:sym、syms符号对象符号对象的建立的建立例:例: a=sym(a) 符号变量符号变量 = sym(x)

5、参数参数 x 可以是一个数或数值矩阵,也可以是字符串可以是一个数或数值矩阵,也可以是字符串a 是符号变量是符号变量b 是符号常量是符号常量 b=sym(1/3)C 是符号矩阵是符号矩阵 C=sym(1 ab; c d)8符号对象符号对象的建立的建立syms 符号变量符号变量1 符号变量符号变量2 . 符号变量符号变量n 例:例: syms a b c a=sym(a); b=sym(b); c=sym(c);q 符号对象的符号对象的定义定义/声明声明:sym、symsl syms 命令用来建立命令用来建立多个多个符号变量,一般调用格式为:符号变量,一般调用格式为:9例:例:l 建立符号表达式通

6、常有以下建立符号表达式通常有以下 2 种方法:种方法: (1) 用用 sym 函数直接建立符号表达式。函数直接建立符号表达式。 (2) 使用已经定义的符号变量组成符号表达式。使用已经定义的符号变量组成符号表达式。 y=sym(sin(x)+cos(x) x=sym(x); y=sin(x)+cos(x)符号符号表达式表达式 syms x; y=sin(x)+cos(x)q 符号表达式:符号表达式:含符号对象的表达式含符号对象的表达式10Matlab 符号运算采用的运算符和基本函数,在形状、名称符号运算采用的运算符和基本函数,在形状、名称和使用上,都与数值计算中的运算符和基本函数完全相同和使用上

7、,都与数值计算中的运算符和基本函数完全相同基本符号基本符号运算运算l 普通运算:普通运算:+ - * / l 数组运算:数组运算:.* . ./ .l 矩阵转置:矩阵转置: .例:例: X=sym(x11,x12;x21,x22;x31,x32); Y=sym(y11,y12,y13;y21,y22,y23); Z1=X*Y; Z2=X.*Y;q 基本运算符基本运算符11符号对象符号对象的的基本基本运算运算sin、cos、tan、cot、sec、csc、asin、acos、atan、acot、asec、acsc、exp、log、sqrt、log2、log10、abs、conj、real、ima

8、g、rank、det、inv、eig、diag、triu、tril、expm、三角函数与反三角函数、三角函数与反三角函数、指数函数、对数函数等指数函数、对数函数等q 基本函数基本函数12若表达式中有两个符号变量与若表达式中有两个符号变量与 x 的距离相等,的距离相等,则则ASCII 码大者优先。码大者优先。findsymfindsym(expr)按字母顺序列出符号表达式按字母顺序列出符号表达式 expr 中的所有符号变量中的所有符号变量findsym(expr, N)按顺序列出按顺序列出 expr 中离中离 x 最近的最近的 N 个符号变量个符号变量常量常量 pi, i, j 不作为符号变量不

9、作为符号变量q 查寻符号表达式中的符号变量查寻符号表达式中的符号变量13例:例: f=sym(2*w-3*y+z2+5*a) findsym(f) findsym(f,3) findsym(f,1)findsym 举例举例14subssubs(f,x,a) 用用 a 替换字符函数替换字符函数 f 中的字符变量中的字符变量 x a 是可以是是可以是 数数/数值变量数值变量/表达式表达式 或或 字符变量字符变量/表达式表达式若若 x 是一个由多个字符变量组成的是一个由多个字符变量组成的数组或矩阵数组或矩阵,则则 a 应该具有与应该具有与 x 相同的形状的相同的形状的数组或矩阵数组或矩阵。q 符号替

10、换符号替换l 用给定的用给定的数据数据替换符号表达式中的替换符号表达式中的指定的符号变量指定的符号变量15subs 举例举例 f=sym(2*u); subs(f,u,2) f2=subs(f,u,u+2) a=3; subs(f2,u,a+2) subs(f2,u,a+2) syms x y f3=subs(f,u,x+y) subs(f3,x,y,1,2)ans=4f2=2*(u+2)ans=14ans=2*(a+2)+2)f3=2*x+2*yans=6例:指出下面各条语句的输出结果例:指出下面各条语句的输出结果f=2*u16常见符号运算常见符号运算l 因式分解、展开、合并、简化及通分等因

11、式分解、展开、合并、简化及通分等l 计算极限计算极限l 计算导数计算导数l 计算积分计算积分l 代数方程代数方程l 微分方程求解微分方程求解17因式分解因式分解factor( f ) syms x; f=x6+1; factor( f )l factor 也可用于正整数的分解 s=factor(100) factor(sym(12345678901234567890)l 大整数的分解要转化成符号常量大整数的分解要转化成符号常量例:例:例:例:18函数展开函数展开expand( f ) syms x; f=(x+1)6; expand( f )l 多项式展开l 三角函数展开 syms x y;

12、f=sin(x+y); expand( f )19合并同类项合并同类项collect(f,v): 按指定变量按指定变量 v 进行进行合并合并collect( f ) : 按按默认默认变量变量进行进行合并合并 syms x y; f= x2*y + y*x - x2 + 2*x ; collect( f ) collect( f,y)例:例:20函数简化函数简化y=simple( f ): 对对 f 尝试多种不同的算法尝试多种不同的算法进行进行简化简化,返回其中最简短的形式,返回其中最简短的形式y,How=simple( f ): y 为为 f 的的最简短形式最简短形式,How 中记录的为简化过

13、程中使用的方法。中记录的为简化过程中使用的方法。fyHOW2*cos(x)2-sin(x)2 3*cos(x)2-1 simplify(x+1)*x*(x-1)x3-xcombine(trig)x3+3*x2+3*x+1(x+1)3factorcos(3*acos(x)4*x3-3*xexpand21函数简化函数简化举例举例 syms x; f=(1/x3+6/x2+12/x+8)(1/3); g1=simple( f ) g2=simple(g1)多次使用多次使用 simple 可以达到最简表达可以达到最简表达3321612()8fxxxx 例:简化例:简化22分式通分分式通分q 通分通分N

14、,D=numden(f ): N 为通分后的分子,为通分后的分子,D 为通分后的分母为通分后的分母 syms x y; f=x/y+y/x; N,D=numden(f ) n,d=numden(sym(112/1024)例:例:23计算极限计算极限limit(f,x,a): 计算计算limit(f,a): 当当默认变量默认变量趋向于趋向于 a 时的极限时的极限limit(f ): 计算计算 a=0 时的极限时的极限limit(f,x,a,right): 计算右极限计算右极限limit(f,x,a,left): 计算左极限计算左极限lim( )xaf x例:计算例:计算 ,0ln()ln( )l

15、imhxhxLh 1limnnxMn syms x h n; L=limit(log(x+h)-log(x)/h,h,0) M=limit(1-x/n)n,n,inf)24计算计算导数导数g=diff(f,v):求符号表达式求符号表达式 f 关于关于 v 的导数的导数g=diff(f ):求符号表达式求符号表达式 f 关于关于默认变量默认变量的导数的导数g=diff(f,v,n):求求 f 关于关于 v 的的 n 阶导数阶导数q 计算导数:计算导数: diff syms x; f=sin(x)+3*x2; g=diff(f,x)例:例:25计算计算积分积分int(f,v,a,b): 计算定积分

16、计算定积分int(f,a,b): 计算关于计算关于默认变量默认变量的定积分的定积分int(f,v): 计算不定积分计算不定积分int(f): 计算关于计算关于默认变量默认变量的不定积分的不定积分 syms x; f=(x2+1)/(x2-2*x+2)2; I=int(f,x) K=int(exp(-x2),x,0,inf)( )baf v dv ( )f v dv 例:计算例:计算 和和2221(22)xIdxxx 20 xKedx 26代数方程代数方程求解求解q 代数方程(非线性)求解:代数方程(非线性)求解: solves=solve(f,v) :求方程关于指定自变量的解求方程关于指定自变

17、量的解s=solve(f) :求方程关于求方程关于默认自变量默认自变量的解的解l f 可以是用字符串表示的可以是用字符串表示的方程方程,或符号,或符号表达式表达式l 若若 f 是字符串,可以不含等号,表示解方程是字符串,可以不含等号,表示解方程 f=0l 若若 f 是符号表达式,是符号表达式,不能不能 含等号含等号例:例:解方程解方程 x3-3*x+1=0 syms x; f=x3-3*x+1; s=solve(f,x) s=solve(x3-3*x+1,x) s=solve(x3-3*x+1=0,x)27代数方程代数方程求解求解l solve 也可以用来解方程组也可以用来解方程组solve(

18、 f1 , f2 , . , fN , v1 , v2 , . , vN)求解由求解由 f1 , f2 , . , fN 组成的方程组关于组成的方程组关于 v1 , v2 , . , vN 的解的解例:例:解方程组解方程组 x,y,z=solve(x+2*y-z=27,x+z=3, . x2+3*y2=28,x,y,z)22227 3 328xyzxzxy 输出变量的顺序要书写正确!输出变量的顺序要书写正确!solve 在得不到解析解时,会给出数值解在得不到解析解时,会给出数值解28微分方程微分方程求解求解q dsolve 的使用的使用y=dsolve(eq1,eq2, . ,cond1,co

19、nd2, . ,v)其中其中 y 为输出的解,为输出的解, eq1、eq2、. 为微分方程,为微分方程,cond1、cond2、. 为初值条件,为初值条件,v 为自变量。为自变量。例例 1:求微分方程求微分方程 的通解,并验证。的通解,并验证。22xdyxyxedx y=dsolve(Dy+2*x*y=x*exp(-x2),x) syms x; diff(y)+2*x*y - x*exp(-x2)29微分方程微分方程求解求解q 几点说明几点说明l 如果省略初值条件,则表示求通解;如果省略初值条件,则表示求通解;l 如果省略自变量,则默认自变量为如果省略自变量,则默认自变量为 t dsolve(

20、Dy=2*x,x); % dy/dx = 2xdsolve(Dy=2*x); % dy/dt = 2xl 若找不到解析解,则返回其积分形式。若找不到解析解,则返回其积分形式。l 微分方程中用微分方程中用 D 表示对表示对 自变量自变量 的导数,如:的导数,如:Dy y; D2y y; D3y y30微分方程微分方程求解求解例例 2:求微分方程求微分方程 在初值条件在初值条件 下的特解,并画出解函数的图形。下的特解,并画出解函数的图形。0 xxyye y=dsolve(x*Dy+y-exp(x)=0,y(1)=2*exp(1),x) ezplot(y);12( )ye 31微分方程微分方程求解求解例例3:求微分方程组求微分方程组 在初值条件在初值条件 下的特解,并画出解函数的图形。下的特解,并画出解函数的图形。530tdxxyedtdyxydt x,y=dsolve(Dx+5*x+y=exp(t),Dy-x-3*y=0, . x(0)=1, y(0)=0, t)0010|ttxy 注:解微分方程组时,如果所给的输出个数与方程个数相同,注:解微分方程组时,如果所给的输出个数与方程个数相同,则方程组的解则方程组的解按词典顺序按词典顺序输出;如果只给一个输出,则输出输出;如果只给一个输出,则输出的是一个包含解的的是一个包含解的结构结构(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论