问题标签 [jama]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Jama 和 Matlab LMNN 和特征值
我将 LMNN (Largest Margin Nearest Neighbor) 度量学习算法 matlab 代码更改为 java,并使用Jama 库。我得到了不同的结果,出现了差异,我认为是因为 Matlab 和 Jama 中的特征值分解(特征值和特征向量)。如果您以前遇到过此类问题,请给我评论。另外,是不是一定要在这样的条件下得到类似的结果。
在 Matlab 中:
Java(IdeM 是 PSD 矩阵)
结果
示例结果:
Matlab结果:
Java 使用 Jama 库:
java - JAMA 没有计算正确的特征向量
我有以下矩阵,它是对称且实数的(它是一个汉密尔顿算子):(Matlab 友好)
[63.000000, -1.732051, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000; -1.732051, 61.000000, -2.000000, 0.000000, -1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000; 0.000000, -2.000000, 61.000000, -1.732051, 0.000000, -1.414214, 0.000000, 0.000000, 0.000000, 0.000000; 0.000000, 0.000000, -1.732051, 63.000000, 0.000000, 0.000000, -1.732051, 0.000000, 0.000000, 0.000000; 0.000000, -1.000000, 0.000000, 0.000000, 61.000000, -1.414214, 0.000000, 0.000000, 0.000000, 0.000000; 0.000000、0.000000、-1.414214、0.000000、-1.414214、60.000000、-1.414214、-1.414214、0.000000、0.000000;0.000000、0.000000、0.000000、-1.732051、0.000000、-1.414214、61.000000、0.000000、-2.000000、0.000000;0.000000、0.000000、0.000000、0.000000、0.000000、-1.414214、0.000000、61.000000、-1.000000、0.000000;0.000000, 0.000000, 0.000000, 0.000000、0.000000、0.000000、-2.000000、-1.000000、61.000000、-1.732051;0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, -1.732051, 63.000000]
如果我用这些值制作 JAMA 矩阵并执行特征值分解,则 V*D*transpose(V) 不等于汉密尔顿。你们有谁知道出了什么问题吗?特征值与 MATLAB 一致,但特征向量不一致。
这是一个测试它的类
编辑:结果 (V*D*transpose(V)) 产生
63.1093 -0.6379 0.3400 -0.6576 0.0938 -0.0437 -0.6056 -0.5066 0.3463 0.5039 -0.6379 61.3082 -0.2368 -1.7813 -0.0851 0.7949 -0.1337 0.7668 -0.0422 -2.4329 0.3400 -0.2368 60.1481 1.3323 -0.4099 -1.8834 -0.5780 0.7516 0.0946 0.1705 -0.6576 -1.7813 1.3323 61.2455 0.0972 -0.8075 -0.9004 0.0242 0.3963 -1.2527 0.0938 -0.0851 -0.4099 0.0972 60.3086 -0.1899 0.0394 0.1987 -0.0484 -0.1495 -0.0437 0.7949 -1.8834 -0.8075 -0.1899 61.7941 0.3741 0.8237 0.7772 0.7557 -0.6056 -0.1337 -0.5780 -0.9004 0.0394 0.3741 60.6415 0.6351 0.7099 0.3349 -0.5066 0.7668 0.7516 0.0242 0.1987 0.8237 0.6351 62.8108 1.3507 1.3002 0.3463 -0.0422 3 -00946 48 0.0.347772 0.7099 1.3507 63.3270 0.1244 0.5039 -2.4329 0.1705 -1.2527 -0.1495 0.7557 0.3349 1.3002 0.1244 60.3069
java - 将 jama 矩阵写入文件
我想通过使用 jama 库将矩阵写入 java 中的文件。但是,只生成了一个空文件。我正在使用下面的代码。有什么问题?
eigenvector - EigenValue 和 EigenVector Java 实现
我正在实现度量学习算法,我想减少数据的维度。我正在使用 Java 和库 (Jama) 来实现,并使用 PCA 来减少维度。当我使用 Jama 库中的 eig 来获取特征值时,即使是 300 x 20 大小的矩阵也需要很多时间。我需要获取特征值和特征向量的 java 实现。供您参考,我还尝试了其他库,例如具有 PCA 的 Jblas,但在特征值和特征向量方面的性能确实很差。
java - 具有百万行和列的二维数组
我有一个用户事件数据,其中包含用户参加的事件的用户评分。我正在尝试将 Jama 库用于需要二维数组作为输入的相似度矩阵(具有事件评分的用户事件矩阵)
我有三列的数据:用户ID,事件ID,评级
但用户数量约为 200 万,事件数约为 100 万。那么利用 jama 库计算相似度矩阵的有效方法应该是什么。因为数字很大并且不适合我系统的内存。我正在使用 JAVA 来解决这个问题。
谢谢阿曼
java - 如何使用 JAMA(Java 矩阵包)计算 matix 的伪逆?
我试图找到矩阵的逆。当它是奇异的时,我需要计算伪逆。我在 JAMA 文档中找不到类似伪逆的东西。我怎么能计算它?
java - Java中矩阵的模逆
我正在尝试计算矩阵的模逆,这怎么能在 Java 中完成?
到目前为止,我已经找到了 Jama 包 - http://math.nist.gov/javanumerics/jama/ 可以用于逆和矩阵乘法,但是我很难找到矩阵的 mouldar 逆.. .
这正是我想在这里实现的目标:http ://planetcalc.com/3324/
有任何想法吗?
谢谢
java - 无法在 java 中为 Jama 编写导入
试图实现这个例子,但我在标题http://math.nist.gov/javanumerics/jama/doc/Jama/Matrix.html中得到了错误
我只是想知道如何为它编写导入。我没有在网上找到任何东西。谢谢
algorithm - 用于计算伪逆的 Jama SVD
我不确定我是否应该在堆栈溢出或数学上发布此问题,但我认为这个问题适合算法研究,所以我在这里。
我编写了一个算法来计算给定矩阵的伪逆。我使用定义 A + = (A * A) -1 A *的天真方式完成了此操作。
我对此进行了更多阅读,发现一种更稳定和更有效地计算它的常用方法是首先计算 A 的 SVD。(我使用 Jama 包执行此操作)
然而。事实证明,朴素方法在小矩阵上更快(及时)。
一个快速的问题。我相信 SVD 方法比简单方法具有更好的复杂性。但是你能给我一个关于矩阵必须有多大的想法,这样 SVD 方法实际上在时间上更快吗?
java - 如何在 Java 中导入 JAMA?
如何在 Java 中导入 JAMA?当我尝试导入它时,我不断收到错误。