首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用java中的colt库求解线性方程组

如何用java中的colt库求解线性方程组
EN

Stack Overflow用户
提问于 2013-10-14 10:09:45
回答 2查看 2.8K关注 0票数 0

我想用Colt库求解线性方程matrix*X=D。我试过:

代码语言:javascript
复制
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是类的名称。

我做错了什么?有什么主意吗..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-14 10:51:13

之所以会出现此错误,是因为方法solve()是非静态的,不能从main()中访问。

这应该可以解决你的问题:

代码语言:javascript
复制
Algebra algebra = new Algebra();
DoubleMatrix2D X = algebra.solve(matrix, D);
票数 1
EN

Stack Overflow用户

发布于 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/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19357895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档