问题标签 [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.
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 结果。相应股票价格的日期向后移动了一天。
这使得整个股票数据不正确。有人有想法吗?
这是一个错误还是其他什么?谢谢。
java - 如何使用 ojAlgo 解决 Java 中的二次规划 (QP)?
我有一个二次规划问题(具有线性约束、整数变量的二次目标函数),我想用 Java 解决。ojAlgo 似乎能够做到这一点。不幸的是,我找不到有关如何使用它的文档或示例。有谁可以帮我离开这里吗?
也欢迎使用 ojAlgo 以外的工具在 Java 中解决 QP 的建议。
java - 使用 ojalgo:从数组创建矩阵
我正在尝试使用ojAlgo来解决 Java 中的一些线性代数问题。我在问是否有任何“聪明”的方法可以使用现有数组创建矩阵。
这是我天真的方法:
这行得通,但是每次都做太麻烦了。我可以编写一个这样做的类,并在每次我想做的时候调用它,但我想知道是否有更简单的方法。
有没有更简单的方法?
java - Ojalgo:奇异矩阵的处理
我正在使用 ojalgo 来解决 java 中的 (NxN) Ax = b System。由于 A 有可能是奇异矩阵,因此我希望我的代码以某种方式知道这一点。有办法吗?(文档指出,solve()
如果问题不合格并且该invert()
方法未引发异常,则该方法返回一种可能的解决方案)。
任何帮助将不胜感激。提前致谢。
java - 在 Java 中使用 Ojalgo 求解线性系统
我正在尝试使用 Ojalgo 解决 M (NxN) 线性系统 (Ax = B, B = [b1,b2,...bM])。最有效的方法是什么?我还想知道 A 是否是单数(A,B 是 PrimitiveMatrix 类型的对象)。
任何帮助将不胜感激。谢谢!
java - Ojalgo:在 Java 中定义矩阵是否稳定
我正在尝试使用 Ojalgo 解决 M (NxN) 线性系统 (Ax = B, B = [b1,b2,...bM])。感谢apete的建议,我成功地检查了 A (A, B are objects of type PrimitiveMatrix) 是否是奇异的,但似乎有时它也不稳定。确定这个矩阵是否稳定对我来说真的很有用或不。
非常感激任何的帮助。谢谢!
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 == j
和0
, else )。所以,这条线不应该花那么长时间来执行。在这个问题中也应该很容易绕过
但是,如果我尝试通过注释掉该行并将其替换为A = A0
. 然后代码执行时间太长(在我杀死它的原始时间的 10 倍之后)。此外,CPU 使用率达到 100%。
我查了一下,结果是A
和L1 * A0 * L1.transpose()
是一样的。
总而言之,使用我的 Java 代码的一部分(我使用库 ojalgo 来处理矩阵):
整个过程大约需要 69 秒,其中 65 秒是在一个微不足道的计算中消耗的,我未能绕过。过去,对于较小的矩阵 (60x60),同样的过程已经成功运行。
我不太确定如何进行调试尝试。任何帮助将不胜感激。
似乎问题比我最初估计的要深一些。我试图打印这些矩阵以上传它们,但随后出现了另一个问题。我发现我的代码在我第一次运行时就崩溃了System.out.println(A0.get(aRow,aColumn));
。A0
是通过将 double 类型的数字添加到具有维度的零矩阵的每个位置来创建的600x600
。此外,还会出现以下消息:
再次强调,当这些矩阵为60x60
.
java - ojAlgo中的元素乘法两个矩阵或PrimitiveDenseStores
谁能告诉我如何在 ojAlgo 中将两个矩阵的对应元素相乘?寻找块功能c[i][j] = a[i][j] * b[i][j]
java - OjAlgo:有没有办法从 ojAlgo 中 PrimitiveDenseStore 的所有元素中添加/减去双精度数?
寻找一个从矩阵或密集存储的所有元素中添加/减去双精度的函数。
java - OjAlgo 如何映射/更新 PrimitiveDenseStore 中的所有值?
假设我有一个 2x2 矩阵作为 PrimitiveDenseStore
无论如何都可以根据给定的匿名函数映射所有这些值,例如
所以结果是