如何用Matlab求線性方程組的通解?小馮的某些靈感2020-07-14 01:20:02

方案一:利用除法和 null 函式

1、在命令視窗輸入以下命令:

A=[1 1 -1 -1;2 -5 3 2;7 -7 3 1];

B=[5; -4; 7];

format rat x1=A\B %求得非齊次方程組Ax=B的一個特解x1

Y=null(A,‘r’) %求得齊次方程組Ax=0 的基礎解系Y

上面符號%後為解釋說明,實際中可不輸入

2、按回車,得通解。

x=x1+k1*Y(1)+k2*Y(2)

方案二:利用 rref 函式

1、在命令視窗輸入以下命令:

format ratA=[1 1 -1 -1;2 -5 3 2;7 -7 3 1];

B=[5; -4; 7];%用初等行變換將增廣矩陣 [A B] 化成最簡行階梯形T

T=rref([A B])

2、按回車,得通解。

如何用Matlab求線性方程組的通解?

舉例說明如何用Matlab求線性方程組的通解:

如何用Matlab求線性方程組的通解?

>> a=[1 -1 1 -1;-1 1 1 -1;2 -2 -1 1]; %線性方程組的係數矩陣

>> b=[1;1;-1]; % 常列向量

>> [rank(a) rank([a,b])]

ans =

2 2 %秩相等且小於4,說明有無窮多解

>> rref([a,b]) %簡化行階梯形矩陣

ans =

1 -1 0 0 0

0 0 1 -1 1

0 0 0 0 0

從而原方程組等價於x1=x2,x3=x4+1。

令x2=k1,x4=k2

於是,我們求得通解

如何用Matlab求線性方程組的通解?