EDA365电子论坛网

标题: matlab矩阵的应用 [打印本页]

作者: piday123    时间: 2021-9-29 10:50
标题: matlab矩阵的应用
" W4 q% R% b2 D0 C7 {
1、向量组的秩:rank(A)7 J8 S3 P4 X0 y4 j
) W& g; ]( C& M
2、判断线性相关性! \2 H& x. @- x5 G3 e! @- H: f. N

8 F( f9 r2 {, \' Z5 ^# n3 I/ l6 O+ }# U一般步骤(1)输入向量组
! `! m5 O, a( ]* J2 w; O& O
$ l% n* q, h8 _$ k# |$ h                  (2)用A’将行向量转置为列向量4 r4 `6 e! `# q% ~+ l4 J2 e

* y/ ~, p6 q' `; d0 }& h- j+ \9 u* I1 W··                 (3)用rref(A)命令求秩
% d3 c7 G5 c4 l  \2 M
! z  R3 t4 l  s0 C) V3 H+ D例:判断向量组a1=(1 2 0 1), a2=(1 3 0 -1), a3=(-1 -1 1 0)是否线性相关,并求秩。, A0 K7 j8 F; P, Y# x/ K' ]4 a
- [0 P+ `0 P3 n% }/ t- N! Y
>> A=[1 2 0 1;1 3 0-1;-1 -1 1 0]; %输入矩阵
4 G+ y5 {: f6 f) T3 z! _5 L: Y! t6 c& S/ E0 m. y: m
>>A=A’   % 将行向量转置为列向量再求秩
+ f+ O. ~& F4 s2 q9 r5 Y9 J3 ^: r
) W6 Q# H* u" O! t5 C. h>>rank(A)   %求秩" ?2 f- X! N2 `, l) C: x

) H- ?. H4 T# m$ l+ S/ HAns = 32 E+ Z; M; ^" ?( {
3 l  c$ V: ]/ t. _3 t1 h  H  _% k
(注意:当rank(A)等于向量组个数时,线性无关,否则线性相关)* e( r' y( D9 E  Z  r% Y

6 D$ F1 A/ d, M) ?" P* i     3、求向量组的极大无关组% d$ S" d* b+ h+ D8 n6 m7 K1 o0 B0 K

