当前位置: 首页 > 工具软件 > JAMA > 使用案例 >

java jama matrix转数组_Java Jama矩阵问题

公良琛
2023-12-01

我正在使用jama计算SVD.效果很好.如果我通过方矩阵.例如2×2或3×3等矩阵.但是当我通过类似2×3或4×8的东西时

错误.我用了他们所有的例子.他们有不同的构造函数来执行工作.我的第二个问题是,我将3×3矩阵与

double[][] vals = {{1.,1.,0},{1.,0.,1.},{1.,3.,4.},{6.,4.,8.}};

Matrix A = new Matrix(vals);

它产生以下错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

之后,我想使用另一个如下的构造函数

double[][] vals = {{1.,1.,0,4},{1.,0.,1.,2},{1.,3.,4.,8},{1.,3.,4.,8}};

Matrix A = new Matrix(vals,4,3);

它产生了以下输出:

A =

1.0 1.0 0.0

1.0 0.0 1.0

1.0 3.0 4.0

6.0 4.0 8.0

A = U S V^T

U =

0.078 -0.115 -0.963

0.107 -0.281 0.260

0.402 0.886 -0.018

0.906 -0.351 0.060

Sigma =

11.861881 0.000000 0.000000

0.000000 2.028349 0.000000

0.000000 0.000000 1.087006

V =

0.507705 -0.795196 -0.331510

0.413798 0.562579 -0.715735

0.755650 0.226204 0.614675

rank = 3

condition number = 10.912437186202627

2-norm = 11.86188091889931

singular values =

11.861881 2.028349 1.087006

它适用于非正方形矩阵.但是它为svd产生了错误的结果,因为V和S没有相同的row = 4(如果我不能正确分析结果,因为我是SVD的新手,对此我感到抱歉).任何想法?

我该怎么办?

 类似资料: