MATLAB 2015从入门到精通
上QQ阅读APP看书,第一时间看更新

2.4.2 线性方程组的符号解法

对于线性方程组的解法,通常采用矩阵的方式进行求解。因此,运用矩阵运算方法是求解线性方程组最简单有效的方法。符号方程组的解法和数值方程组的解法过程基本相同,运算指令也基本相同。

一般符号代数方程组的求解使用solve函数,其主要调用格式如下。

g=solve(eq); 求解方程eq=0的解,自变量由系统默认。

g=solve(eq,var); 求解自变量为var的方程eq=0的解。

g=solve(eq1,eq2,…,eqn); 求解方程组eq1,eq2,…,eqn构成的解,自变量由系统默认。

g=solve(eq1,eq2,…,eqn,var1,var2,…,varn); 求解自变量为 var1,var2,…,varn的方程组eq1,eq2,…,eqn的解。

【实例2-14】求线性方程组的解。

思路·点拨

本例题有两种方法,一种是使用克莱姆法则,即采用矩阵的方式进行求解;另外一种是调用solve函数进行求解。

—附带光盘“Ch2\实例2-14”文件夹

—附带光盘“AVI\实例2-14.avi”

解:方法一:矩阵求解

程序如下。

A=sym([1 -2 3 -4;0 1 -1 1;1 3 0 1;0 -7 3 1]);

b=sym([4;-3;1;-3]);

x=A\b

程序运行结果如下。

x =

-8

3

6

0

方法二:调用solve函数

程序如下。

eq1=sym('x1-2*x2+3*x3-4*x4-4');

eq2=sym('x2-x3+x4+3');

eq3=sym('x1+3*x2+x4-1');

eq4=sym('-7*x2+3*x3+x4+3');

S=solve(eq1,eq2,eq3,eq4,'x1','x2','x3','x4');

disp([S.x1,S.x2,S.x3,S.x4])

程序运行结果为

[ -8, 3, 6, 0];

可以看出,两种计算方法得出的结果是一样的。但应注意到,后面采用 disp 函数显示结果。因为得出的结果在构架 S 中,不能直接显示结果,需要采用 disp([S.x1,S.x2,S.x3,S.x4]),才可以正确显示方程组的解。