MATLAB语言程序设计教程(第二版) 第4章 MATLAB符号计算

上传人:E**** 文档编号:89391726 上传时间:2019-05-24 格式:PPT 页数:68 大小:594KB
返回 下载 相关 举报
MATLAB语言程序设计教程(第二版) 第4章 MATLAB符号计算_第1页
第1页 / 共68页
MATLAB语言程序设计教程(第二版) 第4章 MATLAB符号计算_第2页
第2页 / 共68页
MATLAB语言程序设计教程(第二版) 第4章 MATLAB符号计算_第3页
第3页 / 共68页
MATLAB语言程序设计教程(第二版) 第4章 MATLAB符号计算_第4页
第4页 / 共68页
MATLAB语言程序设计教程(第二版) 第4章 MATLAB符号计算_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《MATLAB语言程序设计教程(第二版) 第4章 MATLAB符号计算》由会员分享,可在线阅读,更多相关《MATLAB语言程序设计教程(第二版) 第4章 MATLAB符号计算(68页珍藏版)》请在金锄头文库上搜索。

1、第4章 MATLAB符号计算,第4章 MATLAB符号计算,学习目标 了解MATLAB符号计算功能; 理解符号函数和符号矩阵的基本运算; 掌握建立符号矩阵和符号函数、利用MATLAB计算符号函数的微积分及其对符号函数方程的求解、符号函数图像的绘制。,4.1 符号矩阵与符号函数的创建,符号矩阵的建立主要通过调用sym()函数及直接输入两种方法,此外调用MATLAB函数sym()、syms()还可以实现定义符号变量和符号表达式,创建符号数学函数等功能。,4.1.1 建立符号矩阵,1用sym()函数建立符号矩阵 sym()函数用来建立符号矩阵。 【例4.1】建立一个符号矩阵,并进行运算 解 在MAT

2、LAB命令提示符下输入: clear a=sym(x,y,z;a,b,c;e,f,g) a= x, y, z a, b, c e, f, g, a+1 ans= x+1, y+1, z+1 a+1, b+1, c+1 e+1, f+1, g+1 b=sym(1/x,1/y,1/z;1/a,1/b,1/c;1/e,1/f,1/g) b= 1/x, 1/y, 1/z 1/a, 1/b, 1/c 1/e, 1/f, 1/g,2直接输入法建立符号矩阵 【例4.2】用直接输入法建立一个符号矩阵。 解 在MATLAB命令提示符下输入: clear syms x y z a b c e f g b=x,y,

3、z;a,b,c;e,f,g b= x, y, z a, b, c e, f, g,3把数值矩阵转换为符号矩阵 用sym()函数可以把数值矩阵转换为符号矩阵。 【例4.3】把数值矩阵转换为符号矩阵。 解 在MATLAB命令提示符下输入: clear a=magic(3) a=8 1 6 3 5 7 4 9 2 sym(a) ans= 8, 1, 6 3, 5, 7 4, 9, 2, a=1/1 1/2 1/3;1/4 1/5 1/6;1/7 1/8 1/9 a=1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 sym(a

4、) ans= 1, 1/2, 1/3 1/4, 1/5, 1/6 1/7, 1/8, 1/9,4.1.2 建立符号函数,1使用sym()、syms()函数建立符号变量和符号表达式 sym()函数用来建立单个符号量,syms()建立多个符号变量和符号表达式。 syms var1 var2 varn 函数定义符号变量var1,var2,varn等。用这种格式定义符号变量时不要在变量名上加字符分界符(),变量间用空格而不用逗号分隔。,【例4.4】建立一个魔方矩阵并进行运算。 解 在MATLAB命令提示符下输入: clear X=magic(3) X=8 1 6 3 5 7 4 9 2 A=sym(X

5、) A= 8, 1, 6 3, 5, 7 4, 9, 2 A+1 ans= 9, 2, 7 4, 6, 8 5, 10,3,2建立符号表达式,【例4.7】用两种方法建立符号表达式2x2+6y+xy+9。 解 在MATLAB命令提示符下输入: clear U=sym(2*x2+6*y+x*y+9) U=2x2+6y+xy+9 U=2*x2+6*y+x*y+9 syms x y; V=2*x2+6*y+x*y+9 V=2x2+6y+xy+9 V=2*x2+6*y+x*y+9 3*U+V-8 ans=8*x2+24*y+4*x*y+28,3创建抽象函数,抽象函数是指g(x)、f (x)等无具体表达式

