實驗1矩陣的基本運算_第1頁
實驗1矩陣的基本運算_第2頁
實驗1矩陣的基本運算_第3頁
實驗1矩陣的基本運算_第4頁
實驗1矩陣的基本運算_第5頁
已閱讀5頁,還剩97頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 本篇包含五個線性代數的基礎實驗,從矩陣運算到方程組的求解;從向量組線性相關性分析到矩陣的對角化;從矩陣特征值和特征向量求解到二次型的標準化及正定性的分析,都給出了 MATLAB勺解決方法。實驗5利用MATLAB勺繪圖功能,對線性代數若干概念的幾何意 義進行了分析討論。實驗1矩陣的基本運算1.1實驗目的.掌握Matlab軟件的矩陣賦值方法;.掌握Matlab軟件的矩陣加法、數乘、轉置和乘法運算;.掌握Matlab軟件的矩陣哥運算及逆運算;.掌握Matlab軟件的矩陣元素群運算;.通過Matlab軟件進一步理解和認識矩陣的運算規則。實驗指導MATLAB是一種功能強大的科學及工程計算軟件,它的名字

2、由“矩陣實驗室” (Matrix Laboratoy)組成,它具有以矩陣為基礎的數學計算和分析功能,并且具有豐富的可視化圖 形表現功能及方便的程序設計能力。它的應用領域極為廣泛。本實驗學習用MATLAB軟件進行矩陣基本運算。啟動MATLAB后,將顯示 MATLAB操作界面,它包含多個窗口,其中命令窗口是最 常用的窗口,如圖1.1所示。圖1.1 MA TLAB的操作桌面本實驗所有例題的 MATLAB命令都是在命令窗口中鍵入的。在本實驗中用到 MATLAB的運算符號及命令或函數列舉如下:1、運算符號表1.1給出了本實驗用到的 MATLAB基本運算符號。表1.1 MATLAB的基本運算符號運算符號=

3、十一*/A.說明賦值加減乘左除右除嘉運算轉置群運算2、命令或函數表1.2給出了與本實驗相關的MATLAB命令或函數。若要進一步了解和學習某個命令或函數的詳細功能和用法時,MATLAB提供了一個help命令。表1.2與本實驗相關的 MATLAB命令或函數命令說明位置help inv在命令窗口中顯示函數inv的幫助信息創建矩陣例1.1矩陣行元素分割符號例1.1矩陣列元素分割符號例1.1%注釋行例1.1eye(n)創建n階單位矩陣例1.1zeros(m,n)創建mxn階零矩陣例1.1zeros(n)創建n階零方陣例1.1ones(m,n)創建nix n階元素全為1的矩陣例1.1rand(m,n)創建

4、mxn階元素為從0到1的均勻分布的隨機數矩陣例1.2round(A)對矩陣A中所有元素進行四舍五入運算例1.2inv(A)求矩陣A的逆例1.3AA-1用嘉運算求矩陣A的逆例1.3實驗內容 例1.1用MATLAB軟件生成以下矩陣:9 3(1) A 6 56 6 HYPERLINK l bookmark151 o Current Document 216(2) B0000 01 0(3) C0 11111111111111111解:(1)在MATLAB命令窗口輸入:A=9,3,2;6,5,6;6,6,0%或:A=9 3 2;6 5 6;6 6 0%或:A=9 3 26 5 66 6 0結果都為:A

5、 = TOC o 1-5 h z 932656660矩陣同行元素以逗號或空格分割 行與行之間必須用分號或回車分隔( 2 )輸入:B=eye(3)結果為:B = TOC o 1-5 h z 100010001( 3 )輸入:C = zeros(2)結果為:C =0000( 4 )輸入:D = ones(4)結果為:D = TOC o 1-5 h z HYPERLINK l bookmark181 o Current Document 1111 HYPERLINK l bookmark78 o Current Document 1111 HYPERLINK l bookmark80 o Curre

6、nt Document 11111111Matlab 對矩陣賦值有直接輸入和命令生成兩種方法,本例中矩陣 A 就是鍵盤直接輸入的;而矩陣B 、 C 和 D 都是用 Matlab 命令而生成。例 1.2 隨機生成兩個3 階方陣 A 和 B ,分別計算:(1) A B ; (2) A B ; (3) 5A; (4) AB ; (5) AT解:輸入:A=round(rand(3)*10) % rand(3) :生成 3 階元素為 0 1 的隨機實數方陣% round () :對矩陣元素進行四舍五入運算B=round(rand(3)*10)結果為:A = TOC o 1-5 h z 10235 109

7、937B =123 HYPERLINK l bookmark327 o Current Document 035971( 1 )輸入:A B結果為:ans =11465 13 1418 108其中“ ans”表示這次運算的結果。( 2 )輸入:A B 結果為: ans = TOC o 1-5 h z 9005740-46( 3 )輸入:5*A結果為:ans =50 10 1525 50 4545 15 35( 4 )輸入:A*B結果為:ans =37 47 4386 103 7472 76 49( 5 )輸入A結果為ans = TOC o 1-5 h z 1059 HYPERLINK l bo

