fai*_*lai 3 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();
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释这个代码,尤其是RHS向量及其目的.非常感谢你.
你的矩阵方程看起来像这样:
Ax = b
Run Code Online (Sandbox Code Playgroud)
其中A是具有m行和n列的矩阵,x是m未知数的列向量,并且b是m已知值的另一列向量(也称为右手侧).它位于等号的右侧 - 因此得名.
如果我给你一个带有两个数字和一个未知值x的简单方程式,你就会知道如何解决它:
Ax = b -> x = b/A
Run Code Online (Sandbox Code Playgroud)
将此视为通过将等式的两边乘以A的倒数来求解x.
在这种情况下,它更复杂,因为用矩阵除法意味着反转它.
你不会反转矩阵; 你将要创建一个叫做矩阵A的LU分解的东西.你应该读一下它是什么以及为什么它比计算一个完整的逆更好,如果你感兴趣的话.