gpt4 book ai didi

javascript - 是否有与 numpy.linalg.pinv 等效的 JavaScript?

转载 作者:行者123 更新时间:2023-11-30 19:23:33 30 4
gpt4 key购买 nike

我正在尝试求解一个超定线性方程组 (Ax = B),给定一个由用户在网站上使用 Javascript 输入生成的矩阵 A。在 python 中,我可以只使用 numpy.linalg.pinv(A) 来找到 A 的伪逆并将该伪逆乘以 B 来求解系统——是否有一个 JavaScript 等价物(库和/或一段代码)可以做到这个?

我尝试使用 math.js;虽然它好像没有伪逆函数,但是它还有其他的矩阵运算。我尝试使用

math.multiply(math.inv(math.multiply(math.transpose(A), A)), math.transpose(A))

找到伪逆但是我通过将 A 的转置与 A 相乘得到的矩阵不可逆,因为 A 的列显然是线性相关的(我对线性代数不是很有经验,但这就是我收集到的来自一些在线研究)。然而,即使矩阵 A 具有线性相关的列(我用 numpy 测试了系统),numpy 仍然可以找到伪逆函数,这让我回到了是否有办法复制 numpy 的伪逆函数的问题。如果没有,这个问题是否有其他解决方案?

最佳答案

Q : And if not, is there some other solution to this problem?

是的,有办法。

实现分布式处理工作流程。让 JavaScript 发挥作用,让 numpy 一边做它擅长的工作。类似的概念在许多用例中很常见,在这些用例中,专门的工具解决了部分问题,一些工作流集成中介将分布式部分“粘合”在一起。

所以,让JavaScript部分配备ZeroMQ/ zmq nanomsg ,传达 A, B 通过与 python 端的互连,numpy 将尽其所能进行智能化、矢量化的数字运算,并让接收到的结果传回处理工作流的任何下一阶段。

ZeroMQ 多年来一直拥有智能工具,可实现非常快速且高效的无协议(protocol) { ipc:// | vmci:// } localhost 互连,plus 具有类似的智能但非本地协议(protocol) { tcp:// | udp:// | ... }数据中心互连,如果您的本地主机资源对于更大的矩阵尺寸来说变得过小。

nanomsg 有类似的工具,但您必须检查 JavaScript 端可用端口/包装器的可用性。

剩下的就是为任何给定的数据量和请求的前端/后端事务运行节奏挤出最大性能。

~ 80 [ms] 下使用此架构进行周转时间只是你的想象力是你的极限。还做了一些多- TB 尽可能快地处理线性代数,在那里需要更加小心,但以性能为导向的原则是相同的。

关于javascript - 是否有与 numpy.linalg.pinv 等效的 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57175722/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com