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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
行列式:$ {) }9 N% J; k
%Aij = (-1)^(i+j)*Mij2 [; M  s6 n7 ~* R, A
%D = a11*A11 + a12*A12 + a13*A13 + ... + a1n*A1n
3 ~. j7 P% e7 U' |$ `+ q%H = [1 2 3;7 9 7;5 6 1;];det(H) = 147 j3 v$ X3 F8 v' ]# [/ o5 H4 P; k
function H_Det =  Matrix_Det(H,N)  %输入矩阵 阶数  
# F3 d. V2 M8 E) X; QH_Det = 0;7 G" U! N; b4 O8 P1 @
if N==1# [& u3 u& z% k- B% |1 J6 m' c
   H_Det = H(1,1);
  @# d9 {: m9 D/ _  E  S  ~   return;8 J- \* m( M1 ^6 o% R( _
end
: `" S- X) o1 i: X3 a, f# D! @temp = zeros(N-1,N-1);3 y0 p! `4 j4 r. l
for i=1:N
. X; o8 _: Z9 @8 q    for j=2:N  %第二行开始. V3 C# B  `- e/ ^/ I- i
        for k=1:N-1
. d; p+ r  B+ |2 v& l0 K6 @. m; _            if k>=i; B  }; Q% q1 |% l
                cln = k+1;8 h" m% q/ }# ?
            else
; _$ o( _% L7 v: r3 n, H. b. T                cln = k;9 G8 C# h. C9 Q0 ~# Y  }0 y% V( D
            end# s- F1 i7 Y, K1 Q
            temp(j-1,k) = H(j,cln);
/ s! W0 S6 n+ J* {: i/ O        end  {& g! h" D: o# \  v! P5 ^7 _. b0 g
    end
" z- @! P) p7 G    t = Matrix_Det(temp,N-1);  %递归
/ `  Y/ ]; i( `4 J+ E    if rem(1+i,2)==0   %(-1)^(1+i)
/ V  T' F3 `0 H9 u4 m6 N( o, H! I       H_Det = H_Det+H(1,i)*t;4 n# F1 k8 z/ [$ T
    else7 a2 E; p- {1 y7 [% @( s" d
       H_Det = H_Det-H(1,i)*t;
/ C1 [. J' R6 Q) ]    end" i: R% F- f5 \' s
end
7 y' ]4 P9 A* x4 b0 V& {
6 t. Q' f# y# D) C  kend! [- d+ \  {& m7 @1 Z* H

% Q$ ?) ?7 d6 Z' F1 B% F! z6 o伴随阵:% Z/ B% l$ h( ^! i4 n; ?: \
%伴随阵A* = |Aij|(nxn)! H& f7 D  v1 v% {7 `  ~
%Aij = (-1)^(i+j)*Mij* E8 ~4 J7 k% ~$ P" @: F, y
%H = [1 2 3;7 9 7;5 6 1;];det(H)*inv(H) = [-33 16 -13;28 -14 14;-3 4 -5];# J1 M2 B1 E" @2 r- _6 s3 j2 c6 d
function H_Adjoint = Matrix_Adjoint(H,N)
5 D9 M) u3 |7 _" V* p  g/ gH_Adjoint = zeros(N,N);' p: @3 G( E7 H
if N==1* N. X( z% Z; E8 k' D
%    H_Adjoint = [H(2,2) H(2,1);H(1,2) H(1,1)];
6 L% o% W- w( W7 ?! ]/ k   H_Adjoint = 1;6 Q  j1 E% t8 p* }/ D/ p& z
   return;
* `% _& _3 C- }4 `8 S8 x8 d- Eend+ ~( S2 e% ?1 }  I
temp = zeros(N-1,N-1);9 D. `% n1 A2 h! Z+ |6 J0 ~! m
for i=1:N   %逐行扫描* x- A6 k3 ?. P7 X, d8 K" T8 ?
    for j=1:N  %逐列扫描
& J- `+ k# F7 U6 _        for k=1:N-1  %行组合1 }7 X# r: U, L
            if k>=j
: T! y8 @" i) K2 B4 W9 y- r  c               row = k+1;! i! v7 {/ p; ^( i$ P& q
            else
1 q4 P; y+ D% i( a6 S/ U2 G9 B               row = k;
+ H0 p/ B! O) q1 I# i            end
  C% x+ H4 b& |1 v8 Z+ R' j9 ]            for t=1:N-1  %列组合            : N, C4 x6 `) l. L
                if t>=i8 x7 t  F9 h! v7 |
                   cln = t+1;
3 s& k& |" j3 X                else
. t+ u- d! l1 Y# B0 _                   cln = t;) W' C: ~* ^- Z* h
                end
$ T( J' {7 W. F' J  F                temp(k,t) = H(row,cln);
8 _0 E5 f9 z% y0 _: P7 _  ^& x            end
3 b# T2 [: p; }        end
1 k% M2 h  i: O) r( c        if rem(i+j,2)==0
5 j4 h& E. P/ H. }            H_Adjoint(i,j) = Matrix_Det(temp,N-1);   %求代数余子式. d8 t* C% C; N* F; K& a" K) o
        else3 b5 }8 O; }) d# ]  ?
            H_Adjoint(i,j) = -Matrix_Det(temp,N-1);2 _! B) m2 ?' w& l$ x: z, I5 K, b
        end3 P! b: o% V' s7 G$ P5 i
    end
- _! j( T- t  S# I6 aend7 i! n+ F# D% f# B/ N
end( D) d* g% X. ^9 b

# e) ]3 T' w, ~3 D& z* p逆:4 M1 }0 K. S' k/ P" |4 u
%A^(-1) = 1/|A|*(A*)
/ P1 O+ ?( ?/ F! O%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];# n0 y4 K3 }  n2 M
function H_Inv = Matrix_Inverse(H,N)
; w6 s+ _4 F, o# N- WH_Det = Matrix_Det(H,N);
% x( F9 I7 h6 h; j$ u: Z' u) \H_Adjoint = Matrix_Adjoint(H,N);& u3 o8 J5 m- t" p* |
H_Inv = H_Adjoint/H_Det;
9 Y& J) L" X& ~' }, eend# b! v$ J4 f  i% f3 U+ e7 i

8 y4 Z3 f! V1 R; R
% ^/ F% q) F* q3 ]; a' a1 a3 {. e  g

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-31 19:05 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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