/ m. A) h( R/ _) L     一般步骤:(1)输入向量组,并将其进行转置
! C5 j# L9 a" }& G# M4 T8 ?
( j/ v8 j, N% r1 G0 Y% R                    (2)化为分数形式
. z  e: R9 B8 h# O
$ w: w, ^: K8 B* w- g# l9 A                    (3)将向量化为行最简型
/ J- R$ q1 z5 ~" v- O; M. S
4 d8 [3 O1 S4 m                   (4)对线性相关性进行判断
" I' z" ^1 K* p4 U0 G+ H. g3 [: F+ M# p" K) `
     注:将矩阵化为行最简型的命令为:rref(A)或者rrefmovie(A)
9 [: t$ I. b# `. t, X/ n1 j; U3 h6 _
  例1:求下列向量组的秩和一个极大线性无关组,并将其余向量用该极大无关组线性表示。3 D0 O( ^, w! R' j0 d1 w" F7 V
- Z- y6 J# n# q  J) Q9 s
a1=(2 -1 3 5),a2=(4 -3 1 3),a3=(3 -2 3 4),# }3 V8 L, c* f" ~' i
/ i& T1 k) h4 ^5 d6 O
a4=(4 -1 15 17),a5=(7 -6 -7 0)2 O( F* Y- L2 N1 p
8 F# Z' K& ^7 r, L; I
>> A=[2 -1 3 5;4 -3 1 3;3 -2 3 4;4 -1 15 17;7 -6 -7 0];# U2 [. f4 d" B  D
  z- Q- g- G& d( ~9 E* V  Q3 c
>> A=A′  %将行向量转化为列向量进行运算' F; ^% x3 j3 q$ `2 ~: \

/ H8 u$ ~6 m/ e) b, ~% m1 a>> format rat   %分数格式形式% x2 N: W5 [0 C+ I0 n' I

0 R# e* r9 |# x+ _- w8 @8 ?: g& o>> rref(A)  %将A变换为行最简型
# n. J( [- I& b1 T# P9 ~" a. z- z8 C6 I! `
ans =
; y- R. d2 k2 X  x" O' g# ]4 {' D: H, f3 I8 p
        1      0    0     2     1
( E3 f! A/ W5 M6 X# o0 Q1 ~: [0 o. ~7 D8 ^
        0      1    0    -3     5
2 l! k: j/ c$ |) J$ H. u2 W+ J4 \) e8 Y6 n
        0      0    1     4    -5
& c" X$ ]: ^1 a  y8 V. H7 z9 a8 @$ c  k) ~( h
        0      0    0     0     05 Q& ~2 Z3 A1 X- d/ n' O4 L) C. [
. H7 t: N' Z4 A; E* o* L! W
因为前三行的向量均不全为0,且第1,2,3列的均为1开头,所以a1,a2,a3为一个极大无关组。% M5 B# Z3 h; C8 Y9 z
8 v- s( C# E: x: _8 N% @
) }2 Y) D) ~+ _+ q' B
+ i" z6 b5 }* H* K0 V2 ^6 U+ j- J
例2:求下列向量组的秩和一个极大线性无关组,并将其余向量用该极大无关组线性表示。
4 D8 N' t& h* I+ Z! {. _5 t7 R2 q% ia1=(1,-2,2,3),a2=(-2,4,-1,3),a3=(-1,2,0,3),a4=(0,6,2,3),a5=(2,-6,3,4) 1 Y6 P: _; C# s6 w6 ?8 y
. g# c! Z3 v8 [
解:
; q) V& _2 m1 G/ U; r5 J) _* [1 B
" v; e, [* x7 B9 Z+ S. `2 f0 DA=[1,-2,2,3;-2,4,-1,3;-1,2,0,3;0,6,2,3;2,-6,3,4]$ O1 }' f: `# q+ x, }3 {- V; M+ s

( e5 g3 l3 p/ q>> A=A′  %将行向量转化为列向量进行运算/ p* u; x( t0 g7 {% N
$ m# C+ i% h" X/ O1 H
>> format rat   %分数格式形式
7 d# j2 P! `6 o4 i: k6 C& c* k  z3 I1 A: Q4 D9 }
>> rref(A)  %将A变换为行最简型
! c8 L0 @+ Y* ?% s6 l5 [/ O  C% X2 k$ _9 |5 u: ^
# Q& d& w2 U5 }; |* M3 F

2 j7 x& u) z! SA1,a2,a4为一个线性无关组,a3,a5可用其其线性表示7 E/ e7 S& Z) J  o& ~7 t8 X
( g! @/ E) r' h
3、线性方程组的求解0 }# H; V9 X+ }$ Q. O* x8 P
4 ?: G4 o- I" ^4 G6 o- j
         (1)使用克莱姆法则求解
! @  G% y# H1 Q: B: i
, I# z7 B+ W* n6 I% j
. A) w% F  g# n8 G( p5 H& T# f4 S+ w

/ H( h+ P" S7 v>> A=[2 1-5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6];  %输入系数矩阵
. W9 c9 J" B. X  A3 Q' @  @( J( ~8 i3 s2 Z# I# \* f
>>D=det(A)  %判断解的情况$ Y  j' T2 o# K( a* C  L
+ L6 N, M* `, R" I+ i% T  a
D =  27     ( K  E2 L* H( H3 ]& c2 M7 M+ Q
: R0 p/ k: A* a$ S7 k1 z/ ?  e
>> C1=A;C2=A;C3=A;C4=A;b=[8;9;-5;0];
7 U, g0 r/ E; z
$ A4 p6 B) n, ?& p& `%将A赋值给不同变量3 h, k/ H# T/ o- i: {; S

+ E$ q$ k7 G7 X# Q4 G6 ?# B1 q>> C1(:,1)=b;D1=det(C1); %将某行替换为系数列) J" g+ u2 h2 T+ K

0 l: D1 s) `! R6 ^$ qx1=D1/D    %x求解x1/ w- x9 E& T7 N( f1 u

) }5 _* K2 w* s0 T2 Fx1 = 37 E+ d* k. N2 x5 w0 ^
& n  r5 H$ o( L& H0 p
>> C2(:,2)=b;D2=det(C2);x2=D2/D, k* m7 z3 `! D9 k  R9 z
( A8 _4 }3 Y6 T) f6 S/ [- V
>> C3(:,3)=b;D3=det(C3);x3=D3/D        
, q7 v# R$ w- `) ~6 V1 m' R9 I
0 e+ B  H6 S9 N8 I>> C4(:,4)=b;D4=det(C4);x4=D4/D1 ]. m/ ~. v6 ?. Q2 P' T3 K8 M. j
. N# W, J! A# a
(2)使用矩阵左除法求线性方程的解! k$ f2 ?( K: I0 a' e3 T; v6 m

9 a0 h5 @9 n5 {线性方程组AX=B的一个解为X=A\B。
* |/ N( J- [" ~5 w
: x& J" K6 B+ o. P. G* ?% S6 v8 U例:利用左除法求解上题中线性方程组的解.
. ]8 t  p+ V; X$ |  j  A. @( c2 j% A# \1 V
>> A=[2 1 -5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6];
8 L1 y! R% T* k* n9 B$ x: @5 h
1 c5 M, K- o, J9 ^# i, L/ W& o>>rank(A)
- O0 j3 [9 Z2 O9 y. ~, l# I9 U
# X( X5 \, z# H+ @. L3 ^$ z>> b=[8;9;-5;0];
) C0 q( f* `' O5 y; T- I9 O/ H' U; u. K  w& {
>> x=A\b        %左除法7 s9 M* W; ^6 k
) Z9 W1 ?* D) M7 w  }% m) {/ c
x =2 {8 X2 C0 d1 N

3 w7 Y" Z7 C% |    3.0000( A3 d9 h% I# M* S

) Y2 R: W0 x2 ~6 b$ d$ ]1 e5 R8 \1 u   -4.0000
; o* L/ d) S* t9 N( D# w' l
" m  A- c; C' F% l   -1.0000! d# ~% O4 @1 X- h, b, x1 w+ S1 s
* n* A. p& z3 e8 f
    1.0000/ ~6 u  R5 k8 A$ g  W7 e! x

, {2 O0 G3 N7 f1 U$ P4 N(3)利用矩阵的行(列)初等变换求线性方程组的通解
" g( L. z1 V6 @3 ^$ p  M. ]) u! I" @+ v: M6 e
  基本步骤:(1)将线性方程组表示成增广矩阵的形式;
# c( G& B8 M& i1 B1 k# i% U- ^* R" M7 m% {# }& C
(2)对增广矩阵实行初等变换,使增广矩阵转化为行阶梯形矩阵;& s4 G  O# r3 G& `- C* j
0 m  K+ v: J4 Z  N& k. R9 u8 Q
(3)得到方程组的解。; p# ]; t& h; m. b! \/ _
5 O# ^: |4 Q* L# d- O6 V1 q
例:求解线性方程组
, ?% h) z8 f) c8 A* r
: d4 h  g$ X- E  s1 e * C4 K. @1 Y6 m1 X- l

* R6 ?5 j4 r, c8 j8 z3 w: l% ^( N& _" r; ]! J" W
>>A=[1,1,1,1;0,1,-1,1;2,3,1,3];     %方程组的增广矩阵. R. H* L* ?1 a8 x1 T2 N

, \& }7 ]# r: O) ?>>F=rref(A);    %将方程组增广矩阵化为行阶梯形矩阵6 H. P% `( `% u* w8 t+ `

5 W+ u9 |  `6 f>>F  %输出增广矩阵的行阶梯形矩阵
! f1 J, ]4 j# s# _% ?
6 c( r, d5 i, {) p8 @F =
$ D- I' k$ H1 H8 o% ~) x( Z& `4 P
% z9 U% M4 m( P. k$ I9 H     1     0    2     0
( n. }: E- q& }( P7 u. p
3 z7 Y9 t( k2 e+ [) x- P     0     1   -1     14 D! M, l+ v7 ?! d* d

9 |1 h$ R0 l' v  I. W: a8 {: {. u     0     0    0     0
6 T0 q" \; d, S% E% P: A3 u; F
" v" r" W9 x, ~# q/ N由该阶梯形矩阵,可得方程组:x1=-2x3    x2=x3+1" T$ l' L  g0 O0 D

+ G) N6 x$ Y2 R; h0 ^3 \0 Y9 Q9 ^/ B1 o* a& T
( f; `6 y4 b$ U# U
(4)求非齐次线性方程组的通解
/ r/ l( \" O& [9 Q' G4 U9 ]) U( L$ Y) y
非齐次线性方程组需要先判断是否有解,若有解,再进一步求通解。0 ?- x; `, O! I
2 F1 |6 t; K7 G
一般步骤为:
/ O1 N) u' Z5 M: ?0 [
: y, |, m$ S! |$ K" G% |第一步:判断AX=b是否有解,若有解则进行第二步;(R(A)与R(A,b)比较,即比较系数矩阵的秩和增广矩阵的秩)
1 a7 O  N: C5 k
4 g2 |2 ~, a9 R1 B3 e第二步:求AX=b的一个特解;(矩阵除法): U$ Y" u5 S7 _7 I2 a4 _. q' x

  r$ O# w) \3 C5 Y& V8 }第三步:求AX=0的通解;(利用null命令)5 _" F/ b6 ~3 D- W) k& T2 N
% ~9 l" g3 [4 I& L
第四步:AX=b的通解:AX=0的通解+AX=b的一个特解。) D& q7 p, l2 R% Z) R0 m- [
$ v" ?& e9 Q! k8 P! [8 t
例:判断方程组
6 u5 r: p( d- p6 t: R1 i! @( R9 m
% {/ }9 x( t! A  I- L7 v$ N5 A" j%第一步:判断系数矩阵与增广矩阵的秩
. h) I' @# Q4 b5 k  G: F$ k1 w$ V" T! e: t( R7 ^2 o
>> A=[1 -1 1 -1;-1 1 1 -1;2 -2 -1 1];    %系数矩阵A$ J5 p7 t" Z  e0 F  B# e

+ Z$ k( v# u9 w2 L9 N7 F' V; j>> b=[1;1;-1];    %常数b+ Q' I( z' {$ U
$ x5 u* o- k% c. H9 `
>> rank(A)     %系数矩阵的秩- u3 m9 V# J9 o" \8 S2 Y

0 `; `8 B5 c, ^1 nans =
) Z. l# T" @! ^9 V7 n* ^
6 X! I8 X3 x5 D2 e# |     2
! G( B0 }) D5 H  A+ E
0 e( {2 R5 {% B* \2 w>> rank([A,b])    %增广矩阵的秩# Z# i3 D5 F# T, j; n1 G8 @
+ p2 ~- Q# H7 N
ans =
' T: ^5 z7 J* `1 O0 `: O- g8 y( K- R* q$ p7 @" f
     2
- ]) h5 _% }; d2 X; J' b# y0 n6 j1 W0 C0 o$ J% o, C% z
%求通解
% {% S( _& @: @" K# J5 ?: r
1 d; t+ U$ p6 N& v" {化行最简形,用rref命令! P$ v: E8 F  n. a2 p
6 F2 {" k* u3 l. B0 S7 x1 |/ B" f" H
>> rref([A,b])
) p6 K* {  B- e: ~$ H- ]# U3 r3 b% M2 {( E  k2 p
ans =0 ?. ]: G3 Z5 s. U5 _1 x3 H4 H
5 x1 m) T$ A% u- S/ h
     1    -1    0     0     0
* }4 s+ I( m. h3 ?9 h0 x. A3 ~7 P5 T+ `. C  c; M  H( v
     0     0    1    -1     14 J6 b" C$ t" G, ]& D
( q0 |" c. Y8 q& X
     0     0    0     0     0
8 x& }7 p) H5 ?4 Q! p& x5 b0 i  i5 c4 g
取x2,x4为自由变量,从而通解为:x1=x2,x3=x4+1' U: e) y+ y# l5 Y+ w

: B% J4 f/ \7 Z( g(2)先求出特解及导出组的基础解系, 用命令null,例如:- C  s6 W% x5 ]" L  G6 B! e4 s& a

2 U0 T, \7 V3 K- T% `* q9 n>>x0=A\b       %方程组的一个特解- O: l' Z0 _4 d- [

% f5 l5 v" y* Bx0 =1 y( d7 k6 P9 A% J( ^6 N
; ?2 T3 w: w9 K) b0 ]
     02 ~7 `- v, `" h1 s1 _

  W6 i1 a  Y& O" H- l9 B7 z$ m2 x6 [     0! O. T' @# L2 s" F. o! X8 d, d6 C3 R

6 w2 X( U8 c8 U: j) y     1- r4 |* t; X. m
7 r3 z6 A* d6 \% g: n4 |+ C
     07 H/ D% E0 m7 C

8 f- G2 g: T2 F8 v* A( `) K3 E>>x1=null(A)    %求导出组的基础解系
- }8 e7 h4 J4 P7 Q
! u; O" u, @! D; N4 K5 Q: @" Ox1 =
. K1 ?. ^0 n' \8 v8 j$ G( I# L: x. o* |2 H8 N" B) G9 }/ C
  -0.7071               0  p# m6 S3 O; T: E/ S/ q

! E. f" z* K4 {% O* P   -0.7071               03 @% b7 |' S. [% V5 K, X
% g8 q7 B  q' @. j
   -0.0000        0.70714 m" a" V. d1 v
- d" p9 P3 X8 D6 p- E6 v6 O
  -0.0000       0.7071! v  e- q3 X) v/ Z
: H! e( V' `1 i7 G1 b) ^: u+ ^
故原方程组的通解为  V8 C# B& p( Z0 c0 m0 T0 ?& [* k

# _" E- M! z/ q6 v(x1,x2,x3,x4)=(0,0,1,0)+c1(-0.7071,-0.7071,0,0)   +c2(0,0, 0.7071, 0.7071),c1,c2为任意常数.1 `0 V4 s5 b, J7 S
3 J! Q2 C* Q: }" J8 J
null是用来求齐次线性方程组的基础解系的,加上'r'则求出的是一组最小正整数解,如果不加,则求出的是解空间的规范正交基。(x1=null(A,'r'))- |: L9 ?4 o2 H& T; J! J3 y! \6 d

作者: showmaker    时间: 2021-9-29 13:04
很清楚   感谢分享
作者: ExxNEN    时间: 2021-9-29 13:39
matlab矩阵的应用
作者: SsaaM7    时间: 2021-9-29 13:40
非齐次线性方程组需要先判断是否有解,若有解,再进一步求通解
作者: ldezgr    时间: 2021-10-1 21:51
LZ辛苦,学习学习
作者: yesnyes    时间: 2021-10-2 08:41
xie xie xie




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2