采用梯度法计算AX=B

采用梯度法计算AX=B,其中A,B是已知量,分别为mn,m1的矩阵或向量,求解未知量X,n*1 。撰写伪代码,理解并解释过程。

  • 这篇文章讲的很详细,请看:线性代数之 Ax=b反问题的一个特解
  • 除此之外, 这篇博客: 【线代】线性方程组求解概念:齐次/非齐次方程的解?非零解、无穷多解、求解、求通解、方程有解时求全部解,是什么意思?中的 2. Ax=b 的解 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • (1)结构:非齐次方程的解,等于齐次方程通解 + 非齐次方程的一个特解(很像微分方程的解的结构)。

    (2)解的情况/数量

    • Amxn 长方形矩阵
      • r(A) ≠ r(A|b)     ==    无解
      • r(A) = r(A|b) =n    ==    有唯一解(因为方程数等于列秩,也就等于未知数个数,即一个方程可确定一个未知数。)
      • r(A) = r(A|b) <n    ==    有无穷多解,有非唯一的解,不只一个解,求通解(方程数少,能确定的未知数少,有不受约束可自由取值的自由变量。)
      • 注:非齐次方程的无穷多解不包括唯一解,它对应于秩相等但不满的情况;而唯一解是秩相等且列满秩,多了一些方程(约束条件),所以这分明是两个方程组!
    • Anxn 方形矩阵(克莱姆法则)
      • |A| ≠ 0    ==   唯一解,xi = |Ai| / |A|,再把 xi 拼起来得到 x
      • |A| = 0    ==    唯一解的对立事件(无解,或是无穷多解,此判断法失效!分别在原始矩阵中,代入使 |A|=0 的参数数值,化为阶梯型,用 r(A|b) 判断。此方法的好处是,代入数值后,化简更容易;弊端是如果有不同参数值,可能需要分别化简两个矩阵,而 Amxn 只需一次复杂的化简。)
      • 记忆:|A|≠0,才能放分母上,才可克莱姆法则。