MatLab之Sym篇

符号Sym部分

符号对象创建

1
2
3
4
A = sym(a,'d')	% 用常量a创建符号常量A,'d'->浮点;'f'->有理分式浮点;'e'->有理数;'r'带误差的有理数(可省略)
———————————————
syms x y z  % 声明符号变量,会覆盖原有的值
f = 7*x^2 + 2*x+9  % 创建符号函数

符号对象精度转换

1
2
3
4
digits	% 显示当前精度
digits(16) % 精度改为16位
a = vpa(sqrt(2)) % 使sqrt(2)按照规定精度约,不加vpa时默认保留四位小数
a = vpa(sqrt(2),8) % vpa自己规定精度,仅内部精度有效

函数运算

1
2
3
4
5
6
7
8
9
10
F = expand(f)	% 多项式展开
F = collect(f) % 整理,降幂排序
F = factor(f) % 因式分解,f可以是常数
F = finverse(f) % 求反函数
——————————————————————————————————————
n =[a, b, c] % a、b、c都是符号
>> roots(n) % 求根,二次以上的就不是具体表达式了
ans =
-(b + (b^2 - 4*a*c)^(1/2))/(2*a)
-(b - (b^2 - 4*a*c)^(1/2))/(2*a)

符号微积分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
% 求极限
limit(f,x,n,'(方向)') % 求f(x)在x->n时的极限,n=0可省略,方向可指定
% 级数和
symsum(f,x,1,6) % 计算f(x)在x从1到6的级数和,即x取整数求和
symsum(f) % 计算f默认变量从0到n-1的级数和
% 一维泰勒
taylor(f,x,n) % f在x=n处展开到五阶,n不写默认为0
% 单变量求导
fn = diff(f,x,n) % f对x的n阶导,n不写默认为1
% 多元偏导
f1 = diff(f,x,y) % f是多元函数,对x,y依次偏导
例:
f = x^3*y^3
>> diff(f,x,y)
ans = 9*x^2*y^2
% 积分
int(f,x,1,2) % f在x于1到2上的定积分
int(f,x) % f对x的不定积分

符号方程求解

1
2
3
4
5
6
7
% 一元方程
eq = a*x^2==b % a,b为符号,eq是方程
solve(eq) % 返回eq方程的符号解
% 多元方程组
eq1 = ...
eq2 = ...
[A,B] = solve(eq1,eq2) % A,B分别获得两个元的解