Matlab syms x y f2xy x3 y4 subsf
Matlab 符号运算(二) 例: >> >> >> syms x y f=2*x+y; x=3, y=4; subs(f) subs(f, x, ’a’) >> syms x y a b >> f=2*x+y; >> subs(f, [x, y], [3, 4]) >> subs(f, {x, y}, {3, 4}) >> subs(f, x, [1: 3]) >> subs(f, {x, y}, {[1: 3], [5: 7]}) >> subs(f, {x, y}, {a+b, a-b}) >> subs(f, {x, y}, {x+y, x-y}) ans=10 ans=2*x+y ans=10 ans=[2+y, 4+y, 6+y] ans=[7 10 13] ans=3*a+b ?
Matlab 符号运算(二) ü 简化函数: simple 和 simplify simple(f): 对 f 尝试多种不同的算法简化, 返回其中最短的简化形式; [R, HOW]=simple(f): R为f的最短简化形式, HOW中记录的为简化过程中使用的主要方法。 simple函数示例 f 2*cos(x)^2 -sin(x)^2 R 3*cos(x)^2 -1 HOW simplify (x+1)*x*(x-1) x^3+3*x^2+3*x+1 x^3 -x combine(trig) (x+1)^3 factor cos(3*acos(x)) 4*x^3 -3*x expand
Matlab 符号运算(二) 例:求极限 >> syms h n x >> L=limit((log(x+h)-log(x))/h, h, 0) >> M=limit((1 -x/n)^n, n, inf) >> syms x >> L=limit(abs(x)/x, x, 0, ’left') >> R=limit(abs(x)/x, x, 0, ’right') L=1/x M=exp(-x) L=-1 M=1
Matlab 符号运算(二) 例:设 y=sin(ax), 求 >> syms a x >> y=sin(a*x) >> A=diff(y, x) A=cos(a*x)*a >> B=diff(y, a) B=cos(a*x)*x >> C=diff(y, x, 2) C=-sin(a*x)*a^2 >> D=diff(y, a, 2) D=-sin(a*x)*x^2
Matlab 符号运算(二) 例:求积分 >> syms x >> f=(x^2+1)/(x^2 -2*x+2)^2; I=3/2*atan(x-1)+1/4*(2*x-6)/(x^2 -2*x+2) >> I=int(f) >> g=cos(x)/(sin(x)+cos(x)); >> J=int(g, x, 0, pi/2) >> h=exp(-x^2); >> K=int(h, x, 0, inf) J=1/4*pi K=1/2*pi^(1/2)
Matlab 符号运算(二) 例:求级数 ,以及其前10项的部分和。 >> syms n >> S=symsum(1/n^2, n, 1, inf) >> S 10=symsum(1/n^2, n, 1, 10) S=1/6*pi^2 S 10=1968329/1270080 例:求函数级数 >> syms n x >> S=symsum(x/n^2, n, 1, inf) S=1/6*x*pi^2
Matlab 符号运算(二) 例: >> syms x y z u t >> f=cos(x/t); y=sin(y/u); >> >> compose(f, g) compose(g, f) compose(f, g, z) compose(f, g, x, z) compose(f, g, t, y, z) compose(f, g, t, u, z) ans=cos(sin(y/u)/t) ans=sin(cos(x/t)/u) ans=cos(sin(z/u)/t) ans=cos(x/sin(z/u)) ans=cos(x/sin(y/z))
Matlab 符号运算(二) 例: >> syms x t >> f=x^2+2*t; >> finverse(f) >> finverse(f, y) Warning: finverse(x^2+2*t) is not unique ans=(-2*t+x)^(1/2) ans=-1/2*x^2+1/2*t
Matlab 符号运算(二) 作业: exp(i*x)? 1. 化简 2. >> >> syms a b x X Y k=sym(’ 3’); z=sym('c*sqrt(delta)+y*sin(theta)'); f=a*z*X+(b*x^2+k)*Y; 试写出下面命令的结果, 上机验证,并说明理由: >> >> findsym(f) findsym(f, 1) findsym(f, 2) findsym(f, 3)
- Slides: 34