Matlab-study-12-线性方程式与线性系统

    技术2022-07-11  107

    线性方程式表示

    示例1

    解方程组: { 3 x − 2 y = 5 4 + 4 y = 11 \begin{cases} 3x-2y=5\\ 4+4y=11 \end{cases} {3x2y=54+4y=11

    把方程组转换为矩阵表示,再求解

    [ 3 − 2 1 4 ] ⏟ A [ x y ] ⏟ x = [ 5 11 ] ⏟ b \underbrace{ {\begin{bmatrix}3&-2 \\1& 4 \\\end{bmatrix}}}_{A} \underbrace{ {\begin{bmatrix}x\\y \\\end{bmatrix}}}_{x}= \underbrace{ {\begin{bmatrix}5\\11 \\\end{bmatrix}}}_{b} A [3124]x [xy]=b [511] A x = b Ax=b Ax=b

    示例2

    方程式表示 { V 1 = R 1 i 1 + R 4 i 4 R 4 i 4 = R 2 i 2 + R 5 i 5 R 5 i 5 = R 3 i 3 + V 2 i 1 = i 2 + i 4 i 2 = i 3 + i 5 \begin{cases} V_1=R_1i_1+R_4i_4\\ R_4i_4=R_2i_2+R_5i_5\\ R_5i_5=R_3i_3+V_2\\ i_1=i_2+i_4\\ i_2=i_3+i_5 \end{cases} V1=R1i1+R4i4R4i4=R2i2+R5i5R5i5=R3i3+V2i1=i2+i4i2=i3+i5 矩阵表示 [ R 1 0 0 R 4 0 0 R 2 0 − R 4 R 5 0 0 − R 3 0 R 5 1 − 1 0 − 1 0 0 1 − 1 0 − 1 ] ⏟ A [ i 1 i 2 i 3 i 4 i 5 ] ⏟ x = [ V 1 0 V 2 0 0 ] ⏟ b \underbrace{ {\begin{bmatrix}R_1&0&0&R_4&0 \\0&R_2&0&-R_4&R_5 \\0&0&-R_3&0&R_5 \\1&-1&0&-1&0 \\0&1&-1&0&-1\\\end{bmatrix}}}_{A} \underbrace{ {\begin{bmatrix}i_1\\i_2\\i_3\\i_4\\i_5\\\end{bmatrix}}}_{x}= \underbrace{ {\begin{bmatrix}V_1\\0\\V_2\\0\\0\\\end{bmatrix}}}_{b} A R100100R201100R301R4R40100R5R501x i1i2i3i4i5=b V10V200

    解线性方程式

    消去法——高斯消去法:rref()

    示例

    A = [1 2 1;2 6 1;1 1 4]; b = [2; 7; 3]; R = rref([A b])

    LU Factorization – lu()

    A = [ 1 1 1 2 3 5 4 6 8 ] b = [ 2 7 3 ] {A={\begin{bmatrix}1&1&1 \\2& 3&5\\4& 6&8\\\end{bmatrix}}} {b={\begin{bmatrix}2\\7\\3\\\end{bmatrix}}} A=124136158b=273

    正片开始-矩阵左除:\ or mldivide()

    举例

    { x + 2 y + z = 2 2 x + 6 y + z = 7 x + y + 4 z = 3 \begin{cases} x+2y+z=2\\ 2x+6y+z=7\\ x+y+4z=3 \end{cases} x+2y+z=22x+6y+z=7x+y+4z=3

    %方法一: A = [1 2 1;2 6 1;1 1 4]; b = [2; 7; 3]; x = A\b %方法二:克拉默法则(下面有说明) A = [1 2 1;2 6 1;1 1 4]; b = [2; 7; 3]; x = inv(A)*b

    练习:解方程式 { V 1 = R 1 i 1 + R 4 i 4 R 4 i 4 = R 2 i 2 + R 5 i 5 R 5 i 5 = R 3 i 3 + V 2 i 1 = i 2 + i 4 i 2 = i 3 + i 5 \begin{cases} V_1=R_1i_1+R_4i_4\\ R_4i_4=R_2i_2+R_5i_5\\ R_5i_5=R_3i_3+V_2\\ i_1=i_2+i_4\\ i_2=i_3+i_5 \end{cases} V1=R1i1+R4i4R4i4=R2i2+R5i5R5i5=R3i3+V2i1=i2+i4i2=i3+i5 第一步: 矩阵表示 [ R 1 0 0 R 4 0 0 R 2 0 − R 4 R 5 0 0 − R 3 0 R 5 1 − 1 0 − 1 0 0 1 − 1 0 − 1 ] ⏟ A [ i 1 i 2 i 3 i 4 i 5 ] ⏟ x = [ V 1 0 V 2 0 0 ] ⏟ b \underbrace{ {\begin{bmatrix}R_1&0&0&R_4&0 \\0&R_2&0&-R_4&R_5 \\0&0&-R_3&0&R_5 \\1&-1&0&-1&0 \\0&1&-1&0&-1\\\end{bmatrix}}}_{A} \underbrace{ {\begin{bmatrix}i_1\\i_2\\i_3\\i_4\\i_5\\\end{bmatrix}}}_{x}= \underbrace{ {\begin{bmatrix}V_1\\0\\V_2\\0\\0\\\end{bmatrix}}}_{b} A R100100R201100R301R4R40100R5R501x i1i2i3i4i5=b V10V200 第二步:写代码

    syms V1 V2 R1 R2 R3 R4 R5; A = [R1 0 0 R4 0;0 R2 0 -R4 R5;0 0 -R3 0 R5;1 -1 0 -1 0;0 1 -1 0 -1]; b = [V1;0;V2; 0;0]; x = A\b

    矩阵求解函数

    方法解释qrOrthogonal-triangular decompositionldlBlock LDL’ factorization for Hermitian indefinite matricesiluSparse incomplete LU factorizationluLU matrix factorizationcholCholesky factorizationgsvdGeneralized singular value decompositionsvdSingular value decomposition

    克拉默法则(Cramer’s method)——求逆

    A = [ a b c d ] A − 1 = [ a b c d ] − 1 {A={\begin{bmatrix}a&b \\c& d \\\end{bmatrix}}}\qquad {A^{-1}={\begin{bmatrix}a&b \\c& d \\\end{bmatrix}}^{-1}} A=[acbd]A1=[acbd]1 a d j ( A ) = [ d − b − c a ] d e t ( A ) = ∣ a d − b c ∣ {adj(A)={\begin{bmatrix}d&-b \\-c& a \\\end{bmatrix}}} \qquad det(A)=|ad-bc| adj(A)=[dcba]det(A)=adbc

    矩阵的逆定义: A − 1 = [ a b c d ] − 1 = 1 d e t ( A ) a d j ( A ) = 1 d e t ( A ) [ d − b − c a ] {A^{-1}={\begin{bmatrix}a&b \\c& d \\\end{bmatrix}}^{-1}} ={\frac {1} {det(A)} }adj(A) ={\frac {1} {det(A)} }{\begin{bmatrix}d&-b \\-c&a \\\end{bmatrix}} A1=[acbd]1=det(A)1adj(A)=det(A)1[dcba]

    举例 { x + 2 y + z = 2 2 x + 6 y + z = 7 x + y + 4 z = 3    ⟹    [ 1 2 1 2 6 1 1 1 4 ] x = [ 2 7 3 ] {\begin{cases} x+2y+z=2\\ 2x+6y+z=7\\ x+y+4z=3 \end{cases}}\implies {\begin{bmatrix}1&2&1 \\2&6&1\\1&1&4 \\\end{bmatrix}}x={\begin{bmatrix}2 \\7\\3 \\\end{bmatrix}} x+2y+z=22x+6y+z=7x+y+4z=3121261114x=273 求解 x = A − 1 b x=A^{-1}b x=A1b

    A = [1 2 1;2 6 1;1 1 4]; b = [2; 7; 3]; x = inv(A)*b

    该方法存在一个问题:矩阵的逆有可能不存在(即矩阵A有无限多个解,或者无解的情况),如 (注:当A有唯一解时,可逆) A = [ 1 2 3 4 2 4 6 8 9 8 7 6 1 3 2 8 ] A=\begin{bmatrix}1&2&3&4 \\2&4&6&8\\9&8&7&6\\1&3&2&8\\\end{bmatrix} A=1291248336724868

    A = [ 1 2 3 4; 2 4 6 8; ... 9 8 7 6; 1 3 2 8]; inv(A) det(A) %当矩阵A不可逆时,det(A)=0 %INF:无限大

    练习 步骤一:转换为矩阵表示 { x + y + z = 0 x − y + z = 0 x + 3 z = 0    ⟹    [ 1 1 1 1 − 1 1 1 0 3 ] x = [ 0 0 0 ] {\begin{cases} x+y+z=0\\ x-y+z=0\\ x+3z=0 \end{cases}}\implies {\begin{bmatrix}1&1&1 \\1&-1&1\\1&0&3 \\\end{bmatrix}}x={\begin{bmatrix}0 \\0\\0 \\\end{bmatrix}} x+y+z=0xy+z=0x+3z=0111110113x=000 剩下有时间再画图了

    检查矩阵条件的函数

    函数说明condMatrix condition number(得到的值越小矩阵越“健康”}rankMatrix rank

    举例

    A = [ 1 2 3 2 4.0001 6 9 8 7 ] B = [ 1 2 3 2 5 6 9 8 7 ] {A=\begin{bmatrix}1&2&3\\2&4.0001&6\\9&8&7\\\end{bmatrix}}\qquad {B=\begin{bmatrix}1&2&3\\2&5&6\\9&8&7\\\end{bmatrix}} A=12924.00018367B=129258367

    A = [ 1 2 3; 2 4.0001 6; 9 8 7]; cond(A) B = [ 1 2 3; 2 5 6; 9 8 7]; cond(B)

    问题:解线性方程: y = A b y=Ab y=Ab

    举例 { 2 ⋅ 2 − 12 ⋅ 4 = x 1 ⋅ 2 − 5 ⋅ 4 = y { 3 x − 2 y = 5 4 + 4 y = 11 { \begin{cases} 2\cdot2-12\cdot4=x\\ 1\cdot2-5\cdot4=y \end{cases}} \qquad \color{#00F} { \begin{cases} 3x-2y=5\\ 4+4y=11 \end{cases}} {22124=x1254=y{3x2y=54+4y=11 用矩阵表示 [ 2 − 12 1 − 5 ] ⏟ A [ 2 4 ] ⏟ b = [ x y ] ⏟ y [ 3 − 2 1 4 ] ⏟ A [ x y ] ⏟ x = [ 5 11 ] ⏟ b \underbrace{ {\begin{bmatrix}2&-12 \\1& -5 \\\end{bmatrix}}}_{A} \underbrace{ {\begin{bmatrix}2\\4 \\\end{bmatrix}}}_{b}= \underbrace{ {\begin{bmatrix}x\\y \\\end{bmatrix}}}_{y} \qquad\color{#00F} \underbrace{ {\begin{bmatrix}3&-2 \\1& 4 \\\end{bmatrix}}}_{A} \underbrace{ {\begin{bmatrix}x\\y \\\end{bmatrix}}}_{x}= \underbrace{ {\begin{bmatrix}5\\11 \\\end{bmatrix}}}_{b} A [21125]b [24]=y [xy]A [3124]x [xy]=b [511]

    特征值与特征向量 说明 λ i > 1    ⟹    \lambda_i>1\implies λi>1系统是放大状态 λ i = 1    ⟹    \lambda_i=1\implies λi=1系统是不变状态 λ i < 1    ⟹    \lambda_i<1\implies λi<1系统是缩小状态 特征值 λ \lambda λ表示大小,特征向量 v i v_i vi表示方向

    eig()

    说明: e = eig(A) 返回一个列向量,其中包含方阵 A 的特征值。 e = eig(A,B) 返回一个列向量,其中包含方阵 A 和 B 的广义特征值。

    [v,d]=eig([2 -12;1 -5]

    矩阵指数:expm()

    说明: Y = expm(X) 计算 X 的矩阵指数。虽然不按此种方式计算,但是如果 X 包含一组完整的特征向量 V 和对应特征值 D,则 [V,D] = eig(X) 且 expm(X) = V*diag(exp(diag(D)))/V 对于逐个元素的指数运算,请使用 exp。

    A = [0 -6 -1; 6 2 -16; -5 20 -10]; x0 = [1 1 1]'; X = []; for t = 0:.01:1 X = [X expm(t*A)*x0]; end plot3(X(1,:),X(2,:),X(3,:),'-o'); xlabel('x_1'); ylabel('x_2'); zlabel('x_3'); grid on; axis tight square; %有时间再阅读

    备注:太难了,看视频理解吧(从1h5min处开始)

    Processed: 0.014, SQL: 10