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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
行列式:
: _+ m$ J# ]( x" v! }& b %Aij = (-1)^(i+j)*Mij4 j- K, N% r' S# [
%D = a11*A11 + a12*A12 + a13*A13 + ... + a1n*A1n
  W. r0 f. c- Y% n" k& W%H = [1 2 3;7 9 7;5 6 1;];det(H) = 14
8 @; T$ P% y$ Hfunction H_Det =  Matrix_Det(H,N)  %输入矩阵 阶数  + \# l  B# ~' A) Z* S
H_Det = 0;0 y) ]1 k& O* R$ \! n
if N==19 N' J1 I% I* o
   H_Det = H(1,1);
# T. d+ w# T3 ]; o3 _   return;
6 h* J/ r8 w/ O" a; v" h: ?end
- k  _/ b2 h- ltemp = zeros(N-1,N-1);- o. R" H% P! M+ d
for i=1:N. c! J" g& w: ^/ Y) T5 a  ]& f; p
    for j=2:N  %第二行开始( H" ]( _1 l2 B' K$ ~4 F* j, a: t
        for k=1:N-1
3 v1 C9 C( G& ?# T* K            if k>=i$ b, W0 z: E  r4 y7 z
                cln = k+1;
: ~! B8 P& a' X4 i  z8 |8 H            else4 g. Y1 u/ |" w8 f! r$ F8 l
                cln = k;% f5 L) H* \& v6 H, v% ~# N7 [
            end( u# T/ I. o2 W( ^; x% [7 h
            temp(j-1,k) = H(j,cln);
/ T0 z0 x2 G$ Q" u2 I+ h' X        end
, t1 n4 b: ~! a) c+ O# G    end
- _6 H  x$ Z2 [5 \* i    t = Matrix_Det(temp,N-1);  %递归
# N( S; E! `* b7 W8 ?4 q0 f* \2 `% B    if rem(1+i,2)==0   %(-1)^(1+i)8 p4 i  I0 F7 O* \$ r
       H_Det = H_Det+H(1,i)*t;
  R: d% Z" k1 ?$ g6 K" a( q# K    else( L% c# J0 X7 q! u3 O7 z8 l
       H_Det = H_Det-H(1,i)*t;2 |6 H6 R, S) F+ E! \
    end/ V* j3 c# F, u8 a  Z
end/ E3 W# q& |6 i

1 E8 F; Y3 W8 H* pend
5 |. K1 T; V9 C0 l7 r1 z3 E& C; v6 c6 [  n
伴随阵:. Z1 ~. h6 Z$ i1 R( L
%伴随阵A* = |Aij|(nxn)
1 c* c) T9 F. G8 m1 a%Aij = (-1)^(i+j)*Mij
: A' }; x  F8 M1 _) W7 n- ?%H = [1 2 3;7 9 7;5 6 1;];det(H)*inv(H) = [-33 16 -13;28 -14 14;-3 4 -5];& w& R8 R  E" `, D' P6 [1 J
function H_Adjoint = Matrix_Adjoint(H,N)
$ m5 I3 c# R. T/ wH_Adjoint = zeros(N,N);2 U0 [/ n& z3 {" }$ M
if N==1
  @1 f3 z: i# j% G" K$ ]- j* I%    H_Adjoint = [H(2,2) H(2,1);H(1,2) H(1,1)];
$ R% g1 J! P1 ?# M, n- x* m" U   H_Adjoint = 1;6 @5 U4 N2 J- U+ H/ o
   return;" `" I2 l- m5 [6 V
end8 t/ s" N: N9 M/ H& ]8 t6 g
temp = zeros(N-1,N-1);3 o/ b$ w; a9 H+ F8 N) p" R
for i=1:N   %逐行扫描0 a+ Q: g2 u+ [
    for j=1:N  %逐列扫描
7 Z( Z# [0 b! P2 z7 _; a        for k=1:N-1  %行组合
8 d* U4 @$ u9 f8 ]; h8 I8 f4 S            if k>=j
0 `! I% v# a, V! |               row = k+1;1 W, j' ^6 Z7 L. p" R8 _2 _
            else
$ ~9 H6 y6 ^3 Q$ N6 B4 p( W% H5 r               row = k;
; k; C0 G+ X& H* I2 q            end
! ?6 r3 {+ G; @+ L2 B$ \6 k            for t=1:N-1  %列组合            / i7 b! i: I5 `7 l0 G7 v0 \; `
                if t>=i( e0 h0 n1 A/ m" }( s; Y8 G' |
                   cln = t+1;; t; k5 ~# l9 }8 ?! l* x- ^
                else
5 y7 |: ?2 y3 W3 g                   cln = t;
; N& V) e$ ~* _5 R) ?                end* D" _9 c( M5 _: j) V7 E! D+ e- n1 a) r
                temp(k,t) = H(row,cln);
" N0 i1 G5 i  y, K' P. d            end7 C! g; w" Y1 s/ {
        end
" m$ n: ~& `# L0 `5 Q        if rem(i+j,2)==0: M( B3 u0 d/ J" F3 S4 D3 n
            H_Adjoint(i,j) = Matrix_Det(temp,N-1);   %求代数余子式
3 C4 q$ H8 N/ \% h        else9 _  ?1 l: d% R
            H_Adjoint(i,j) = -Matrix_Det(temp,N-1);) `/ i* `( H; W5 i: L
        end
  Q4 D- M( u' G/ A/ s+ j" B! ]    end
: M1 a; G8 x3 m% A/ ]& W, ], yend2 n1 v- X2 v3 }$ b
end
- \" v! o% A! v5 D/ |4 d0 ]6 Q5 b$ f3 B
逆:
. J/ O+ y3 O( q& }& Q%A^(-1) = 1/|A|*(A*)8 q0 A. g/ j0 n% a5 O! q
%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];
  P7 |7 J  v, G, ~0 j' Qfunction H_Inv = Matrix_Inverse(H,N), z* m6 [9 Q- D) z- s6 ^5 e6 M
H_Det = Matrix_Det(H,N);
  M$ D2 x: v# Z* aH_Adjoint = Matrix_Adjoint(H,N);8 ~; y9 ~- ~! @* y  o. ]7 E: Y: [
H_Inv = H_Adjoint/H_Det;3 V$ B* Y  J* h' c/ `* S5 T0 R$ C
end- O' ^" g' L5 k" Y$ D4 r7 c' l
! o) x+ u% M' n- n4 d: N

& @. ?- X! L' y0 F  |
$ V  N7 i. [- q9 z8 R

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-20 06:51 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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