java - Python 中 [V, D] = eig(A, B) 的等效代码是什么?广义特征值问题
问题描述
我正在尝试用 Java 解决广义特征值问题,我目前正在使用 OjAlgo,但它无法解决随机对称A
和B
. 仅正定对称A
且B
暂时。我的A
和B
是随机对称的。不是肯定的。
所以这次我会尝试使用Python。从 Java 调用 Python 代码。我有一个问题。
调用此 MATLAB 代码:
[V, D] = eig(A, B)
将解决这个问题:
A*V = B*V*D
[V, D] = eig(A, B)
Python 或其他可以从 Java 控制的语言/库中的等效代码是什么?
当前解决此问题的设置,我目前一直在使用 GNU Octave,通过编写一个文件AB
,然后使用ProcessBuilder
类来运行一个.m
文件,该文件将加载该文件,AB
然后执行其过程,然后保存一个文件VD
,然后,Java将读取该VD
文件。是的......它正在工作。但我认为必须有更好的方法来做到这一点?
看看我的项目。这是Java中的图像分类。它与耶鲁数据库和 Jaffed 数据库一起使用。很好。
https://github.com/DanielMartensson/jFaces---Image-classification-in-Java-
示例我如何解决A
和B
八度:
>> A
A =
3.509281 -0.290541 0.849415 2.013013 0.063750
-0.290541 1.818891 -0.474449 0.278068 -1.287872
0.849415 -0.474449 1.340873 0.739895 0.882484
2.013013 0.278068 0.739895 1.645680 0.414309
0.063750 -1.287872 0.882484 0.414309 4.045986
>> B
B =
5.4158 2.8121 2.6082 3.7357 -3.8168
2.8121 6.7481 1.6286 2.6166 -1.5062
2.6082 1.6286 3.9394 1.7020 -3.1379
3.7357 2.6166 1.7020 3.2538 -2.6001
-3.8168 -1.5062 -3.1379 -2.6001 3.4518
>> [V, D] = eig(A, B)
V =
0.300780 -0.195288 0.209747 0.946256 1.940305
0.366251 -0.228222 -0.050912 -0.057503 -0.652739
0.243410 0.292928 0.295219 -0.315470 2.340029
-0.538232 0.328562 -0.767245 -0.821764 0.776394
0.098344 -0.251445 0.047482 -0.026229 4.613170
D =
Diagonal Matrix
0.086670 0 0 0 0
0 0.219835 0 0 0
0 0 0.420197 0 0
0 0 0 1.207737 0
0 0 0 0 157.713007
>>
解决方案
推荐阅读
- laravel - Axios 重新加载 PDF 内容
- amazon-ec2 - 您是否需要在 Openpvn config 中添加额外的代理设置:从代理服务器后面的设备向 AWS 实例发送数据?
- javascript - 将兆字节转换为千兆字节
- javascript - 如何从 HTML 模式对话框中获取函数返回
- sql - 如何通过自动创建 id 每天将表 1 插入表 2 作为每日日期从表 1 id = 1 到表 2?
- reactjs - NextJS Typescript - 保护后对象可能未定义?
- linux - 通过 shell 脚本更改文件中特定参数的内容
- office-js - 如何通过 office.js 选择“整个单词”
- c# - Microsoft.Data.SqlClient.SqlException:存在同名数据库,或无法打开指定文件,或位于 UNC 共享上
- python - Python - 枕头圆角矩形不起作用