第五章 代数方程求解和其它符号工具
在 MATLAB 中,我们使用 solve 命令解代数方程和方程组。
>> x = solve('x+3=0') %当没有等号的时候,默认为整个等式等于 0
x =
-3
>> s = solve('5*x + 4*y = 3','x - 6*y = 2'); %解方程组
注意每个方程都放在单引号内,并使用逗号“,”把方程隔开。如下面,使用点句号“.”我们就可以取得相应的x 和y 值。首先我们得到x:
>> x = s.x
x =
13/17
把一个方程赋给一个变量,然后再把它传递给solve 也是完全可以的。例如,让我们随便写一个方程,然后把它赋值给d:
>> d = 'x^2 + 9*x -7 = 0';
>> solve(d)
简化输入:
>> eq1 = 'w + x + 4*y + 3*z = 5';
>> eq2 = '2*w +3*x+y - 2*z = 1';
>> eq3 = 'w + 2*x - 5*y + 4*z = 3';
>> eq4 = 'w - 3*z = 9';
>> s = solve(eq1,eq2,eq3,eq4);
还有第二种方法调用solve,我们可以告诉它我们需要它解哪个符号。
>> solve('a*x + 5', 'a' )
ans =
-5/x
符号方程绘图:ezplot(f, [x1 , x2])
>> ezplot('x^2 - 6*x - 12' ,[ 0 , 9]) ;

无论是solve还是ezplot其中的字符串都可以没有等号,在没有等号的情况下solve认为整个等式等于0,ezplot认为另一个因变量的值为整个等式的值。
>> eq1 = 'x^4 - 5*x^3 + 4*x^2 - 5*x + 6';
>> solve(eq1)
ans =
4.2587597622245353501353718744479
1.1163632181665808828583176347698
- 0.18756149019555811649684475460883 - 1.1076236211878976591514922076492 * i
- 0.18756149019555811649684475460883 + 1.1076236211878976591514922076492 * i
>> double(ans)
ans =
4.2588 + 0.0000i
1.1164 + 0.0000i
-0.1876 - 1.1076i
-0.1876 + 1.1076i
方程展开与合并 :
方程的展开:
>> syms x;(expand函数)
>> expand((x+4)^2)
ans =
x^2 + 8*x + 16
方程的化简:(collect函数,simplify函数)
>> syms x;
>> collect(x*(x^2 - 2))
ans =
x^3-2*x
>> syms x;
>> simplify((x^4-81)/(x^2-9))
ans =
x^2+9
因式分解:(factor函数)
>> syms x;syms y;
>> factor(x^2 - y^2)
ans =
(x-y)*(x+y)
函数的级数表示 :(使用taylor函数)
taylor(fun , N)获得fun的前N项泰勒展开。
可以使用函数taylor获得函数的泰勒展开:
>> taylor(sin(x))
ans =
x^5/120 - x^3/6 + x

浙公网安备 33010602011771号