|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
行列式:
$ y4 `& Q9 n" E- F/ B, R %Aij = (-1)^(i+j)*Mij
" b! t* g$ ^3 M%D = a11*A11 + a12*A12 + a13*A13 + ... + a1n*A1n
% {2 A3 z6 T/ s2 c%H = [1 2 3;7 9 7;5 6 1;];det(H) = 14
; d6 S1 R# ~* V3 _! {function H_Det = Matrix_Det(H,N) %输入矩阵 阶数
8 x5 S) Z& Z( i6 q/ |/ q$ P H" gH_Det = 0;
! |6 R( C) O! _" K% {$ Mif N==1
6 `% J3 a& W4 h" z4 z6 |* \' Q H_Det = H(1,1);
2 L1 q6 u+ U6 G+ L. m return;7 M: e, J2 N1 h/ u$ I0 A3 _- n
end$ i3 ^7 P, q; f6 n4 ^: {2 ?
temp = zeros(N-1,N-1);
" S n2 ?0 l0 n7 _- x8 r' J8 {for i=1:N5 p5 |) e; A& d/ L+ E# S
for j=2:N %第二行开始3 Q3 @6 Z$ Z+ p; D3 k5 z1 F8 c C
for k=1:N-11 k" \3 ]7 o& ~ r) w
if k>=i
0 q1 K' x! C, b( ^8 i$ H. f6 n cln = k+1;3 n6 |7 W) `1 U5 P' _. f
else
$ w0 G8 B+ | e- N cln = k;
4 Y4 r( x; Z8 j end# P1 g* P$ C+ w* E7 U5 v
temp(j-1,k) = H(j,cln);
/ ~: ]3 D Z- x4 x end; v7 L* q+ i( J1 H* s
end( N% @# Q* H1 |; y" X
t = Matrix_Det(temp,N-1); %递归
1 x" `: i+ ]4 m" t- k if rem(1+i,2)==0 %(-1)^(1+i)+ h' N4 `' E# P' |3 T' H1 Z& M
H_Det = H_Det+H(1,i)*t;
& B% N6 H' P: B( E4 ? else2 K# t2 a" C/ K& j" o4 i+ V4 A& B
H_Det = H_Det-H(1,i)*t;
, _! g5 T o! q$ l- A9 k1 K7 z3 U& O end3 i0 a% T6 g" h/ F3 }4 Y6 y W
end
% O. Q; Y2 l5 ` R) s, V6 A! b8 b& N5 Y6 N3 p
end
8 W, f, s$ i/ r: F* e" F9 P( l: k' W2 p! D) r: d$ F3 @
伴随阵:
( q/ y0 H$ r6 ?% `- f8 g) D$ O+ w%伴随阵A* = |Aij|(nxn)
+ n' f9 R3 l+ z9 X E: h7 m%Aij = (-1)^(i+j)*Mij
5 n* K% n: O* B8 V; z) U%H = [1 2 3;7 9 7;5 6 1;];det(H)*inv(H) = [-33 16 -13;28 -14 14;-3 4 -5];
" d! T9 Y( ^: Z: t! A: @function H_Adjoint = Matrix_Adjoint(H,N); L( r0 l2 Y- v9 g# G, a* q4 l& V
H_Adjoint = zeros(N,N);9 p0 W, v* D9 A( X4 p% l+ `6 u
if N==1$ e5 l: T6 D/ Y3 c' b$ V1 d' b
% H_Adjoint = [H(2,2) H(2,1);H(1,2) H(1,1)]; 0 g; D# e7 u' @ d
H_Adjoint = 1;% U$ l1 i$ K" N
return;5 y* K& K8 @) _4 H- U
end; a- ]& }2 n, ?& {4 w/ }8 |
temp = zeros(N-1,N-1);
9 O( A; R* _9 y: T3 ~# G6 i1 ?for i=1:N %逐行扫描5 @* p0 o5 V1 w, K1 l
for j=1:N %逐列扫描
, U. R: e: @, b A for k=1:N-1 %行组合 t4 L' N) }" G3 M# j- c
if k>=j
) ^3 D* @* i$ k: z: C! r3 p row = k+1;
0 y- d; s( A$ @. h0 v1 @ else3 a" \5 m2 D- h6 y* @' ^2 E$ u! S
row = k;
' c2 ~& ~4 l0 l& a! q7 @ end
J# [3 r+ D8 u+ O! q+ ` for t=1:N-1 %列组合 , h$ O* N0 U/ u: X3 y
if t>=i& t; ?+ X* [: g* i# i: M5 n
cln = t+1;
+ y5 H. P8 W. X. M else
! ?7 M* ^" y+ @ cln = t;
8 }2 Q. ^7 X/ W2 Z* V( k _ end# B8 K! y9 d7 [3 X. J, N
temp(k,t) = H(row,cln);) T( A1 D# N/ P- l3 V
end
: [ o9 ~+ |# ]+ t& h7 W" ` end& ]; I+ s) k+ \$ V1 @2 L: g7 @
if rem(i+j,2)==0) g9 D6 G8 v9 Q( z ^, X$ V! S3 x
H_Adjoint(i,j) = Matrix_Det(temp,N-1); %求代数余子式
+ l j1 v' A. F& A4 J! \* S# [7 s) T else: p. _6 P9 W* ^
H_Adjoint(i,j) = -Matrix_Det(temp,N-1);# D% T" i& @$ q: t0 V7 e! J
end: f% m. [" g K2 i
end8 N& ]/ F- ?( p4 ]9 j/ Y# M* W. s9 `
end' o1 _/ Q( S0 l# O0 B" k
end: h3 _8 t7 |! \* s6 |$ `% w
9 G4 [1 @, F6 Y) h8 J8 z
逆: p) \: [! @+ q% N8 U
%A^(-1) = 1/|A|*(A*)8 I+ C' `3 I. `3 @0 X) f% Z8 @
%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];
' L6 J0 F( N* S% T* @function H_Inv = Matrix_Inverse(H,N)
1 \7 X. F0 u. f% g/ [0 DH_Det = Matrix_Det(H,N);3 Z% K- l) e1 @: L8 ^
H_Adjoint = Matrix_Adjoint(H,N);
5 C, p; w+ m3 m. K( [H_Inv = H_Adjoint/H_Det;
4 @9 d9 x/ y! }, `3 Aend7 l" W) b4 e% ?; W, O2 h
& |' P. Q f; P) i( E' u+ ]
: E# C( [8 Y1 R3 g5 A
" c- C7 `3 _5 g7 m6 ?) f |
|