線性代數是討論有限空間中線性關系經典理論的課程,是高職院校工科各專業的一門重要必修課,它邏輯性強、計算技巧高、具有較強的抽象性。而MATLAB軟件是由美國Mathworks公司于1984推出的科技應用軟件,具有數值和符號計算,計算結果和編程可視化,數學和文字統一處理,離線和在線計算等強大功能,尤其在矩陣運算方面有具大的應用。是進行線性代數課程輔助教學的有益工具。在教學中應該把兩者很好地結合起來,發揮現代科技的作用。
理論基礎
線性代數主要解決了解元線性方程組解的問題。元線性方程組分為奇次線性方程組和非奇次線性方程組,奇次線性方程組的解有三種情況:(1)有唯一的零解(2)無解(3)有無窮多解。非奇次線性方程組的解也有三種情況:(1)有唯一的解(2)無解(3)有無窮多解。下面就MATLAB在求解元線性方程組的唯一解、特解、通解問題上,來看MATLAB在線性代數上的應用。
應用舉例
1.求線性齊次方程組的通解()
齊次線性方程組的矩陣形式為
既其中,
如果齊次線性方程組的系數矩陣的秩數,方程組有唯一零解,如果齊次線性方程組的系數矩陣的秩數,則方程組的基礎解系存在,且每個基礎解系中,恰含有個解,在Matlab中建立M文件如下:
%以下所有程序都已在matlab下調試運行
A=input(‘請輸入方程組系數矩陣a=’)
disp(a)
r=rank(a);
if r==0
disp(‘方程組有唯一的零解’)
end
if r~=0
bs=1(a);
end
bs% X= k1*bs(:,1)+ k2*bs(:,2)+……+k(nr)*bs(:,nr)方程組的通解。
2.求非線性線性方程組的唯一解或特解。要非線性線性方程組有唯一解,必須滿足方程組的系數行列式不為零,可用逆矩陣法、矩陣的LU分解法、QR分解法和cholesky分解法求方程組的解,在Matlab中建立M文件如下(程序1)
a=input(‘請輸入方程組系數矩陣a:’)%輸入方程組的系數矩陣(a)為方陣
disp(a)
b=input(‘請輸入b矩陣:’)%輸入方程組右邊的矩陣b
disp(b)
[m,n]=size(a)%求系數矩陣的行(m)和列(n)的大小
if m~=n
x=rref([a:b])
disp(x)%若a不是方陣則x是特解
end
de=det(a);
if de==0
disp(‘a矩陣奇異請檢查!’)
end
x1=inv(a)*b
disp(x1)%x1是逆矩陣法求出的解
[L,U]=lu(a);
X2=U\\(L\\b)
disp(x2)%x2是LU分解法求出的解
[Q,R]=qr(a)
X3=R\\(Q\\b)
disp(x3)%x3是QR分解法求出的解
[R’,R]=chol(a);
X4=R\\(R’\\b)%x4是cholesky分解法求出的解
disp(x4)
例求方程組的解。
解:由程序1,輸入a=[5 6 1 2 3;1 5 6 10 7;2 1 5 6 4;1 1 1 5 6;3 2 4 1 5];b=(1,0,0,0,1)’由于rank(A)=5,rank()=5,|a|≠0,即為R(A)=R()=n的情形,有唯一解。
=[481/2081,229/9782,629/9782,305/9782,28/4891]x4解出錯。
如輸入b=(1,2,3,4,5)’由于rank(A)=5,rank()=4雖然|a|≠0,但R(A)≠R(),則顯示無解。
3.求非齊次線性方程組的通解()
非齊次線性方程組需要先判斷方程組是否有解,若有解,則通解=對應齊次方程組的通解+非齊次方程組的一個特解;在Matlab中建立M文件如下(程序2)
clear all
a=input(‘請輸入方程組系數矩陣a:’)%輸入方程組的系數矩陣(a)為方陣
disp(a)
b=input(‘請輸入b矩陣:’)%輸入方程組右邊的矩陣b
disp(b)
[m,n]=size(a)%求系數矩陣的行(m)和列(n)的大小
[m,n]=size(A);
R=rank(A);
B=[A b];
Rr=rank(B);
format rat
if R==RrR==n%n為未知數的個數,判斷是否有唯一解
x1=A\\b;
elseif R==RrR x=A\\b%求特解 C=1(A,‘r’)%求的基礎解系,所得C為列矩陣,這列即為對 %應的基礎解系 %這種情形方程組通解xx=k(p)*C(:,P)(p=1…nR) else X=‘No solution!’ %判斷是否無解 end 例子:求方程組的通解。 解:由程序2,輸入=[1 1 1 1 1;3 2 1 1 3;0 1 2 2 6;5 4 3 3 5];=[7 2 23 12]’得=[9/2 0 23/2 0 1/ 296468788895664] =[1 2 1 0 0];=[1 2 0 1 0] 所以方程組的通解為: 由以上例子可以看出,在線性代數教學中應用MATLAB具有很大的優越性,它是數學發展的需要,更是高職院校培養21世紀創新型、實踐型人才的需要。隨著辦學條件的改善,常規的《線性代數》教學將激發更大的活力。 注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。