《matlab符号计算g》PPT课件.ppt_第1页
《matlab符号计算g》PPT课件.ppt_第2页
《matlab符号计算g》PPT课件.ppt_第3页
《matlab符号计算g》PPT课件.ppt_第4页
《matlab符号计算g》PPT课件.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2019/6/10,1,MATLAB符号计算,2019/6/10,2,符号对象 符号微积分 级数 符号方程求解,2019/6/10,3,1 符号对象 1.1 建立符号对象 1. 建立符号变量和符号常量 MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。 (1) sym函数 sym函数用来建立单个符号量,一般调用格式为:符号量名=sym(符号字符串) 该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。 应用sym函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。,2019/6/10,4,(2) syms函数 函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为: syms 符号变量名1 符号变量名2 符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串分界符(),变量间用空格而不要用逗号分隔。,2019/6/10,5,2. 建立符号表达式 含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法: (1) 利用单引号来生成符号表达式。 (2) 用sym函数建立符号表达式。 (3) 使用已经定义的符号变量组成符号表达式。,2019/6/10,6,1.2 符号表达式运算 1. 符号表达式的四则运算 符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和symdiv来实现,幂运算可以由sympow来实现。 2. 符号表达式的提取分子和分母运算 如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为:n,d=numden(s) 该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。,2019/6/10,7,3. 符号表达式的因式分解与展开 MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为: factor(s):对符号表达式s分解因式。 expand(s):对符号表达式s进行展开。 collect(s):对符号表达式s合并同类项。 collect(s,v):对符号表达式s按变量v合并同类项。,2019/6/10,8,4. 符号表达式的化简 MATLAB提供的对符号表达式化简的函数有: simplify(s):应用函数规则对s进行化简。 r,how=simple(S) :通过对表达式尝试多种不同的算法进行化简,以寻求符号表达式S的最简形式;r为返回的简化形式,how 为化简过程中使用的主要方法,simple 函数综合使用了下列化简方法: simplify函数对表达式进行化简; simple(s):调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。,2019/6/10,9,radsimp函数对含根式的表达式进行化简; combine 函数将表达式中以求和、乘积、幂运算等形式出现的项进行合并; collect 合并同类项; factor 函数实现因式分解; convert 函数完成表达式形式的转换.,2019/6/10,10,5. 符号表达式与数值表达式之间的转换 利用函数sym可以将数值表达式变换成它的符号表达式。 函数numeric或eval可以将符号表达式变换成数值表达式。,2019/6/10,11,MATLAB中的符号可以表示符号变量和符号常量。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为: findsym(s,n) 函数返回符号表达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。,1.3 符号表达式中变量的确定,2019/6/10,12,在MATLAB中,以最接近x的顺序排列默认自变量的顺序,由于i和j通常表示虚数单位,在符号运算中不能作为自变量。,2019/6/10,13,1.4 符号表达式的替换 MATLAB的符号数学工具箱提供了两个符号表达式的替换函数subexpr和subs, 可以通过符号替换使表达式的输出形式简化,以得到一个简单的表达式。,2019/6/10,14,将表达式中重复出现的字符串用变量代替的函数为subexpr,其调用格式为: Y,SIGMA=subexpr(S,SIGMA) 此函数用变量SIGMA(字符或字符串)的值代替符号表达式S中重复出现的字符串,Y返回替换后的结果。,2019/6/10,15,函数subs是用指定符号替换符号表达式中的某一特定符号,调用格式为:R=subs(S,old,new), 它可用新的符号变量new替换原来符号表达式S中的old. 当new为数值形式时,显示的结果虽然是数值,但它事实上是符号变量。,2019/6/10,16,1.4 符号矩阵 符号矩阵也是一种符号表达式,所以前面介绍的符号表达式运算都可以在矩阵意义下进行。但应注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。 由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。MATLAB还有一些专用于符号矩阵的函数,这些函数作用于单个的数据无意义。例如 transpose(s):返回s矩阵的转置矩阵。 determ(s):返回s矩阵的行列式值。 其实,曾介绍过的许多应用于数值矩阵的函数,如diag、triu、tril、inv、det、rank、eig等,也可直接应用于符号矩阵。,2019/6/10,17,2 符号微积分 2.1 符号极限 limit函数的调用格式为: (1) limit(f,x,a):求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。 (2) limit(f,a):求符号函数f(x)的极限值。由于没有指定符号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变量为函数findsym(f)确定的默认自变量,即变量x趋近于a。,2019/6/10,18,(3) limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。 (4) limit(f,x,a,right):求符号函数f的极限值。right表示变量x从右边趋近于a。 (5) limit(f,x,a,left):求符号函数f的极限值。left表示变量x从左边趋近于a。,2019/6/10,19,例-1 求下列极限。,clear %极限1 syms a m x; f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/(x+a); A=limit(f,x,a) %极限2 syms x t; B=limit(1+2*t/x)(3*x),x,inf) %极限3 syms x; f=x*(sqrt(x2+1)-x); C=limit(f,x,inf,left) %极限4 syms x; f=(sqrt(x)-sqrt(2)-sqrt(x-2)/sqrt(x*x-4); D=limit(f,x,2,right),2019/6/10,20,2.2 符号导数 diff函数用于对符号表达式求导数。该函数的一般调用格式为: diff(s):没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。 diff(s,v):以v为自变量,对符号表达式s求一阶导数。,2019/6/10,21,diff(s,n):按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。 diff(s,v,n):以v为自变量,对符号表达式s求n阶导数。,2019/6/10,22,例2 求a t3; tcos(x) lnx对x的一阶导数、对t二 阶导数、二阶混合导数 clear syms a t x; f=a t3;t*cos(x),log(x); df=diff(f) dfdt2=diff(f,t,2) dfdxdt=diff(diff(f,x),t),2019/6/10,23,2.3 符号积分 符号积分由函数int来实现。该函数的一般调用格式为: int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。 int(s,v):以v为自变量,对被积函数或符号表达式s求不定积分。,2019/6/10,24,int(s,v,a,b):求定积分运算。a,b分别表示定积分的下限和上限。该函数求被积函数在区间a,b上的定积分。a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。当函数f关于变量x在闭区间a,b上可积时,函数返回一个定积分结果。当a,b中有一个是inf时,函数返回一个广义积分。当a,b中有一个符号表达式时,函数返回一个符号函数。,2019/6/10,25,%(1)积分指令对符号函数矩阵的作用 syms a b x; f=a*x,b*x2;1/x,sin(x); int(f) disp(The integral of f is); pretty(int(f) %以习惯的书写方式显示表达式 %(2)内积分上下限都是函数 clear syms x y z F2=int(int(int(x2+y2+z2,z,sqrt(x*y),x2*y),y,sqrt(x),x2),x,1,2) digits VF2=vpa(F2) %积分结果用32位数字表示;因为vpa(x)表示在digits指定精度下,给出x的数值型符号结果 VVF2=vpa(F2,4),例3 求积分,2019/6/10,26,2.4 积分变换 常见的积分变换有傅立叶变换、拉普拉斯变换和Z变换。 1. 傅立叶(Fourier)变换 在MATLAB中,进行傅立叶变换的函数是: fourier(f,x,t):求函数f(x)的傅立叶像函数F(t)。 ifourier(F,t,x):求傅立叶像函数F(t)的原函数f(x)。,2019/6/10,27,例4 求函数的傅立叶变换及其逆变换。 clear syms x t; %需注意使用符号函数定义 f=exp(-x2); F=fourier(f,x,t) %求函数f的傅立叶像函数F f=ifourier(F,t,x),2019/6/10,28,2. 拉普拉斯(Laplace)变换 在MATLAB中,进行拉普拉斯变换的函数是: laplace(fx,x,t):求函数f(x)的拉普拉斯像函数F(t)。 ilaplace(Fw,t,x):求拉普拉斯像函数F(t)的原函数f(x)。,2019/6/10,29,例5 计算y=x3的拉普拉斯变换及其逆变换。 clear syms x; y=x3; Y=laplace(y) y=ilaplace(Y),2019/6/10,30,3 级数 3.1 级数符号求和 求无穷级数的和需要符号表达式求和函数symsum,其调用格式为: symsum(s,v,n,m) 其中s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和的开始项和末项。,2019/6/10,31,求,clear syms k t; f1=t k3; f2=1/(2*k-1)2,(-1)k/k; s1=symsum(f1) s2=symsum(f2,1,inf) %simple(s1) %simple(s2),2019/6/10,32,3.2 函数的泰勒级数 MATLAB提供了taylor函数将函数展开为幂级数,其调用格式为: taylor(f):计算符号表达式f在默认自变量等于0处的5阶Taylor级数展开式。 taylor(f,n,v):计算符号表达式f在自变量v=0处的n-1阶Taylor级数展开式。 taylor(f,n,v,a):计算符号表达式f在自变量v=a处的n-1阶Taylor级数展开式,2019/6/10,33,例8 求函数的泰勒级数展开式。,clc clear %分别计算表达式的5阶Taylor级数展开式和另一个表达式的5阶及12阶Taylor级数展开式。 syms x f=1/(5+cos(x); r=taylor(f) f=exp(x*sin(x); r=taylor(f) r=taylor(f,13) %求函数在指定点的泰勒级数展开式 r=taylor(f,5,x,3),2019/6/10,34,4 符号方程求解 4.1 符号代数方程求解 在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为: solve(s):求解符号表达式s的代数方程,求解变量为默认变量。 solve(s,v):求解符号表达式s的代数方程,求解变量为v。 solve(s1,s2,sn,v1,v2,vn):求解符号表达式s1,s2,sn组成的代数方程组,求解变量分别v1,v2,vn。,2019/6/10,35,求方程组uy2+vz+w=0,y+z+w=0关于y,z的解 clear S=solve(u*y2+v*z+w=0,y+z+w=0,y,z) %两个表达式可以只用一个单引号 %(1)S=solve(u*y2+v*z+w=0,y+z+w=0,z,y) 在此,指定变量次序没有影响 %(2)S=solve(u*y2+v*z+w,y+z+w,z,y) z,y中,y前不能有空格 %(3)syms y z u v w,S=solve(u*y2+v*z+w,y+z+w,z,y) %(4)y,z=solve(u*y2+v*z+w=0,y+z+w=0,y,z) 输出宗量次序正确,解才正确 %S是一个构架数组,如要显示结果,必须采用援引方式,如例题所示 disp(S.y) disp(S.y) disp(S.z) d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论