matlab符号运算是一个强大的机制,可以帮助我们进行高数中的各种公式推演,例如极限、微分、积分、级数求和、泰勒展开、积分变换等。而对符号函数求值,只需要用subs语句即可
subs(f,x,0)
也就是用0替换x,相当于求f(0)
>> syms x f(x)
>> f(x)=x^3+x^2+1
f(x) = x^3 + x^2 + 1
>> limit(f,x,1)
ans(x) = 3
>> limit(f,2)
ans(x) = 13
>> limit(f)
ans(x) = 1
>> f(x)=2^x
f(x) = 2^x
>> limit(f,inf)
ans(x) = Inf
>> limit(f,-inf)
ans(x) = 0
>> limit(f,x,0,'left')
ans(x) = 1
>> limit(f,x,0,'right')
ans(x) = 1
>> syms x y f(x)
>> f(x)=x^3+2*x
f(x) = x^3 + 2*x
>> diff(f)
ans(x) = 3*x^2 + 2
>> diff(f,2)
ans(x) = 6*x
>> f(x)=x^2+y
f(x) = x^2 + y
>> diff(f,y)
ans(x) = 1
>> syms x y z
>> f(x)=sym([x^2,y^2+z])
f(x) = [ x^2, y^2 + z]
>> jacobian(f,x)
ans(x) =
2*x
0
>> jacobian(f,[x,y])
ans(x) =
[2*x, 0]
[ 0, 2*y]
>> jacobian(f,[x,y,z])
ans(x) =
[2*x, 0, 0]
[0 , 2*y, 1]
>> syms x f(x)
>> f(x)=3*x^2+2*x
f(x) = 3*x^2 + 2*x
>> int(f)
ans(x) = x^2*(x + 1)
>> int(f,1,2)
ans = 10
>> int(f,1,inf)
ans = Inf
级数:将数列的项依次用加号连接起来的函数
说明:取值为 inf 代表无穷
>> syms x y n
>> f(x)=sym(x^2)
f(x) = x^2
>> symsum(f,0,n)
ans = (n*(2*n + 1)*(n + 1))/6
>> f(x)=x^2+y
f(x) = x^2 + y
>> symsum(f,y,0,n)
ans(x) = (n + 1)*x^2 + (n*(n + 1))/2
>> syms x f(x)
>> f(x)=sin(x)
f(x) = sin(x)
>> taylor(f)
ans(x) = x^5/120 - x^3/6 + x
% a=0,麦克劳林展开式
>> taylor(f,x,0,'Order',8)
ans(x) = - x^7/5040 + x^5/120 - x^3/6 + x
% a~=0,泰勒展开式
>> taylor(f,x,3,'Order',5)
ans(x) =
sin(3) - (sin(3)*(x - 3)^2)/2 + (sin(3)*(x - 3)^4)/24 + cos(3)*(x - 3) - (cos(3)*(x - 3)^3)/6