8、okmark105 o Current Document 1031230 1 0 ,分別計算:2171 ) A5 ; ( 2 ) A97例 1.3 已知矩陣 A解:輸入:A=1,2,3;0,1,0;2,1,7 結果為:A = TOC o 1-5 h z 2301017( 1 )輸入:AA5結果為:ans = TOC o 1-5 h z 34092698117150107810617726839( 2 )輸入:inv(A)或輸入 AA-1結果都為:ans =7 -11 -3010-231695例 1.4 已知矩陣 A0 5 2,B2916621 0 4 ,且滿足 PA B , AQ B ,281

9、計算矩陣P和Q。解:方法一:利用求逆矩陣的方法,輸入:A=6,9,5;0,5,2;2,9,1B=6,6,2;1,0,4;2,8,1P=B*inv(A)Q=inv(A)*B方法二:利用 MATLAB 軟件特有的矩陣“左除”和“右除”運算,輸入:A=6,9,5;0,5,2;2,9,1矩陣右除矩陣左除B=6,6,2;1,0,4;2,8,1P=B/A%Q=AB%兩種方法的運算結果都為:A = TOC o 1-5 h z 695052291B =6620481P =0.8043 -1.3043 0.58700.5761 1.1739 -1.22830.0435 -0.0435 0.8696Q =0.60

10、87 1.4565 -1.20650.0435 0.7826 0.21740.3913 -1.9565 1.4565503213例 1.5 已知矩陣A620,B306 ,分別按以下要求進行矩陣元素的群701452運算:( 1 ) 把矩陣 A 和矩陣 B 所有對應元素相乘, 得到 9 個乘積, 計算由這 9 個數所構成的同形 矩陣 C 。2)對矩陣A 中的所有元素進行平方運算,得到矩陣D ,求該矩陣。解: Matlab 軟件提供了矩陣元素群運算的功能,輸入:A=5,0,3;6,2,0;7,0,1B=2,1,3;3,0,6;4,5,-2結果為:A = TOC o 1-5 h z 032001=13

11、065-2( 1 )輸入:C=A.*B%在運算符號前加 “ . ”,其含義即為矩陣元素的群運算結果為:C =10091800280-22)輸入:輸入:D=AA2%在運算符號前加“.”,其含義即為矩陣元素的群運算結果為:D = TOC o 1-5 h z 25 0936 4049011.4 實驗習題1.利用函數rand和函數round構造一個5X5的隨機正整數矩陣 A和B,驗證以下等式是 否成立:(1) AB BA; (2) A B A BA2 B2 ; (3) AB TBTAT2已知向量12347 0 1 0 ,請計算它們的內積。要求:( 1 )用矩陣相乘命令計算;5313 已知X132521

12、4、已知BA B A ,其中123423455、已知 A 3 4 5 1451251232)用矩陣元素群運算的方法計算。830590 ,用求逆矩陣和矩陣右除兩種方法求矩陣2150120B 210 ,用求逆矩陣和矩陣左除兩種方法求矩陣0025,求A5 , A 1 。X。A。實驗2行列式與方程組的求解2.1實驗目的1,掌握Matlab軟件求行列式的命令;2.掌握Matlab軟件求矩陣秩的命令;3,掌握Matlab軟件對矩陣進行初等行變換的命令;4,掌握Matlab軟件求解滿秩線性方程組的各種方法;5,掌握Matlab軟件符號變量的應用;過Matlab軟件驗證與行列式相關的各種公式和定理,從而加深對

13、相關概念的理解。實驗指導本實驗利用MATLAB軟件來計算與行列式相關的各種運算問題,其中包括:行列式的 求解、矩陣秩的求解、矩陣逆的求解、利用克萊姆法則解方程組、驗證行列式按行(列)展 開定理及符號變量在行列式中的應用等。MATLAB軟件不僅擁有簡單明了的命令窗口,而且也提供了程序編輯器。在實驗 1圖 1,1所示的MATLAB操作界面中,點擊左上方的小按鈕,即可打開 MATLAB的M文件編 輯器窗口,如圖2,1所示,在這個窗口中可以編寫擴展名為 M的文件。圖2.1 MATLAB的M文件編輯器表2,1給出了與本實驗相關的MATLAB命令或函數。表2.1與本實驗相關的 MATLAB命令或函數命令功

14、能說明位置A=.;在賦值語句后,若有一個分號 “;”,它的含義是不在窗口中顯示矩陣 Ao例2.1U=rref(A)對矩陣A進行初等行變換,矩陣 U為矩陣A的最簡行階梯矩陣。例2.1clear清除工作空間中的各種變量,往往寫在一個程序最前。例2.1n=input()數據輸入函數,單引號內的字符串起說明作用。例2.1if elseif end條件語句,控制程序流程,和 C語言功能類似。例2.1m,n=size(A)計算結果為一個二維行向量,m,n分別存放矩陣A的行數和列數。例2.1=關系運算符號:等于例2.1=關系運算符號:不等于例2.1|邏輯運算符號:邏輯或例2.1disp(. )顯示單引號中的

