第4章MATLAB符号计算.ppt

上传人:本田雅阁 文档编号:2577630 上传时间:2019-04-11 格式:PPT 页数:43 大小:298.01KB
返回 下载 相关 举报
第4章MATLAB符号计算.ppt_第1页
第1页 / 共43页
第4章MATLAB符号计算.ppt_第2页
第2页 / 共43页
第4章MATLAB符号计算.ppt_第3页
第3页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章MATLAB符号计算.ppt》由会员分享,可在线阅读,更多相关《第4章MATLAB符号计算.ppt(43页珍藏版)》请在三一文库上搜索。

1、第4章 MATLAB符号计算,本章要点 符号计算的基本函数 符号微积分 符号方程求解,4.1 符号函数的计算,一、符号变量和符号矩阵 函数:符号变量名=sym(表达式) 说明:创建一个符号变量。表达式可以是变量、字符、字符串、数学表达式或字符表达式等。 函数:syms 变量名1 变量名2 变量名3 说明:一次创建多个符号变量。,使用sym函数定义符号变量, sqrt(2) ans = 1.4142 a=sqrt(sym(2) a = 2(1/2) sym(2)/sym(5) ans = 2/5,使用sym函数定义符号表达式, a=sym(a); b=sym(b); c=sym(c); x=sy

2、m(x); f=a*x2+b*x+c f = a*x2+b*x+c, f=sym(a*x2+b*x+c) f = a*x2+b*x+c g=f2+4*f-2 g = (a*x2+b*x+c)2+4*a*x2+4*b*x+4*c-2,注意: 将表达式整体定义为符号表达式时,其中的变量并未被定义为符号变量。 f=sym(m*y2+n*y) f = m*y2+n*y f1=2*m ? Undefined function or variable m.,使用syms函数定义符号变量和符号表达式,syms函数:一次可定义多个符号函数, clear syms a b c x %不能用逗号 f=a*x2+b

3、*x+c f = a*x2+b*x+c syms 3 ? Error using = syms Not a valid variable name.,使用syms函数生成符号方程,使用sym函数生成符号方程 equation1=sym(sin(x)+cos(x)=1) equation1 = sin(x)+cos(x)=1 不能采用直接法生成方程 syms x y y=x2+sin(x) %函数 y = x2+sin(x) 1=x2+sin(x) %方程 ? 1=x2+sin(x)| Error: The expression to the left of the equals sign is

4、 not a valid target for an assignment.,符号变量的基本操作,1、用findsym函数寻找表达式中的符号变量 2、定义任意精确度的符号表达式 3、数值型变量与符号型变量的转换形式,(1) findsym函数用于寻找符号变量, syms a alpha b x1 y findsym(alpha+a+b) ans = a, alpha, b findsym(cos(alpha)*b*x1 + 14*y,2) ans = x1,y findsym(y*(4+3*i) + 6*j) ans = y,(2) digits设定所用数值的精度,单独使用digits函数返回

5、当前的数值精度 didits(D)函数将数值精度设为D位。 digits digits = 32 digits(60) digits digits = 60,任意精确度的符号表达式,vpa(s) :显示符号表达式S在当前精度D下的值 vpa(s,D):临时控制符号表达式S的运算精度为D digits Digits = 60 vpa(pi) ans = 3.14159265358979323846264338327950288419716939937510582097494 vpa(pi,10) ans = 3.141592654,(3) 数值型变量与符号型变量的转换,对于任意数字型变量,使用s

6、ym函数可以将其转换为4种形式的符号变量: 有理数形式:sym (t) 或 sym (t,r) 浮点数形式:sym(t,f) 指数形式:sym(t,e) 数字精度形式:sym(t,d), t=0.75; sym(t) %有理数形式 ans = 3/4 sym(t,f) %浮点数形式 ans = 1.8000000000000*2(-1) sym(t,d) ans = .75000000000000000000000000000000, syms x s1=x3-1; s2=x-1; s3=s1+s2 s3 = x3-2+x s4=s1-s2 s4 = x3-x, s5=s1*s2 s5 = (

7、x3-1)*(x-1) s7=s1/s2 s7 = (x3-1)/(x-1) s6=s1s2 s6 = (x3-1)(x-1),符号表达式的运算,化简函数,二、常用函数, syms x t f=x*(x*(x-8)+6)*t; collect(f) ans = t*x3-8*t*x2+6*t*x collect(f,t) ans = x*(x*(x-8)+6)*t, syms x f=factor(x3-1) f = (x-1)*(x2+x+1) s=sym(sin(a+b); expand(s) ans = sin(a)*cos(b)+cos(a)*sin(b), syms x y f=x/

8、y-y/x; m,n=numden(f) m = x2-y2 n = y*x, syms x f=sin(x)2+cos(x)2 f = sin(x)2+cos(x)2 simplify(f) ans = 1 simple(f),3替换函数,函数:R,SYM=subexpr(S,SYM) 说明: 用变量SYM(字符或字符串)的值代替符号表达式S中重复出现的字符串,R是返回替换后的结果。 函数subs的调用格式:R=subs(S,old,new) 说明: 该函数是用新的符号变量new替换原来符号表达式S中的变量old,R是替换后的符号表达式。需要注意的,当变量new是数值形式时,显示的结果虽然是

9、数值,但事实上还是符号变量,可以用vpa函数强制求值。, syms a b t=solve(a+b)3+(a+b)2+6) t = -1/3*(82+9*83(1/2)(1/3)-1/3/(82+9*83(1/2)(1/3)-1/3-a 1/6*(82+9*83(1/2)(1/3)+1/6/(82+9*83(1/2)(1/3)-1/3+1/2*i*3(1/2)*(-1/3*(82+9*83(1/2)(1/3)+1/3/(82+9*83(1/2)(1/3)-a 1/6*(82+9*83(1/2)(1/3)+1/6/(82+9*83(1/2)(1/3)-1/3-1/2*i*3(1/2)*(-1/3

10、*(82+9*83(1/2)(1/3)+1/3/(82+9*83(1/2)(1/3)-a r,s=subexpr(t,s) ;,用subs函数求值 y=subs(t,a,2) y = -4.2188 -1.3906 - 1.5274i -1.3906 + 1.5274i vpa(y,2) ans = -4.2 -1.4-1.5*i -1.4+1.5*i, syms x s=(3*x3+x2-1)/(x2+1); r=subs(s,x,1) r = (3*(1)3+(1)2-1)/(1)2+1) r=subs(s,x,1) r = 1.5000,三、可视化符号函数计算器,在MATLAB的命令窗口

11、输入funtool,即可启动可视化符号函数计算器 。,4.2 符号微积分,一、符号极限,例子:, syms x a limit(1/x,x,0,right) ans = Inf limit(1/x,x,0,left) ans = -Inf,二、符号求导,函数:diff(s,x,n) 说明: 其中s为符号表达式,x为自变量,n为求导的阶数。 三、符号积分,例子:, syms x diff(x6) ans = 6*x5 diff(x6,3) ans = 120*x3, syms x y int(x/(x+y),x) ans = x-y*log(x+y) int(x/(x+y),y) ans = x

12、*log(x+y) int(x2/(x+2),x,1,3) ans = 4*log(5)-4*log(3) double(ans) ans = 2.0433,四、积分变换, syms x t y=exp(-x2); Ft=fourier(y,x,t) Ft = pi(1/2)*exp(-1/4*t2) fx=ifourier(Ft,t,x) fx = exp(-x2), Lt=laplace(y,x,t) Lt = 1/2*pi(1/2)*exp(1/4*t2)*erfc(1/2*t) Lx=ilaplace(Lt,t,x) Lx = exp(-x2) Zt=ztrans(y,x,t) Zt

13、= ztrans(exp(-x2),x,t) Zx=iztrans(Zt,t,x) Zx = exp(-x2),4.3 符号方程求解,一、代数方程, syms x y z s1=2*x2+y2-3*z-4; s2=y+z-3; s3=x-2*y-3*z; x,y,z=solve(s1,s2,s3) x = 7/2+1/6*i*699(1/2) 7/2-1/6*i*699(1/2) y = 11/2-1/6*i*699(1/2) 11/2+1/6*i*699(1/2) z = -5/2+1/6*i*699(1/2) -5/2-1/6*i*699(1/2),二、微分方程,函数:r =dsolve(

14、eq,cond, var) 说明:式中eq代表常微分方程,cond代表常微分方程的边界条件或初始条件,var代表自变量,缺省取系统默认的自变量。该函数可求解微分方程的特解。 函数:r =dsolve(eq1, eq2eqN,cond1, cond2condN, var1varN) 说明:该函数求解由eq1,eq2,指定的常微分方程组在条件cond1,cond2,,condN下的符号解,若不给出初始条件,则求方程组的通解。var1,varN为求解变量,缺省取系统默认的自变量。,例子:, y=dsolve(Dy=2*x*y2,x) %Dy=y;D2y=y;Dy(0)=1表示y(0)=3 y = -

15、1/(x2-C1) y=dsolve(Dy=2*x*y2,y(0)=1,x) y = -1/(x2-1), x,y=dsolve(Dx=4*x-2*y,Dy=2*x-y,t) x = 2*C2*exp(3*t)+1/2*C1 y = C1+C2*exp(3*t),4.4 级数,一、级数的符号求和, syms x k symsum(k) ans = 1/2*k2-1/2*k symsum(k2-3,0,10) ans = 352 symsum(xk/k,k,1,inf) ans = -log(1-x),二、函数的泰勒级数, syms x s=(1-x+x2)/(1+x+x2); taylor(s) ans = 1-2*x+2*x2-2*x4+2*x5 taylor(s,3) ans = 1-2*x+2*x2,符号表达式绘图,syms x y ezplot(x2-y4),

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1