符号代数线性方程(组)的求解

符号代数线性方程的求解可以通过函数solve和函数linsolve来实现。solve函数的求解如下例所示。

在命令窗口中输入

code.matlab
>> solve('p*sin(x) = r')
ans =
asin(r/p)

如果符号表达式不含等号,则函数solve会自动将表达式转换成等号右端为0的符号方程,如下例所示。

在命令窗口中输入

code.matlab
>> solve('p*tan(x)-r')
ans =
atan(r/p)

如果想对非默认变量求解,则solve函数必须指定变量,如下例所示。

在命令窗口中输入

code.matlab
>> solve('a*x^2+b*x+c','a')
ans =
- (b*x+c)/x^2

另外,使用solve函数也可以求解线性方程组。

在命令窗口中输入

code.matlab
>> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')
x =
[ 1]
[ 3]
y =
[   1]
[-3/2]

linsolve函数的用法如下例所示。

在命令窗口中输入

code.matlab
>> a=sym('[10 -1 0;-1 10 -2]');
>> b=sym('[1;2]');
>> linsolve(a,b)
ans =
[   1/9]
[ 19/72]

实际上,x=linsolve(A,B)与x= sym(A)\ sym(B)的求解结果相同。

在命令窗口中输入

code.matlab
>> a=sym('[10 -1 0;-1 10 -2]');
>> b=sym('[1;2]');
>> a\b
ans =
[   1/9]
[ 19/72]