作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本上,我想计算属于 ComplexDoubleMatrix 类的矩阵的逆,但我没有找到像 inverse() 或 inv() 这样的函数,有没有人知道如何计算 a 的逆矩阵?先感谢您。
我的最终目标是使用 jblas.eigen 创建矩阵的特征分解。现在我当前的实现是由下面的 jama 库实现的。为了执行类似的功能,我需要计算 Vinverse,这就是为什么我想在 jblas 中找到一个反函数。
public static SimpleEigenDecomposition SimpleEigenDecomposition(double [][] rates)
{
Matrix ratesMatrix = new Matrix(rates);
EigenvalueDecomposition ed = new EigenvalueDecomposition(ratesMatrix);
Matrix V = ed.getV();
Matrix D =ed.getD();
Matrix Vinverse = V.inverse();
Matrix resultMatrix = V.times(D).times(V.inverse());
//check if result and rates are close enough
SimpleMatrix trueMatrix = new SimpleMatrix(rates);
SimpleMatrix calculatedMatrix = new SimpleMatrix(resultMatrix.getArray()) ;
if(EJMLUtils.isClose(trueMatrix, calculatedMatrix, THRESHOLD))
{
return new SimpleEigenDecomposition(V, D, Vinverse);
}else{
throw new RuntimeException();
}
最佳答案
原因是没有逆运算,因为如果使用 Cramer 规则,计算量太大。我最初认为这很奇怪,因为它可以使用 Gauss Jordon 消除来实现。但奇怪的是,连我都找不到。如果有人在 JBLAS 中找到它,请在下面发表评论。
我可以建议的一种替代方法是使用 pinv()。它使用最小二乘法并作为静态函数存在于 org.jblas.Solve 中。
import org.jblas.Solvepublic static SimpleEigenDecomposition SimpleEigenDecomposition(double [][] rates){ // inside the main function replace this for your implementation of inverse DoubleMatrix Vinverse = Solve.pinv(V);}
当矩阵可逆时,租赁平方 pinv 给出与实际逆矩阵相同的输出。
关于java - 如何使用 jblas 获取 ComplexDoubleMatrix 的逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24944972/
基本上,我想计算属于 ComplexDoubleMatrix 类的矩阵的逆,但我没有找到像 inverse() 或 inv() 这样的函数,有没有人知道如何计算 a 的逆矩阵?先感谢您。 我的最终目标
我是一名优秀的程序员,十分优秀!