• 07-求解Ax=0:主变量、特解


    一、定义转向算法

     在第六节讲了空间,列空间,零空间的定义,这节主要讲解如何求出这些空间,即求解$Ax=0$的过程是怎么样的过程,以下面的矩阵$A$为例:(这里主要是长方阵)

    $A=left[egin{array}{llll}{1} & {2} & {2} & {2} \ {2} & {4} & {6} & {8} \ {3} & {6} & {8} & {10}end{array} ight]$

    仔细观察上面的矩阵就会发现行列之间的关系:第二列是第一列的2倍,第三行是前两行的和

     

     1)消元:零空间不会变,因为方程解不变

      第一阶段(找到第一个主元):$left[egin{array}{llll}{1} & {2} & {2} & {2} \ {0} & {0} & {2} & {4} \ {0} & {0} & {2} & {4}end{array} ight]$

    第二阶段(找第二个主元,发现是0,也无法通过后面的行交换来使得该位置不为0,我们就将0后面的2当作主元,继续对下面的行消元)

    $left[egin{array}{llll}{1} & {2} & {2} & {2} \ {0} & {0} & {2} & {4} \ {0} & {0} & {0} & {0}end{array} ight]=U$

     

      综上:我们已经找到了两个主元1和2,这里我们知道主元的数量是2,所以矩阵的秩就是2,矩阵的秩(rank)即为矩阵的主元数量

      我们原本要求$Ax=0$,现在经过消元,方程解不变,现在只需要求$Ux=0$

     

     2)主列和自由列

      主元所在的列为主列(如第一列和第三列),另外的是自由列(如第二列和第四列),所谓自由列就是我们可以任意分配其对应的未知变量的系数,如$x_2=1, x_4=0$

     

    $x_{1}+2 x_{2}+2 x_{3}+2 x_{4}=0$
    $2 x_{3}+4 x_{4}=0$

    则方程解为:$x=left[egin{array}{c}{-2} \ {1} \ {0} \ {0}end{array} ight]$

    当然也存在下面的解:$x=Cleft[egin{array}{c}{-2} \ {1} \ {0} \ {0}end{array} ight]$

     

      我们说过,自由列的存在使得我们可以为自由变量随意分配值,所以当然$x_2=0, x_4=1$也是可以的:

    则方程解为:$x=left[egin{array}{c}{2} \ {0} \ {-2} \ {1}end{array} ight]$

    当然也存在下面的解:$x=dleft[egin{array}{c}{2} \ {0} \ {-2} \ {1}end{array} ight]$

     

    有了上面两个特定解,我们就可以求出所有x,即矩阵的零空间:$x=Cleft[egin{array}{c}{-2} \ {1} \ {0} \ {0}end{array} ight] + dleft[egin{array}{c}{2} \ {0} \ {-2} \ {1}end{array} ight]$

    所以矩阵的零向量就是特定解的线性组合

     

     

    零空间的求法:对矩阵A进行消元求得主变量和自由变量;给自由变量赋值得到特解;对特解进行线性组合得到零空间

     

     3)简化U:下面我们将会简化U来得到R

      简化的过程:从U出发,将主元上下全变为0,即$left[egin{array}{llll}{1} & {2} & {0} & {-2} \ {0} & {0} & {2} & {4} \ {0} & {0} & {0} & {0}end{array} ight]$,然后将主元变为1即得到简化行阶梯形式R

    $left[egin{array}{cccc}{1} & {2} & {0} & {-2} \ {0} & {0} & {1} & {2} \ {0} & {0} & {0} & {0}end{array} ight]=R$

    从上面的过程看出,全0的行是其他行的线性组合(行一减去行二,行二除以2)

      整个过程从求解$Ax=0$,消元变为$Ux=0$,简化变为$Rx=0$,熟悉了整个过程,Matlab中很容易实现这个过程$R = rref(A)$

     

      上面的过程如下所示:

    $left[egin{array}{llll}{1} & {2} & {2} & {2} \ {2} & {4} & {6} & {8} \ {3} & {6} & {8} & {10}end{array} ight] ightarrowleft[egin{array}{cccc}{1} & {2} & {2} & {2} \ {0} & {0} & {2} & {4} \ {0} & {0} & {0} & {0}end{array} ight] ightarrowleft[egin{array}{cccc}{1} & {2} & {0} & {-2} \ {0} & {0} & {1} & {2} \ {0} & {0} & {0} & {0}end{array} ight]$

     二、换一个角度

     上面我们从数值解的角度描述了矩阵零空间的求法,下面从公式角度分析:

     上面我们经过消元得到了最简形式R。我们将R经过列变换得到如下矩阵(交换二三列):

    $ar{R}=left[egin{array}{cccc}{1} & {0} & {2} & {-2} \ {0} & {1} & {0} & {2} \ {0} & {0} & {0} & {0}end{array} ight]$

     同时,我们可以对方程式作如下变形:

    $x=left[x_{1}, x_{2}, x_{3}, x_{4} ight]$

    $ar{x}=left[x_{1}, x_{3}, x_{2}, x_{4} ight]$

     方程的解不会发生变化,只是顺序变了,我们将$ar{R}$划分区域:

    $I_{2 imes 2}=left[egin{array}{cc}{1} & {0} \ {0} & {1}end{array} ight], F_{2 imes 2}=left[egin{array}{cc}{2} & {-2} \ {0} & {2}end{array} ight]$

     所以$ar{R}$将变为:

    $ar{R}=left[egin{array}{cc}{I_{2 imes 2}} & {F_{2 imes 2}} \ {0_{1 imes 1}} & {0_{1 imes 1}}end{array} ight]$

     最终解方程变成了:

    $R x=0 ightarrow ar{R} ar{x}=0$

     代入方程得到零空间:

    $ar{R} ar{x}=0_{3 imes 1} ightarrowleft[egin{array}{cc}{I_{2 imes 2}} & {F_{2 imes 2}} \ {0_{1 imes 1}} & {0_{1 imes 1}}end{array} ight]left[egin{array}{c}{-F_{2 imes 2}} \ {I_{2 imes 2}}end{array} ight]=-I_{2 imes 2} F_{2 imes 2}+F_{2 imes 2} I_{2 imes 2}=0$

    $ ightarrow ar{x}=left[egin{array}{c}{-F_{2 imes 2}} \ {I_{2 imes 2}}end{array} ight]=left[egin{array}{cc}{-2} & {2} \ {0} & {-2} \ {1} & {0} \ {0} & {1}end{array} ight]$

     我们再将$x_2,x_3$进行位置互换:

    $x=left[egin{array}{cc}{-2} & {2} \ {1} & {0} \ {0} & {-2} \ {0} & {1}end{array} ight]$

    这两个特解与之前我们求得的特解一致

     

    三、实例练习

     有一矩阵$A$:

    $A=left[egin{array}{ccc}{1} & {2} & {3} \ {2} & {4} & {6} \ {2} & {6} & {8} \ {2} & {8} & {10}end{array} ight] ightarrowleft[egin{array}{ccc}{1} & {2} & {3} \ {0} & {2} & {2} \ {0} & {0} & {0} \ {0} & {0} & {0}end{array} ight] ightarrowleft[egin{array}{ccc}{1} & {0} & {1} \ {0} & {1} & {1} \ {0} & {0} & {0} \ {0} & {0} & {0}end{array} ight]$

    这样矩阵$A$就经过$U$变成了$R$

     由于$R$本来就具有很好的形式,就不用进行列变换了:

    $I_{2 imes 2}=left[egin{array}{cc}{1} & {0} \ {0} & {1}end{array} ight], F_{2 imes 1}=left[egin{array}{l}{1} \ {1}end{array} ight]$

    $R_{4 imes 3}=left[egin{array}{ll}{I_{2 imes 2}} & {F_{2 imes 1}} \ {0_{2 imes 2}} & {0_{2 imes 1}}end{array} ight]$

     

    $R_{4 imes 3} x_{3 imes 1}=0_{4 imes 1} ightarrowleft[egin{array}{cc}{I_{2 imes 2}} & {F_{2 imes 1}} \ {0_{2 imes 2}} & {0_{2 imes 1}}end{array} ight]left[egin{array}{c}{-F_{2 imes 1}} \ {I_{1 imes 1}}end{array} ight]=left[egin{array}{c}{-I_{2 imes 2} F_{2 imes 1}+F_{2 imes 1} I_{1 imes 1}=0_{2 imes 1}} \ {0_{2 imes 1}}end{array} ight]$

     

     所以:

    $x_{3 imes 1}=left[egin{array}{c}{-F_{2 imes 1}} \ {I_{1 imes 1}}end{array} ight]=left[egin{array}{c}{-1} \ {-1} \ {1}end{array} ight]$

     

     注:最简矩阵R和零空间矩阵x在MATLAB中可以分别用命令rref(A),null(A,'r')得到

     本文实例参考,请点击

  • 相关阅读:
    Kafka 数据丢失问题总结
    HTTP3
    CnetOS7 控制台方式启动
    Win32Exception (0x8009030C) —— 密码过期 —— Kerberos 异常
    WebAPI Tip #8: Working with Tasks & WebAPI Tip #7: Beautiful Message Handlers (转发)
    Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed DataIntensive Systems(转发)
    git commond —— git merge —— 模拟某次 merge 操作
    git commad —— git lsfiles —— 获取 文件 的修改信息
    Using async/await or task in web api controller (.net core)
    Chrome debugger for vscode (react 使用vscode 调试 :debugger for chrome 被弃用, 改用 JavaScript Debugger)
  • 原文地址:https://www.cnblogs.com/always-fight/p/11381242.html
Copyright © 2020-2023  润新知