编程语言
首页 > 编程语言> > 使用java计算最小二乘法

使用java计算最小二乘法

作者:互联网

我试图找到一个java代码来计算Ax = b方程中的最小二乘解(x).
假设

A = [1 0 0;1 0 0];
b = [1; 2];

x = A\b

返回

x =

    1.5000
         0
         0

我找到了Class LeastSquares,

public LeastSquares(double[] a, double[] b, int degree)

但是在输入中,A和B都是一维数组,但是,在上面的例子中,A是矩阵,B是数组.

在Class NonNegativeLeastSquares中

public NonNegativeLeastSquares(int M, int N, double a[][],double b[])

A是一个矩阵,B是一个数组,但是该类的描述表明它找到了线性方程组Ax = b的近似解,使得|| Ax – b || 2被最小化,并且x > = 0.这意味着x必须始终为正.

我需要一个类似于NonNegativeLeastSquares的类,但是没有x> = 0约束.
有人可以帮帮我吗?
 非常感谢.

解决方法:

Apache Commons Math library,特别是SimpleRegression class.

标签:java,least-squares
来源: https://codeday.me/bug/20190517/1123254.html