15、字符串例2.1det(A)計算矩陣A的行列式例2.1B(:,i)=b把向量b賦給矩陣B的第i歹U,要求矩陣B的列向量和向量b同形。例2.1A,eye(5)創建一個5X 10的矩陣,前5列為矩陣A,后5列為單位矩陣I例2.2B(:,1:5)取矩陣B的第1列至第5列例2.2rank(A)計算矩陣A的秩例2.2for endfor循環語句,控制程序流程,和C語言功能類似。例2.2T(1,:)=把一個空行口賦給矩陣T的第1行,即:刪除矩陣 T的第一行。例2.2A(i,j)引用矩陣A中第i行第j列的元素例2.2format short以短格式顯示例2.2format long以長格式顯示例2.2syms

16、 x定義x為符號變量例2.3factor(D)對符號變量多項式D進行因式分解例2.3solve(D)求符號變量多項式方程D= 0的解例2.3randn(m,n)創建mxn階均值為0,方差為1的標準正態分布的隨機矩陣例2.4實驗內容6x12x23x34x45x5802x13x27x310 x413x559例2.1已知非齊次線性方程組:3x15x211x316x421x590,要求用卜列方法2x17x27x37x42x5227x13x25x33x410 x585求解該方程組。(1)求逆矩陣法;(2)矩陣左除法; (3)初等行變換; (4)克萊姆法則。解:(1)把齊次線性方程組寫為矩陣形式:Ax b

17、,則xA 1b,直接在MATLAB的命令窗口輸入:A=6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10;%賦值語句最后的分號“,表示不在窗口中顯示矩陣Ab=80;59;90;22;85;x=inv(A)*b%: x=AA-1*b計算結果為:x =9.00003.00002.00001.00002.0000(2)矩陣的乘法不遵守乘法交換律,Matlab軟件定義了矩陣左除和矩陣右除運算,針對方程組的矩陣形式 Ax b,等式兩端同時左除A,得到:“x A b”。在MATLAB命令窗口中輸入:A=6,2,3,4,5;2,-3,7,1

18、0,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10;b=80;59;90;22;85;x=Ab%符號即為左除運算,注意它的方向。結果為:x =9.00003.00002.00001.00002.0000(3)用初等行變換,把方程組的增廣矩陣變換為最簡行階梯形式,從而得到方程組的解。 在MATLAB 命令窗口中輸入:A=6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10;對增廣矩陣A,b進行行初等變換%矩陣U為矩陣A的最簡行階梯形矩陣b=80;59;90;22;85;U=rref(A,b)%運算結

19、果為:U = TOC o 1-5 h z 100009010003001002000101000012矩陣U即為方程組增廣矩陣的最簡行階梯形矩陣,矩陣的最后一列即為方程組的解。D;(4)根據克萊姆法則,有:xi D,其中DD是方程組的系數行列式,Di是用常數列向量b代替系數行列式的第i列所得到的行列式。用 Matlab的M文件編輯器,編寫la01.m文 件如下:%用克萊姆法則求解方程組 clear%n=input( 方程個數 n =)%A=input( 系數矩陣 A=)%b=input(常數列向量b=)%if (size(A)=n,n) | (size(b)=n,1)disp(elseif d

20、et(A)=0 disp(輸入不正確,要求A是n階方陣,% disp%系數行列式為零,不能用克萊姆法則解此方程。清除變量請用戶輸入方程個數請用戶輸入方程組的系數矩陣請用戶輸入常數列向量%判斷矩陣A和向量b輸入格式是否正確 b是n維列向量):顯示字符串判斷系數行列式是否為零)elsefor i=1:nB=A;B(:,i)=b;x(i)=det(B)/det(A);end計算x1,x2,.xn構造與 A 相等的矩陣用列向量 b 替代矩陣根據克萊姆法則計算BB 中的第 i 列 x1,x2,.xnx=xend-35-73711-510-16731321210以列向量形式顯示方程組的解在 MATLAB

21、命令窗口中輸入: la01得到以下人機對話結果:方程個數n = 55系數矩陣 A=6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10常數列向量b=80;59;90;22;85b =8059902285 x =93212顯然, 當方程組的系數矩陣不是方陣, 或系數行列式等于零時, 逆矩陣法和克萊姆法都不能實現方程組的求解, 而初等行變換的方法適合各種線性方程組的求解, 在下一個實驗中將繼續討論rref 命令的詳細應用。 關于矩陣的左除運算, 有著多種的含義, 在實驗 3 和實驗5 中將逐步討論它的其它功能。726136例2.2求

22、矩陣A 311930273018 HYPERLINK l bookmark272 o Current Document 463 1152的逆,要求用以下方法: HYPERLINK l bookmark149 o Current Document 93 HYPERLINK l bookmark121 o Current Document 114(1)矩陣左除和右除運算;(2)初等行變換;*A(3)利用伴隨矩陣 A求逆的公式A 1- oA解:在實驗1中,已經介紹了兩種求矩陣逆的方法:一種是命令法:inv (A), 一種是哥運算法:AA-1。下面分別給出求逆矩陣的其它方法。(1) Matlab軟件定

