《第三章 MATLAB的符号运算.ppt》由会员分享,可在线阅读,更多相关《第三章 MATLAB的符号运算.ppt(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 MATLAB的符号运算MATLAB符号运算入门科学与工程技术的数值运算固然重要,但自然科学科学与工程技术的数值运算固然重要,但自然科学理论分析各种各样的公式、关系式及其推导就是符理论分析各种各样的公式、关系式及其推导就是符号运算要解决的问题。它与数值运算一样,都是科号运算要解决的问题。它与数值运算一样,都是科学计算研究的重要内容。学计算研究的重要内容。Matlab数值运算的对象是数值运算的对象是数值,而数值,而matlab符号运算的对象则是非数值的符号符号运算的对象则是非数值的符号对象。符号对象就是代表非数值的符号字符串。对象。符号对象就是代表非数值的符号字符串。符号运算与数值运算的区
2、别符号运算与数值运算的区别数值运算:数值运算:数值运算:数值运算:1.1.其运算的元素是数其运算的元素是数其运算的元素是数其运算的元素是数值;值;值;值;2.2.在运算过程中必须在运算过程中必须在运算过程中必须在运算过程中必须先对变量进行赋值,先对变量进行赋值,先对变量进行赋值,先对变量进行赋值,然后才能参加运算;然后才能参加运算;然后才能参加运算;然后才能参加运算;3.3.其结果以数值形式其结果以数值形式其结果以数值形式其结果以数值形式出现。出现。出现。出现。符号运算:符号运算:符号运算:符号运算:1.1.其运算的元素是符号;其运算的元素是符号;其运算的元素是符号;其运算的元素是符号;2.2
3、.在运算过程中无须对在运算过程中无须对在运算过程中无须对在运算过程中无须对变量进行赋值就可参变量进行赋值就可参变量进行赋值就可参变量进行赋值就可参加运算;但是必须先加运算;但是必须先加运算;但是必须先加运算;但是必须先定义符号变量;定义符号变量;定义符号变量;定义符号变量;3.3.其结果以符号形式出其结果以符号形式出其结果以符号形式出其结果以符号形式出现。现。现。现。符号运算与数值运算的区别符号运算与数值运算的区别例求解例求解:中中f的值的值。数值运算数值运算数值运算数值运算 :rho=(1+sqrt(5)/2rho=(1+sqrt(5)/2rho=1.6180rho=1.6180f=rho2
4、-rhof=rho2-rho1 1f=2.000f=2.000符号运算:符号运算:符号运算:符号运算:rho=sym(1+sqrt(5)/2rho=sym(1+sqrt(5)/2)rh0=(1+sqrt(5)/2rh0=(1+sqrt(5)/2f=rho2-rhof=rho2-rho1 1f=(f=(1/2+1/2*5(1/2)2+1/21/2+1/2*5(1/2)2+1/2-1/2*5(1/2)-1/2*5(1/2)Matlab符号运算的几个基本概念符号对象(符号对象(符号对象(符号对象(P49P49):):):):符号对象是符号对象是符号对象是符号对象是symbolic math tool
5、boxsymbolic math toolbox定义的一种新的数据定义的一种新的数据定义的一种新的数据定义的一种新的数据 类型(类型(类型(类型(symsym类型),用来存储代表非数值的字符符号(通类型),用来存储代表非数值的字符符号(通类型),用来存储代表非数值的字符符号(通类型),用来存储代表非数值的字符符号(通 常是大小写的英文字母及字符串)。符号对象可以是常是大小写的英文字母及字符串)。符号对象可以是常是大小写的英文字母及字符串)。符号对象可以是常是大小写的英文字母及字符串)。符号对象可以是符号符号符号符号 常量(符号形式的数),符号变量,符号函数以及各种符常量(符号形式的数),符号变
6、量,符号函数以及各种符常量(符号形式的数),符号变量,符号函数以及各种符常量(符号形式的数),符号变量,符号函数以及各种符 号表达式(符号数学表达式,符号方程与符号矩阵)号表达式(符号数学表达式,符号方程与符号矩阵)号表达式(符号数学表达式,符号方程与符号矩阵)号表达式(符号数学表达式,符号方程与符号矩阵)创建符号对象与函数命令(创建符号对象与函数命令(创建符号对象与函数命令(创建符号对象与函数命令(P50P50)1 1、函数命令、函数命令、函数命令、函数命令symsym()格式()格式()格式()格式 格式格式格式格式1 1 s=s=sym(a)(asym(a)(a代表一个数字值、数值矩阵、
7、数值表达式代表一个数字值、数值矩阵、数值表达式代表一个数字值、数值矩阵、数值表达式代表一个数字值、数值矩阵、数值表达式 格式格式格式格式2 2 s=s=sym(a)(asym(a)(a代表一个字符串代表一个字符串代表一个字符串代表一个字符串)2 2、函数命令、函数命令、函数命令、函数命令symssyms格式格式格式格式 symssyms s1 s2 s3;s1 s2 s3;创建创建创建创建3 3个符号对象个符号对象个符号对象个符号对象 符号常量符号常量符号常量符号常量 符号常量是一种符号对象。数值常量如果作为函数命令符号常量是一种符号对象。数值常量如果作为函数命令符号常量是一种符号对象。数值常
8、量如果作为函数命令符号常量是一种符号对象。数值常量如果作为函数命令 symsym()的输入参量,这就建立了一个符号对象()的输入参量,这就建立了一个符号对象()的输入参量,这就建立了一个符号对象()的输入参量,这就建立了一个符号对象符号符号符号符号 常量常量常量常量 例如:例如:例如:例如:symsym(1/81/8)符号变量符号变量符号变量符号变量 符号变量通常是指一个或几个特定的字符,不是指符号表符号变量通常是指一个或几个特定的字符,不是指符号表符号变量通常是指一个或几个特定的字符,不是指符号表符号变量通常是指一个或几个特定的字符,不是指符号表 达式,虽然可以将一符号表达式赋值给一个符号变
9、量。符达式,虽然可以将一符号表达式赋值给一个符号变量。符达式,虽然可以将一符号表达式赋值给一个符号变量。符达式,虽然可以将一符号表达式赋值给一个符号变量。符 号变量的命名规则与数值变量相同。号变量的命名规则与数值变量相同。号变量的命名规则与数值变量相同。号变量的命名规则与数值变量相同。例如:例如:例如:例如:a=a=sym(alphasym(alpha)symssyms alpha beta alpha beta gamagama;符号表达式、符号函数与符号方程(符号表达式、符号函数与符号方程(符号表达式、符号函数与符号方程(符号表达式、符号函数与符号方程(P50P50)符号表达式是由符号常量
10、、符号变量、符号函数符号表达式是由符号常量、符号变量、符号函数符号表达式是由符号常量、符号变量、符号函数符号表达式是由符号常量、符号变量、符号函数用运算符或专用函数连接而成的符号对象。符号用运算符或专用函数连接而成的符号对象。符号用运算符或专用函数连接而成的符号对象。符号用运算符或专用函数连接而成的符号对象。符号表达式有两类:表达式有两类:表达式有两类:表达式有两类:符号函数和符号方程。符号函数和符号方程。符号函数和符号方程。符号函数和符号方程。例:例:例:例:f=f=sym(asym(a*x2+b*2+c)*x2+b*2+c)或或或或symssyms a b c x a b c x f=a*
11、x2+b*2+c f=a*x2+b*2+c数组、矩阵与符号矩阵(数组、矩阵与符号矩阵(数组、矩阵与符号矩阵(数组、矩阵与符号矩阵(P51P51)m1=m1=sym(absym(ab bcbc cdcd;de ;de efef fgfg;h l j);h l j)m2=sym(1 12;23 34)m2=sym(1 12;23 34)例:例:A=hilb(3);A=hilb(3);A=A=1.0000 0.5000 0.3333 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000
12、0.3333 0.2500 0.2000 A=sym(A)A=sym(A)A=A=1,1/2,1/3 1,1/2,1/3 1/2,1/3,1/4 1/2,1/3,1/4 1/3,1/4,1/5 1/3,1/4,1/5数值转化为符号Sym(Sym(数值变量数值变量,f),f)返回浮点表示形式返回浮点表示形式Sym(Sym(数值变量数值变量,r),r)返回有理数表示形式返回有理数表示形式Sym(Sym(数值变量数值变量,e),e)返回有理数返回有理数(带误差带误差)表表示形式示形式Sym(Sym(数值变量数值变量,d),d)返回十进制小数表示形返回十进制小数表示形式式 例:例:sym(4/3,f)
13、sym(4/3,f)ans=1.5555555555555*2(0)ans=1.5555555555555*2(0)sym(4/3,r)sym(4/3,r)ansans=4/3=4/3 sym(4/3,e)sym(4/3,e)ansans=4/3-eps/3=4/3-eps/3 sym(4/3,d)sym(4/3,d)ansans=1.3333333333333332593184650249896=1.3333333333333332593184650249896符号对象转换为数值对象的函数符号对象转换为数值对象的函数符号对象转换为数值对象的函数符号对象转换为数值对象的函数double()do
14、uble(),vpavpa()()1 1、double()double()这种格式的功能是将符号常量转换为双精度数值这种格式的功能是将符号常量转换为双精度数值这种格式的功能是将符号常量转换为双精度数值这种格式的功能是将符号常量转换为双精度数值2 2、vapvap()()精确计算表达式的值。精确计算表达式的值。精确计算表达式的值。精确计算表达式的值。格式格式格式格式1 1:R Rvpavpa(E E)格式格式格式格式2 2:R Rvpavpa(E,DE,D)Matlab符号运算的基本运算(P52)符号加:符号加:symadd(A,B),(+)符号减:符号减:symsub(A,B),(-)符号乘:
15、符号乘:symmul(A,B),(*)符号表达式的幂运算:符号表达式的幂运算:sympow(s,p),(sp)见见example3_5Matlab符号运算的基本内容符号变量代换及其函数符号变量代换及其函数符号变量代换及其函数符号变量代换及其函数subssubs(P54P54)()()()(重点重点重点重点)格式:格式:格式:格式:subs(s,old,newsubs(s,old,new)功能:功能:功能:功能:将符号表达式将符号表达式将符号表达式将符号表达式S S中的中的中的中的oldold变量替换为变量替换为变量替换为变量替换为newnew。oldold一定一定一定一定 是符号表达式是符号表
16、达式是符号表达式是符号表达式s s中的符号变量,而中的符号变量,而中的符号变量,而中的符号变量,而newnew可以是符号变量、可以是符号变量、可以是符号变量、可以是符号变量、符号常量、双精度数值与数值数组相等。符号常量、双精度数值与数值数组相等。符号常量、双精度数值与数值数组相等。符号常量、双精度数值与数值数组相等。格式:格式:格式:格式:subs(s,newsubs(s,new)功能用功能用功能用功能用newnew置换符号表达式置换符号表达式置换符号表达式置换符号表达式s s中的自变量中的自变量中的自变量中的自变量 符号表达式的化简符号表达式的化简符号表达式的化简符号表达式的化简1 1、fa
17、ctor()factor()符号表达式因式分解的函数命令符号表达式因式分解的函数命令符号表达式因式分解的函数命令符号表达式因式分解的函数命令2 2、expand()expand()将符号表达式展开将符号表达式展开将符号表达式展开将符号表达式展开3 3、collect()collect()符号表达式的合并符号表达式的合并符号表达式的合并符号表达式的合并 格式格式格式格式1 1:collectcollect(E E,v v)按按按按v v变量合并变量合并变量合并变量合并 格式格式格式格式2 2:collectcollect(E E)按默认变量合并)按默认变量合并)按默认变量合并)按默认变量合并4
18、4、simplify(),simple()simplify(),simple()将将符号表达式运用多种恒等式变换进行综合化简将将符号表达式运用多种恒等式变换进行综合化简将将符号表达式运用多种恒等式变换进行综合化简将将符号表达式运用多种恒等式变换进行综合化简 格式格式格式格式1 1:simplifysimplify(E E),simple,simple(E E)格式格式格式格式2 2:R,HOWR,HOWsimplesimple(E E)符号运算实现各种变换ztrans(fztrans(f)Z)Z变换变换例:例:zfzf=ztrans(2n)=ztrans(2n)zfzf=1/2*z/(1/2*
19、z-1)=1/2*z/(1/2*z-1)iztrans(fiztrans(f)反反Z Z变换变换Laplace(fLaplace(f)拉氏变换拉氏变换例:例:sfsf=laplace(t5)laplace(t5)sfsf=120/s6=120/s6ilaplace(filaplace(f)反拉氏变换反拉氏变换fourier(ffourier(f)付氏变换付氏变换ifourier(fifourier(f)反付氏变换反付氏变换simple(fsimple(f)化简表达式化简表达式例:例:f=sym(cos(x)2+sin(x)2);f=sym(cos(x)2+sin(x)2);simple(fsi
20、mple(f)ansans=1=1例例例例1 1:求单位冲激函数:求单位冲激函数:求单位冲激函数:求单位冲激函数与函数与函数见见example3_16例例例例2 2:求单位延迟阶跃函数:求单位延迟阶跃函数:求单位延迟阶跃函数:求单位延迟阶跃函数的傅立叶变换的傅立叶变换F(w)例例例例3 3:求函数:求函数:求函数:求函数的傅立叶变换的傅立叶变换F(w)例例例例4 4:求函数:求函数:求函数:求函数的傅立叶变换的傅立叶变换F(w)的傅立叶变换的傅立叶变换F(w)例例例例5 5:求函数:求函数:求函数:求函数的傅立叶反变换的傅立叶反变换f(t)符号函数的可视化ezplot(fezplot(f):)
21、:绘制绘制绘制绘制f=f=f(t),tf(t),t的范围的范围的范围的范围-2*pit2*pi-2*pit2*piezplot(f,a,bezplot(f,a,b):):绘制绘制绘制绘制f=f=f(t),tf(t),t的范围的范围的范围的范围atbatbezplot(fezplot(f):):对于符号对于符号对于符号对于符号f=f=f(x,y),ezplot(ff(x,y),ezplot(f)在图形窗口在图形窗口在图形窗口在图形窗口中绘制符号方程中绘制符号方程中绘制符号方程中绘制符号方程f(x,yf(x,y)=0)=0的图形,的图形,的图形,的图形,-2*pix2*pi,-2*piy2*pi-
22、2*pix2*pi,-2*piy2*pi。ezplot(f,xmin,xmax,ymin,ymaxezplot(f,xmin,xmax,ymin,ymax)ezplot(x,yezplot(x,y):):绘制符号方程绘制符号方程绘制符号方程绘制符号方程x=x=x(t),yx(t),y=y(ty(t)的图形,的图形,的图形,的图形,0t2*pi;0tx=sym(x);f=sym(1/(5+4*cos(x);ezplot(f);符号运算与数值运算画图上的区别数值方法:x=-2*pi:0.1:2*pi;f=cos(x);Plot(x,f)符号运算方法:符号运算方法:方法一:方法一:symssyms x xf=f=cos(xcos(x)ezplot(f,-2*pi,2*pi)ezplot(f,-2*pi,2*pi)方法二:方法二:symssyms x xf=f=cos(xcos(x)f2=subs(f,x,-2*pi:0.1:2*pi)f2=subs(f,x,-2*pi:0.1:2*pi)plot(-2*pi:0.1:2*pi,f2)plot(-2*pi:0.1:2*pi,f2)作业:编写命令文件,分别利用数值方法和符号方法(两种方法)绘出下列图形。