6、的函数。 【例4.8】创建抽象函数。 解 在MATLAB命令提示符下输入: g=sym(g(x) g=g(x),4创建符号数学函数,可以利用符号表达式来创建符号数学函数。 【例4.9】利用符号表达式创建符号数学函数。 解 在MATLAB命令提示符下输入: clear syms x y z d=5*x2+7*cos(2*y)*sin(z)+log(10) d=5*x2+7*cos(2*y)*sin(z)+2592480341699211/1125899906842624 e=8*x+3*y+7*z+9 e=8*x+3*y+7*z+9, f=sin(x+z)/cos(x-y) f=sin(x+z)

7、/cos(x-y) e-d ans=8*x+3*y+7*z+7540618819884405/1125899906842624-5*x2-7*cos(2*y)*sin(z) e/d ans=(8*x+3*y+7*z+9)/(5*x2+7*cos(2*y)*sin(z)+2592480341699211/1125899906842624),4.2 符号矩阵与符号函数的基本运算,符号矩阵的基本运算包括加、减、乘、除四则运算及乘方运算,符号函数的运算包括符号函数的基本运算以及因式分解及其化简。 MATLAB为符号矩阵和符号函数的运算提供了大量的函数,通过调用这些函数可以方便地实现符号矩阵和符号函数的

8、运算。,4.2.1 符号矩阵的基本运算,符号矩阵的基本运算函数分别是: a+b实现两个符号矩阵相加即a+b; a-b实现两个符号矩阵相减a-b; a*b实现两个符号矩阵相乘ab; a/b实现两个符号矩阵相除即ab; a.b实现两个符号矩阵的幂运算即ab。 符号求和函数为sum(a),当a是符号矢量时,对所有的a元素求和; 当a是符号矩阵时,对指定的列进行求和。,【例4.10】求下列符号矩阵a和b的基本运算。 解 在MATLAB命令提示符下输入: clear syms a b c sum(sym(log(a),b2,2,4) ans=log(a)+b2+6 sum(sym(log(4),32,2

9、,4,7,8) ans=log(4)+30 x=a,3,c;a-2,b+8,4;1,2,3 x= a, 3, c a-2, b+8, 4 1, 2, 3, sym(x) ans= a, 3, c a-2, b+8, 4 1, 2, 3 sum(x) ans= 2*a-1, 13+b, c+7 a=sym(magic(3) a= 8, 1, 6 3, 5, 7 4, 9, 2 sym(1/1 1/2 1/3;1/4 1/5 1/6;1/7 1/8 1/9) ans= 1, 1/2, 1/3 1/4, 1/5, 1/6 1/7, 1/8, 1/9, a+b ans= b+8, 1+b, 6+b 3

10、+b, 5+b, 7+b 4+b, 9+b, 2+b a-b ans= 8-b, 1-b, 6-b 3-b, 5-b, 7-b 4-b, 9-b, 2-b a*b ans= 8*b, b, 6*b 3*b, 5*b, 7*b 4*b, 9*b, 2*b, a/b ans= 8/b, 1/b, 6/b 3/b, 5/b, 7/b 4/b, 9/b, 2/b a.b ans= 8b, 1, 6b 3b, 5b, 7b 4b, 9b, 2b,4.2.2 符号函数的基本运算,1基本运算函数 基本运算包括加、减、乘、除、乘方等运算,其对应的函数分别为: symadd(x,y),实现两个函数相加即x+y;

11、 symsub(x,y),实现两个函数相减即x-y; symmul(x,y),实现两个函数相乘xy; symdiv(x,y),实现两个函数相除即xy; sympow(x,y),实现两个函数的幂运算即xy。,【例4.12】求a2和b相加。 解 在MATLAB命令提示符下输入: clear syms a b symadd (a2,b) ans=a2+b,2因式分解、展开与化简,factor(S)对S分解因式,S是符号表达式或符号矩阵。 expand(S)对S进行展开,S是符号表达式或符号矩阵。 collect(S)对S合并同类项,S是符号表达式或符号矩阵。 collect(S,v)对S按变量v合并

12、同类项,S是符号表达式或符号矩阵。 对符号表达式化简的函数有simple()或simplify(): simplify(a)是指应用函数规则对a进行化简。 simple(a)是指调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。,【例4.14】对表达式f=2(x+1)/(x2+2x-3)进行因式分解。 解 在MATLAB命令提示符下输入: clear f=sym(2*(x+1)/(x2+2*x-3) %建立符号表达式f f=2*(x+1)/(x2+2*x-3) F=factor(f) %调用factor()函数对表达式进行因式分解 F=2*(x+1)/(x+3)/(x-1),【例

13、4.15】对表达式s= 进行展开。 解 在MATLAB命令提示符下输入: clear syms x y; s=(-9*x2-4*y2)*(-x2+2*y2); expand(s) ans=9*x4-14*x2*y2-8*y4 collect(s,x) ans=9*x4-14*x2*y2-8*y4 factor(ans) ans=(-2*y2+x2)*(4*y2+9*x2),【例4.17】化简表达式f=(x3+y3)2+(x3-y3)2。 解 在MATLAB命令提示符下输入: clear syms x y; s=(x3+y3)2+(x3-y3)2; simple(s) simplify: 2*x

14、6+2*y6 radsimp: 2*x6+2*y6 combine(trig): 2*x6+2*y6 factor:,2*(x2+y2)*(x4-x2*y2+y4) expand: 2*x6+2*y6 combine: (x3+y3)2+(x3-y3)2 convert(exp): (x3+y3)2+(x3-y3)2 convert(sincos): (x3+y3)2+(x3-y3)2 convert(tan): (x3+y3)2+(x3-y3)2 collect(x): 2*x6+2*y6 mwcos2sin: (x3+y3)2+(x3-y3)2 ans=2*x6+2*y6,4.3 符号微积

15、分,MATLAB提供了大量的应用函数实现函数极限的求解、符号函数的微分、符号函数的不定积分、符号函数的定积分以及傅里叶变换、拉普拉斯变换、Z变换、符号级数求和、泰勒展开式等。,4.3.1 函数的极限,limit函数的调用格式为: limit(f,x,a) 求函数f在x趋近于a时的极限值。limit()函数的另一种功能是求单边极限,其调用格式为: limit(f,x,a,right) limit(f,x,a,left) 求函数f在x=a处的右极限或左极限。,【例4.18】求极限。 解 在MATLAB命令提示符下输入: clear A=sym(1+x)(1/x); B=limit(A) B=exp(1) vpa(B,5) ans=2.7183,4.3.2 符号函数微分,MATL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号