23、義了矩陣的左除運算和右除運算,給矩陣運算帶來了很大的方便。從公式A1A I出發,等式兩邊同時右除矩陣 A,得“A1 I/A”,從而求得矩陣A的逆陣;若從公式AA 1 I出發,等式兩邊同時左除矩陣A,得“ A 1 A I ”,同樣可以求得矩陣A的逆陣。需要注意的是,左除和右除不僅是矩陣的左右位置不同,其運算符號也是不 同的。(2)用筆來計算一個具體 n階方陣A的逆陣時,往往采用初等行變換法,即:是把 n階矩陣A和n階單位矩陣I并排放在一起,然后對 nx 2n矩陣A| I做初等行變換,當其變為最簡行階梯矩陣時,如果該矩陣的前n列為單位矩陣I ,則該矩陣的后 n列就是矩陣 A的1逆矩陣A ;如果該矩

24、陣的前 n列不是單位矩陣I ,則矩陣A不可逆。,其中A為矩陣A的(3)根據AA* A*A A I ,可以得到求逆矩陣公式:伴隨矩陣。在MATLAB的M文件編輯器中,編寫程序la02.m :%逆矩陣各種求法:clearA=-7,-2,-6,4,6;1,3,-6,3,11;3,-11,9,5,-2;-3,0,-2,9,-3;7,30,-18,11,4;% 1.命令法:An1=inv(A)% 2.哥運算法:An2=AA-1% 3.右除法:An3=eye(5)/A% eye(5)為 5 階單位矩陣% 4.左除法:An4=Aeye(5)% 5.初等行變換法:B=rref(A,eye(5);%if(ran

25、k(B(:,1:5)=5)%An5=B(:,6:10)%elsedisp(A 不可逆 );end% 6. 伴隨矩陣求逆法:for i=1:5%for j=1:5T=A;%T(i,:)=;%T(:,j)=;%AA0,i)=(-1F(i+j)*det(T);對矩陣 A , I 進行初等行變換% B 為矩陣 A 的最簡行階梯矩陣判斷最簡行階梯矩陣B 的前 5 列是否為單位陣取出矩陣的后5 列,并顯示構造伴隨矩陣的5X5個元素把矩陣 A 賦給矩陣 T刪去矩陣T 的第i 行刪去矩陣T 的第j 列此時, |T| 為矩陣 A 元素 aij 的余子式% 算出 aij 的代數余子式% 并放入矩陣AA 的第 j

26、行、第 i 列% 當循環結束,矩陣AA 即為 A 的伴隨矩陣endendif det(A)=0An6=AA/det(A) elsedisp(A 不可逆 ); end運算程序 la02 ,前四個方法計算結果相同:1.0e+004 *-1.5895 1.3448-1.0646 1.6206-0.63081.6298 -1.37891.0916 -1.66170.64682.5392 -2.14831.7007 -2.58891.00770.3631 -0.30720.2432 -0.37020.14410.9860 -0.83420.6604 -1.00530.3913后兩個方法計算結果相同:-1

27、589513448-1064616206-630816298-1378910916-16617646825392-2148317007-25889100773631-30722432-370214419860-83426604-100533913從計算結果可以發現, 前四個方法得到的是實數矩陣, 而后兩個方法得到的是整數矩陣。如果在 Matlab 環境下,鍵入: format long (以上結果是在format short 格式下得到的) ,然后再重新運行該程序, 會發現前四個方法的運算結果存在誤差, 這是計算機做數值運算時, 存在舍入誤差的原因。 為了進一步觀察計算機做數值運算所產生的誤差

28、, 現在用上述六種方法來計算矩陣A10 10 10的逆,前四種方法得到以下類似結果:11 12 13Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 2.135044e-018.ans =1.0e+015 *-4.5036 -4.5036 4.50369.0072 9.0072 -9.0072-4.5036 -4.5036 4.5036顯然此結果是不正確的,因為 A不可逆。例2.3解方程:3357 x211220。解:Matlab軟件定義了 “符號變量”的概念。在 號變

29、量”編寫程序la03.m:%求解符號行列式方程MATLAB的M文件編輯器中,應用“符clear all%syms x%A=3,2,1,1;3,2,2-xA2,1;5,1,3,2;7-xA2,1,3,2D=det(A)%f=factor(D)%X=solve(D)%在MATLAB的命令窗口輸入:清除各種變量定義x為符號變量%給矩陣A賦值計算含符號變量矩陣 A的行列式D 對行列式D進行因式分解從因式分解的結果,可以看出方程的解求方程“D= 0”的解la03運行結果為:A =3,2,1,13,2,2-xA2,15,1,3,27-xA2,1,3,2-6+9*xA2-3*xA4f =-3*(x-1)*(

30、x+1)*(xA2-2)X =1-12A(1/2)-2A(1/2)向量x即為方程的解,MATLAB1對符號變量可以得出解析解。例2.4請用Matlab軟件驗證行列式按行(列)展開公式:aikAjk A ,k i0 ,解:用Matlab程序構造了一個5階隨機數方陣A。首先,按第一彳s an Ana12Ai2a15A化,驗證s是否與A的行列式相等;其次,計算 A元素與第三行元素對應的代數余子式乘積之和:sa11A31a12 A32a15 A35當i j 當i j亍展開:的第一行,驗算s是否為0。在MATLAB的M文件編輯器中,編寫程序la04.m :%驗證行列式按行(列)展開公式 clearA=r

31、ound(10*randn(5); % D=det(A);%矩陣A按第一行元素展開: s=0;構造5階隨機數方陣 計算矩陣A的行列式s=a11*A11+a12*A12+ -+a15*A15T=A;T(1,:)=;T(:,i)=;刪去陣矩第 刪去矩陣第 此時,|T|1行i列為矩陣A元素a1i的余子式s=s+A(1,i)*(-1)A(1+i)*det(T);ende=D-s在 MATLABla04計算結果為:%的命令窗口中輸入:驗算D與s是否相等e =0在 MATLAB的M文件編輯器中,編寫程序la05.m :%計算5階方陣A的第一行元素與第三行元素對應的代數余子式乘積之和:% s=a11*A31

32、+a12*A32+ +a15*A35clearA=round(10*randn(5); % s=0; for i=1:5T=A;T(3,:)二口;%T(:,i)電%s=s+A(1,i)*(-1)A(3+i)*det(T); ends%構造5階隨機數方陣刪去矩陣第3行刪去矩陣第i列此時,|T|為矩陣A元素a3i的余子式驗算s是否為0for i=1:5在MATLAB命令窗口中輸入:la05計算結果為:2.4實驗習題1.利用函數randn和函數round構造一個6X6的隨機整數矩陣 A,驗證矩陣A的行列式滿 足下列性質:(1)AT ,驗證B A ;(2)(3)把矩陣A的第三列加到第一列后的矩陣為B,

33、驗證B2.構造5階方陣A,驗證公式:AA A A A I ,其中A為矩陣A的伴隨矩陣,同階單位陣。3.求解非齊次線性方程組23xi13x214X314x47X51042x12x2X36x414X51144x15x29X32x49X5212。4x17x2X30X40X5569x1X2X39x410X5120把矩陣A的第二行和第五行進行對調后的矩陣為B,驗證B4.求下列矩陣的逆:(1)a2 a4 abb2b4c2 c4 cdd2d41016205553171061712126218531511513711(2)6032112220146117000451139121010110(1)5.求下列含符

34、號變量的行列式,并要求把結果因式分解。實驗3向量組的相關性及方程組的通解3.1實驗目的.掌握Matlab軟件分析向量組線性相關性的方法;.掌握Matlab軟件求解線性方程組通解的各種方法;.通過Matlab軟件進一步理解和認識齊次線性方程組解空間的概念。實驗指導本實驗利用MATLAB軟件來分析向量組的線性相關性;向量的線性表示;齊次線性方 程組的通解及非齊次線性方程組的通解。表3.1給出了與本實驗相關的 MATLAB命令或函數。表3.1與本實驗相關的MATLAB命令或函數命令功能說明位置R,s=rref(A)把矩陣A的最簡行階梯矩陣賦給 R; s是一個行向量,它的元素由 R的基 準元素所在的列

35、號構成。例3.1length(s)計算向量s的長度,即向量s的維數。例3.1end矩陣的最大下標,即:最后一行或最后一列。例3.1null(A,r)計算齊次線性方程組 Ax = 0的基礎解系例3.1x0=Ab求非齊次線性方程組 Ax = b的一個特解x0例3.1fprintf按指定格式寫文件,和 C語言功能類似。例3.2find(s)計算向量s中非零元素的下標例3.2subs(A,k,n)將A中的所有符號變量k用數值n來替代例3.3實驗內容例3.1求非齊次線性方程組2x14x2x34x416x523x16x22x36x423x57的通解。3x16x24x36x419x523x12x25x32x

36、419x543解:在MATLAB命令窗口,輸入以下命令:A=2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19;%輸入系數矩陣Ab=-2;7;-23;43;%輸入常數列向量bR,s=rref(A,b)%把增廣矩陣的最簡行階梯矩陣賦給R%而R的所有基準兀素在矩陣中的列號構成了行向量s計算結果為:R = TOC o 1-5 h z 120293001028000000000000在得出該方程組增廣矩陣的最簡行階梯矩陣R 后,根據線性代數知識可以得到該齊次線性方程組的通解。 下面,在 MATLAB 的 M 文件編輯器中, 編寫程序 la06.m ,可以

37、給出該 方程組的一個具體特解和對應齊次方程組的通解。 % 求齊次線性方程組的通解 clearA=2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19;%b=-2;7;-23;43;%R,s=rref(A,b);%m,n=size(A); % x0=zeros(n,1);%r=length(s);%x0(s,:)=R(1:r,end);%disp( 非齊次線性方程組的特解為: x0%輸入系數矩陣A輸入常數列向量b把增廣矩陣的最簡行階梯矩陣賦給R而 R 的所有基準元素在矩陣中的列號構成了行向量s矩陣 A 的行數、列數賦給了變量m、 n將特解 x0 初始

38、化為 N 維零列向量矩陣 A 的秩賦給變量r將矩陣 R 的最后一列按基準元素的位置給特解x0 賦值)顯示特解 x0disp( 對應齊次線性方程組的基礎解系為: )x=null(A,r) %得到齊次線性方程組在 MATLAB 命令窗口中輸入:la06Ax = 0的基礎解系x運算結果為:非齊次線性方程組的特解為:x0 =30800對應齊次線性方程組的基礎解系為:x =-2-2-90000-20100012210則方程組的通解為:k10k2001009300k3280010此計算方法和與傳統的筆算方法一致,所以其結果也是一致的。 齊次線性方程組的特解還可以用Matlab的矩陣左除運算來求得,直接在

39、MATLAB命令窗口輸入以下命令:b=-2;7;-23;43;x0=Ab%x=null(A,r)%運算結果為:A=2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19;用矩陣左除運算求得方程組特解x0得到齊次線性方程組 Ax = 0的基礎解系xWarning: Rank deficient, rank = 2 tol = 4.3099e-014.x0 =007.333300.3333 x =-2 -2 -9 TOC o 1-5 h z中特解x0與前一方法的特解不同。(注:如果欠定方程組有解,則它有無窮個特解,通解 中只需

40、要任何一個特解即可)22901000方程組的通解為:k10k2 0k3222 301000011 31329614332例3.2已知向量組 10,20 ,30 ,42 ,52 ,求出它的2861923122最大無關組,并用該最大無關組來線性表示其它向量。 解:用筆計算的過程為:1, 2, 3, 4, 52 ,對矩陣A進行初等行變換,最后變為最簡92 3 122行階梯矩陣:10100110000100000000321 ,該矩陣基準元素所在的列號為001 , 2, 4 ,則原向量組的一個最大無關組為: 1, 2, 4 。根據該矩陣的第3 列,可以得到: 31 11 20 4 ;同理,可以得到:

41、53 12 2 1 4 。根據以上思路,編寫 Matlab 程序 la07.m :% 找向量組的最大無關組,并用它線性表示其它向量 cleara1=1;1;0;2;2;%輸入 5 個列向量a2=3;4;0;8;3;a3=2;3;0;6;1;a4=9;3;2;1;2;a5=6;-2;2;-9;2;A=a1,a2,a3,a4,a5;%R,s=rref(A); % % % r=length(s);%fprintf( 最大線性無關組為: for i=1:r fprintf(a%d ,s(i) % end for i=1:r%A0(:,i)=A(:,s(i); endA0 s0=1,2,3,4,5; f

42、or i=1:rs0(s(i)=0; ends0=find(s0);for i=1:5-r% s(i)%由 5 個列向量構造矩陣A把矩陣 A 的最簡行階梯矩陣賦給了 R而 R 的所有基準元素在矩陣中的列號構成了行向量s向量 s 中的元素即為最大無關組向量的下標最大無關組所含向量個數賦給r) % 輸出字符串分別輸出最大無關組的向量al ,從矩陣 A 中取出最大無關組賦給A0顯示最大無關組矩陣A0構造行向量s0是最大無關組的列號若 s0 的某元素不為 0,表示該元素為矩陣A 中% 除最大無關組以外其它列向量的列號刪除 s0 中的零元素此時 s0 中元素為其它向量的列號用最大無關組來線性表示其它向量

43、fprintf(a%d=,s0(i)for j=1:rfprintf(%3d*a%d+ ,R(j,s0(i),s(j);endfprintf(bb n);%去掉最后一個” +”end在 MATLAB 命令窗口中輸入: la07運行結果為:最大線性無關組為: a1 a2 a4A0 = TOC o 1-5 h z 39430028132a3= -1*a1+ 1*a2+ 0*a4a5= 3*a1+ -2*a2+ 1*a4例 3.3 已知齊次線性方程組:1 2k x1 3x23x33x43x13x13x12 k x2 3x33x22 k x33x2 3x3113x43x4k x40 , 當 k 取何值

44、時方程組有非0la08.m定義符號變量k給系數矩陣賦值算出系數矩陣的行列式D解方程“d= 0,得到解kk ,即k值分別把 k 值代入系數矩陣A 中顯示 k 的取值計算齊次線性方程組 “ Ax=0” 的基礎解系零解?在有非零解的情況下,求出其基礎解系。解:在 MATLAB 的 M 文件編輯器中,編寫程序% 計算帶符號變量的齊次線性方程組的解clearsyms k%A=1-2*k,3,3,3;3,2-k,3,3;3,3,2-k,3;3,3,3,11-k; %D=det(A);%kk=solve(D);%for i=1:4AA=subs(A,k,kk(i); %fprintf(當 k=);disp(

45、kk(i);%fprintf(基礎解系為: n);disp(null(AA)%end在 MATLAB 命令窗口中輸入:la08運算結果為:當 k=7/2基礎解系為: 1 2 2 -2當 k=14基礎解系為:當 k=-1 基礎解系為: -1, -1 1, 0 0, 1 0, 0 當 k=-1 基礎解系為: -1, -1 1, 0 0, 1 0, 03.4 實驗習題1.求下列向量組的一個最大無關組,并把其余向量用此最大無關組線性表示。2. 求非齊次線性方程組6x13x22x33x44x554x12x2x32x43x54 的通解。4x12x23x32x4x502x1x27x33x42x513已知齊次

46、線性方程組:2k x12x24x3 4x402x13k x2x3 0 x40,當 k 取何值時方程組有非3x12x25k x3 4x400 x1x27x38 2k x40零解?在有非零解的情況下,求出其基礎解系。2604201331816,218 ,32,414 ,510 ,68。51513362561801260實驗4特征向量與二次型4.1實驗目的.掌握Matlab軟件對向量組正交化的方法;.掌握Matlab軟件求方陣特征值和特征向量的方法;.掌握Matlab軟件分析方陣是否可對角化的方法;.掌握Matlab軟件化二次型為標準型的方法;.掌握Matlab軟件分析對稱陣是否正定的方法;. 了解

47、MATLAB軟件關于矩陣分解的命令。4.2實驗指導本實驗利用MATLAB軟件來求解矩陣的特征值和特征向量;分析矩陣的對角化問題; 給出二次型標準化的方法;分析二次型的正定性;了解矩陣的分解命令。表 4.1給出了與本 實驗相關的MATLAB命令或函數。表4.1與本實驗相關的MATLAB命令或函數命令功能說明位置orth(A)求出矩陣A的列向量組構成空間的一個正交規范基例4.1P=poly(A)計算矩陣A的特征多項式,P是一個行向量,其元素是多項式系數。例4.2roots(P)求該多項式P的零點例4.2r=eig(A)r為一列向量,其元素為矩陣 A的特征值。例4.2V,D=eig(A)矩陣D為矩陣

48、A特征值所構成的對角陣,矩陣 V的列為矩陣A的單位特 征向量,它與 D中的特征值一一對應。例4.2eval(lamda)把符號形式轉換為數值形式例4.2V,D=schur(A)同上例4.4U,S,V=svd(A)U、V都是正交矩陣,S是矩陣A的奇異值構成的對角矩陣, 滿足:A= USVT例4.6L,U=lu(A)L為準下三角矩陣,U為上三角矩陣,滿足:A=LU例4.6Q,R=qr(A)Q為正交矩陣,R為上三角矩陣,滿足: A=QR例4.6L=chol(A)L為上三角矩陣,滿足:A=LtL (要求矩陣A為對稱正定陣)例4.64.3實驗內容115例4.1設向量組:12,21 ,31 ,求由這三個向

49、量生成的子空間V的320一個標準正交基。解:在MATLAB命令窗口輸入:a1=1;2;3;a2=-1;1;2;a3=5;1;0;將矩陣A的列向量組正交規范化,% P的列構成了空間 V的一個標準正交基% P的列數反應了空間 V的維數A=a1,a2,a3P=orth(A)%運算結果為:P =-0.9266 0.3359-0.3116 -0.4343-0.2105 -0.8358從矩陣 P 的列數可以看出,原向量組是線性相關的,它生成的空間是二維的。2220192 16911例 4.2 求矩陣 A84610847解:在 MATLAB 的 M 文件編輯器中,編寫法:% 矩陣特征值的求解方法clear的

50、特征值。la09.m 文件,它給出了三種求矩陣特征值的方A=2,-2,-20,-19;-2,16,-9,11;-8,4,-6,1;0,-8,-4,-7;%方法一:syms k%B=A-k*eye(length(A);%D=det(B);%lamda1=solve(D)%方法二: P=poly(A);%lamda2=roots(P)%方法三: lamda3=eig(A)%定義符號變量k構造矩陣B=(A-kI)計算行列式:|A-kI|求 |A-kI|=0的符號形式的解計算矩陣A 的特征多項式向量 P 的元素為該多項式的系數求該多項式的零點,即特征值直接求出矩陣A 的特征值在 MATLAB 命令窗口

51、中輸入:la09運算結果為:lamda1 =-1/3*(19585+120*22674A(1/2)人(1/3)-385/3/(19585+120*22674A(1/2)人(1/3)-7/31/6*(19585+120*22674A(1/2)F(1/3)+385/6/(19585+120*22674A(1/2)4(1/3)-7/3+1/2*i*3A(1/2)*(-1/3*(19585+120*22674A(1/2)F(1/3)+385/3/(19585+120*22674A(1/2)人(1/3)1/6*(19585+120*22674A(1/2)A(1/3)+385/6/(19585+120*2

52、2674A(1/2)A(1/3)-7/3-1/2*i*3A(1/2)*(-1/3*(19585+120*22674A(1/2)A(1/3)+385/3/(19585+120*22674A(1/2)A(1/3)lamda2 =-17.334712.00005.1673 + 6.3598i5.1673 - 6.3598ilamda3 =-17.33475.1673 + 6.3598i125.1673 - 6.3598i12.0000其中,方法一是根據筆算矩陣特征值的算法編寫而成, MATLAB 給出了一個符號形式的解,可以進一步把符號解轉化為數值解,輸入以下命令:lamda1=eval(lamda

53、1)結果為:lamda1 =12.0000-17.33475.1673 - 6.3598i5.1673 + 6.3598i例 4.3 求下列矩陣A 的特征值和特征向量,并判斷矩陣是否可以對角化,若能對角化,請找出可逆矩陣V ,使 V 1AVD 。 HYPERLINK l bookmark17 o Current Document 1234(1) A2 13; (2)A21122解: ( 1 )在 MA TLAB 命令窗口輸入:A=1,2,3;2,1,3;1,1,2;V,D=eig(A)%運行結果為:V =-0.6396 -0.7071 -0.5774-0.6396 0.7071 -0.5774

54、-0.4264 0.0000 0.5774D =5.0000000 -1.000001211012 ; ( 3) A 43 010101矩陣 D 為矩陣 A 的特征值構成的對角陣矩陣 V 的列向量為矩陣A 與特征值 D 對應的特征向量00 0.0000從矩陣 D 可以看出,矩陣A 有三個不同的特征值 5 , -1 , 0 ,則矩陣 V 的 3 個列向量線性無關,所以矩陣A 可以對角化。可以在MATLAB 窗口中,驗算結果V 1 AV D 的正確性。( 2 )在 MATLAB 命令窗口輸入:A=4,-1,-2;2,1,-2;2,-1,0;V,D=eig(A)運行結果為:V =0.7276 -0.

55、5774 0.74370.4851 -0.5774 0.23730.4851 -0.5774 0.62502.0000000 1.0000000 2.0000屬于這個特征根的特征向量從矩陣 D 可以看出, 132 是矩陣 A 的二重特征根, 是否存在兩個線性無關的特征向量,需要分析齊次線性方程組 A 2I x 0解空間的維數是否等于 2,即分析3 rank A 2I 是否等于2。在MATLAB 命令窗口繼續輸入:if 3-rank(A-2*eye(3)=2% 判斷齊次線性方程組 (A2 2 I)x=0 解空間的維數是否為2disp( 能對角化 );% 如果解空間維數為 2 ,則存在 2 個線性

56、無關特征向量elsedisp( 不能對角化 );end運行結果為:能對角化從對角矩陣D 和特征向量構成的矩陣V 中也可以看出,矩陣V 的第一列和第三列是屬于特征值 2 的特征向量,它們是線性無關的,則矩陣V 的 3 個列向量線性無關,故矩陣A可以對角化。在MATLAB 命令窗口中,可以驗證結果V 1AV D 的正確性。( 3 )在MATLAB 命令窗口輸入:A=1,-1,0;4,-3,0;1,0,1;V,D=eig(A)運行結果為:V =0 0.4364 -0.43640 0.8729 -0.87291.0000 -0.2182 0.2182D =1.0000000 -1.0000000 -1

57、.0000從矩陣 D 可以看出, 231 是矩陣 A 的二重特征根,在MATLAB 命令窗口繼續輸入:if 3-rank(A+eye(3)=2% 判斷齊次線性方程組 (A2 2 I)x=0 解空間的維數是否為2disp( 能對角化 );% 如果解空間維數為 2 ,則存在 2 個線性無關特征向量elsedisp( 不能對角化 );end運行結果為:不能對角化其實,從對角陣D 和特征向量構成的矩陣V 中也可以看出,矩陣V 的第二列和第三列是屬于特征值-1 的特征向量,它們是線性相關的,即屬于特征值 -1 的線性無關的特征向量只有一個。故矩陣A 不能對角化。例4.4用正交變換法將二次型 f X1,x

58、2,x3x12 2 x2 2 2x32 4x2 x 3化為標準形。解:在 MATLAB 的 M 文件編輯器中,編寫 % 用正交變換法將二次型化為標準型 clearA=1,0,0;0,2,2;0,2,2;%V,D=eig(A);% 或: V,D=schur(A) % disp(正交矩陣為:);Vdisp(對角矩陣為:);Ddisp( 標準化的二次型為: ); syms y1 y2 y3f=y1,y2,y3*D*y1;y2;y3 在 MATLAB 命令窗口中輸入: la10 運行結果為: 正交矩陣為: V =0 1.00000-0.70710 0.70710.70710 0.7071對角矩陣為為:

59、 D =000010004標準化的二次型為: f =y2A2+4*y3A2矩陣 V 為所求正交矩陣,把la10.m 文件:輸入二次型的矩陣A其中矩陣 V 即為所求正交矩陣矩陣 D 為矩陣 A 的特征值構成的對角陣結果和eig( )函數相同x Vy 代入二次型fxT Ax ,得:f xTAx yT VT AV y yT y y22 4y32 。例 4.5 判斷下列矩陣的正定性:1111231 ) A 121 ; ( 2) B 221153153) C121254 ; ( 4) D145321230103解:在 MATLAB 命令窗口輸入:A=1,1,-1;1,2,-1;-1,-1,5; B=1,

60、2,3;2,2,-1;3,-1,5; C=-3,2,1;2,-3,0;1,0,-3; D=1,2,-1;2,5,-4;-1,-4,5; lamda_A=eig(A) lamda_B=eig(B) lamda_C=eig(C) lamda_D=eig(D) 運行結果為:lamda_A = 0.3542 2.0000 5.6458lamda_B = -1.8900 3.2835 6.6065lamda_C = -5.2361 -3.0000 -0.7639lamda_D = -0.00001.46899.5311從矩陣特征值的正負,可以看出矩陣A 正定,矩陣B 不定,矩陣C 負定,而矩陣D 的第一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論