MATLAB教学课件第3章MATLAB符号计算3

上传人:au****y 文档编号:54109507 上传时间:2018-09-07 格式:PPT 页数:35 大小:204.50KB
返回 下载 相关 举报
MATLAB教学课件第3章MATLAB符号计算3_第1页
第1页 / 共35页
MATLAB教学课件第3章MATLAB符号计算3_第2页
第2页 / 共35页
MATLAB教学课件第3章MATLAB符号计算3_第3页
第3页 / 共35页
MATLAB教学课件第3章MATLAB符号计算3_第4页
第4页 / 共35页
MATLAB教学课件第3章MATLAB符号计算3_第5页
第5页 / 共35页
点击查看更多>>
资源描述

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

1、第3章 MATLAB符号计算,2010-9-1,本章内容,3.1 符号计算基础 3.2 微分运算 3.3 积分运算 3.4 泰勒级数 3.5 求解方程 3.6 积分变换,3.1 符号计算基础,3.1.1 符号对象 符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或者字符串组; 符号运算是使用已知的规则和给定符号恒等式求解符号方程的实践; 符号变量和非符号变量区别:非符号变量参与计算之间必须赋值;而符号变量无须赋值。,1 建立符号变量和符号常数 (1) sym函数 S=sym(A) sym函数用来建立单个符号变量,例如,a=sym(a)建立符号变量a,此后,用户可以在表达式中使用变量

2、a进行各种运算。 定义符号常量 如 pi=sym(pi);a=sym(3/4),例3.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 B=w,x;y,z %建立数值矩阵B det(A) %计算符号矩阵A的行列式 det(B) %计算数值矩阵B的行列式,例3.2 比较符号常数与数值变量在代数运算时的差别。 在 MATLAB命令窗口,输入命令: pi1=sym(pi);k1=sym(8

3、);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) % 计算数值表达式值,(2)syms函数 syms用于定义多个符号变量。 syms函数的一般调用格式为: syms var1 var2 varn 函数定义符号变量var1,var2,varn等。用这种格式定义符号变

4、量时不要在变量名上加字符分界符(),变量间用空格而不要用逗号分隔。,(3)符号常量 数值常量如果作为函数命令sym()的输入参量,即建立了一个符号对象-符号常量 可以用class()函数来检测数据的类似。,例如: a=1/8; classa=class(a) classa=double b=1/8; classb=class(a) classb=char c=sym(1/8); classc=class(a) classc=sym d=sym(1/8); classd=class(a) classd=sym,2. 建立符号表达式 例3.3 用2种方法建立符号表达式。 在MATLAB窗口,输入命

5、令: U=sym(3*x2+5*y+2*x*y+6) %定义符号表达式U syms x y; %建立符号变量x、y V=3*x2+5*y+2*x*y+6 %定义符号表达式V 2*U-V+6 %求符号表达式的值,例3.4 计算3阶范得蒙矩阵行列式的值。设A是一个由符号变量a,b,c确定的范得蒙矩阵。 命令如下: syms a b c; U=a,b,c; A=1,1,1;U;U.2 %建立范得蒙符号矩阵 det(A) %计算A的行列式值,例3.5 建立x,y的一般二元函数。 在MATLAB命令窗口,输入命令: syms x y; f=sym(f(x,y);,(1)符号表达式的代数运算 与矩阵运算基

6、本一致 (2)符号与数值的转换:sym,numeric,eval,sym2poly,poly2sym Numeric,eval:将符号常数转换为数字或计算表达式的函数; Sym2poly:将符号多项式变换为等价系数向量。 Poly2sym:要求用户指定用于表达式的变量(x,y等) 例3.6 f=sym(2*x2+7*x+9) n=sym2poly(f) f1=poly2sym(1 2 3,t),3.1.2 基本的符号运算,(3)因式分解与展开 factor(S): 对S分解因式,S是符号表达式或符号矩阵。 expand(S): 对S进行展开,S是符号表达式或符号矩阵。 collect(S):

7、对S合并同类项,S是符号表达式或符号矩阵。 collect(S,v): 对S按变量v合并同类项,S是符号表达式或符 号矩阵。,例3.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) %对A的每个元素分解因式,例3.8 计算表达式S的值。 命令如下: syms x y; s=sym(-7*x2-8*y2)*(-x2+3*y2); s1=expand(s) %对s展开 s2=collect(s,x) %对s按变量x合并同类项(无同类项) fac

