MATLAB之(二)符号运算功能.ppt_第1页
MATLAB之(二)符号运算功能.ppt_第2页
MATLAB之(二)符号运算功能.ppt_第3页
MATLAB之(二)符号运算功能.ppt_第4页
MATLAB之(二)符号运算功能.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

14.2 符号运算功能 一、符号表达式的生成 1用单引号设定后输入或赋值 f=log(x) f = log(x) 2用命令sym(生成符号对象) 例如,创建符号函数 例如,创建符号方程 eqation=sym(a*x2+b*x+c=0) eqation = a*x2+b*x+c=0 3用命令sym(确定多个符号对象),可用whos检查存 在的空间的各种变量及其所属类型 syms x y abcd alfa whos Name Size Bytes Class abcd 1x1 132 sym object alfa 1x1 132 sym object eqation 1x1 150 sym object f 1x6 12 char array x 1x1 126 sym object y 1x1 126 sym object Grand total is 34 elements using 678 bytes 二、符号函数的运算 1复合函数的运算 复合函数运算可通过功能函数compose来实现,其调用 格式为: (1)compose(f,g) 返回当f=f(x)和g=g(y)时的复合 函数f(g(y)。 (2)compose(f,g,z) 返回复合函数以z为自变 量。 (3)compose(f,g,x,z) 返回复合函数f(g(z), 且使x为f的独立变量。 例如 syms x y z t f=1/(1+x2); g=sin(y); h=xt; compose(f,g) ans = 1/(1+sin(y)2) compose(f,g,z) ans = 1/(1+sin(z)2) compose(h,g,x,z) ans = sin(z)t 2反函数的运算 反函数运算可通过功能函数finverse(f)来实现,其调用 格式为: (1)g=finverse(f) 符号函数f的反函数。 (2)g=finverse(f,z) 返回符号函数的自变量为z。 f=x3+y; finverse(f,y) ans = -x3+y finverse(f) Warning: finverse(x3+y) is not unique. In C:MATLAB6P1toolbox symbolicsymfinverse. m at line 43 ans = (-y+x)(1/3) 三、符号的矩阵的创立与运算 1符号矩阵的创立 符号矩阵的创立与和创立数值矩阵的方法相似,只不过要 用到符号定义函数sym。我们可以使用sym函数直接建立 符号矩阵;可以通过建立子矩阵的方法建立符号矩阵;也 可以使用sym函数将数值矩阵转化为符号矩阵。 a=sym(1 1/s+x sin(x);y/x 1+1/y,tan(x+y);3+4,exp(x2+y2),log(tanh(y) a = 1, 1/s+x, sin(x) y/x, 1+1/y, tan(x+y) 3+4, exp(x2+y2), log(tanh(y) b=1 2 3 5;7 9 10 11;13 15 17 18; c=sym(b) c = 1, 2, 3, 5 7, 9, 10, 11 13, 15, 17, 18 2符号矩阵的运算 符号矩阵的运算与数 值矩阵的运算相同 (1)四则运算: a=sym(1/x 1/(x+1);1/(x+2) 1/(x+3); b=sym(x,1;x+2,0); ab ans = -6*x-2*x3-7*x2, 3/2*x2+x+1/2*x3 6+2*x3+10*x2+14*x, - 1/2*x3-2*x2-3/2*x (2)求逆运算“inv”,行列式运 算“det”,幂运算“”、求秩运算 “rank”、指数运算“exp”和对数 运算“log” inv(a) ans = 1/2*x*(x+1)*(x+2), - 1/2*x*(x+3)*(x+2) -1/2*x*(x+3)*(x+1), 1/2*(x+3)*(x+1)*(x+2) (3)矩阵分解函数:特征值函数“eig”,约当标准型函数 “Jordan”,三角提取函数“diag”、“tril”、“triu” u,v=eig(b) u = (1/2*x+1/2*(x2+4*x+8)(1/2)/(x+2), (1/2*x- 1/2*(x2+4*x+8)(1/2)/(x+2) 1, 1 v = 1/2*x+1/2*(x2+4*x+8)(1/2), 0 0, 1/2*x-1/2*(x2+4*x+8)(1/2) 四、符号微积分 1符号极限 符号函数的极限是由limit函数来实现,其调用格式如下: limit(f,x,a) 计算符号表达式f在xa时的极限 limit(f) 计算符号表达式f在x0时的极限 syms x t; limit(1+2*t*sin(1/x)(3*x),x,inf) ans = exp(6*t) 2符号积分 积分函数int函数的调用格式为: int(S,t) 计算符号表达式S对符号变量t的不定积分 int(S,a,b) 计算符号表达式S对默认符号变量从a到 b的不定积分 syms x y t; A=cos(x*t),sin(x+t);exp(t/x),log(x-t) A = cos(x*t), sin(x+t) exp(t/x), log(x-t) int(A,t) ans = 1/x*sin(x*t), -cos(x+t) exp(t/x)*x, -log(x-t)*(x-t)+x-t int(sqrt(1+y2),y) ans = 1/2*y*(1+y2)(1/2)+1/2*asinh(y) int(sqrt(1+y2),0,1) ans = 1/2*2(1/2)-1/2*log(2(1/2)-1) 如,计算二次积分 int(int(x2+y2),x,sqrt(y),1),y,0,1) ans =26/105 3符号微分 微分diff,其调用格式为 diff(S) 表示对表达式S的微分。 diff(S,v) 或diff(S,sym(v) 表示对变量v,求表 达式S的微分。 diff(S,n) 对整数n,对表达式S微分n次。 diff(S,v,n) 和diff(S,n,v) 都表示对变量v,求 表达式S的微分n次。 syms x t; diff(sin(x2) ans = 2*cos(x2)*x 设 syms x y; z=x*log(x*y); diff(diff(z,x),y,2) ans = -1/y2 五、符号代数方程求解 1符号线性方程组的求解方法 可用linsolve和solve得到方程组的精确解。所得到的 精确解可由函数vpa转换成浮点近似数值。 a=sym(10 -1 0;-1 10 -2;0 -2 10); b=(9;7;6); linsolve(a,b) ans = 473/475 91/95 376/475 vpa(ans) ans = .99578947368421052631578947368421 .95789473684210526315789473684211 .79157894736842105263157894736842 2符号非线性方程组的求解方法 由函数fsolve实现,其调用格式为 X=fsolve(fun,X0) ,X=fsolve(fun,X0,options) X=fsolve(fun,X0,options,gradfun) 例如 function y=fc(x) y(1)=x(1)-0.7*sin(x(1)-0.2*cos(x(2); y(2)=x(2)-0.7*cos(x(1)-0.2*sin(x(2); y=y(1),y(2); x0=0.5,0.5; fsolve(fc,x0) ans = 0.4442 0.7715 六、符号微分方程求解 常微分方程及微分方程组的符号求解由函数dsolve来实现 ,其调用格式为: dsolve(equ1, equ2,) 例如,求微分方程 的特解。 dsolve(t2+1)*D2y=2*t*Dy,y(0)=1,Dy(0)=3) ans = 1+t3+3*t 又如,求微分方程 的通解。 dsolve(D2y-2*Dy+y=exp(x)/x,x) ans = -exp(x)*x+log(x)*exp(x)*x+C1*exp(x)+C2*exp(x)*x 又如,求下列微分方 程组的特解 S = u: 1x1 sym v: 1x1 sym w: 1x1 sym 也可使用命令 S=dsolve(Du=v,Dv=w,D w- u,u(0)=0,v(0)=0,w(0)=1) syms u v w t S=dsolve(Du=v,Dv=w,Dw- u,u(0)=0,v(0)=0,w(0)=1) 查看解 S.u ans = -1/3*3(1/2)*exp(- 1/2*t)*sin(1/2*t*3(1/2)- 1/3*exp(- 1/2*t)*cos(1/2*t*3(1/2)+1/3 *exp(t) 七、级数 1常数项级数 级数求和用函数symsum来实现,其调用格式为: symsum(一般项) symsum(一般项,变量) symsum(一般项,变量,起始,终止) 例如,求级数 的前10项和及无穷和。 syms n; symsum(1/n2,n,1,10) ans = 1968329/1270080 symsum(1/n2,n,1,inf) ans = 1/6*pi2 2幂级数 (1)用函数symsum求幂级数 的和函数。 syms x n symsum(x(2*n-1)/(2*n-1),n,1,inf) ans = 1/2*log(1+x)/(1-x) (2)用taylor将函数展成泰勒级数,其调用格式为: Taylor(f,n) 求函数f的n-1阶麦克劳林级数 Taylor(f,n,x0,x) 求函数f在x0处的以x为变量的n-1阶泰勒 级数。 注:后面3个参数的次序可以任意打乱,在不引起混淆的 情况下均能给出正确结果。 求函数 阶泰勒展式 syms x,n; taylor(exp(-x),x,8,7) ans = exp(-7)-exp(-7)*(x-7)+1/2*exp(-7)*(x-7)2-1/6*exp(- 7)*(x-7)3+1/24*exp(-7)*(x-7)4-1/120*exp(-7)*(x- 7)5+1/720*exp(-7)*(x-7)6-1/5040*exp(-7)*(x-7)7 八、符号和数字之间的转换 1转化为符号变量命令:S=sym(f) S1=sym(3.456),S2=sym(3.456), S3=sym(23f),s4=sym(23;23;32) S1 = 3.456 S2 = 432/125 2转化为数值变量及符号函数值的计算 将得到的解析解进行数值转换,可通过函数digits(设置 变量精度)和vpa(变量精度函数)来实现。通常与变量 替换函数subs配合使用,也可通过函数numeric(转换 符号矩阵成数值型)来实现。 (1)digits函数的调用格式为:digits(D),它设置有效 数字个数为D的近似解精度。 2)vpa函数的调用格式如下: x=vpa(S) 符号表达式S在digits设置下的精确的数值解。 vpa(S,D) 符号表达式S在digits(D)函数设置下的精确 的数值解。 (3) subs 函数的调用格式为:subs(S,OLD,NEW),将符 号表达式中的OLD变量替换为NEW变量。 (4)numeric函数的调用格式为:n=numeric(S),它将 不含自由变量的符号表达式转换为数值形式。 求方程 的精确解和各种精度的近似解。 s=solve(3*x2-exp(x)=0) s = -2*lambertw(-1/6*3(1/2) -2*lambertw(-1,-1/6*3(1/2) -2*lambertw(1/6*3(1/2) vpa(s) ans = .91000757248870906065733829575944 3.7330790286328142006199540298434 -.45896226753694851459857243243408 vpa(s,6) ans = .910008 3.73308 -.458962 又如,求的具有20位有效数字的值。 digits(20) vpa(pi) ans = 3.1415926535897932385 求微分方程 的特解在x=0 ,0.2,0.4,0.6,0.8,1处的函数值 y=dsolve(D2y-10*Dy+25*y=0,y(0)=2,Dy(0)=1,x) y = 2*exp(5*x)-9*exp(5*x)*x t=0:0.2:1 t = 0 0.2000 0.4000 0.6000 0.8000 1.0000 subs(y,x,t) %将变量x替换为t ans = 1.0e+003 * 0.0020 0.0005 -0.0118 -0.0683 -0.2839 -1.0389 九、符号函数的二维图形 1用函

温馨提示

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

评论

0/150

提交评论