劉 娟 鄧凌峰
?
Matlab在線性方程組求解中的應(yīng)用
劉娟鄧凌峰
(湖南科技學(xué)院 經(jīng)濟(jì)與管理學(xué)院,湖南 永州 425199)
線性方程組的求解是線性代數(shù)教學(xué)的重點(diǎn)難點(diǎn)內(nèi)容,學(xué)生在求解方程組的通解過(guò)程很容易在系數(shù)矩陣、增廣矩陣初等化簡(jiǎn)為行最簡(jiǎn)型時(shí)出現(xiàn)計(jì)算失誤,從而導(dǎo)致對(duì)方程組通解的求解錯(cuò)誤。文章應(yīng)用Matlab軟件實(shí)現(xiàn)齊次非齊次線性方程組的求解,便于學(xué)生在求解過(guò)程中的檢驗(yàn)計(jì)算結(jié)果,以期提高學(xué)生理論結(jié)合實(shí)踐的動(dòng)手解決問(wèn)題能力。
線性方程組;解的結(jié)構(gòu);MATLAB
線性方程組的求解在整個(gè)線性代數(shù)的教學(xué)中非常重要。線性方程組的求解,通常采用初等變換方法求解線性方程組的通解,但是在求解過(guò)程中,存在計(jì)算難度大,計(jì)算容易出錯(cuò)等問(wèn)題,導(dǎo)致學(xué)生一步錯(cuò)步步錯(cuò),不能很好的求出對(duì)應(yīng)方程組的通解問(wèn)題。Matlab軟件計(jì)算功能強(qiáng)大,可以提高學(xué)生對(duì)該門(mén)課的興趣,文章通過(guò)Matlab軟件求解線性方程組的解,以期提高學(xué)生的實(shí)踐動(dòng)手能力。
齊次線性方程組的矩陣形式為,其中是×階矩陣,是維未知列向量[1]。
(1)維零向量是方程組的解;
在Matlab中,可以調(diào)用函數(shù)null(A,'r')來(lái)求出齊次線性方程組的解。下面給出兩個(gè)實(shí)例[2]。
解:程序?yàn)?/p>
A=[1 1 1 1 1;3 2 1 1 -3;0 1 2 2 6;5 4 3 3 -1];
B=null(A,'r')%線性方程組的有理數(shù)解
得到:B =
1 1 5
-2 -2 -6
1 0 0
0 1 0
0 0 1
再輸入:
syms k1 k2 k3; %定義符號(hào)參數(shù)
X=k1*B(:,1)+k2*B(:,2)+k3*B(:,3)
結(jié)果為
X =
k1 + k2 + 5*k3
- 2*k1 - 2*k2 - 6*k3
k1
k2
k3
解:程序?yàn)?/p>
A=[1 1 -1 1;1 2 -1 2;1 -1 1 -1;-3 2 3 1];
B=null(A, 'r')
結(jié)果為
B =
Empty matrix: 4-by-0
答:此齊次線性方程組只有零解。
注:克萊姆法則僅適用于未知數(shù)個(gè)數(shù)與方程個(gè)數(shù)相同的情況。
例題3 求下列非齊次線性方程組的通解(有唯一解的情形)。
解法一:逆矩陣法.程序?yàn)?/p>
A=[1 0 -1 1 ;3 0 2 1;2 -1 4 8;4 1 6 3];
b=[1 -1 0 0]';
C=[A,b];
rank(A)
rank(C)
D=det(A)
得到:ans =
4
ans =
4
D =
57
x=inv(A)*b
結(jié)果為
x =
-3/19
42/19
-32/57
34/57
解法二:克萊姆法則.程序?yàn)?/p>
A=[1 0 -1 1 ;3 0 2 1;2 -1 4 8;4 1 6 3];
b=[1 -1 0 0]';
D= det(A)
得到:D =
57
a1=[1 3 2 4]';
a2=[0 0 -1 1]';
a3=[-1 2 4 6]';
a4=[1 1 8 3]';
x1=det([b a2 a3 a4])/D;
x2=det([a1 b a3 a4])/D;
x3=det([a1 a2 b a4])/D;
x4=det([a1 a2 a3 b])/D;
X=[x1;x2;x3;x4]
結(jié)果為
x =
-0.1579
2.2105
-0.5614
0.5965
解法三:程序?yàn)?/p>
A=[1 0 -1 1 ;3 0 2 1;2 -1 4 8;4 1 6 3];
b=[1 -1 0 0]';
X=linsolve(A,b)
結(jié)果為
X =
-0.1579
2.2105
-0.5614
0.5965
解法一:程序?yàn)?/p>
A=[1 2 3 1;3 7 7 2;1 4 5 2];
b=[3;12;6];
C=[A b];
n=4;
[rank(A),rank(C)]
得到ans =
3 3
注:先判斷解的情況,rank(A)=rank(C)=3<4,方程有無(wú)窮多解.
B=null(A,'r')
x0=pinv(A)*b %或用x0=A
結(jié)果為
B =
0.5000
0
-0.5000
1.0000
x0 =
0.3333
2.0000
-0.3333
-0.3333
解法二:在Matlab中建立一個(gè)M文件:ex1如下
A=[1 2 3 1;3 7 7 2;1 4 5 2];
b=[3;12;6];
B=[A b];
n=4;
r1=rank(A);
r2=rank(B);
if(r1==r2&r1==n) %n為未知數(shù)個(gè)數(shù),判斷是否有唯一解
X=A;
else if (r1==r2&r1 C=null(A, 'r') %求AX=0的基礎(chǔ)解系 x0=pinv(A)*b %求特解 else fprintf('方程組無(wú)解') %判斷是否無(wú)解 end end 輸入命令:ex1 結(jié)果為 C = 0.5000 0 -0.5000 1.0000 x0 = 0.3333 2.0000 -0.3333 -0.3333 答:非齊次線性方程組的通解為: ,其中為任意常數(shù)。 例題5求非齊次線性方程組 解:程序?yàn)椋?/p> A=[1 1 1 1;0 1 -1 2;2 3 1 4;3 5 1 7]; b=[1 1 4 5]'; C=[A b] [rank(A),rank(C)] 結(jié)果為: ans = 2 3 矩陣A與矩陣C的秩不相等,故次方程組無(wú)解。 線性代數(shù)課程開(kāi)設(shè)的目的是讓學(xué)生掌握行列式、矩陣的相關(guān)計(jì)算,線性方程組的通解的求解。但學(xué)生對(duì)理論理解不透徹,計(jì)算過(guò)程存在計(jì)算量大,人工手算容易出錯(cuò)的問(wèn)題,為了提高學(xué)生對(duì)該門(mén)課的學(xué)習(xí)興趣,根據(jù)Matlab軟件的很多優(yōu)良的性質(zhì),具備計(jì)算功能強(qiáng)大,應(yīng)用Matlab軟件在教學(xué)方式上進(jìn)行改革,提高同學(xué)們對(duì)線性代數(shù)這門(mén)課的理解,提升學(xué)生運(yùn)算效率和動(dòng)手能力。 [1]北京大學(xué)數(shù)學(xué)系幾何與代數(shù)教研室前代數(shù)小組編.高等代數(shù)[M].北京:高等教育出版社,2003. [2]劉衛(wèi)國(guó).MATLAB程序設(shè)計(jì)教程[M].北京:中國(guó)水利水電出版社,2010. (責(zé)任編校:何俊華) 2017-06-20 劉娟(1987-),女,湖南衡陽(yáng)人,碩士,講師,研究方向?yàn)闀r(shí)間序列。 F224 A 1673-2219(2017)10-0018-03