问题标签 [ojalgo]

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.

0 投票
1 回答
165 浏览

java - ojAlgo 库:数据不匹配错误?

最近,我开始使用 ojAlgo 库。您可以从http://ojalgo.org/index.html获得更多信息。

但是,当我尝试使用它时遇到问题。问题是当我想从雅虎财经检索股票数据时,股票日期和股票价格不匹配。

以下是 Java 代码片段。

返回结果是

1986 年 5 月 28 日星期三 17:00:00 PDT 2.89

但我认为结果应该是

1986 年 5 月 29 日星期四 17:00:00 PDT 2.89

如您所见,日期已偏移。这个问题会影响整个 ypriceSeries 结果。相应股票价格的日期向后移动了一天。

这使得整个股票数据不正确。有人有想法吗?

这是一个错误还是其他什么?谢谢。

0 投票
2 回答
2840 浏览

java - 如何使用 ojAlgo 解决 Java 中的二次规划 (QP)?

我有一个二次规划问题(具有线性约束、整数变量的二次目标函数),我想用 Java 解决。ojAlgo 似乎能够做到这一点。不幸的是,我找不到有关如何使用它的文档或示例。有谁可以帮我离开这里吗?

也欢迎使用 ojAlgo 以外的工具在 Java 中解决 QP 的建议。

0 投票
1 回答
1614 浏览

java - 使用 ojalgo:从数组创建矩阵

我正在尝试使用ojAlgo来解决 Java 中的一些线性代数问题。我在问是否有任何“聪明”的方法可以使用现有数组创建矩阵。

这是我天真的方法:

这行得通,但是每次都做太麻烦了。我可以编写一个这样做的类,并在每次我想做的时候调用它,但我想知道是否有更简单的方法。

有没有更简单的方法?

0 投票
1 回答
325 浏览

java - Ojalgo:奇异矩阵的处理

我正在使用 ojalgo 来解决 java 中的 (NxN) Ax = b System。由于 A 有可能是奇异矩阵,因此我希望我的代码以某种方式知道这一点。有办法吗?(文档指出,solve()如果问题不合格并且该invert()方法未引发异常,则该方法返回一种可能的解决方案)。

任何帮助将不胜感激。提前致谢。

0 投票
1 回答
569 浏览

java - 在 Java 中使用 Ojalgo 求解线性系统

我正在尝试使用 Ojalgo 解决 M (NxN) 线性系统 (Ax = B, B = [b1,b2,...bM])。最有效的方法是什么?我还想知道 A 是否是单数(A,B 是 PrimitiveMatrix 类型的对象)。

任何帮助将不胜感激。谢谢!

0 投票
1 回答
83 浏览

java - Ojalgo:在 Java 中定义矩阵是否稳定

我正在尝试使用 Ojalgo 解决 M (NxN) 线性系统 (Ax = B, B = [b1,b2,...bM])。感谢apete的建议,我成功地检查了 A (A, B are objects of type PrimitiveMatrix) 是否是奇异的,但似乎有时它也不稳定。确定这个矩阵是否稳定对我来说真的很有用或不。

非常感激任何的帮助。谢谢!

0 投票
1 回答
167 浏览

java - 调试:使用 Java、ojalgo 进行线性代数计算的异常运行时

我有一个中等大的Ax = b问题要解决。矩阵 A 是600x600

我的代码解决了这个问题,但需要很长时间才能完成。因此,我尝试检查 (with System.currentTimeMillis()) 以查看我的代码在哪里变慢。

事实证明,在 A 的计算过程中,我执行了 command A = L1 * A0 * L1.transpose()。该过程在这条线上消耗了几乎 100% 的总时间。

奇怪的是,L1 是一个600x600单位矩阵(即A[i,j] = 1, ifi == j0, else )。所以,这条线不应该花那么长时间来执行。在这个问题中也应该很容易绕过

但是,如果我尝试通过注释掉该行并将其替换为A = A0. 然后代码执行时间太长(在我杀死它的原始时间的 10 倍之后)。此外,CPU 使用率达到 100%。

我查了一下,结果是AL1 * A0 * L1.transpose()是一样的。

总而言之,使用我的 Java 代码的一部分(我使用库 ojalgo 来处理矩阵):

整个过程大约需要 69 秒,其中 65 秒是在一个微不足道的计算中消耗的,我未能绕过。过去,对于较小的矩阵 (60x60),同样的过程已经成功运行。

我不太确定如何进行调试尝试。任何帮助将不胜感激。

似乎问题比我最初估计的要深一些。我试图打印这些矩阵以上传它们,但随后出现了另一个问题。我发现我的代码在我第一次运行时就崩溃了System.out.println(A0.get(aRow,aColumn));A0是通过将 double 类型的数字添加到具有维度的零矩阵的每个位置来创建的600x600。此外,还会出现以下消息:

再次强调,当这些矩阵为60x60.

0 投票
1 回答
569 浏览

java - ojAlgo中的元素乘法两个矩阵或PrimitiveDenseStores

谁能告诉我如何在 ojAlgo 中将两个矩阵的对应元素相乘?寻找块功能c[i][j] = a[i][j] * b[i][j]

0 投票
1 回答
329 浏览

java - OjAlgo:有没有办法从 ojAlgo 中 PrimitiveDenseStore 的所有元素中添加/减去双精度数?

寻找一个从矩阵或密集存储的所有元素中添加/减去双精度的函数。

0 投票
2 回答
142 浏览

java - OjAlgo 如何映射/更新 PrimitiveDenseStore 中的所有值?

假设我有一个 2x2 矩阵作为 PrimitiveDenseStore

无论如何都可以根据给定的匿名函数映射所有这些值,例如

所以结果是