什么是RHS载体

时间:2012-09-11 22:38:30

标签: java apache matrix

请我试着理解矩阵计算。 我的问题可能看似简单,但请你回答 我可以简单地向我解释什么是RHS载体。 我经常看到它在Apache commons数学库中使用  例如,我从stackoverflow页面得到了这个:

public class LinearAlgebraDemo
{
    public static void main(String[] args)
    {
        double [][] values = {{1, 1, 2}, {2, 4, -3}, {3, 6, -5}};
        double [] rhs = { 9, 1, 0 }; /* RHS Vector */

        RealMatrix a = new Array2DRowRealMatrix(values);

        DecompositionSolver solver = new LUDecompositionImpl(a).getSolver();

        RealVector b = new ArrayRealVector(rhs);
        RealVector x = solver.solve(b);

        RealVector residual = a.operate(x).subtract(b);
        double rnorm = residual.getLInfNorm();

    }
}

有人可以向我解释这个代码,尤其是RHS向量及其目的。 非常感谢你。

2 个答案:

答案 0 :(得分:6)

你的矩阵方程式如下:

Ax = b

其中A是一个包含m行和n列的矩阵,xm未知数的列向量,b是另一个列向量(又名为右) -Hand Side)m已知值。它位于等号的右侧 - 因此得名。

如果我给你一个带有两个数字和一个未知值x的简单等式,你就会知道如何解决它:

Ax = b -> x = b/A

将此视为通过将等式的两边乘以A的倒数来求解x。

在这种情况下,它更复杂,因为用矩阵除法意味着反转它。

你不会反转矩阵;你要创建一个叫做矩阵A的LU分解的东西。你应该读一下这是什么以及为什么它比计算一个完整的逆更好,如果你感兴趣的话。

答案 1 :(得分:1)

RHS是“右手边”的常见数学缩写。在这里,您似乎正在求解线性方程组Ax = b,其中A是n x n矩阵,xb是n维列向量。如果你不理解这个术语,那么我建议你研究线性代数。

至于代码,rhs是一个数组,用于初始化向量b的元素。类似地,2D数组values用于初始化矩阵A的元素(实际上是名为a的参考变量)。