《矩陣及線型方程組》PPT課件.ppt_第1頁
《矩陣及線型方程組》PPT課件.ppt_第2頁
《矩陣及線型方程組》PPT課件.ppt_第3頁
《矩陣及線型方程組》PPT課件.ppt_第4頁
《矩陣及線型方程組》PPT課件.ppt_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Matlab 與計算方法,華僑大學計算機學院 張國亮 2010.9,第3章 矩陣及線型方程組,3.1.1 數值矩陣的生成 ,遵循下列幾個基本步驟: 用空格或者逗號來區(qū)分一行里不同的元素。 用分號;來區(qū)分不同的行。 用方括號來括住全體元素,3.1 MATLAB矩陣表示和運算,MATLAB,即“矩陣實驗室”,它是以矩陣為基本運算單元,第3章 矩陣及線型方程組,3.1.1 數值矩陣的生成: 例: Time = 11 12 1 2 3 4 5 6 7 8 9 10 Time = 11 12 1 2 3 4 5 6 7 8 9 10 X_Data = 2.32 3.43;4.37 5.98 X_Data

2、 = 2.43 3.43 4.37 5.98 vect_a = 1 2 3 4 5 vect_a = 1 2 3 4 5 Null_M = %生成一個空矩陣,3.1 MATLAB矩陣表示和運算,第3章 矩陣及線型方程組,3.1.2 復數矩陣輸入 兩種方式: 1 直接在數組元素中加入復數單位,a+i*b形式; 2 輸入數據矩陣,按照矩陣相乘的方式來表示矩陣 第一種方式 a=2.7;b=13/25; C=1,2*a+i*b,b*sqrt(a); sin(pi/4),a+5*b,3.5+1 C = 1 27/5 + 13/25i 317/371 985/1393 53/10 9/2,3.1 MATL

3、AB矩陣表示和運算,第3章 矩陣及線型方程組,3.1.2 復數矩陣輸入 第2種方式 R=1 2 3;4 5 6, M=11 12 13;14 15 16 R = 1 2 3 4 5 6 M = 11 12 13 14 15 16 CN=R+i*M CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i,3.1 MATLAB矩陣表示和運算,第3章 矩陣及線型方程組,3.1.3 符號矩陣的生成 在MATLAB中輸入符號矩陣的方法和輸入數值類型

4、的矩陣在形式上很相像,只不過要用到符號矩陣定義函數sym,或者是用到符號定義函數syms,先定義一些必要的符號變量,再像定義普通矩陣一樣輸入符號矩陣。 1用命令sym定義矩陣 2. 用命令syms定義矩陣,3.1 MATLAB矩陣表示和運算,第3章 矩陣及線型方程組,3.1.3 符號矩陣的生成 1用命令sym定義矩陣: 這時的函數sym實際是在定義一個符號表達式,這時的符號矩陣中的元素可以是任何的符號或者是表達式,而且長度沒有限制,只是將方括號置于用于創(chuàng)建符號表達式的單引號中。如下例: sym(a b c;Jack,Help Me!,NO WAY!,) sym_matrix = a b c J

