① 怎麼用MATLAB求代數餘子式進而求出伴隨矩陣,急!
原矩陣A
B=det(A)*inv(A)
即可得:A(i,j)對應的代數餘子式為B(j,i)
② 如何用matlab編寫矩陣運算程序
一、矩陣的表示方法
1、矩陣元素必須在」[]」內;
2、矩陣的同行元素之間用空格(或」,」)隔開;
3、矩陣的行與行之間用」;」(或回車符)隔開;
4、矩陣的元素可以是數值、變數、表達式或函數;
5、矩陣的尺寸不必預先定義。
二、矩陣的運算
1、算術運算
MATLAB的基本算術運算有:+(加)、-(減)、*(乘)、/(右除)、(左除)、^(乘方)、』(轉置)。運算是在矩陣意義下進行的,單個數據的算術運算只是一種特例。
(1)矩陣加減運算假定有兩個矩陣A和B,則可以由A+B和A-B實現矩陣的加減運算。運算規則是:若A和B矩陣的維數相同,則可以執行矩陣的加減運算,A和B矩陣的相應元素相加減。如果A與B的維數不相同,則MATLAB將給出錯誤信息,提示用戶兩個矩陣的維數不匹配。
(2)矩陣乘法假定有兩個矩陣A和B,若A為m*n矩陣,B為n*p矩陣,則C=A*B為m*p矩陣。
(3)矩陣除法在MATLAB中,有兩種矩陣除法運算:和/,分別表示左除和右除。如果A矩陣是非奇異方陣,則AB和B/A運算可以實現。
AB等效於A的逆左乘B矩陣,也就是inv(A)*B,而B/A等效於A矩陣的逆右乘B矩陣,也就是B*inv(A)。對於含有標量的運算,兩種除法運算的結果相同。對於矩陣來說,左除和右除表示兩種不同的除數矩陣和被除數矩陣的關系,一般AB≠B/A。
(4)矩陣的乘方一個矩陣的乘方運算可以表示成A^x,要求A為方陣,x為標量。
(5)矩陣的轉置對實數矩陣進行行列互換,對復數矩陣,共軛轉置,特殊的,操作符.』共軛不轉置(見點運算);
(6)點運算在MATLAB中,有一種特殊的運算,因為其運算符是在有關算術運算符前面加點,所以叫點運算。點運算符有.*、./、.和.^。兩矩陣進行點運算是指它們的對應元素進行相關運算,要求兩矩陣的維參數相同。
2、關系運算
MATLAB提供了6種關系運算符:<(小於)、<=(小於或等於)、>(大於)、>=(大於或等於)、==(等於)、~=(不等於)。關系運算符的運演算法則為:
(1)當兩個比較量是標量時,直接比較兩數的大小。若關系成立,關系表達式結果為1,否則為0;
(2)當參與比較的量是兩個維數相同的矩陣時,比較是對兩矩陣相同位置的元素按標量關系運算規則逐個進行,並給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成;
(3)當參與比較的一個是標量,而另一個是矩陣時,則把標量與矩陣的每一個元素按標量關系運算規則逐個比較,並給出元素比較結果。最終的關系運算的結果是一個維數與原矩陣相同的矩陣,它的元素由0或1組成。
3、邏輯運算
MATLAB提供了3種邏輯運算符:&(與)、|(或)和~(非)。邏輯運算的運演算法則為:
(1)在邏輯運算中,確認非零元素為真,用1表示,零元素為假,用0表示;
(2)設參與邏輯運算的是兩個標量a和b,那麼,a&b a,b全為非零時,運算結果為1,否則為0。a|b a,b中只要有一個非零,運算結果為1。~a當a是零時,運算結果為1;當a非零時,運算結果為0。
(3)若參與邏輯運算的是兩個同維矩陣,那麼運算將對矩陣相同位置上的元素按標量規則逐個進行。最終運算結果是一個與原矩陣同維的矩陣,其元素由1或0組成;
(4)若參與邏輯運算的一個是標量,一個是矩陣,那麼運算將在標量與矩陣中的每個元素之間按標量規則逐個進行。最終運算結果是一個與矩陣同維的矩陣,其元素由1或0組成;
(5)邏輯非是單目運算符,也服從矩陣運算規則;
(6)在算術、關系、邏輯運算中,算術運算優先順序最高,邏輯運算優先順序最低。
1.獲取矩陣元素
可以通過下標(行列索引)引用矩陣的元素,如Matrix(m,n)。
也可以採用矩陣元素的序號來引用矩陣元素。
矩陣元素的序號就是相應元素在內存中的排列順序。
在MATLAB中,矩陣元素按列存儲。
序號(Index)與下標(Subscript)是一一對應的,以m*n矩陣A為例,矩陣元素A(i,j)的序號為(j-1)*m+i。
其相互轉換關系也可利用sub2ind和ind2sub函數求得。
2.矩陣拆分
利用冒號表達式獲得子矩陣:
(1)A(:,j)表示取A矩陣的第j列全部元素;A(i,:)表示A矩陣第i行的全部元素;A(i,j)表示取A矩陣第i行、第j列的元素。
(2)A(i:i+m,:)表示取A矩陣第i~i+m行的全部元素;A(:,k:k+m)表示取A矩陣第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩陣第i~i+m行內,並在第k~k+m列中的所有元素。
此外,還可利用一般向量和end運算符來表示矩陣下標,從而獲得子矩陣。end表示某一維的末尾元素下標。
利用空矩陣刪除矩陣的元素:
在MATLAB中,定義[]為空矩陣。給變數X賦空矩陣的語句為X=[]。注意,X=[]與clear X不同,clear是將X從工作空間中刪除,而空矩陣則存在於工作空間中,只是維數為0。
3、特殊矩陣
(1)魔方矩陣魔方矩陣有一個有趣的性質,其每行、每列及兩條對角線上的元素和都相等。對於n階魔方陣,其元素由1,2,3,…,n2共n2個整數組成。MATLAB提供了求魔方矩陣的函數magic(n),其功能是生成一個n階魔方陣。
(2)范得蒙矩陣范得蒙(Vandermonde)矩陣最後一列全為1,倒數第二列為一個指定的向量,其他各列是其後列與倒數第二列的點乘積。可以用一個指定向量生成一個范得蒙矩陣。在MATLAB中,函數vander(V)生成以向量V為基礎向量的范得蒙矩陣。
(3)希爾伯特矩陣在MATLAB中,生成希爾伯特矩陣的函數是hilb(n)。使用一般方法求逆會因為原始數據的微小擾動而產生不可靠的計算結果。MATLAB中,有一個專門求希爾伯特矩陣的逆的函數invhilb(n),其功能是求n階的希爾伯特矩陣的逆矩陣。
(4)托普利茲矩陣托普利茲(Toeplitz)矩陣除第一行第一列外,其他每個元素都與左上角的元素相同。生成托普利茲矩陣的函數是toeplitz(x,y),它生成一個以x為第一列,y為第一行的托普利茲矩陣。這里x,y均為向量,兩者不必等長。toeplitz(x)用向量x生成一個對稱的托普利茲矩陣。
(5)伴隨矩陣MATLAB生成伴隨矩陣的函數是compan(p),其中p是一個多項式的系數向量,高次冪系數排在前,低次冪排在後。
(6)帕斯卡矩陣我們知道,二次項(x+y)n展開後的系數隨n的增大組成一個三角形表,稱為楊輝三角形。由楊輝三角形表組成的矩陣稱為帕斯卡(Pascal)矩陣。函數pascal(n)生成一個n階帕斯卡矩陣。
網路——MATLAB