欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第三章-matlab符号运算课件.ppt

    • 资源ID:4093725       资源大小:134.50KB        全文页数:39页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第三章-matlab符号运算课件.ppt

    符号表达式、符号矩阵的创建 符号矩阵的运算 符号微积分 符号代数方程求解 符号微分方程 符号函数的二维图,本章要点,一、符号变量、符号表达式和符号方程的生成,与数值运算的区别:数值运算中必须先对变量赋值,然后才能参与运算。符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达,可以获得任意精度的解。参与符号运算的对象可以是符号变量、符号表达式或符号矩阵。(符号变量也要先定义,后引用),1、什么是符号运算,2、符号变量的定义,(1)sym函数 主要功能是创建符号变量、符号表达式或符号矩阵。函数调用的一般格式为:x=sym(x)其目的是将x创建为符号变量,以x作为输出变量名。,例:f=sym(y);%定义f是符号变量名,值为符号x f 1=sym(sin(x)+5x);f 1 符号变量名 sin(x)+5x 符号表达式 符号标识,符号表达式一定要用 单引号括起来matlab才能识别。,的内容可以是符号表达式,也可以是符号方程。例:f1=sym(ax2+bx+c)二次三项式 f2=sym(ax2+bx+c=0)方程 f3=Dy+y2=1 微分方程符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算。,sqrt(2)ans=1.4142 返回数值结果 a=sqrt(sym(2)符号变量 a=2(1/2)返回符号结果 double(x)求符号的值 ans=1.4142 sym(2)/sym(5)+sym(1)/sym(3)符号表达式ans=11/15%结果为分数形式 2/5+1/3ans=0.7333%结果为double形式,例3-1 符号对象和普通数据对象之间的差别,例3-2 用符号运算求解方程组,a,b,x,y均为符号运算量。在符号运算前,应先将a,b,x,y定义为符号运算量。,a=sym(a);b=sym(b);%定义a,b为符号常量,内容为符号a、b。y=2/b;x=sym(x);y=sym(y”););%定义a,b为符号变量 x,y=solve(a*x-b*y-1,a*x+b*y-5,x,y)%以a,b为符号常数,x,y为符号变量即可得到方程组的解:x=3/ay=2/b,例3-3 已知一复数表达式 z=x+i*y,试求其共轭复数,并求该表达式与其共轭复数乘积的多项式。命令如下:x=sym(x,real);把变量x定义为实数 y=sym(y,real);指定符号变量y为实数。z=x+i*y;%定义复数表达式 conj(z);%求共轭复数 expand(z*conj(z)%求表达式与其共轭复数乘积的多项式 ans=x2+y2 x=sym(x,unreal)去掉x的属性,将x创建 为纯格式的符号变量,不具有任何属性。,syms函数的功能与sym函数类似。syms函数可以在一个语句中同时定义多个符号变量,其一般格式为:syms arg1 arg2 argN 用于将rg1,arg2,argN等符号创建为符号型数据。,例:syms x y z,(2)syms函数,一般习惯于使用排在字母表中前面的字母作为变 量的系数,而用排在后面的字母表示变量。例如:f=sym(ax2+bx+c)表达式中的a,b,c通常被认为是常数,用作变量的系数;而将x看作自变量。,(3)默认符号变量,符号表达式由符号变量、函数、算术运算符等组成。符号表达式的书写格式与数值表达式相同。例如,数学表达式:其符号表达式为:1+sqr(5*x)/2注意,在定义表达式前应先将表达式中的字符x定义为符号变量。,3、符号表达式的生成,findsym 函数:查询系统默认符号变量个数及变量名。findsym 函数通常由系统自动调用,在进行符号运算时,系统调用该函数确定表达式中的符号变量,执行相应的操作。findsym(f):返回表达式f中的所有符号变量。findsym(f,n):返回表达式f中的n个变量,例:f=sym(cos(alpha)*b*x1+14*y)findsym(f)%alpha,b,x1,y findsym(f,2)%x1,y,subs 函数:将符号表达式中的符号变量用数值代替。subs(f):显示符号表达式f。subs(f,new):用new替代符号表达式f的系统默认变量。默认变量的选择规则为:对于只包含一个字符的变量,选择靠近 x 的变量作为默认变量;如果有两个变量和 x 之间的距离相同,则选择字母表后面的的变量作为默认变量subs(f,old,new):用new替代符号表达式f的系统变量old。,例:syms x y f=x2*y+5*x*sqrt(y)f=x2*y+5*x*y(1/2)subs(f,x,3)ans=9*y+15*y(1/2)subs(f,y,3)ans=3*x2+5*x*3(1/2),将表达式中的自变量定义为符号变量后,赋值给符号函数名,即可生成符号函数。例如有一数学表达式:,4、符号函数的生成,其用符号表达式生成符号函数fxy的过程为:syms a b c x y%定义符号运算量 fxy=(a*x2+b*y2)/c2%生成符号函数生成符号函数fxy后,即可用于微积分等符号计算。,例3-5 定义一个符号函数 fxy=(a*x2+b*y2)/c2,分别求该函数对x、y的导数和对x的积分。syms a b c x y%定义符号变量fxy=(a*x2+b*y2)/c2;%生成符号函数 diff(fxy,x)%符号函数fxy对x求导数ans=2*a*x/c2diff(fxy,y)%符号函数fxy对y求导数ans=2*b*y/c2 int(fxy,x)%符号函数fxy对x求积分ans=1/c2*(1/3*a*x3+b*y2*x),5、符号方程的生成,(1)创建抽象方程 MATLAB 中可以创建抽象方程,即只有方程符号,没有具体表达式的方程。若要创建方程,并计算其一阶微分的方法如下:f=sym(f(x);syms x h;df=(subs(f,x,x+h)-f)/hdf=(f(x+h)-f(x)/h抽象方程在积分变换中有着很多的应用。,(2)创建符号方程 创建符号方程的方法有两种:利用符号表达式创建先创建符号变量,通过符号变量的运算生成符号函数直接生成符号表达式创建 M 文件利用 M 文件创建的函数,可以接受任何符号变量作为输入,作为生成函数的自变量,equation1=sym(sin(x)+cos(x)=1)equation1=sin(x)+cos(x)=1,6、符号和数值之间的转化,S=sym(A,flag):将数值转化为符号变量,其中 参数 flag 可以为 r,d,e,或者 f 中的一个。该函数将数值标量或者矩阵转化为参数形式,该函数的第二个参数用于指定浮点数转化的方法,该函数各个取值的意义如表所示:,例:t=0.1 t=0.1000 sym(t)%有理数形式 ans=1/10 sym(t,r)%有理数形式 ans=1/10 sym(t,f)%浮点数形式 ans=1.999999999999a*2(-4),7、任意精度的计算,符号计算的一个非常显著的特点是:在计算过程中不会出现舍入误差,从而可以得到任意精度的数值解。如果希望计算结果精确,可以用符号计算来获得足够高的计算精度。符号计算相对于数值计算而言,需要更多的计算时间和存储空间。MATLAB 工具箱中有三种不同类型的算术运算:数值型:MATLAB 的浮点数运算;有理数类型:Maple 的精确符号运算;VPA 类型:Maple 的任意精度算术运算。,在三种运算中,浮点运算速度最快,所需的内存空间小,但是结果精确度最低,而且存在一个舍入误差。符号运算中的有理数运算,其时间复杂度和空间复杂度都是最大的,但是,只要时间和空间允许,能够得到任意精度的结果。可变精度的运算运算速度和精确度均位于上面两种运算之间。其具体精度由参数指定,参数越大,精确度越高,运行越慢。,浮点算术运算:1/2+1/3(定义输出格式format long)ans=0.83333333333333符号运算:sym(1/2)+sym(1/3)ans=5/6 精确解任意精度算术运算:digits(n)设置可变精度,缺省16位 vpa(x,n)显示可变精度计算例:digits(25)vpa(1/2+1/3)ans=.8333333333333333333333333,二、符号运算的基本操作,符号表达式的四则运算合并符号表达式的同类项 符号多项式的因式分解 符号表达式的简化 subs函数用于替换求值 反函数的运算 复合函数的运算,1、符号表达式的四则运算,syms x y a b fun1=sin(x)+cos(y)fun1=sin(x)+cos(y)fun2=a+bfun2=a+b fun1+fun2ans=sin(x)+cos(y)+a+bfun1*fun2 ans=(sin(x)+cos(y)*(a+b),2、合并符号表达式的同类项,syms x y collect(x2*y+y*x-x2-2*x)ans=(y-1)*x2+(y-2)*x f=-1/4*x*exp(-2*x)+3/16*exp(-2*x);collect(f)ans=-1/4*x*exp(-2*x)+3/16*exp(-2*x),R=collect(S,v),对指定的变量 v 进行合并,如果不指定,则默认为对 x 进行合并。,3、符号多项式的嵌套(horner),syms x fun1=2*x3+2*x2-32*x+40fun1=2*x3+2*x2-32*x+40 horner(fun1)ans=40+(-32+(2+2*x)*x)*x,horner(f)函数:将f转化为嵌套格式。嵌套格式在多项式求值中可以降低计算的时间复杂度。,expand(f)函数:用于符号表达式的展开。其操作对象可以是多种类型,如多项式、三角函数、指数函数等。(P84表3.1),4、符号多项式的展开(expand),syms x fun1=40+(-32+(2+2*x)*x)*x expand(fun1)ans=2*x3+2*x2-32*x+40,factor(f)函数:实现因式分解功能,如果输入的参数为正整数,则返回此数的素数因数。,5、符号多项式的因式分解(factor),syms x fun1=x2-x-6 factor(fun1)ans=(x+2)*(x-3),6、符号表达式的简化,simple(s):实现表达式的化简,该函数可以自动选择化简所选择的方法,最后返回表达式的最简单的形式。函数的化简方法包括:simplify、combine(trig)、radsimpconvert(exp)、collect、factor、expand 等。simplify(f):函数实现表达式的化简,化简所选用的方法为 Maple 中的化简方法。,syms x fun1=(1/x+7/x2+12/x+8)(1/3)fun1=(1/x+7/x2+12/x+8)(1/3)sfy1=simplify(fun1)sfy1=(13*x+7+8*x2)/x2)(1/3),7、subs函数用于替换求值,syms x yf=x2*y+5*x*sqrt(y)f=x2*y+5*x*y(1/2)subs(f,x,3)ans=9*y+15*y(1/2)subs(f,y,3)ans=3*x2+5*x*3(1/2),8、反函数的运算(finverse),syms x y f=x2+yf=x2+y finverse(f,y)ans=-x2+y,9、复合函数的运算(compose),syms x y z t u f=1/(1+x2)g=sin(y)h=xt p=exp(-y/u)compose(f,g)ans=1/(1+sin(y)2)compose(f,g,t)ans=1/(1+sin(t)2),1、符号矩阵的创建 数值矩阵A=1,2;3,4 A=a,b;c,d 不识别使用函数sym直接创建符号矩阵 命令格式:A=sym(),二、符号矩阵,例如:A=sym(a,2*b;3*a,0)A=a,2*b 3*a,0注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的一个重要区别。,用字符串直接创建矩阵,模仿matlab数值矩阵的创建方法需保证同一列中各元素字符串有相同的长度。,例:A=a,2*b;3*a,0 A=a,2*b 3*a,0,将数值矩阵转化为符号矩阵,函数调用格式:sym(A)A=1/3,2.5;1/0.7,2/5A=0.3333 2.5000 1.4286 0.4000sym(A)ans=1/3,5/2 10/7,2/5,虽然矩阵形式没有发生改变,但是在MATLAB 7的工作区间内,系统已经生成了一个新的矩阵,其数据类型为符号型。,符号矩阵的修改,a.直接修改 可用、键找到所要修改的矩阵,直接修改 b.指令修改 用A1=sym(A,new)来修改。用A1=subs(A,new,old)来修改,例如:A=a,2*b 3*a,0 A1=sym(A,2,2,4*b)A(2,2)=4*b A1=a,2*b 3*a,4*b A2=subs(A1,c,b)A2=a,2*c 3*a,4*c,2、符号矩阵的运算,数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c;a=a*b;A=2*a2+3*a-5等。而符号运算就不同了,所有涉及符号运算的操作都有专用函数来进行。,符号矩阵运算的函数:symadd(a,d)符号矩阵的加symsub(a,b)符号矩阵的减symmul(a,b)符号矩阵的乘symdiv(a,b)符号矩阵的除sympow(a,b)符号矩阵的幂运算symop(a,b)符号矩阵的综合运算,例3-6:符号矩阵的运算 f=2*x2+3*x-5;g=x2+x-7;h=symadd(f,g)h=3*x2+4*x-12 f1=cos(x);g1=sin(2*x);symop(f,/,g,+,f,*,g)ans=cos(x)/sin(2*x)+cos(x)*sin(2*x)q=sym(3,4,9;x,y,z;a,b,c)p=sym(x,1/x,x2,x3;a,b,c,d;5,2,3,6)r=q*p,例3-7:功能同3-6 syms x f=2*x2+3*x-5;g=x2+x-7;h=f+g h=3*x2+4*x-12 f1=cos(x);g1=sin(2*x);f/g+f*g ans=cos(x)/sin(x)+cos(x)*sin(x),

    注意事项

    本文(第三章-matlab符号运算课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开