对于matlab求解符号运算中几个经常使用的函数,主要说一下因式分解、展开还有合并。函数
(1)对于因式分解使用的是factor()函数。spa
例1:factor函数对于纯数字也能够进行分解的变量
factor(112)
ans =
2 2 2 2 7
例2:对于符号函数语法
syms x y;im
factor(x^3-y^3)di
ans =matlab
(x – y)*(x^2 + x*y + y^2)co
(2)对于代数式的展开使用的是expand()函数。数字
例3:对于符号变量的代数展开式ab
syms x;
expand((x-2)*(x-4))
ans =
x^2 – 6*x + 8
例4:
syms x y;
expand(cos(x+y))
ans =
cos(x)*cos(y) – sin(x)*sin(y)
(3)同幂系数的合并。
语法规则以下:
R = collect(S)
R = collect(S,v)
例5:
syms x y;
R1 = collect((exp(x)+x)*(x+2))
R2 = collect((x+y)*(x^2+y^2+1), y)
R3 = collect([(x+1)*(y+1),x+y])
运行结果以下
R1 =
x^2 + (exp(x) + 2)*x + 2*exp(x)
R2 =
y^3 + x*y^2 + (x^2 + 1)*y + x*(x^2 + 1)
R3 =
[ y + x*(y + 1) + 1, x + y]
(4)简化
D =
[ a*x + b*y, a*y + b*z, b*x + a*z]
[ a*y + b*z, b*x + a*z, a*x + b*y]
[ b*x + a*z, a*x + b*y, a*y + b*z]
det(D) = - a^3*x^3 + 3*a^3*x*y*z - a^3*y^3 - a^3*z^3 - b^3*x^3 + 3*b^3*x*y*z - b^3*y^3 - b^3*z^3;
factor(det(D))=-(x + y + z)*(x^2 - x*y - x*z + y^2 - y*z + z^2)*(a + b)*(a^2 - a*b + b^2);
simplify(det(D))=-(a^3 + b^3)*(x^3 - 3*x*y*z + y^3 + z^3);
完!