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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
行列式:
0 o, O+ ?" W0 J8 l' n, _ %Aij = (-1)^(i+j)*Mij9 \1 D) I* l, S# {/ Z
%D = a11*A11 + a12*A12 + a13*A13 + ... + a1n*A1n
$ ~: {2 b6 H) D3 d4 |) x/ f%H = [1 2 3;7 9 7;5 6 1;];det(H) = 140 J; E$ [+ T0 H7 j7 V: t
function H_Det =  Matrix_Det(H,N)  %输入矩阵 阶数  $ d  U6 Q+ w# }
H_Det = 0;
1 T# P: ^$ _9 G# I8 s# g0 b* h' uif N==19 N7 h' _# Q1 o
   H_Det = H(1,1); * e# l0 q2 N( @( t5 F
   return;7 z, O  T) Q: ~
end* ~& A# L; J2 ?8 [
temp = zeros(N-1,N-1);- |9 b# {6 Y( u$ y; k0 a8 C) H* m
for i=1:N8 A: s% q: R: V, f
    for j=2:N  %第二行开始
9 l) _) `3 c- H2 x6 s        for k=1:N-12 J7 J; X; `: y. \
            if k>=i! Y) k4 v0 p0 P, x7 h
                cln = k+1;$ g9 H$ n0 z7 k4 S5 D
            else. F( }4 F: x) E' H
                cln = k;
! `6 c: c' d/ _5 n# p; \" \            end
6 E  v4 i- k4 ?2 W. ^            temp(j-1,k) = H(j,cln);; i/ ~* K3 ?" g- ~
        end
) |4 d' ?% O* T5 X. [    end
3 ~% ?# ~$ s2 R& ~' Q    t = Matrix_Det(temp,N-1);  %递归
8 X7 T' K9 R5 I! [" Y9 I- d9 |* _3 F    if rem(1+i,2)==0   %(-1)^(1+i)
0 M7 E  C+ F+ q; ]       H_Det = H_Det+H(1,i)*t;0 f% ~( `$ w. D) \
    else/ }" h+ h3 k- R7 O1 t
       H_Det = H_Det-H(1,i)*t;
+ J. r3 [& z4 w3 T8 L$ {/ b8 u    end9 b/ u% {" C/ V$ s. F4 S1 X' J
end. }0 p8 |) i, f9 \$ D' l3 s+ E# ]

$ V8 x1 B; g( Q+ jend
' N3 t1 S4 w% R3 L& |- ~4 }) Z2 k9 R' t0 D2 u$ `4 m& T! U
伴随阵:% {2 l- y; f, ?* x3 E- m
%伴随阵A* = |Aij|(nxn)
) x" h4 A' E+ x2 I6 L%Aij = (-1)^(i+j)*Mij8 z5 ]8 s. r5 r) C* v8 i; m: b% h1 a' j1 n
%H = [1 2 3;7 9 7;5 6 1;];det(H)*inv(H) = [-33 16 -13;28 -14 14;-3 4 -5];
5 f0 v% x5 C& @1 V/ \function H_Adjoint = Matrix_Adjoint(H,N)
: f" U0 q. M2 U+ AH_Adjoint = zeros(N,N);
1 c1 W( H' n$ E6 _if N==1
+ e; R: E% u) {%    H_Adjoint = [H(2,2) H(2,1);H(1,2) H(1,1)];
, ?8 x2 _' q7 W! g/ Y   H_Adjoint = 1;
7 ?" i- h% Y* Q' Y7 f3 ]   return;
$ a! W5 v" l5 y( k, mend
- [) a* r& I* S# a( Y# k6 Itemp = zeros(N-1,N-1);4 c& y, Y0 Y9 ^7 c
for i=1:N   %逐行扫描4 T4 g$ B+ |" g- n9 a
    for j=1:N  %逐列扫描
% P0 T+ m! f$ \* `$ D  ~; c' ?        for k=1:N-1  %行组合
( G& @- m. s! ~- e4 ?) h            if k>=j
/ R. l7 ~2 `. d# l               row = k+1;
$ v9 b2 N# y+ N( o7 r2 v+ l8 l            else$ W+ f1 s4 b5 w" q( E
               row = k;
; c  K/ q  A$ W6 C' b& X7 P4 |            end/ z# p3 G% g! E  A4 U
            for t=1:N-1  %列组合            3 q, W+ y' I/ ]# T' c) o3 E7 T: x# G
                if t>=i% a/ c% N0 G6 e" `4 S9 u; g
                   cln = t+1;
1 e7 t2 t1 K/ p* z- r. b# Y4 U                else3 |! z4 k! y3 M7 \
                   cln = t;
& }. y  e& {" |, W$ `                end
- d5 ^2 d2 ]7 k% q6 J1 @                temp(k,t) = H(row,cln);
1 X* S. f& L$ q' D1 r            end
. Q! w5 {3 n. d2 L: X' V% x6 @        end
8 _1 G' `9 z- {4 ~8 z/ o        if rem(i+j,2)==0
4 V) g* c; n7 Y1 [  n2 A9 V            H_Adjoint(i,j) = Matrix_Det(temp,N-1);   %求代数余子式
' K+ @/ n+ \: a. }! }' S4 x        else% Z# M0 A9 M2 B, [& Q: B
            H_Adjoint(i,j) = -Matrix_Det(temp,N-1);. A: M4 [  Q: K4 o# J  s
        end
! W* y5 g) F' M2 ?5 W' M    end) T; r) [0 `+ y" v* z
end
% o& ]4 q3 k# X& {5 ^) ?end
: `  N# D, R/ L4 G& |- }5 i$ l2 H/ Z
逆:
$ m# _8 s, [1 g( z& G4 L. z! a%A^(-1) = 1/|A|*(A*)
) w# b1 v, C4 Y%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];
, v& j" q! Y7 A5 C6 t- I. zfunction H_Inv = Matrix_Inverse(H,N)" c7 {0 X! a2 q: F, X" w. q& W
H_Det = Matrix_Det(H,N);
: c( l) z+ X, `5 _$ c1 y' ^( l. zH_Adjoint = Matrix_Adjoint(H,N);
% X" m1 y3 }$ O% g& gH_Inv = H_Adjoint/H_Det;
) Z9 y9 l8 d; R  i3 `( j2 Jend
1 V" n7 V9 Z. n* d9 a0 F. p8 D
, n! k7 N* I0 d2 K/ R' g
3 a' @7 \2 I3 a* J1 X

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 03:55 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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