MATLAB第5章MATLAB符号运算.ppt

上传人:牧羊曲112 文档编号:6512063 上传时间:2023-11-08 格式:PPT 页数:81 大小:286.49KB
返回 下载 相关 举报
MATLAB第5章MATLAB符号运算.ppt_第1页
第1页 / 共81页
MATLAB第5章MATLAB符号运算.ppt_第2页
第2页 / 共81页
MATLAB第5章MATLAB符号运算.ppt_第3页
第3页 / 共81页
MATLAB第5章MATLAB符号运算.ppt_第4页
第4页 / 共81页
MATLAB第5章MATLAB符号运算.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《MATLAB第5章MATLAB符号运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB第5章MATLAB符号运算.ppt(81页珍藏版)》请在三一办公上搜索。

1、第5章 MATLAB符号运算,5.1 符号对象及其表达方式 MATLAB符号运算以符号数学工具箱提供的一系列符号运算函数为依据。符号对象是对参与符号运算的各种形式量,包括符号常量、符号变量、符号表达式和符号矩阵或数组。,5.1.1 符号常量和变量符号常量和变量数值常量和变量符号常量和符号变量在被当做符号对象引用时必须有符号(symbolic)对象的说明:函数sym()命令syms,1.定义符号常量:函数sym()sym(A)或sym(A,flag)flag 为可选参数,有4 种形式,它们将数值量转换成符号量并以各自不同的格式表达其结果。r:用有理数格式表达符号量(默认的表达格式,其具体形式又有

2、多种,如分式,指数式,开方式等。)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

3、=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 dou

4、ble 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、加逗号,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)

6、+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 by

7、tes,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(

8、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

9、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

10、)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

11、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

12、*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),求两个多项式的积和商。s

13、yms 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 是虚单位,它们不能作为独立变量。表达式中

14、有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

15、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 计算。,已知表达式

16、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-

17、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为一正整数,则facto

18、r(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

19、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 自动将各种化简

20、方法都尝试一遍,并且在化简过程中还考虑了多种转换方法,最后列出化简过程的所有结果。(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):(

21、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

22、)/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)

23、(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)

24、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(

25、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()dif

26、f(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,

27、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):

28、对符号对象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-

29、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(l

30、og(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):返

31、回符号表达式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*

32、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

33、/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*p

34、i*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,返回

35、值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

36、),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

37、(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

38、,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

39、;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*

40、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)

41、(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

42、/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

43、-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 常微分方程(组)的解析解:

44、函数是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,为给定的常微分方程(组

45、)。v为给定的常微分方程(组)的指定符号自变量,默认变量为t。cond1,cond2,为给定的常微分方程(组)给定的边界条件(或初始条件)。初始和边界条件由字符串表示:y(a)=b,Dy(c)=d,D2y(e)=f 等等,分别表示,r为求符号解(即解析解),若边界条件少于方程(组)的阶数,则返回的结果r中会出现任意常数C1,C2,dsolve命令最多可以接受12个输入参量(包括方程组与定解条件个数,当然也可以做到输入的方程个数多于12个,只要将多个方程置于一字符串内即可)。若没有给定输出参量,则在命令窗口显示解列表。若该命令找不到解析解,则返回一警告信息,同时返回一空的sym对象。这时,用户可

46、以用命令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

47、/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),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号