目錄
1,矩陣定義
2,矩陣的運(yùn)算
3,方陣的行列式和伴隨矩陣?
4,矩陣的逆?
5,克萊默法則?
6,矩陣分塊?
1,矩陣定義
矩陣與行列式的區(qū)別:
(1)形式上行列式是數(shù)表加兩個(gè)豎線,矩陣是數(shù)表加大括號(hào)或中括號(hào);
(2)行列式可計(jì)算得到一個(gè)值,矩陣不能;
(3)兩個(gè)行列式相加與兩個(gè)矩陣相加不同;
(4)行列式乘以一個(gè)數(shù)k,可將k乘到行列式任一行或任一列,矩陣乘以k,k與矩陣的每個(gè)元素相乘;
(5)行列式是n*n的數(shù)表,矩陣可以是m*n的數(shù)表;
行數(shù)和列數(shù)都為n的矩陣稱為n階矩陣,或叫n階方陣;
只有一行的矩陣稱為行矩陣(也叫行向量)在Matlab中的表示方法:
只有一列的矩陣稱為列矩陣(也叫列向量)在Matlab中的表示方法:
兩個(gè)矩陣A、B的行數(shù)相同,并且列數(shù)也相同時(shí),稱它們是同型矩陣,如果他們的對(duì)應(yīng)元素也相同,則A = B;
使用size命令獲得矩陣的行數(shù)和列數(shù):
clc;
A = [2 4 6;
3 5 7];
size(A)
使用isequal判斷兩個(gè)矩陣是否相等:
clc;
A = [2 4 6;
3 5 7];
B = [2 4 6;
3 5 7];
isequal(A,B)
單位矩陣:是一個(gè)方陣,主隊(duì)角元素都為1,其他元素是0,一般用E表示
矩陣A乘以單位矩陣E結(jié)果還是矩陣A,并且左乘或右乘單位矩陣E一樣:
clc;
A = [1 2 3;
4 5 6;
7 8 9];
E = eye(3);
EA = E*A
AE = A*E
對(duì)角矩陣:是一個(gè)方陣,主對(duì)角元素不為0,其他元素均為0;
clc;
v = [1,2,3,4];
A = diag(v)
2,矩陣的運(yùn)算
?矩陣的加法:
clc;
A = [1 1 1 1;
2 2 2 2;
3 3 3 3];
B = [0 0 0 0;
1 1 1 1;
2 2 2 2];
C = A + B
?數(shù)與矩陣相乘:
clc;
A = [1 1 1 1;
2 2 2 2;
3 3 3 3];
k = 2;
C = k*A
矩陣相乘:一個(gè)矩陣的列與另一個(gè)矩陣的行相同時(shí),兩個(gè)矩陣才能相乘;
clc;
A = [1 1 1;
2 2 2];
B = [1 1;
2 2;
3 3];
C = A*B
D = B*A
?
可見(jiàn)矩陣A*B 不等于B*A;
?矩陣的冪:
以下例子為四個(gè)城市之間開(kāi)通的航線情況,0代表兩個(gè)城市間沒(méi)有航線,1代表開(kāi)通有航線,建立城市間是否有航線的模型即一個(gè)4階矩陣A,用表示從i城市到j(luò)城市的航線數(shù)量,對(duì)A求2次冪可以得到城市i有幾條雙向航線(A的2次冪矩陣的對(duì)角線元素),以及從城市i經(jīng)過(guò)一次中轉(zhuǎn)到城市j的單線航線數(shù)量。
對(duì)單線航線矩陣A的2次冪的含義盡心解釋:?
?
對(duì)角矩陣的冪,對(duì)角線上元素按冪運(yùn)算:
clc;
v = [1,2,3];
A = diag(v)
A^3
矩陣的轉(zhuǎn)置:
clc;
A = [1 1 1;
2 2 2];
B = A'
?一個(gè)方陣和它的轉(zhuǎn)置矩陣相加可以產(chǎn)生一個(gè)對(duì)稱矩陣,以下程序可以產(chǎn)生一個(gè)對(duì)稱陣:
clc;
A = rand(3);
B = A';
C= A+B
?
3,方陣的行列式和伴隨矩陣?
clc;
A = rand(3);
a = det(A);
b = det(A');
abs(a-b) < eps
clc;
A = rand(3);
B = rand(3);
format short
a = det(A*B);
b = det(A)*det(B);
abs(a-b) < eps
clc;
A = [1 2 3;
4 5 6;
7 8 9];
k = 2;
B = k*A;
det(B) == (k^3)*det(A)
?
clc;
A = [1 4 7;
3 5 8;
2 6 8];
A_adj = adjoint(A) %adjoint求A的伴隨矩陣
C = A*A_adj;
D = A_adj*A;
E = eye(3);
EA = E*det(A);
A13 = A;
A21 = A;
A13(1,:) = [];
A13(:,3) = [];
A21(2,:) = [];
A21(:,1) = [];
D_A13 = (-1)^(1+3)*det(A13) %A(1,3)的代數(shù)余子式
D_A21 = (-1)^(2+1)*det(A21) %A(2,1)的代數(shù)余子式
?使用Matlab中的adjoint命令,A產(chǎn)生的伴隨陣A_adj,A*A_adj = A_adj *A = E*det(A):
4,矩陣的逆?
只有方陣才有逆矩陣,矩陣可逆的充分必要條件是det(A)不等于0。
Matlab中可以使用inv(A)或A^(-1)計(jì)算A的逆矩陣,也可以使用上圖中定理2計(jì)算逆矩陣:
clc;
A = rand(3);
B = inv(A)
C = A^(-1);
A_mul_B = A*B
B_mul_A = B*A;
A_adj = adjoint(A);
1/det(A)*A_adj %根據(jù)定理2計(jì)算逆矩陣
?同樣使用定理2可以反向計(jì)算矩陣A的伴隨陣:
clc;
A = rand(3);
A_adj = adjoint(A)
det(A)*inv(A) %定理2計(jì)算伴隨陣
5,克萊默法則?
分別用逆矩陣、左除、克萊默法則計(jì)算下邊例題,計(jì)算結(jié)果相同:
clc;
%以下程序用于求n元非齊次方程組的解, 方程組的形式為Ax = b,求x
A = [1,1,1,1;
1,2,-1,4;
2,-3,-1,-5;
3,1,2,11]; %方程組系數(shù)矩陣
b = [5;-2;-2;0]; %方程組右端常數(shù)矩陣
A1 = A;
A1(:,1) = b;
A2 = A;
A2(:,2) = b;
A3 = A;
A3(:,3) = b;
A4 = A;
A4(:,4) = b;
if det(A) ~= 0 %判斷方程組是否有解
%%三種求方程組解的形式
x = inv(A)*b %1,用逆矩陣的方式求方程組的解
x = A\b %2,用左除的方式求方程組的解
x1 = det(A1)/det(A) %3,用克萊默法則求方程組的解
x2 = det(A2)/det(A)
x3 = det(A3)/det(A)
x4 = det(A4)/det(A)
else
disp("det(A) = 0,方程組無(wú)解");
end
6,矩陣分塊?
使用下邊Matlab命令運(yùn)算得到逆矩陣:
clc;
A = [3 0 0 ;
0 2 4 ;
0 3 1 ];
C = mat2cell(A,[1,2],[1,2]); %mat2cell函數(shù)將原矩陣分塊為四個(gè)cell,行數(shù)分別為1和2行,列數(shù)分別為1列和2列
C1 = C{1}; %將cell轉(zhuǎn)化為矩陣
C2 = C{2};
C3 = C{3};
C4 = C{4};
inv_A = inv(A) %使用inv命令直接計(jì)算逆矩陣
inv_C1 = inv(C1); %對(duì)分塊后的非0矩陣求逆矩陣
inv_C4 = inv(C4);
inv_C = [inv_C1,C3;
C2,inv_C4] %對(duì)原矩陣分塊后對(duì)非0矩陣分別求逆矩陣后再組合在一起
運(yùn)行結(jié)果:
矩陣分塊后轉(zhuǎn)置:
clc;
A = randi([0,10],3,4) %產(chǎn)生一個(gè)3行4列從0-10的隨機(jī)數(shù)元素的矩陣
A_T = A'
C = mat2cell(A,[1,2],[2,2]); %mat2cell函數(shù)將原矩陣分塊為四個(gè)cell,行數(shù)分別為1和2行,列數(shù)分別為2列和2列
C1 = C{1,1}; %將cell轉(zhuǎn)化為矩陣
C2 = C{1,2};
C3 = C{2,1};
C4 = C{2,2};
C1 = C1';
C2 = C2';
C3 = C3';
C4 = C4';
C_T = [C1,C3;
C2,C4]
?運(yùn)行結(jié)果:
分塊矩陣相乘:
clc;
A = [3 0 0 2 5;
0 2 4 3 4;
0 3 1 2 6];
B = [3 0 0; %矩陣A可以分塊為B和C矩陣
0 2 4;
0 3 1];
C = [2 5;
3 4;
2 6];
D = randi([1,10],2,3);
D*A
D*B
D*C
運(yùn)算結(jié)果:
?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-717745.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-717745.html
到了這里,關(guān)于線性代數(shù)中涉及到的matlab命令-第二章:矩陣及其運(yùn)算的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!