MATLAB课件第6章MATLAB符号计算.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《MATLAB课件第6章MATLAB符号计算.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 课件 符号 计算
- 资源描述:
-
1、第6章 MATLAB符号计算目录目录v 在工程、应用数学和科学上经常要用到符号计算功能。MATLAB开发商Mathwork公司以maple的内核为符号计算的引擎,依赖MAOLE已有的库函数,开发了在MATLAB环境下实现符号计算的工具箱Symbolic Math Toolbox(符号数学工具箱)。v6.1 符号计算基础v6.2 符号导数及其应用v6.3 符号积分v6.4 级数v6.5 代数方程的符号求解v6.6 常微分方程的符号求解6.1 符号计算基础目录目录v符号数学工具箱是操作和解决符号表达式的版本号数学工具的集合,它包含复合、简化、微分、积分以及求代数方程和微分方程的工具。v6.1.1
2、符号对象v1.建立符号变量和符号常数v(1)sym函数v 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%建立符号矩阵AA=a,b c,d det(B)%计算数值矩阵B的行列式B=w,x;y,z%建立数值矩阵BB=10 5 -8 11ans=a*d-b*c det(A)%计算符号矩阵
3、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)%计算数值表达式值目录目录ans=1/2*3(1/2)ans=0.8660ans=2*2(1/2)ans=2.
4、8284ans=(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)%定义符号表达式Usyms x y;%建立符号变量x、yV=3*x2+5*y+2*x*y+6%定义符号表达式V 2*U-V+6%求符号表达式的值U=3*x2+5*y+2*x*y+
5、6V=3*x2+5*y+2*x*y+6ans=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,c2ans=b*c2-c*b2-a*c2+a*b2+a2*c-a2*bans=-(-c+b)*(a-c)*(a-b)factor(ans)例6.5建立x,y的一般二元函数。在MATLAB命令窗口,输入命令:syms x y;f=sym(f(x,y);目录目录6.
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)*(x-y)目录目录f=-3*x+2*x3f=2/5f=(x+y)*(x-y)(2)因式分解与展开factor(S)对S分解因式,S是符号表达式或符号矩阵。expand(S)对S进行展开,S是符号表达式或符号矩阵。collect(S)对S合并同类项,S是符
7、号表达式或符号矩阵。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)%对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展开
8、collect(s,x)%对s按变量x合并同类项(无同类项)factor(ans)%对ans分解因式ans=7*x4-13*x2*y2-24*y4ans=7*x4-13*x2*y2-24*y4ans=(8*y2+7*x2)*(x2-3*y2)(3)表达式化简MATLAB提供的对符号表达式化简的函数有:simplify(S)应用函数规则对S进行化简。simple(S)调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。例6.9化简命令如下:syms x y;s=(x2+y2)2+(x2-y2)2;simple(s)%MATLAB自动调用多种函数对自动调用多种函数对s进行化简,并显示每
9、步结果进行化简,并显示每步结果目录目录2.符号矩阵运算transpose(S)返回S矩阵的转置矩阵。determ(S)返回S矩阵的行列式值。colspace(S)返回S矩阵列空间的基。Q,D=eigensys(S)Q返回S矩阵的特征向量,D返回S矩阵的特征值。目录目录6.1.3 符号表达式中变量的确定MATLAB中的符号可以表示符号变量和符号常数。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:findsym(S,n)函数返回符号表达式S中的n个符号变量,若没有指定n,则返回S中的全部符号变量。在求函数的极限、导数和积分时,如果用户没有明确指定自变量,MATLA
10、B将按缺省原则确定主变量并对其进行相应微积分运算。可用findsym(S,1)查找系统的缺省变量,事实上,MATLAB按离字符x最近原则确定缺省变量。目录目录6.2 符号导数及其应用6.2.1函数的极限limit函数的调用格式为:limit(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;limi
11、t(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)目录目录,)sin()sin(lim,lim/011xaxaxaxaxxmmaxans=a(1/m)/a/mans=2*cos(a)ans=0ans=0ans=-1/2*2(1/2)/a(1/2)6.2.2 符号函数求导及其应用MATLAB中的求导的函数为:diff(f,x,n)diff函数求函数f对变量x的n阶导数。参数x的
12、用法同求极限函数limit,可以缺省,缺省值与limit相同,n的缺省值是1。目录目录 例例6.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的三阶导数的三阶导数f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1)%求求(3)。按参数方程求导公式求。按参
13、数方程求导公式求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(f,x)/diff(f,z)%求求(5)。按隐函数求导公式求。按隐函数求导公式求z对对x的偏导数的偏导数zy=-diff(f,y)/diff(f,z)%求求(5)。按隐函数求导公式求。按隐函数求导公式求z对对y的偏导数的偏导数目
14、录目录例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)%求不定积分
15、(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*(x3+x4)(1/2)*(-16*(x2+x)(3/2)+12*(x2+x)(1/2)*x+6*(x2+x)(1/2)-3*log(1/2+x+(x2+x)(1/2)/x/(x+1)*x)(1/2)g=1/3*(x+1)*x)(1/2)*x2+1/12*(x+1)*x)(1/2)*x-1/8*(x+1)*x)(1/2)+1/16*log(1/2+x+(x+1)*x)(1/2)6.3.2 符
16、号函数的定积分定积分在实际工作中有广泛的应用。在MATLAB中,定积分的计算使用函数:int(f,x,a,b)例6.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)%将上述符号结果转换为数值目录目录ans=1/2 ans=pians=2*t*(sin(t)2-4)I=9789312918018730156551
展开阅读全文