找回密码
 注册
关于网站域名变更的通知
查看: 466|回复: 1
打印 上一主题 下一主题

分享一份矩阵行列式和逆的MATLAB程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-12-13 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
行列式:5 ~/ M0 I: q8 ^
%Aij = (-1)^(i+j)*Mij# _0 E4 O, j$ r: j9 S5 m; g1 R
%D = a11*A11 + a12*A12 + a13*A13 + ... + a1n*A1n
. e/ L4 ^6 l! G' m! L& G4 L%H = [1 2 3;7 9 7;5 6 1;];det(H) = 14
) G, I# C/ w6 H. ]" W; Y4 lfunction H_Det =  Matrix_Det(H,N)  %输入矩阵 阶数  
( T, i2 ?- ]- ^H_Det = 0;6 E/ n1 ?. O  |* W1 L5 H7 N! D
if N==1. c8 h( p! g$ i) Y* ^# M% ]
   H_Det = H(1,1);
2 d% Q: F) x' z0 o, J0 s   return;
$ H. U2 K: e( P& \8 J7 hend9 i) z2 @) j5 K7 w
temp = zeros(N-1,N-1);6 f4 n* |) G: ^$ [
for i=1:N$ M( C9 H, e9 v* s6 u1 l  d
    for j=2:N  %第二行开始/ v8 d( u' N5 e& c: R7 P
        for k=1:N-1
: D( A7 U8 p& x1 X" V7 U            if k>=i
- `7 \2 p" q4 u1 `                cln = k+1;/ v9 X% Z, }7 \, I
            else
9 ^7 T  D1 o5 s7 J                cln = k;6 G7 i& {8 }! {- Z
            end! m( T* q# o3 |/ {% ~( C
            temp(j-1,k) = H(j,cln);# v' l, r2 k8 f5 e
        end7 q9 @3 M0 N4 I
    end
0 r0 j+ @" j) j7 Q. U    t = Matrix_Det(temp,N-1);  %递归+ I/ P5 O2 j; O" z4 G& ^
    if rem(1+i,2)==0   %(-1)^(1+i)
2 y2 X# f* R6 z1 H# h       H_Det = H_Det+H(1,i)*t;0 D' C: K* C* P' ?+ D
    else
- H) P. G% t$ c- A! s8 X       H_Det = H_Det-H(1,i)*t;; E# N% B7 W: p# u! G' ]
    end
6 I/ i0 U: @' F& R3 Uend
9 P! J! @4 h0 ~* z% }3 f2 I% u4 b0 ~' C0 ?( s; H0 Q* ^  D8 }
end
3 P( ^, E$ W! j8 g1 {$ |4 b, \' t" M/ X0 W3 L
伴随阵:
6 ^/ Y5 \/ Y0 B8 |, F0 X1 O%伴随阵A* = |Aij|(nxn)
2 y% e8 \% a# _5 B( V0 d%Aij = (-1)^(i+j)*Mij0 r4 b* P* I  n3 B7 O# c/ u2 o
%H = [1 2 3;7 9 7;5 6 1;];det(H)*inv(H) = [-33 16 -13;28 -14 14;-3 4 -5];+ h6 x7 \+ Y8 _" J! _7 J8 @; U
function H_Adjoint = Matrix_Adjoint(H,N)( ?4 X6 g; g8 [' X9 t* e
H_Adjoint = zeros(N,N);% Z: Y( P, d7 w1 J6 d! z7 @
if N==1
5 H) ~3 i; {' e8 _7 q%    H_Adjoint = [H(2,2) H(2,1);H(1,2) H(1,1)];
( ?& W+ P- y8 W  b3 J9 q   H_Adjoint = 1;# b% _% |* s0 M% V# _7 ?
   return;1 `$ x1 j2 ]+ |! j* E& K2 |
end
, M9 L* ]- C+ @2 ]+ Atemp = zeros(N-1,N-1);1 y4 Z3 m$ [* T& D) I; Q
for i=1:N   %逐行扫描
' k& x  {$ I9 V6 B- y, i) Y    for j=1:N  %逐列扫描
/ v7 S6 E; X( _" S& V% ^, x% P# y        for k=1:N-1  %行组合  c/ e: e, p/ n, B) h4 I
            if k>=j! ]. S9 H' h. |2 s
               row = k+1;  }2 n( V1 ~2 O2 J* A) c
            else$ Y7 N2 u4 A" z2 X
               row = k;
; G2 |: A- j4 y* [            end9 l2 l+ X# Q; k; Z9 _0 q1 z9 x0 w
            for t=1:N-1  %列组合            
9 J$ W; q$ i* B; ?. T5 n                if t>=i
  S+ J8 u' h" z( A* x0 q                   cln = t+1;
4 X, I, j- |! {& ]                else) @$ B% B! R" A8 i
                   cln = t;  p: H+ h  x+ ?+ \7 R
                end
8 I! ?1 w+ I6 y4 l                temp(k,t) = H(row,cln);$ ^5 T5 }3 l# d1 B, b8 x! f
            end
/ ?& ?& ~' |/ z0 x5 g# Y. y        end+ Y- e- f  n' O" `
        if rem(i+j,2)==0) s# g4 X3 t6 \
            H_Adjoint(i,j) = Matrix_Det(temp,N-1);   %求代数余子式
1 y( E% V: b4 d3 Y" ]  k7 t        else1 V, g  u3 Y+ j, i% N6 E, t
            H_Adjoint(i,j) = -Matrix_Det(temp,N-1);' Q  N% U$ m: t
        end) d( i. u7 o* b3 E, P
    end: ]8 Q" X$ a- c& [+ n
end% }+ c5 i$ X7 B) _, t
end9 w, I# ]+ b$ i5 ?8 j* W. Y* H& v2 D6 r
( ^5 F4 y  r  q0 W9 ?
逆:
/ l; }/ g4 q! O! }* g: a' o+ d0 P, [%A^(-1) = 1/|A|*(A*)6 q, M6 M, H, x; y# X
%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];
" A. {  N0 Z( ]2 r, X4 nfunction H_Inv = Matrix_Inverse(H,N)# o( A4 g1 f( H" E* S, C: @6 [
H_Det = Matrix_Det(H,N);: d  n* W. U9 {+ _9 X
H_Adjoint = Matrix_Adjoint(H,N);
& g3 F  j+ E$ v' R4 oH_Inv = H_Adjoint/H_Det;: W( A% F  h3 g8 d
end
9 f5 Y* Y0 n( I# J7 ^! p* l( y. S  S% \4 L- L; U4 ]2 U2 R& U

) m- e$ C: t. I+ R1 |% p  C" Z

该用户从未签到

2#
发表于 2019-12-13 19:24 | 只看该作者
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-12 15:40 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表