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

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

[复制链接]

该用户从未签到

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

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 20:56 , Processed in 0.171875 second(s), 24 queries , Gzip On.

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

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

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