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

    MATLAB第5章MATLAB符号运算.ppt

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

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

    MATLAB第5章MATLAB符号运算.ppt

    第5章 MATLAB符号运算,5.1 符号对象及其表达方式 MATLAB符号运算以符号数学工具箱提供的一系列符号运算函数为依据。符号对象是对参与符号运算的各种形式量,包括符号常量、符号变量、符号表达式和符号矩阵或数组。,5.1.1 符号常量和变量符号常量和变量数值常量和变量符号常量和符号变量在被当做符号对象引用时必须有符号(symbolic)对象的说明:函数sym()命令syms,1.定义符号常量:函数sym()sym(A)或sym(A,flag)flag 为可选参数,有4 种形式,它们将数值量转换成符号量并以各自不同的格式表达其结果。r:用有理数格式表达符号量(默认的表达格式,其具体形式又有多种,如分式,指数式,开方式等。)d:用十进制数格式表达符号量(默认显示精度可达32 位)。e:用带有机器浮点误差的有理数格式表达符号量。f:用浮点数格式表达符号量。,log(2)ans=0.6931(3*4-2)/5+1ans=3 f1=sym(log(2)f1=log(2)f2=sym(3*4-2)/5+1)f2=(3*4-2)/5+1,whos f*Name Size Bytes Class f1 1x1 136 sym object f2 1x1 146 sym objectGrand total is 19 elements using 282 bytes,num=log(2)num=0.6931 a=sym(log(2)a=b=sym(log(2),r)b=指数形式的有理数格式 c=sym(log(2),d)c=十进制数格式,长达32位,d=sym(log(2),e)d=带有机器浮点误差的有理数格式 e=sym(log(2),f)e=1.62e42fefa39ef*2(-1)浮点数格式,whos Name Size Bytes Class a 1x1 172 sym object b 1x1 172 sym object c 1x1 190 sym object d 1x1 172 sym object e 1x1 172 sym objectnum 1x1 8 double array,2.定义符号变量(1)使用函数sym()sym(x)sym(x,real)sym(x,unreal)(2)使用命令symssyms arg1 arg2.syms arg1 arg2.realsyms arg1 arg2.unreal参数real定义为实型符号量,unreal定义为非实型符号量。,sym()sym(x)ans=x sym(y,real)ans=y sym(z,unreal)ans=z,syms syms a b c syms m n real syms x y z unreal 命令 syms 可以同时定义多个符号变量,只能用空格分隔各个变量,不能在各变量之间加逗号,5.1.2 符号表达式 符号表达式是由符号对象参与运算的表达式即是符号表达式。与数值表达式不同,符号表达式中的变量不要求有预先确定的值。符号方程式是含有等号的符号表达式。,syms x y z r s t r2+sin(x)+cos(y)+log(s)+exp(t)ans=r2+sin(x)+cos(y)+log(s)+exp(t)f1=r2+sin(x)+cos(y)+log(s)+exp(t)f1=r2+sin(x)+cos(y)+log(s)+exp(t)f2=sym(r2+sin(x)+cos(y)+log(s)+exp(t)f2=r2+sin(x)+cos(y)+log(s)+exp(t)f3=sym(r2+sin(x)+cos(y)+log(s)+exp(t)f3=r2+sin(x)+cos(y)+log(s)+exp(t)f4=r2+sin(x)+cos(y)+log(s)+exp(t)f4=r2+sin(x)+cos(y)+log(s)+exp(t),whos f*Name Size Bytes Class f1 1x1 186 sym object f2 1x1 186 sym object f3 1x1 186 sym object f4 1x31 62 char arrayGrand total is 127 elements using 620 bytes,5.1.3 符号矩阵符号矩阵的元素可以是符号常量、符号变量和符号表达式,创建符号矩阵的方法有:函数sym;类似创建普通数值矩阵的方法创建符号矩阵;由数值矩阵转换为符号矩阵;以矩阵元素的通式来创建符号矩阵。,S=sym(l,x,y,z;n,u,v,w;a,b,c,d;g,h,j,p)S=l,x,y,z n,u,v,w a,b,c,d g,h,j,p,B=sym(a b c;d e f;g h k)B=a,b,c d,e,f g,h,k,syms l x y z n u v w a b c d g h j p S=l,x,y,z;n,u,v,w;a,b,c,d;g,h,j,p,H=sym(cos(t),-sin(t);sin(t),cos(t)H=cos(t),-sin(t)sin(t),cos(t),syms t H=cos(t),-sin(t);sin(t),cos(t),用函数 sym()将数值矩阵转换成符号矩阵。数值矩阵的元素可以指定为小的整数之比,则函数sym()将采用有理分式表示。M=1.1,1.2,1.3;2.1,2.2,2.3;3.1,3.2,3.3M=1.1000 1.2000 1.3000 2.1000 2.2000 2.3000 3.1000 3.2000 3.3000 S=sym(M)S=11/10,6/5,13/10 21/10,11/5,23/10 31/10,16/5,33/10,如果元素是无理数,则符号形式中命令sym 将用符号浮点数表示元素。A=sin(1)cos(2)A=0.8415-0.4161 sym(A)ans=7579296827247854*2(-53),-7496634952020485*2(-54),size()可以得到符号矩阵的大小(即行、列数)。函数返回数值或向量:A=sin(1)cos(2);s=size(A)s=1 2 s_r,s_c=size(A)s_r=1s_c=2,抽取符号矩阵中的元素:B=sym(a,b,c;d,e,f;g,h,k)B=a,b,c d,e,f g,h,k B(2,3)ans=f B(3)ans=g,5.2 符号算术运算运算法则和运算符号同数值运算相同,只是参与运算的对象和运算所得结果是符号的而非数值的。5.2.1 符号对象的加减A+B、A-B 若A 与B 为同型数组时,A+B、A-B 分别对对应元素进行加减;若A 与B 中至少有一个为标量,则把标量扩大为数组,其大小与相加的另一数组同型,再按对应的元素进行加减。,求两个符号表达式的和与差。syms x fx gx fx=2*x2+3*x-5fx=2*x2+3*x-5 gx=x2-x+7gx=x2-x+7 fx+gxans=3*x2+2*x+2 fx-gxans=x2+4*x-12,求两个符号矩阵的加减运算。syms a b c d e f g h;A=a b;c d;B=e f;g h;A+Bans=a+e,b+f c+g,d+h A-Bans=a-e,b-f c-g,d-h,5.2.2 符号对象的乘除A*B、A/B:求A 和B 两个符号矩阵的乘法与除法。矩阵除法也可用来求解符号线性方程组的解。A.*B、A./B:实现两个符号数组的乘法。,A=a b;c d;B=e f;g h;C1=A.*BC1=a*e,b*f c*g,d*h C2=A./BC2=a/e,b/f c/g,d/h,C3=A*BC3=a*e+b*g,a*f+b*h c*e+d*g,c*f+d*h C4=A/BC4=(-b*g+a*h)/(e*h-f*g),(-a*f+e*b)/(e*h-f*g)-(d*g-c*h)/(e*h-f*g),(e*d-c*f)/(e*h-f*g),syms a11 a12 a21 a22 b1 b2;A=a11 a12;a21 a22;B=b1 b2;X=B/AX=-(-a22*b1+b2*a21)/(-a12*a21+a11*a22),(-12*b1+a11*b2)/(-a12*a21+a11*a22)x1=X(1)x1=-(-a22*b1+b2*a21)/(-a12*a21+a11*a22)x2=X(2)x2=(-a12*b1+a11*b2)/(-a12*a21+a11*a22),求两个多项式的积和商。syms x fx gx fx=3*x5-x4+2*x3+x2+3;gx=1/3*x3+x2-3*x-1;fx*gxans=(3*x5-x4+2*x3+x2+3)*(1/3*x3+x2-3*x-1)expand(fx*gx)ans=x8+8/3*x7-28/3*x6+7/3*x5-4*x4-4*x3+2*x2-9*x-3 fx/gxans=(3*x5-x4+2*x3+x2+3)/(1/3*x3+x2-3*x-1),5.3 独立变量与表达式化简5.3.1 表达式中的独立变量当符号表达式中含有多个变量时,只有一个变量是独立变量。选择独立变量规则:因为i 和j 是虚单位,它们不能作为独立变量。表达式中有x 作为符号变量时,x 就是独立变量。表达式中没有x 作为符号变量时,就从表达式中挑选打头字母最靠近x 的符号变量作为独立变量。如果表达式中有与x 前后等距的两个字母符号变量时,选择排序在x 后面的那一个。3w+y2,查找独立变量:函数findsym()(1)r=findsym(S):以字母表的顺序返回表达式S中的所有符号变量(注:符号变量由除了i与j的字母与数字构成的、字母打头的字符串)。若表达式S中没有任何的符号变量,则函数findsym()返回一空字符串。(2)r=findsym(S,n):返回表达式S 中依接近x的顺序而排列的n个符号变量。,syms a x y z t alpha betaS1=findsym(sin(pi*t*alpha+beta),1)S1=t S2=findsym(x+i*y-j*z+eps-nan)S2=NaN,x,y,z S3=findsym(a+y,2)S3=y,a,5.3.2 表达式化简合并同类项(collect)多项式展开(expand)因式分解(factor)一般化简(simplify)不定化简(simple)通分(numden)书写格式美化(pretty),1.合并同类项(collect)(1)R=collect(S):对于多项式S 按默认独立变量的幂次降幂排列。(2)R=collect(S,v):对指定的对象v 计算。,已知表达式 f=x2y+xyx22x,y=xe2x/4+3e2x/16,将f 按变量x进行降幂排列,g按e2x 进行降幂排列。syms x y a b c f=x2*y+y*x-x2-2*x;g=-1/4*x*exp(-2*x)+3/16*exp(-2*x);fx=collect(f)fx=(y-1)*x2+(y-2)*x gepx=collect(g,exp(-2*x)gepx=(-1/4*x+3/16)*exp(-2*x),2.多项式展开:R=expand(S)syms x y a b c tE1=expand(x-2)*(x-4)*(y-t)E1=x2*y-x2*t-6*y*x+6*x*t+8*y-8*t E2=expand(cos(x+y)E2=cos(x)*cos(y)-sin(x)*sin(y)E3=expand(exp(a+b)3)E3=exp(a3)*exp(a2*b)3*exp(a*b2)3*exp(b3),E4=expand(log(a*b/sqrt(c)E4=log(a*b/c(1/2)E5=expand(sin(2*t),cos(2*t)E5=2*sin(t)*cos(t),2*cos(t)2-1 E6=expand(x+1)3)E6=x3+3*x2+3*x+1,3.因式分解:factor(X)参量X可以是正整数、符号表达式数组或符号整数数组。X为一正整数,则factor(X)返回X 的质数分解式。X为多项式或整数矩阵,则factor(X)分解矩阵的每一元素。若整数数组中有一元素位数超过16 位,用户必须用命令sym生成该元素。,syms a b x y F1=factor(x4-y4)F1=(x-y)*(x+y)*(x2+y2)F2=factor(a2-b2,x3+y3)F2=(a-b)*(a+b),(x+y)*(x2-y*x+y2)F3=(2)*(3)2*(5)*(101)*(3803)*(3607)*(27961)*(3541)F3=factor(123456)F3=2 2 2 2 2 2 3 643,4.一般化简:R=simplify(S)syms x a b cR1=simplify(sin(x)4+cos(x)4)R1=2*cos(x)4+1-2*cos(x)2 R2=simplify(exp(c*log(sqrt(a+b)R2=(a+b)(1/2*c)S=(x2+5*x+6)/(x+2),sqrt(16);R3=simplify(S)R3=x+3,4,simplify(log(2*x/y)ans=log(2)+log(x/y)simplify(sin(x)2+3*x+cos(x)2-5)ans=-4+3*x simplify(-a2+1)/(1-a)ans=a+1,5.不定化简(simple)不定化简时,simple 自动将各种化简方法都尝试一遍,并且在化简过程中还考虑了多种转换方法,最后列出化简过程的所有结果。(1)r=simple(S):试图找出符号表达式S 的代数上的简单形式,显示任意的能使表达式S 长度变短的表达式,且返回其中最短的一个。(2)r,how=simple(S):没有显示中间的化简结果,但返回能找到的最短的一个。输出参量r为一符号,how为一字符串,用于表示算法。,f=sym(1/x3+6/x2+12/x+8)(1/3)f=(1/x3+6/x2+12/x+8)(1/3)simple(f)simplify:(2*x+1)3/x3)(1/3)radsimp:(2*x+1)/xcombine(trig):(1+6*x+12*x2+8*x3)/x3)(1/3)factor:(2*x+1)3/x3)(1/3),expand:(1/x3+6/x2+12/x+8)(1/3)combine:(1/x3+6/x2+12/x+8)(1/3)convert(exp):(1/x3+6/x2+12/x+8)(1/3)convert(sincos):(1/x3+6/x2+12/x+8)(1/3)convert(tan):(1/x3+6/x2+12/x+8)(1/3)collect(x):(1/x3+6/x2+12/x+8)(1/3)mwcos2sin:(1/x3+6/x2+12/x+8)(1/3)ans=(2*x+1)/x,r,h=simple(sym(cos(x)+sqrt(-sin(x)2)r=cos(x)+i*sin(x)h=radsimp,6.通分(numden:Numerator and denominator)N,D=numden(A)输出的参量N 为分子的符号矩阵,输出的参量D 为分母的符号矩阵。syms x y a b c d;n1,d1=numden(sym(sin(4/5)n1=d1=n2,d2=numden(x/y+y/x)n2=x2+y2d2=y*x,A=a,1/b;1/c d;n3,d3=numden(A)n3=a,1 1,dd3=1,b c,1,7.书写格式美化(pretty)(1)pretty(S):用默认的线型宽度79 显示符号矩阵S 每一元素;(2)pretty(S,n):用指定的线型宽度n 显示。syms x t;f=(x2+x*exp(-t)+1)*(x+exp(-t);f1=collect(f)f1=x3+2*exp(-t)*x2+(1+exp(-t)2)*x+exp(-t)pretty(f1)3 2 2 x+2 exp(-t)x+(1+exp(-t)x+exp(-t),f2=collect(f,exp(-t)f2=x*exp(-t)2+(2*x2+1)*exp(-t)+(x2+1)*x pretty(f2)2 2 2 x exp(-t)+(2 x+1)exp(-t)+(x+1)x,5.4 符号微积分运算5.4.1 符号极限函数limit()limit(F,v,a):计算符号对象F 当指定变量va 时的极限。limit(F,a):求符号对象F 当默认的独立变量趋近于a 时的极限。limit(F):求符号对象F 当默认的独立变量趋近于0 时的极限。limit(F,v,a,left)或limit(F,v,a,right):计算符号函数F 的单侧极限:左极限v a 或右极限v a+。注:limit(F,v):不表示默认的独立变量趋近于0 时的极限。,syms x a t h n;L1=limit(cos(x)-1)/x)L1=0 L2=limit(1/x2,x,0,right)L2=Inf L3=limit(1/x,x,0,left)L3=-Inf,L4=limit(log(x+h)-log(x)/h,h,0)L4=1/x v=(1+a/x)x,exp(-x);L5=limit(v,x,inf,left)L5=exp(a),0 L6=limit(1+2/n)(3*n),n,inf)L6=exp(6),syms x y f=sin(x)/x;g=sin(x+2*y);fx=limit(f)fx=1 gx=limit(g,y,0)gx=sin(x),gx=limit(g,y)gx=sin(3*y),5.4.2 符号微分函数diff()diff(S,v):对符号对象S 中指定的符号变量v 求其1 阶导数。diff(S):对符号对象S 中的默认的独立变量求其1 阶导数。diff(S,n):对符号对象S 中的默认的独立变量求其n 阶导数。diff(S,v,n):对符号对象S 中指定的符号变量v 求其n 阶导数。书上141页有错。,syms x n y=sin(x)n*cos(n*x);Xd=diff(y)Xd=sin(x)n*n*cos(x)/sin(x)*cos(n*x)-sin(x)n*sin(n*x)*n Nd=diff(y,n)Nd=sin(x)n*log(sin(x)*cos(n*x)-sin(x)n*sin(n*x)*x,syms t f=exp(-t)*sin(t);diff(f,t,2)ans=-2*exp(-t)*cos(t),syms x f1=2*x2+log(x);f2=1/(x3+1);f3=exp(x)/x;F=f1 f2 f3;diff(F,2)ans=4-1/x2,18/(x3+1)3*x4-6/(x3+1)2*x,exp(x)/x-2*exp(x)/x2+2*exp(x)/x3 Fdd=simple(diff(F,2)Fdd=(4*x2-1)/x2,6*x*(2*x3-1)/(x3+1)3,exp(x)*(x2-2*x+2)/x3,5.4.3 符号积分:函数int()R=int(S,v):对符号对象S 中指定的符号变量v 计算不定积分。注意的是,表达式R 只是函数S 的一个原函数,后面没有带任意常数C。R=int(S):对符号对象S 中的默认的独立变量计算不定积分。R=int(S,v,a,b):对符号对象S 中指定的符号变量v 计算从a到b的定积分。R=int(S,a,b):对符号对象S 中的默认的独立变量计算从a 到b 的定积分。,syms x z t alpha INT1=int(-2*x/(1+x3)2)INT1=2/9*log(x+1)-1/9*log(x2-x+1)-2/9*3(1/2)*atan(1/3*(2*x-1)*3(1/2)-2/9*(2*x-1)/(x2-x+1)-2/9/(x+1)INT2=int(x/(1+z2),z)INT2=x*atan(z)INT3=int(INT2,x)INT3=1/2*x2*atan(z),INT4=int(x*log(1+x),0,1)INT4=1/4 INT5=int(2*x,sin(t),1)INT5=1-sin(t)2 INT6=int(exp(t),exp(alpha*t)INT6=exp(t),1/alpha*exp(alpha*t),积分不一定是以封闭形式存在,或许存在但软件也许找不到,或者软件可明显地求解,但超过内存或时间限制。当MATLAB不能找到积分表达时,它将返回未经计算的函数形式。int(log(x)/exp(x2)Warning:Explicit integral could not be found.In sym.int at 58 In char.int at 9ans=int(log(x)/exp(x2),x),5.4.4 符号Taylor 级数展开f(x)在点x=a 的Taylor 级数定义为Maclaurin(麦克劳林)多项式:,5.4.4 符号Taylor 级数展开r=taylor(f,n,v):返回符号表达式f 中指定的符号自变量v(若表达式f 中有多个变量时)的n-1阶的Maclaurin(麦克劳林)多项式(即在零点附近v=0)近似式。r=taylor(f):返回符号表达式f 中默认的独立变量的5阶的Maclaurin 多项式的近似式。r=taylor(f,n,v,a):返回符号表达式f 中指定的符号自变量v 的n-1阶的Taylor 级数(在指定的a 点附近v=a)的展开式。r=taylor(f,v):返回符号表达式f 中指定的符号自变量v的5阶Maclaurin多项式。r=taylor(f,n,a)r=taylor(f,n,a),syms x af=sin(x+pi/3*a);T1=taylor(f)%5阶,x=0 T1=sin(1/3*pi*a)+cos(1/3*pi*a)*x-1/2*sin(1/3*pi*a)*x2-1/6*cos(1/3*pi*a)*x3+1/24*sin(1/3*pi*a)*x4+1/120*cos(1/3*pi*a)*x5T2=taylor(f,9)%8阶,x=0 T2=sin(1/3*pi*a)+cos(1/3*pi*a)*x-1/2*sin(1/3*pi*a)*x2-1/6*cos(1/3*pi*a)*x3+1/24*sin(1/3*pi*a)*x4+1/120*cos(1/3*pi*a)*x5-1/720*sin(1/3*pi*a)*x6-1/5040*cos(1/3*pi*a)*x7+1/40320*sin(1/3*pi*a)*x8,T3=taylor(f,a)%5阶,a=0 T3=sin(x)+1/3*cos(x)*pi*a-1/18*sin(x)*pi2*a2-1/162*cos(x)*pi3*a3+1/1944*sin(x)*pi4*a4+1/29160*cos(x)*pi5*a5T4=taylor(f,3,a)%2阶,a=0 T4=sin(x)+1/3*cos(x)*pi*a-1/18*sin(x)*pi2*a2T5=taylor(f,3,a,2)%2阶,a=2T5=cos(x+1/6*pi)-1/3*sin(x+1/6*pi)*pi*(a-2)-1/18*cos(x+1/6*pi)*pi2*(a-2)2T6=taylor(f,3,2)%2阶,x=2 T6=sin(2+1/3*pi*a)+cos(2+1/3*pi*a)*(x-2)-1/2*sin(2+1/3*pi*a)*(x-2)2,5.5 符号积分变换 傅里叶变换、拉普拉斯变换和 Z 变换在许多研究领域都有着十分重要的应用,例如信号处理和系统动态特性研究等。MATLAB 提供了上述这些积分变换的函数。5.5.1 傅里叶变换及其反变换 5.5.2 拉普拉斯变换及其反变换 5.5.3 Z 变换及其反变换,5.5.2 拉普拉斯变换及其反变换 1拉普拉斯变换 拉普拉斯(Laplace)变换定义为,拉普拉斯变换函数 laplace():(1)L=laplace(f):返回符号函数f的拉普拉斯变换。f 的参量为默认变量t,返回值L的参量为默认变量 s,f=f(t)变换为L=L(s)。若f=f(s),则laplace(f)返回变量为t的函数L=L(t)。(2)L=laplace(f,t):返回符号函数 f的拉普拉斯变换。返回值 L的参量为指定变量t,即(3)L=laplace(f,w,z):返回符号函数 f的拉普拉斯变换。f的参量为指定变量w,返回值L的参量为指定变量z,即,syms x s t v f1=sqrt(t);L1=laplace(f)L1=cos(1/3*pi*a)/(s2+1)+sin(1/3*pi*a)*s/(s2+1)f2=1/sqrt(s);L2=laplace(f2)L2=(pi/t)(1/2),f3=exp(-a*t);L3=laplace(f3,x)L3=1/(x+a)f4=1-sin(t*v);L4=laplace(f4,v,x)L4=1/x-t/(x2+t2),2拉普拉斯反变换 拉普拉斯反变换定义为:其中c 使函数L(s)的所有的奇点位于直线s=c左边的实数。拉普拉斯反变换函数 ilaplace()实现:(1)f=ilaplace(L):返回符号函数L的拉普拉斯反变换。L的参量为默认变量s,返回值f的参量为默认变量t,即L=L(s)变换为f=f(t)。若L=L(t),则ilaplace(L)返回变量为x的函数f,即L=L(t)变换为f=f(x)。,(2)f=ilaplace(L,y):返回符号函数L的拉普拉斯反变换。L的参量为默认变量s,返回值f的参量为指定变量y,即(3)F=ilaplace(L,y,x):返回符号函数L的拉普拉斯反变换。L的参量为指定变量y,返回值 f的参量为指定变量x,即,syms a s t u v x f=exp(x/s2);IL1=ilaplace(f)IL1=ilaplace(exp(x/s2),s,t)g=1/(t-a)2;IL2=ilaplace(g)IL2=x*exp(a*x),k=1/(u2-a2);IL3=ilaplace(k,x)IL3=1/a*sinh(a*x)y=s3*v/(s2+v2);IL4=ilaplace(y,v,x)IL4=s3*cos(s*x),5.6 方程的解析解5.6.1 线性方程组的解析解:函数solve(),g=solve(eq1,eq2,eqn):给出方程组eq1,eq2,eqn 中以默认的独立变量为求解对象(如x1,x2,xn)的解。g=solve(eq1,eq2,eqn,var1,var2,varn):对方程组q1,eq2,eqn中指定的n 个变量如var1,var2,varn 求解。若g 为单一符号形式,MATLAB 则将g 视为一结构数组,结构数组的元素值就是方程组的解;若g 表示成有n 个元素的向量形式,则该向量的元素值恰好表示方程组中相应变量的解。,L1=x+y+z=10;L2=3*x+2*y+z=14;L3=2*x+3*y-z=1;g=solve(L1,L2,L3)g=x:1x1 sym y:1x1 sym z:1x1 sym,g.x ans=1 g.y ans=2 g.z ans=7,x1cos(sita)-x2sin(sita)=ax1sin(sita)+x2cos(sita)=b,syms x1 x2 a b sita;L1=x1*cos(sita)-x2*sin(sita)-a;L2=x1*sin(sita)+x2*cos(sita)-b;x1,x2=solve(L1,L2,x1,x2)x1=cos(sita)*a+b*sin(sita)x2=-a*sin(sita)+cos(sita)*b,5.6.2 非线性方程(组)的解析解:函数 solve()单个方程求解形式:g=solve(eq):输入参量eq可以是符号表达式或字符串。在没有给定求解所针对的变量时,solve(eq)针对方程中的默认的独立变量求解。对于有多重解的非线性方程,若输出参量g为单一符号形式,g被视为一列向量。g=solve(eq,var):对符号表达式或没有等号的字符串eq中指定的变量var求方程eq(var)=0的解。,求解一元二次方程ax2+bx+c=0的解:f=sym(a*x2+b*x+c=0);xf=solve(f)xf=1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2),syms a b c x;f=a*x2+b*x+c;xf=solve(f),xf=solve(a*x2+b*x+c=0),uy2+vz+w=0y+z+w=0,syms y z u v w;eq1=u*y2+v*z+w;eq2=y+z+w;y z=solve(eq1,eq2,y,z)y=-1/2/u*(-2*u*w-v+(4*u*w*v+v2-4*u*w)(1/2)-w-1/2/u*(-2*u*w-v-(4*u*w*v+v2-4*u*w)(1/2)-wz=1/2/u*(-2*u*w-v+(4*u*w*v+v2-4*u*w)(1/2)1/2/u*(-2*u*w-v-(4*u*w*v+v2-4*u*w)(1/2),y z=solve(u*y2+v*z+w=0,y+z+w=0,y,z),e1=sym(a+b+x=y);e2=sym(2*a*x-b*y=-1);e3=sym(a+b)2=x+y);e4=sym(a*y+b*x=4);a,b,x,y=solve(e1,e2,e3,e4);a=double(a),b=double(b),x=double(x),y=double(y),a=1.0000 23.6037 0.2537-0.4247i 0.2537+0.4247ib=1.0000-23.4337-1.0054-1.4075i-1.0054+1.4075ix=1.0000-0.0705-1.0203+2.2934i-1.0203-2.2934iy=3.0000 0.0994-1.7719+0.4611i-1.7719-0.4611i,x,y=solve(xx=2,x*y+y=1)x=log(2)/lambertw(log(2)y=lambertw(log(2)/(log(2)+lambertw(log(2)help lambertw LAMBERTW Lamberts W function.W=LAMBERTW(X)is the solution to w*exp(w)=x.,5.6.3 常微分方程(组)的解析解:函数是dsolve()。可以求得常微分方程(组)的通解,以及给定边界条件(或初始条件)后的特解。r=dsolve(equ)r=dsolve(equ,v)r=dsolve(equ,cond1,cond2,v)r=dsolve(equ1,equ2,v)r=dsolve(equ1,equ2,cond1,cond2,v),dsolve(equ1,equ2,cond1,cond2,v)说明:在微分方程(组)的表达式equ 中,大写字母D 表示对自变量(设为x)的微分算子:D=d/dx,D2=d2/d2x,微分算子D 后面的字母则表示为因变量,即待求解的未知函数。equ1,equ2,为给定的常微分方程(组)。v为给定的常微分方程(组)的指定符号自变量,默认变量为t。cond1,cond2,为给定的常微分方程(组)给定的边界条件(或初始条件)。初始和边界条件由字符串表示:y(a)=b,Dy(c)=d,D2y(e)=f 等等,分别表示,r为求符号解(即解析解),若边界条件少于方程(组)的阶数,则返回的结果r中会出现任意常数C1,C2,dsolve命令最多可以接受12个输入参量(包括方程组与定解条件个数,当然也可以做到输入的方程个数多于12个,只要将多个方程置于一字符串内即可)。若没有给定输出参量,则在命令窗口显示解列表。若该命令找不到解析解,则返回一警告信息,同时返回一空的sym对象。这时,用户可以用命令ode23或ode45求解方程组的数值解。,y=dsolve(Dy+a*x=0,x)y=-1/2*a*x2+C1 y=dsolve(Dy+a*x=0),y=-a*x*t+C1,y=dsolve(D2y+2*x=2*y,x)y=exp(2(1/2)*x)*C2+exp(-2(1/2)*x)*C1+x,满足y(2)=5,y(1)=2的解 y=dsolve(D2y+2*x=2*y,y(2)=5,Dy(1)=2,x)y=1/2*exp(2(1/2)*x)*(3*2(1/2)*exp(2(1/2)+1)*2(1/2)/exp(2(1/2)/(1+exp(2(1/2)2)-1/2*exp(-2(1/2)*x)*exp(2(1/2)2*(2(1/2)*exp(2(1/2)-6)/(1+exp(2(1/2)2)+x,求微分方程组 通解以及在初始条件:f(2)=0,f(3)=3,g(5)=1下的特解。f,g=dsolve(D2f=f+3*g+sin(x),Dg=Df+4+cos(x),x)f=1/2*exp(2*x)*C2-1/2*exp(-2*x)*C1-4/5*sin(x)-3*x+C3g=1/2*exp(2*x)*C2-1/2*exp(-2*x)*C1+1/5*sin(x)+x-1/3*C3 f,g=dsolve(D2f=f+3*g+sin(x),Dg=Df+4+cos(x),.Df(2)=0,Df(3)=3,g(5)=1,x),

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开