我想用Colt库求解线性方程matrix*X=D。我试过:
DoubleMatrix2D matrix;
matrix = new DenseDoubleMatrix2D(4,4);
for (int row = 0; row < 4; row++) {
for (int column = 0; column < 4; column++) {
// We set and get a cell value:
matrix.set(row,column,row+column);
}
}
DoubleMatrix2D D;
D = new DenseDoubleMatrix2D(4,1);
D.set(0,0, 1.0);
D.set(1,0, -1.0);
D.set(2,0, 91.0);
D.set(3,0, -5.0);
DoubleMatrix2D X;
X = solve(matrix,D);但我犯了个错误
“方法求解(DoubleMatrix2D,DoubleMatrix2D)未为类型测试定义”,其中Test是类的名称。
我做错了什么?有什么主意吗..。
发布于 2013-10-14 10:51:13
之所以会出现此错误,是因为方法solve()是非静态的,不能从main()中访问。
这应该可以解决你的问题:
Algebra algebra = new Algebra();
DoubleMatrix2D X = algebra.solve(matrix, D);发布于 2013-10-15 11:10:43
您还可以为此使用la4j (线性代数for Java):
m == n,您的情况如下:
//系数矩阵'a‘矩阵a=新Basic2DMatrix(新双{{ 1.0,2.0,3.0 },{ 4.0,5.0,6.0 },{ 7.0,8.0 )。// A为简单密集向量向量b=新BasicVector(新double[] { 1.0,2.0,3.0 });//采用基于LU分解的标准前向替代方法,可用于平方系统LinearSystemSolver求解器=LinearSystemSolver向量x= solver.solve(b,LinearAlgebra.DENSE_FACTORY);m > n,可以使用LinearAlgebra.LEAST_SQUARES求解器。所有的例子都摘自官方网站:http://la4j.org/。
https://stackoverflow.com/questions/19357895
复制相似问题