求解线性系统AX=Y。连线至输入矩阵已知向量输入端的数据类型可确定要使用的多态实例。


icon

输入/输出

  • c2ddbl.png 输入矩阵

    输入矩阵是实数方阵或实数长方矩阵。右端项的元素数必须等于输入矩阵的行数。如右端项的元素数与输入矩阵的行数不同,VI可设置向量解为空数组,并返回错误。

    输入矩阵为奇异矩阵时,如矩阵类型为General,“求解线性方程”VI可寻找最小二乘解。否则,VI返回错误。

  • c1ddbl.png 右端项

    右端项是由已知因变量值组成的数组。右端项的元素数必须等于输入矩阵的行数。如右端项的元素数与输入矩阵的行数不同,VI可设置向量解为空数组,并返回错误。

  • cenum.png 矩阵类型

    矩阵类型输入矩阵的类型。了解输入矩阵的类型可加快向量解的计算,减少不必要的计算,提高计算的正确性。

    0
    General
    (默认)
    1
    Positive definite
    2
    Lower triangular
    3
    Upper triangular
  • i1ddbl.png 向量解

    向量解是方程组AX=Y的解,A是输入矩阵,Y右端项

  • ii32.png 错误

    错误返回VI的任何错误或警告。将错误连接至错误代码至错误簇转换VI,可将错误代码或警告转换为错误簇。

  • 设A为m×n输入矩阵,Y为右端项中的m个系数,X为方程组向量解n个元素

    AX = Y

    m > n,方程组中方程的个数多于未知数个数,方程组是超定的。满足AX = Y的解可能不存在,VI将得到最小二乘解X,使得||AX – Y||最小化。

    m < n,方程组中方程的个数少于未知数个数,方程组是欠定的。它可能有无限的解决方案,满足AX = Y。VI找到了这些解决方案中的一个。

    m = n时,如A为非奇异矩阵,即没有任何行或列是其它行或列的线性组合,通过使输入矩阵A分解为上三角矩阵U和下三角矩阵L可求解方程组X,例如:

    AX = LZ = Y

    Z = UX

    可以作为原有方程组的另一种表示方法。Z也是n个元素的向量。

    三角方程组容易通过递归方法求解。因此,得到矩阵A的上三角矩阵U和下三角矩阵L后,通过LZ = Y方程组可得到Z,通过UX = Z方程组可得到X。

    mn的情况下,A可以被分解为一个正交矩阵Q和一个上三角矩阵R,所以A=QR。然后,线性系统可以用QRX = Y表示。然后你可以解决RX=QTY。

    通过递归方法容易求解三角方程组得到x。

    注: 无法事先确定矩阵是否为奇异的,特别是方程组较大时。该VI检测到奇异矩阵后可返回错误,所以无需确认该VI使用方程组是否有效。

    矩阵求逆的数值运算不仅繁重,而且由于其递归性,对于浮点数值处理器引入的舍入错误十分敏感。尽管计算使用可能的最大精度,VI无法保证可求解所有方程。

    求解复数线性方程

    设A为m×n输入矩阵,Y为右端项中的m个元素,X为方程组向量解中的n个元素

    AX = Y

    m > n,方程组中方程的个数多于未知数个数,方程组是超定的。既然满足AX = Y的解可能不存在,VI将得到最小二乘解X,使得||AX – Y||最小化。

    m < n,方程组中方程的个数少于未知数个数,方程组是欠定的。它可能有无限的解决方案,满足AX = Y。然后,VI选择这些解决方案中的一个。

    m = n时,如A为非奇异矩阵,即没有任何行或列是其它行或列的线性组合,通过使输入矩阵A分解为上三角矩阵U和下三角矩阵L可求解方程组X,例如:

    AX = LZ = Y

    Z = UX

    可以作为原有方程组的另一种表示方法。Z也是n个元素的向量。

    三角方程组容易通过递归方法求解。因此,得到矩阵A的上三角矩阵U和下三角矩阵L后,通过LZ = Y方程组可得到Z,通过UX = Z方程组可得到X。

    mn时,A可以分解为一个正交矩阵Q,和一个上三角矩阵R,所以A=QR,线性系统可以用QRX=Y表示。然后你可以解决RX=QHY。通过递归方法容易求解三角方程组得到X。

    注: 矩阵求逆的数值运算不仅繁重,而且由于其递归性,对于浮点数值处理器引入的舍入错误十分敏感。尽管计算将使用可能的最大精度,该VI无法保证可求解所有方程。

    范例

    请参考LabVIEW附带的下列范例文件。

    • labview\examples\Mathematics\Linear Algebra\Linear Algebra Calculator.vi