数学建模实验课件第6章MATLAB符号计算

上传人:E**** 文档编号:91046465 上传时间:2019-06-21 格式:PPT 页数:50 大小:322.50KB
返回 下载 相关 举报
数学建模实验课件第6章MATLAB符号计算_第1页
第1页 / 共50页
数学建模实验课件第6章MATLAB符号计算_第2页
第2页 / 共50页
数学建模实验课件第6章MATLAB符号计算_第3页
第3页 / 共50页
数学建模实验课件第6章MATLAB符号计算_第4页
第4页 / 共50页
数学建模实验课件第6章MATLAB符号计算_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《数学建模实验课件第6章MATLAB符号计算》由会员分享,可在线阅读,更多相关《数学建模实验课件第6章MATLAB符号计算(50页珍藏版)》请在金锄头文库上搜索。

1、第6章 MATLAB符号计算,目录,在工程、应用数学和科学上经常要用到符号计算功能。MATLAB开发商Mathwork公司以maple的内核为符号计算的引擎,依赖MAOLE已有的库函数,开发了在MATLAB环境下实现符号计算的工具箱Symbolic Math Toolbox(符号数学工具箱)。,6.1 符号计算基础 6.2 符号导数及其应用 6.3 符号积分 6.4 级数 6.5 代数方程的符号求解 6.6 常微分方程的符号求解,6.1 符号计算基础,目录,符号数学工具箱是操作和解决符号表达式的版本号数学工具的集合,它包含复合、简化、微分、积分以及求代数方程和微分方程的工具。,6.1.1 符号

2、对象 1. 建立符号变量和符号常数 (1)sym函数 sym函数用来建立单个符号量,例如,a=sym(a)建立符号变量a,此后,用户可以在表达式中使用变量a进行各种运算。,例6.1考察符号变量和数值变量的差别。 在 MATLAB命令窗口,输入命令:,目录,a=sym(a);b=sym(b);c=sym(c);d=sym(d); %定义4个符号变量 w=10;x=5;y=-8;z=11; %定义4个数值变量 A=a,b;c,d %建立符号矩阵A,A = a, b c, d, det(B) %计算数值矩阵B的行列式,B=w,x;y,z %建立数值矩阵B,B = 10 5 -8 11,ans = a