8、tor(s2) % 对s2分解因式,(4)表达式化简 MATLAB提供的对符号表达式化简的函数有: simplify(S) 应用函数规则对S进行化简。 simple(S) 调用MATLAB的其他函数对表达式进 行综合化简,并显示化简过程。,例3.9化简 命令如下: syms x y; s=(x2+y2)2+(x2-y2)2; simple(s) %MATLAB自动调用多种函数对s进行化简,并显示每步结果,(5) 符号变量的确定 MATLAB中的符号可以表示符号变量和符号常数。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为: findsym(S,n) 函数返回符号

9、表达式S中的n个符号变量,若没有指定n,则返回S中的全部符号变量。 在求函数的极限、导数和积分时,如果用户没有明确指定自变量,MATLAB将按缺省原则确定主变量并对其进行相应微积分运算。 可用findsym(S,1)查找系统的缺省变量,事实上,MATLAB按离字符x最近原则确定缺省变量。,3.2 微分运算,3.2.1符号表达式的极限运算 limit 函数的调用格式为: limit(f,x,a) Limit(f,a) %利用findsym确定极限点 Limit(f) %利用a=0作为极限点 limit函数的另一种功能是求单边极限,其调用格式为: limit(f,x,a,right) limit(

10、f,x,a,left),例3.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*x-a*a); limit(f,x,a,right) %求极限(4),3.2.2 符号函数求导及其应用 MATLAB中的求导的函数为

11、: diff(f,x,n),diff求函数f对变量x的n阶导数。参数x的用法同求极限函数limit,可以缺省,缺省值与limit相同,n的缺省值是1。,例3.11 求函数的导数。 命令如下: syms a b t x y z; f=sqrt(1+exp(x); diff(f) %求(1)。未指定求导变量和阶数,按缺省规则处理 f=x*cos(x); diff(f,x,2) %求(2)。求f对x的二阶导数 diff(f,x,3) %求(2)。求f对x的三阶导数 y=a*cos(t);x=b*sin(t); diff(y)/diff(x) %求(3)。按参数方程求导公式求y对x的导数 f=x*ex

12、p(y)/y2; diff(f,x) %求(4)。z对x的偏导数 diff(f,y) %求(4)。z对y的偏导数 f=x2+y2+z2-a2; zx=-diff(f,x)/diff(f,z) %求(5)。按隐函数求导公式求z对x的偏导数 zy=-diff(f,y)/diff(f,z) %求(5)。按隐函数求导公式求z对y的偏导数,例3.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,

13、3.3 积分运算,3.3.1 不定积分 在MATLAB中,求不定积分的函数是int,其调用格式为: int(f,x) int函数求函数f对变量x的不定积分。参数x可以缺省,缺省原则与diff函数相同。,例3.13求不定积分。 命令如下: x=sym(x); f=(3-x2)3; int(f) %求不定积分(1) f=sqrt(x3+x4); f1=int(f) %求不定积分(2) g=simple(f1) %调用simple函数对结果化简,3.3.2 定积分 定积分在实际工作中有广泛的应用。在MATLAB中,定积分的计算使用函数: int(f,x,a,b) 例3.14 求定积分。,命令如下:

14、x=sym(x);t=sym(t); int(abs(1-x),1,2) %求定积分(1) f=1/(1+x2); int(f,-inf,inf) %求定积分(2) int(4*t*x,x,2,sin(t) %求定积分(3) f=x3/(x-1)100; I=int(f,2,3) %用符号积分的方法求 定积分(4) double(I) %将上述符号结果转换 为数值,例3.15求椭球的体积。 命令如下: syms a b c z; f=pi*a*b*(c2-z2)/c2; V=int(f,z,-c,c) V = 4/3*pi*a*b*c,例3.16轴的长度为10米,若该轴的线性密度计算公式是f(

15、x)=6+0.3x千克/米(其中x为距轴的端点距离),求轴的质量。 (1)符号函数积分 在MATLAB命令窗口,输入命令: syms x; f=6+0.3*x; m=int(f,0,10) (2)数值积分 先建立一个函数文件fx.m: function fx=fx(x) fx=6+0.3*x; 再在MATLAB命令窗口,输入命令: m=quad(fx,0,10,1e-6),积分精度,3.4 泰勒级数,3.4.1 函数的泰勒级数 MATLAB中提供了将函数展开为幂级数的函数taylor,其调用格式为: taylor(f,v,n,a) 变量v在a点的n-1阶泰勒级数 例3.18求函数在指定点的泰勒展开式。 命令如下: x=sym(x); f1=(1+x+x2)/(1-x+x2); f2=sqrt(1-2*x+x3)-(1-3*x+x2)(1/3); taylor(f1,x,5) %求(1)。展开到x的4次幂 taylor(f2,6) %求(2)。,

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

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

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