|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
行列式:
/ d' t h* r3 o8 c %Aij = (-1)^(i+j)*Mij& i4 j0 a! K* ?8 V/ V- F& _
%D = a11*A11 + a12*A12 + a13*A13 + ... + a1n*A1n
) f3 I4 M+ s# _; e' e# }1 [$ n' a%H = [1 2 3;7 9 7;5 6 1;];det(H) = 14, C- P* p# w& {, N4 ^3 s
function H_Det = Matrix_Det(H,N) %输入矩阵 阶数
7 b9 N. }8 h' S) r* ~3 ]H_Det = 0;
, ~; f: b$ i" V3 u: C# s& U' Bif N==1
' l+ Q/ X7 b0 X4 I6 g/ k H_Det = H(1,1);
' w. O5 V( V h! t& {- e3 ]% r return;6 q- n, d; G; r+ J$ K* C
end
6 b6 K0 a' G, [temp = zeros(N-1,N-1);
Z8 e. y8 ?& s1 A' I6 Lfor i=1:N
( x, X4 Z9 I+ @# ] for j=2:N %第二行开始
$ i5 y" y3 _8 `! z& y* Z$ V for k=1:N-1
) t9 A* E- h+ o* i7 d% T if k>=i
! S) }. ^/ L9 l) }+ R+ K: ?/ z cln = k+1; y" ?5 i1 X4 j7 ^, z+ ~) M
else
3 g" s! c9 q9 a$ a- r; _/ @1 E6 b cln = k;
/ x4 r" r! U3 x' v* S9 E3 O end# X% F' ?+ a+ J, I3 g: k, G
temp(j-1,k) = H(j,cln);! ?/ t8 e2 p, d( P$ ^" G0 c
end3 ^% R& y1 U2 t' g0 t* C
end3 ^" \. L0 [. |
t = Matrix_Det(temp,N-1); %递归
1 k6 V+ P) X; { n) [2 o* B4 H6 ? if rem(1+i,2)==0 %(-1)^(1+i)
2 G9 n z& I0 U& V H_Det = H_Det+H(1,i)*t;
3 D& e/ l5 {! a0 N$ P2 { else8 j$ P9 Z p3 {4 S
H_Det = H_Det-H(1,i)*t;6 W0 j5 V. r" Y9 C' I5 h$ X
end
3 T; h9 y! _4 ~5 v! W) H# }end
. d2 M7 [( V; D, a
/ T9 }* J! l) V' Tend
G3 }8 l% N* o: N& A9 |$ {) K# J
伴随阵:
& e7 |1 Q5 X9 D, ~%伴随阵A* = |Aij|(nxn)) u! u1 P3 a% M. J- Z! L: o5 Y
%Aij = (-1)^(i+j)*Mij
9 K: y @ {2 w. o j# A# k%H = [1 2 3;7 9 7;5 6 1;];det(H)*inv(H) = [-33 16 -13;28 -14 14;-3 4 -5];% A" |2 P# c, K( z
function H_Adjoint = Matrix_Adjoint(H,N) j# r( W/ U* }4 z8 M6 H' K0 Y
H_Adjoint = zeros(N,N);
: F4 H; f* i' h- k4 Bif N==1
- t" l# G' X( W# V3 m6 k% H_Adjoint = [H(2,2) H(2,1);H(1,2) H(1,1)];
2 w. q9 F; o% c4 b7 R H_Adjoint = 1;9 V+ t# D r8 W) o! M4 U' r
return;% L! F7 P& b' N4 z
end) t1 s$ k; ?* I+ _$ m# P
temp = zeros(N-1,N-1);
& ^5 X8 E0 e( O* P7 o* s. Ffor i=1:N %逐行扫描. M. }/ ] V8 C/ r
for j=1:N %逐列扫描
7 C$ p9 U6 v% B0 i( ^ for k=1:N-1 %行组合$ q+ s4 M, n" ^2 T
if k>=j
4 o6 L5 Y) e, M+ |: j, F: Y: ? row = k+1;; q5 K: O5 g5 K/ \
else6 O6 o0 g, T( g1 b9 i5 }
row = k;& n+ @' h3 ?* P2 H/ V, w. o4 b$ G; D5 F
end' a$ H- U8 c0 V" Z2 ?/ r
for t=1:N-1 %列组合 9 t! }6 }6 G- D! r( z6 b
if t>=i
* n. v- d( E) W cln = t+1;
$ _ k2 C# ^3 N2 X else: Q+ n* s' s! r3 O; Y
cln = t; ?6 {! ^$ J/ I* `6 L/ Q
end8 q d' @* G g! E' B! `8 N
temp(k,t) = H(row,cln);
" i0 L3 B3 c! ^6 ?% ~& P end* |$ {, h3 S7 W K- t' c
end* }8 m" R- f$ N' `
if rem(i+j,2)==03 E5 z1 W0 a6 e8 k) T' G# w# i
H_Adjoint(i,j) = Matrix_Det(temp,N-1); %求代数余子式$ c, z6 y; I0 L, m" O( G3 v
else
7 D1 {. K5 R9 N H_Adjoint(i,j) = -Matrix_Det(temp,N-1);
3 s2 Y2 g2 a% F- A3 j o- b end6 `8 R2 o8 q7 F
end
) O. t, q6 G3 V3 s7 B9 c( W6 Zend% k2 A, B0 O7 ?. \$ g% ~- o0 c1 g9 |
end8 U5 k- L1 Q: a+ R9 T9 C4 Y" Y: y
7 S: d9 q6 Y) w( Z; @6 P1 e7 g逆:0 L: ^6 U8 [( v& T% x
%A^(-1) = 1/|A|*(A*)
9 G3 X$ s2 g, D2 H%H = [1 2 3;7 9 7;5 6 1;];inv(H) = [-2.3571 1.1429 -0.9286;2.0000 -1.0000 1.0000;-0.2143 0.2857 -0.3571];1 U3 e9 f1 u+ b7 x
function H_Inv = Matrix_Inverse(H,N)8 [8 i- R1 C1 Z
H_Det = Matrix_Det(H,N);$ g# p+ N1 D0 `2 y5 O6 x
H_Adjoint = Matrix_Adjoint(H,N);! [: }8 N5 q2 f" e% u& x8 y4 `' Q
H_Inv = H_Adjoint/H_Det;3 k, E; Y5 J2 u2 F
end' A+ A$ ` f t! N
, b" x0 l8 c; F* ~/ m
: g( U6 Z5 V# e" C: e
: x' R; G% f6 G# T; _5 C |
|