首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Math.js计算矩阵运算的近似值

用Math.js计算矩阵运算的近似值
EN

Stack Overflow用户
提问于 2020-12-29 02:19:48
回答 2查看 72关注 0票数 1

我正在使用Math.js在JavaScript中执行矩阵计算(例如,计算行列式、特征值、逆矩阵)。我希望计算执行得更快(它是在2X2矩阵上计算它们,但它每秒应该执行很多次,现在它导致了明显的延迟),但精度并不是那么重要(我认为精度的两个小数位就足够了)。有没有办法指定计算的精确度?谢谢!

下面是一个计算示例:

代码语言:javascript
复制
var A = [[3.5, 9], [9, 1]]
for (let x=0;x<10**5;x++){
  math.eigs(A)
  math.inv(A)
  math.det(A)
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/8.1.0/math.js" integrity="sha512-ne87j5uORxbrU7+bsqeJJWfWj5in65R9PCjaQL161xtH5cesZgULVbeVAkzAAN7hnYOcrHeBas9Wbd/Lm8gXFA==" crossorigin="anonymous"></script>

实际上,每次更改滑块位置(当然每次都使用不同的矩阵)时,我都会进行这些计算。

EN

回答 2

Stack Overflow用户

发布于 2020-12-29 02:58:20

查看文档:

https://mathjs.org/docs/core/configuration.html

精度。BigNumbers的最大有效位数。此设置仅适用于BigNumbers,不适用于数字。默认值为64。

我不知道这是否真的会加速您的计算或解决您的问题,但有一些配置选项可能会有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2021-10-11 14:22:08

尝试使用ml矩阵库,而不是math.js。除了具有高效的分解算法外,它还具有更好的泛化能力。Math.js仅限于求解对称实数矩阵。下面是一个使用ml矩阵求解更难的二进制稀疏矩阵的示例:

代码语言:javascript
复制
matrix = 
[
  [ 0, 1, 0, 1, 0, 1 ],
  [ 0, 0, 0, 0, 0, 0 ],
  [ 0, 1, 0, 1, 0, 1 ],
  [ 0, 0, 0, 0, 0, 0 ],
  [ 0, 0, 0, 0, 0, 0 ],
  [ 1, 0, 1, 0, 0, 0 ]
]

const mlMatrix = require('ml-matrix');
const M = new mlMatrix.Matrix(matrix);
const e = new mlMatrix.EigenvalueDecomposition(M);

e.realEigenvalues -> [-1.4142135623730945, 2.220446049250313e-16, 1.4142135623730954, 0, 0, 0 ]
e.imaginaryEigenvalues -> [ 0, 0, 0, 0, 0, 0 ]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65482219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档