3、*d-b*c, det(A) %计算符号矩阵A的行列式,ans = 150,例6.2比较符号常数与数值在代数运算时的差别。 在 MATLAB命令窗口,输入命令: pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3); % 定义符号变量 pi2=pi;r1=8;r2=2;r3=3; % 定义数值变量 sin(pi1/3) % 计算符号表达式值 sin(pi2/3) % 计算数值表达式值 sqrt(k1) % 计算符号表达式值 sqrt(r1) % 计算数值表达式值 sqrt(k3+sqrt(k2) % 计算符号表达式值 sqrt(r3+sqrt(r2) % 计算数值

4、表达式值,目录,ans = 1/2*3(1/2),ans = 0.8660,ans = 2*2(1/2),ans =2.8284,ans = (3+2(1/2)(1/2),ans = 2.1010,(2)syms函数 syms函数的一般调用格式为: syms var1 var2 varn 函数定义符号变量var1,var2,varn等。用这种格式定义符号变量时不要在变量名上加字符分界符(),变量间用空格而不要用逗号分隔。,目录,2. 建立符号表达式 例6.3用两种方法建立符号表达式。 在MATLAB窗口,输入命令: U=sym(3*x2+5*y+2*x*y+6) %定义符号表达式U syms

5、x y; %建立符号变量x、y V=3*x2+5*y+2*x*y+6 %定义符号表达式V 2*U-V+6 %求符号表达式的值,U = 3*x2+5*y+2*x*y+6,V = 3*x2+5*y+2*x*y+6,ans = 3*x2+5*y+2*x*y+12,例6.4计算3阶范得蒙矩阵行列式的值。设A是一个由符号变量a,b,c确定的范得蒙矩阵。 命令如下: syms a b c; U=a,b,c; A=1,1,1;U;U.2 %建立范得蒙符号矩阵 det(A) %计算A的行列式值,目录,A = 1, 1, 1 a, b, c a2, b2, c2,ans = b*c2-c*b2-a*c2+a*b

6、2+a2*c-a2*b,ans = -(-c+b)*(a-c)*(a-b),factor(ans),例6.5建立x,y的一般二元函数。 在MATLAB命令窗口,输入命令: syms x y; f=sym(f(x,y);,目录,6.1.2 基本的符号运算 1. 符号表达式运算 (1)符号表达式的四则运算 例6.6符号表达式的四则运算示例。 在 MATLAB命令窗口,输入命令: syms x y z; f=2*x+x2*x-5*x+x3 %符号表达式的结果为最简形式 f=2*x/(5*x) %符号表达式的结果为最简形式 f=(x+y)*(x-y) %符号表达式的结果不是x2-y2,而是(x+y)*

7、(x-y),目录,f = -3*x+2*x3,f = 2/5 f = (x+y)*(x-y),(2)因式分解与展开 factor(S) 对S分解因式,S是符号表达式或符号矩阵。 expand(S) 对S进行展开,S是符号表达式或符号矩阵。 collect(S) 对S合并同类项,S是符号表达式或符号矩阵。 collect(S,v) 对S按变量v合并同类项,S是符号表达式或符号矩阵。,目录,例6.7 对符号矩阵A的每个元素分解因式。 命令如下: syms a b x y; A=2*a2*b3*x2-4*a*b4*x3+10*a*b6*x4,3*x*y-5*x2;4,a3-b3; factor(A)

8、 %对A的每个元素分解因式,目录,ans = 2*a*b3*x2*(5*b3*x2-2*b*x+a), -x*(-3*y+5*x) 4, (a-b)*(a2+b*a+b2),例6.8 计算表达式S的值。 命令如下: syms x y; s=(-7*x2-8*y2)*(-x2+3*y2); expand(s) %对s展开 collect(s,x) %对s按变量x合并同类项(无同类项) factor(ans) % 对ans分解因式,ans = 7*x4-13*x2*y2-24*y4,ans = 7*x4-13*x2*y2-24*y4,ans = (8*y2+7*x2)*(x2-3*y2),(3)表

9、达式化简 MATLAB提供的对符号表达式化简的函数有: simplify(S) 应用函数规则对S进行化简。 simple(S) 调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。 例6.9化简 命令如下: syms x y; s=(x2+y2)2+(x2-y2)2; simple(s) %MATLAB自动调用多种函数对s进行化简,并显示每步结果,目录,2. 符号矩阵运算 transpose(S) 返回S矩阵的转置矩阵。 determ(S) 返回S矩阵的行列式值。 colspace(S) 返回S矩阵列空间的基。 Q,D=eigensys(S) Q返回S矩阵的特征向量,D返回S矩阵的

10、特征值。,目录,6.1.3 符号表达式中变量的确定 MATLAB中的符号可以表示符号变量和符号常数。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为: findsym(S,n) 函数返回符号表达式S中的n个符号变量,若没有指定n,则返回S中的全部符号变量。 在求函数的极限、导数和积分时,如果用户没有明确指定自变量,MATLAB将按缺省原则确定主变量并对其进行相应微积分运算。可用findsym(S,1)查找系统的缺省变量,事实上,MATLAB按离字符x最近原则确定缺省变量。,目录,6.2 符号导数及其应用,6.2.1函数的极限 limit函数的调用格式为: limi

11、t(f,x,a) limit函数的另一种功能是求单边极限,其调用格式为: limit(f,x,a,right) 或 limit(f,x,a,left),目录,例6.10求极限 在MATLAB命令窗口,输入命令: syms a m x; f=(x(1/m)-a(1/m)/(x-a); limit(f,x,a) %求极限(1) f=(sin(a+x)-sin(a-x)/x; limit(f) %求极限(2) limit(f,inf) %求f函数在x (包括+和-)处的极限 limit(f,x,inf,left) %求极限(3) f=(sqrt(x)-sqrt(a)-sqrt(x-a)/sqrt(x

12、*x-a*a); limit(f,x,a,right) %求极限(4),目录,ans = a(1/m)/a/m ans = 2*cos(a) ans = 0 ans = 0,ans = -1/2*2(1/2)/a(1/2),6.2.2 符号函数求导及其应用 MATLAB中的求导的函数为: diff(f,x,n) diff函数求函数f对变量x的n阶导数。参数x的用法同求极限函数limit,可以缺省,缺省值与limit相同,n的缺省值是1。,目录,例6.11求函数的导数。 命令如下: syms a b t x y z; f=sqrt(1+exp(x); diff(f) %求(1)。未指定求导变量和

13、阶数,按缺省规则处理 f=x*cos(x); diff(f,x,2) %求(2)。求f对x的二阶导数 diff(f,x,3) %求(2)。求f对x的三阶导数 f1=a*cos(t);f2=b*sin(t); diff(f2)/diff(f1) %求(3)。按参数方程求导公式求y对x的导数 (diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)3 %求(3)。求y对x的二阶导数 f=x*exp(y)/y2; diff(f,x) %求(4)。z对x的偏导数 diff(f,y) %求(4)。z对y的偏导数 f=x2+y2+z2-a2; zx=-diff(

14、f,x)/diff(f,z) %求(5)。按隐函数求导公式求z对x的偏导数 zy=-diff(f,y)/diff(f,z) %求(5)。按隐函数求导公式求z对y的偏导数,目录,例6.12在曲线y=x3+3x-2上哪一点的切线与直线y=4x-1平行。 命令如下: x=sym(x); y=x3+3*x-2; %定义曲线函数 f=diff(y); %对曲线求导数 g=f-4; solve(g) %求方程f-4=0的根,即求曲线何处的导数为4,目录,ans = 1/3*3(1/2) -1/3*3(1/2),6.3 符号积分,6.3.1不定积分 在MATLAB中,求不定积分的函数是int,其调用格式为: int(f,x) int函数求函数f对变量x的不定积分。参数x可以缺省,缺省原则与diff函数相同。,目录,例6.13求不定积分。 命令如下: x=sym(x); f=(3-x2)3; int(f) %求不定积分(1) f=sqrt(x3+x4); int(f) %求不定积分(2) g=simple(ans) %调用simple函数对结果化简,目录,ans = 27*x-1/7*x7+9/5*x5-9*x3 ans = -1/48*(x

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

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

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