5、ack Help Me! NO WAY! sym_digits = sym(1 2 3;a b c;sin(x)cos(y)tan(z) sym_digits = 1 2 3 a b c sin(x)cos(y)tan(z,3.1 MATLAB矩陣表示和運算,第3章 矩陣及線型方程組,3.1.3 符號矩陣的生成 2 用命令syms定義矩陣 先定義矩陣中的每一個元素為一個符號變量,而后像普通矩陣一樣輸入符號矩陣。 例: syms a b c M1 = sym(Classical); M2 = sym(Jazz);M3 = sym(Blues) syms_matrix = a b c; M1, M

6、2, M3 syms_matrix = a b c Classical Jazz Blues,3.1 MATLAB矩陣表示和運算,第3章 矩陣及線型方程組,包含全零陣、單位陣、全一陣、隨機陣 命令 全零陣,函數 zeros 格式 B = zeros(n) %生成nn全零陣 B = zeros(m,n) %生成mn全零陣 B = zeros(m n) %生成mn全零陣 B = zeros(d1,d2,d3) %生成d1d2d3全零陣或數組 B = zeros(d1 d2 d3) %生成d1d2d3全零陣或數組 B = zeros(size(A) %生成與矩陣A相同大小的全零陣 命令 單位陣,函數

7、 eye 格式 Y = eye(n) %生成nn單位陣 Y = eye(m,n) %生成mn單位陣 Y = eye(size(A) %生成與矩陣A相同大小的單位陣,3.2 特殊矩陣的生成,第3章 矩陣及線型方程組,命令 全1陣, 函數 ones 格式 Y = ones(n) %生成nn全1陣 Y = ones(m,n) %生成mn全1陣 Y = ones(m n) %生成mn全1陣 Y = ones(d1,d2,d3) %生成d1d2d3全1陣或數組 Y = ones(d1 d2 d3) %生成d1d2d3全1陣或數組 Y = ones(size(A) %生成與矩陣A相同大小的全1陣,3.2

8、特殊矩陣的生成,第3章 矩陣及線型方程組,命令 均勻分布隨機矩陣 ,函數 rand 格式 Y = rand(n) %生成nn隨機矩陣,其元素在(0,1)內 Y = rand(m,n) %生成mn隨機矩陣 Y = rand(m n) %生成mn隨機矩陣 Y = rand(m,n,p,) %生成mnp隨機矩陣或數組 Y = rand(m n p) %生成mnp隨機矩陣或數組 Y = rand(size(A) %生成與矩陣A相同大小的隨機矩陣 例:產生一個34隨機矩陣 R=rand(3,4) R = 0.9501 0.4860 0.4565 0.4447 0.2311 0.8913 0.0185 0

9、.6154 0.6068 0.7621 0.8214 0.7919 隨機矩陣每次產生的數據是不同的,3.2 特殊矩陣的生成,第3章 矩陣及線型方程組,3.3.1 加、減運算 運算符:“”和“” 。 運算規(guī)則:對應元素相加、減,即按線性代數中矩陣的“十”,“一”運算進行。 A = 1, 1, 1; 1, 2, 3; 1, 3, 6 B = 8, 1, 6; 3, 5, 7; 4, 9, 2 A+B A-B 結果顯示:A+B= 9 2 7 4 7 10 5 12 8 A-B= -7 0 -5 -2 -3 -4 -3 -6 4,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.2 矩陣相乘 運算符

10、:* 運算規(guī)則:按線性代數中矩陣乘法運算進行,即放在前面的矩陣的各行元素,分別與放在后面的矩陣的各列元素對應相乘并相加。 1兩個矩陣相乘 X= 2 3 4 5; 1 2 2 1 Y=0 1 1; 1 1 0;0 0 1;1 0 0 Z=X*Y 結果顯示為: Z= 8 5 6 3 3 3,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.2 矩陣相乘 運算符:.* 2 矩陣的數乘 例:a=2*X, 則顯示:a = 4 6 8 10 2 4 4 2 向量的點乘(內積):維數相同的兩個向量的點乘。 數組乘法: A.*B表示A與B對應元素相乘,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.2

11、矩陣相乘 3 矩陣(向量)的點乘(內積) 函數 dot 格式 C = dot(A,B) %若A、B為向量,則返回向量A與B的點積,A與 % B長度相同;若為矩陣,則A與B有相同的維數。 C = dot(A,B,dim) %在dim維數中給出A與B的點積 例: X=-1 0 2; Y=-2 -1 1; Z=dot(X, Y) 則顯示:Z = 4,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.2 矩陣相乘 4 向量叉乘 函數 cross 格式 C = cross(A,B) % 若A、B為向量,則返回A與B的叉 乘,即C=AB;矩陣同理。 C = cross(A,B,dim) % 在dim維數

12、中給出向量A與B的叉積。 A和B必須具有相同的維數,size(A,dim)和 size(B,dim)必須是3。 例 計算垂直于向量(1, 2, 3)和(4, 5, 6)的向量。 a=1 2 3; b=4 5 6; c=cross(a,b) 結果顯示: c= -3 6 -3,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.2 矩陣相乘 5 混合積 混合積由cross 、 dot函數實現: 例: 計算向量a=(1, 2, 3)、b=(4, 5, 6)和c=(-3, 6, -3) 的混合積解: a=1 2 3; b=4 5 6; c=-3 6 -3; x=dot(a, cross(b, c) 結

13、果顯示:x = 54 注意:先叉乘后點乘,順序不可顛倒,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.2 矩陣相乘 6 矩陣的卷積和多項式乘法 函數 conv 格式 w = conv(u,v) % u、v為向量,其長度可不相同。 說明: 長度為m的向量序列u和長度為n的向量序列v的卷積定義為: w(1) = u(1)*v(1) w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1) w(n) = u(1)*v(n)+u(2)*v(n-1)+ +u(n)*v(1),3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.2 矩陣相乘 6 矩陣的卷積和多項式乘法 例: 展開多項

14、式 w=conv(1,2,2,conv(1,4,1,1) w = 1 7 16 18 8 P=poly2str(w,s) %將w表示成多項式 P = s4 + 7 s3 + 16 s2 + 18 s + 8 注意:沒有的項要用“0”來表示。,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.3 除法運算 Matlab提供了兩種除法運算:左除()和右除(/)。一般情況下, x=ab是方程a*x =b的解,而x=b/a是方程x*a=b的解。 例:a=1 2 3; 4 2 6; 7 4 9 b=4; 1; 2; x=ab (區(qū)分x=b/a) 則顯示:x=-1.5000 2.0000 0.5000,

15、3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.3 除法運算 如果矩陣a為非奇異矩陣,則ab和b/a可通過a的逆矩陣與b陣得到: ab = inv(a)*b b/a = b*inv(a) 注意:解方程組的時候inv()函數應用很少,因為很多情況下無法滿足非奇異的條件。 數組除法: A./B表示A中元素與B中元素對應相除,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.4 矩陣乘方 運算符: 運算規(guī)則: (1)當A為方陣,P為大于0的整數時,AP表示A的P次方,即A自乘P次; P為小于0的整數時,AP表示A的-|P|次方。 (2)當A為方陣,p為非整數時,則 ,其中V為A的特征向 量,

16、為特征值對角矩陣。如果有重根,以上指令不成立。 其中V為A的特征向量, (3)標量的數組乘方P.A,標量的數組乘方定義為 數組乘方:A.P:表示A的每個元素的P次乘方,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.5 重要矩陣函數 方陣指數,函數 expm 矩陣的對數,函數 logm 格式 Y = expm(A) Y = logm(X) %計算矩陣X的對數,它是expm(X)的反函數。 例 A=1 1 0;0 0 2;0 0 -1; Y=expm(A) Y = 2.7183 1.7183 1.0862 0 1.0000 1.2642 0 0 0.3679 A=logm(Y) A = 1.

17、0000 1.0000 0.0000 0 0 2.0000 0 0 -1.0000,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.6方陣的函數 函數 funm 格式 F = funm(A,fun) %A為方陣,計算由fun指定的A的矩陣函數,fun可以是任意基本函數,如sin、cos等等,例如:funm(A, exp)=expm(A) 與前面指數運算的方式是一樣的,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.7 矩陣轉置 運算符: 運算規(guī)則:若矩陣A的元素為實數,則與線性代數中矩陣的轉置相同。 若A為復數矩陣,則A轉置后的元素由A對應元素的共軛復數構成,3.3 矩陣運算,第3章

18、矩陣及線型方程組,3.3.8方陣的行列式 函數 det 格式 d = det(X) 例: A=1 2 3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9 D=det(A) D = 0,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.9 逆與偽逆 命令 逆, 函數 inv 格式 Y=inv(X) %求方陣X的逆矩陣。若X為奇異陣或 近似奇異陣,將給出警告信息。 例: 求的逆矩陣 A=1 2 3; 2 2 1; 3 4 3; Y=inv(A) 則結果顯示為 Y = 1.0000 3.0000 -2.0000 -1.5000 -3.0000 2.5000 1.0000 1.0

19、000 -1.0000,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.9 逆與偽逆 命令 偽逆, 函數 pinv 格式 B = pinv(A) %求矩陣A的偽逆 B = pinv(A, tol) %tol為誤差:max(size(A)*norm(A)*eps 說明:當矩陣為長方陣時,方程AX=I和XA=I至少有一個無解,這時A的偽逆能在某種程度上代表矩陣的逆,若A為非奇異矩陣,則pinv(A) = inv(A)。 A = 1 1 1;2 2 2;1 2 3,inv(A),pinv(A) 關于求偽逆的方法有很多鐘,感興趣的可以參考相關資料,求偽逆是矩陣以及方程組中十分重要的內容,3.3 矩

20、陣運算,第3章 矩陣及線型方程組,3.3.10 矩陣的跡 、秩、范數、條件數 矩陣的跡 函數 trace 格式 b=trace (A) %返回矩陣A的跡,即A的對角線元素之和。 矩陣的秩 函數 rank 格式 k = rank (A) %求矩陣A的秩,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.10 矩陣的跡 、秩、范數、條件數 矩陣和向量的范數 函數 norm 矩陣的條件數 函數 cond 格式 c = cond(X) %X的最大奇異值和最小奇異值的商。 說明 線性方程組AX=b的條件數是一個大于或者等于1的實數,用來衡量關于數據 中的擾動,也就是A/或b對解X的靈敏度,一個差條件的

21、方程組的條件數很大,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.11 符號矩陣運算 關于符號計算的問題在第四章來詳細講,這里記住Matlab 把符號矩陣的四則運算簡化為與數值矩陣完全相同的運算方式,其運算符為:加()、減()、乘()、除(/、)等。符號矩陣的其他一些基本運算包括轉置()、行列式(det)、逆(inv)、秩(rank)、冪()和指數(exp和expm)等都與數值矩陣相同。 例: A = sym(1/x,1/(x+1);1/(x+2),1/(x+3); B = sym(x,1;x+2, 0); C=B-A 則顯示: C= x-1/x 1-1/(x+1) x+2-1/(x+2

22、) -1/(x+3,3.2 矩陣運算,第3章 矩陣及線型方程組,3.3.12 矩陣關系運算 M AT L A B有用于比較矩陣的六個關系運算符,也可以對矩陣與一個標量進行比較,即矩陣中的每個元素與標量進行比較。 關系運算符如下: 大于 = 大于等于 = = 等于 = 不等于 在一個表達式中,算術運算符優(yōu)先級最高,其次是關系運算符,最低級別是邏輯運算符,圓括號可以改變其順序,3.3 矩陣運算,第3章 矩陣及線型方程組,3.3.13 矩陣邏輯運算 設矩陣A和B都是mn矩陣或其中之一為標量,在MATLAB中定義了如下的邏輯運算: (1)矩陣的與運算 格式 A1 3 5 0,B=1 0 5 3;1 5

23、 0 5 A = 0 2 3 4 1 3 5 0 B = 1 0 5 3 1 5 0 5,3.3矩陣運算,C1=A4 5 6;7 8 9 L,U=lu(A) L = 0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0 U = 7.0000 8.0000 9.0000 0 0.8571 1.7143 0 0 0.0000,3.4 矩陣分解,第3章 矩陣及線型方程組,3.4.2 Cholesky分解 函數 chol 格式 R = chol(X) %如果X為n階對稱正定矩陣,則存在一個實的非奇異上三角陣R,滿足R*R = X;若X非正定,則產生錯誤信息。

24、R,p = chol(X) %不產生任何錯誤信息,若X為正定陣,則p=0,R與上相同;若X非正定,則p為正整數,R是有序的上三角陣,3.4 矩陣分解,第3章 矩陣及線型方程組,3.4.2 Cholesky分解 X=pascal(4) %產生4階pascal矩陣 X = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 R,p=chol(X) R = 1 1 1 1 0 1 2 3 0 0 1 3 0 0 0 1 p = 0,3.4 矩陣分解,第3章 矩陣及線型方程組,3.4.3 特征值分解* 函數 eig 格式 d = eig(A) %求矩陣A的特征值d,以向量形式存放d。

25、 d = eig(A,B) %A、B為方陣,求廣義特征值d,以向量形式存放d。 V,D = eig(A) %計算A的特征值對角陣D和特征向量V,使 AV=VD成立。 V,D = eig(A,B) %計算廣義特征值向量陣V和廣義特征值陣D,滿足AV=BVD。 說明 一般特征值問題是求解方程: 解的問題。廣義特征值問題是求方程: 解的問題,3.4 矩陣分解,第3章 矩陣及線型方程組,3.4.4 奇異值分解 函數 svd 格式 s = svd (X) %返回矩陣X的奇異值向量 U,S,V = svd (X) %返回一個與X同大小的對角矩陣S,兩個酉矩陣U和V,且滿足A= U*S*V。若A為mn陣,則

26、U為 mm陣,V為nn陣。奇異值在S的對角線上,非負且按降序排列。 U,S,V = svd (X,0) %得到一個“有效大小”的分解,只計算出矩陣U的前n列,矩陣S的大小為nn,3.4 矩陣分解,第3章 矩陣及線型方程組,3.4.4 奇異值分解 例: A=1 2;3 4;5 6;7 8; U,S,V=svd(A) U = -0.1525 -0.8226 -0.3945 -0.3800 -0.3499 -0.4214 0.2428 0.8007 -0.5474 -0.0201 0.6979 -0.4614 -0.7448 0.3812 -0.5462 0.0407,3.4 矩陣分解,S = 14

27、.2691 0 0 0.6268 0 0 0 0 V = -0.6414 0.7672 -0.7672 -0.6414,第3章 矩陣及線型方程組,線性方程的求解分為兩類: 一類是方程組求唯一解或求特解,另一類是方程組求無窮解即通解。兩類問題可以通過系數矩陣的秩來判斷: 若系數矩陣的秩r=n(n為方程組中未知變量的個數),則有唯一解; 若系數矩陣的秩rn,則可能有無窮解; 線性方程組的無窮解 = 對應齊次方程組的通解+非齊次方程組的一個特解;其中,特解的求法屬于解的第一類問題,通解部分屬第二類問題,3.5 線性方程的組的求解,第3章 矩陣及線型方程組,3.5.1 求線性方程組的唯一解或特解(第一

28、類問題) 這類問題的求法分為兩類: 一類主要用于解低階稠密矩陣 直接法; 另一類是解大型稀疏矩陣 迭代法。 1利用矩陣除法求線性方程組的特解(或一個解) 方程:AX=b 解法:X=Ab,3.5 線性方程的組的求解,第3章 矩陣及線型方程組,3.5.1 求線性方程組的唯一解或特解(第一類問題) 求方程組 的解 解: A=5 6 0 0 0; 1 5 6 0 0; 0 1 5 6 0 ; 0 0 1 5 6; 0 0 0 1 5; B=1 0 0 0 1; R_A=rank(A) %求秩 X=AB %求解 運行后結果如下 R_A = 5 X =2.2662 -1.7218 1.0571 -0.59

29、40 0.3188 這就是方程組的解,3.5 線性方程的組的求解,第3章 矩陣及線型方程組,3.5.1 求線性方程組的唯一解或特解(第一類問題) 1利用矩陣除法求線性方程組的特解 例 求方程組 的一個特解。 解: A=1 1 -3 -1;3 -1 -3 4;1 5 -9 -8; B=1 4 0; X=AB %由于系數矩陣不滿秩,該解法可能存在誤差。 X = 0 0 -0.5333 0.6000(一個特解近似值,3.5 線性方程的組的求解,第3章 矩陣及線型方程組,3.5.1 求線性方程組的唯一解或特解(第一類問題) 2 利用矩陣的LU、QR和cholesky分解求方程組的解函數 (1)LU分解: LU分解又稱Gauss消去分解,可把任意方陣分解為下三角矩陣的基本變換形式(行交換)和上三角矩陣的乘積。即A=LU,L為下三角陣,U為上三角陣。 則:A*X=b 變成L*U*X=b 所以X=U(Lb) 這樣可以大大提高運算速度。 說明 這三種分解,在求解大型方程組時很有用。其優(yōu)點是運算速度快、可以節(jié)省磁盤空間、節(jié)省內存,3.5 線性方程的組的求解,第3章 矩陣及線型方程組,3.5.2 求線性齊次方程組的通解 (第二類問題) 在Matlab中,函數null用來求解零空

溫馨提示

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

評論

0/150

提交評論