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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
行列式:
) R& `. W+ m, {# d; j %Aij = (-1)^(i+j)*Mij6 O' B* w9 o$ \6 o
%D = a11*A11 + a12*A12 + a13*A13 + ... + a1n*A1n
+ G4 M& m9 z) d2 `# z%H = [1 2 3;7 9 7;5 6 1;];det(H) = 14) C' N, q7 C! }7 [! v2 @
function H_Det =  Matrix_Det(H,N)  %输入矩阵 阶数  
2 O1 V1 Z& g1 G+ c2 U0 [& F) PH_Det = 0;0 J& Z# ^% E8 d1 t; t& [4 i
if N==1
  U' w. x; ^$ ]0 e0 A, `1 e! E   H_Det = H(1,1); 4 ?8 z% p1 Z* ^
   return;
( I2 ~/ H3 I: d) Gend2 Z4 _% o8 D' z. ~2 r' @+ N' E
temp = zeros(N-1,N-1);5 E3 x. }$ T% D; N8 I$ O5 f
for i=1:N
5 W, n7 M9 ?7 l5 U% M( J    for j=2:N  %第二行开始# @/ F* _6 x* x( y# M+ O
        for k=1:N-1* d0 y# |* C. q& n' u9 s
            if k>=i
7 Z& F4 r4 e; Z2 \7 C                cln = k+1;* Y: u, `; B, r( d% C/ [" t# d
            else
; I" g7 q: r9 F) j$ X2 q% \0 ^! L                cln = k;
! @0 B& `% i9 I8 [$ F            end
' g1 r0 a6 k+ g7 a7 i% ?7 C            temp(j-1,k) = H(j,cln);9 J0 q7 `$ m9 J7 ]! b
        end
4 r3 u( s' k# A& w( O    end
: O8 T$ Q4 i0 {! I    t = Matrix_Det(temp,N-1);  %递归
9 q) g% u2 }4 @/ n# C( x* \4 ]; q    if rem(1+i,2)==0   %(-1)^(1+i)1 ?& p8 g, N) G
       H_Det = H_Det+H(1,i)*t;
+ e+ `0 F5 [. q. }* m  w    else
4 V2 v+ t6 y. |/ k" ~* v       H_Det = H_Det-H(1,i)*t;
) A# N& N  w3 F3 w+ V    end' I  V* e" n4 `0 s  J; B" c0 x
end. P) b! x# J: T& g7 O  u2 Q

+ B1 U- V4 y( \) r) G% n$ uend8 ?! ^5 h$ S! n. M

1 S! R* ]5 r! R( z6 `$ L伴随阵:
6 L' P# n. g, I6 {: `. C- o%伴随阵A* = |Aij|(nxn)* d! o9 L3 P+ c) i( y- s( J' g
%Aij = (-1)^(i+j)*Mij
$ M7 v6 V2 j5 I# [; c$ g%H = [1 2 3;7 9 7;5 6 1;];det(H)*inv(H) = [-33 16 -13;28 -14 14;-3 4 -5];' G' S/ Z( Q9 P2 D
function H_Adjoint = Matrix_Adjoint(H,N)% f4 G1 h% B# t1 a8 W
H_Adjoint = zeros(N,N);& ^/ I$ B' D# M% K1 e% q
if N==1
+ E* |' S5 v0 g9 x! \%    H_Adjoint = [H(2,2) H(2,1);H(1,2) H(1,1)];
  ]/ m. Z, |+ y6 E* ?/ V. v   H_Adjoint = 1;
2 t* V7 C9 v7 {8 ?: X   return;
" @7 ^* B0 w0 F1 ^4 }+ Kend9 l6 N' L( w. u$ o  o
temp = zeros(N-1,N-1);5 L. k+ J6 A5 M9 R" i% G
for i=1:N   %逐行扫描
0 O9 @0 B$ o6 b7 f8 w    for j=1:N  %逐列扫描
7 W0 k( }, V  J& Z+ q2 |: V        for k=1:N-1  %行组合" l1 _' p( T0 s0 a+ G! x2 ^0 m. M
            if k>=j
$ j/ {) z8 j7 F2 Z* |               row = k+1;& @3 g; [. J7 j+ }
            else; D" P! r3 D: u4 @- Z
               row = k;1 c; J, v, H" N$ H/ H5 A! ^
            end/ H, |1 l- Q  j2 Q' t5 J1 U
            for t=1:N-1  %列组合            * O' @  f* {) R" q6 H. k+ B
                if t>=i5 v3 e" t# m5 p
                   cln = t+1;
1 h4 N" A/ c! r/ Y7 R0 C2 R- L% a                else
( M2 G4 I: [: N' p  d                   cln = t;: M( y" V' b- R7 ~& s7 h6 X
                end
' Y: E  D. |- C$ }2 I0 I                temp(k,t) = H(row,cln);
8 y7 s! r% V* U            end
  {9 E  k% w+ i2 Z        end
+ S. R# U; q* l8 A/ r6 ?' Q5 D        if rem(i+j,2)==0
& R( ~. }$ j" r) s            H_Adjoint(i,j) = Matrix_Det(temp,N-1);   %求代数余子式! }: F. a4 h; a, K' C
        else
* ~; j* ]5 ^3 A# q            H_Adjoint(i,j) = -Matrix_Det(temp,N-1);" E3 z0 }! g7 `% F) g
        end
- ?3 z7 Q( u$ v/ h9 r2 G    end4 |1 i; `- ^( `  h$ p
end
6 f: X' P- E9 P/ zend# q/ W! g( M" F3 w; y" t
# S5 y$ B0 X/ x/ d* v
逆:# ]/ |9 K+ m# O: m! b* J8 H
%A^(-1) = 1/|A|*(A*)( W$ _( [. ?7 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];
- T' T/ _$ }, G% p6 O" tfunction H_Inv = Matrix_Inverse(H,N)
& t, Z1 o5 k6 r6 {/ xH_Det = Matrix_Det(H,N);
& f* D9 g" v) K2 @) bH_Adjoint = Matrix_Adjoint(H,N);5 O' L  m$ R  z1 u
H_Inv = H_Adjoint/H_Det;3 \' _8 L2 O% y2 j3 L
end1 N3 m8 R4 H- o. L

0 S1 }0 Z3 V  D' P5 Z
4 @* R  q' z, M5 P9 i7 w! k: G8 O1 Q. P" O- |1 L9 a

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-5 17:28 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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