第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否有等效于 numpy.linalg.pinv 的 JavaScript?

是否有等效于 numpy.linalg.pinv 的 JavaScript?

繁華開滿天機 2021-08-20 10:27:55
我正在嘗試解決一個線性方程組,該方程組是超定的 (Ax = B),給定一個矩陣 A,該矩陣 A 由用戶在網(wǎng)站上使用 Javascript 輸入生成。在 python 中,我可以使用 numpy.linalg.pinv(A) 來找到 A 的偽逆并將該偽逆乘以 B 來求解系統(tǒng)——是否有一個 JavaScript 等效的(庫和/或一段代碼)可以做這個?我嘗試使用 math.js;雖然它似乎沒有偽逆函數(shù),但它有其他矩陣運算。我嘗試使用math.multiply(math.inv(math.multiply(math.transpose(A), A)), math.transpose(A))找到偽逆,但我從 A 的轉(zhuǎn)置乘以 A 得到的矩陣不可逆,因為 A 的列顯然是線性相關(guān)的(我對線性代數(shù)不是很熟悉,但這是我從一些研究中收集到的在線)。然而,即使矩陣 A 具有線性相關(guān)列(我用 numpy 測試了系統(tǒng)),numpy 仍然可以找到偽逆函數(shù),這讓我回到了是否有辦法復制 numpy 的偽逆函數(shù)的問題。如果沒有,是否有其他解決方案可以解決此問題?
查看完整描述

2 回答

?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

問: 如果沒有,是否有其他解決方案可以解決此問題?

是的,有辦法。

實施分布式處理工作流。讓 JavaScript 發(fā)揮它的作用,讓numpySide 完成它非常擅長的工作。類似的概念在許多用例中很常見,其中專用工具解決部分問題,一些工作流集成中介將分布式部分“粘合”在一起。

因此,讓 JavaScript 部分配備 ZeroMQ/zmqnanomsg,A, B通過互連與 python 端通信,那里 numpy 將盡其所能進行智能、矢量化的數(shù)字處理,并讓接收到的結(jié)果傳回下一個階段處理工作流。

ZeroMQ 多年來擁有用于非常快速和高效的無協(xié)議{ ipc:// | vmci:// }本地主機互連的智能工具,此外還有用于{ tcp:// | udp:// | ... }數(shù)據(jù)中心互連的類似智能但非本地的協(xié)議,如果你的本地主機資源對于更大的矩陣大小會變得非常小。

有類似的工具準備就緒nanomsg,但您必須檢查 JavaScript 端可用端口/包裝器的可用性。

剩下的就是為任何給定的數(shù)據(jù)量和前端/后端事務運行的請求節(jié)奏擠出最大性能。

~ 80 [ms]您的想象力下使用此架構(gòu)進行周轉(zhuǎn)時間是您的極限。也盡可能快地完成了一些TB線性代數(shù)處理,在那里需要更加小心,但性能驅(qū)動的原則是相同的。


查看完整回答
反對 回復 2021-08-20
?
暮色呼如

TA貢獻1853條經(jīng)驗 獲得超9個贊

我知道自從提出這個問題已經(jīng)有一段時間了,但是現(xiàn)在(2021 年)有一些用于在 JS 中進行線性代數(shù)的庫,我將其留在這里以供參考:

僅舉幾例。從您的問題來看,您似乎正在嘗試解決最小二乘估計量:

http://img1.sycdn.imooc.com//611f1351000183a303000045.jpg

如果是這種情況,與計算偽逆(即使用 LU/QR/SVD 分解)相比,上述庫中的大多數(shù)(全部?)提供了更穩(wěn)健/高性能的解決方案:


// Using ml-matrix

const { Matrix, solve } = require('ml-matrix');

var X = new Matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);

var y = Matrix.columnVector([8, 20, 32]);

var b = solve(X, y, (useSVD = true));


// Using linear algebra js

const { SparseMatrix, DenseMatrix } = require('linear-algebra');

// solve the linear system Ax = b, where A is a square sparse matrix

var X = SparseMatrix.identity(5, 5);

var y = DenseMatrix.ones(5, 1);


var lu = X.lu();

var b = lu.solveSquare(y);

但是,如果你真的需要計算偽逆,ml-matrix 是唯一支持這個的庫(據(jù)我所知)。原則上,Eigen 也支持此功能,但我還沒有看到任何 JS 端口實際公開此功能。


查看完整回答
反對 回復 2021-08-20
  • 2 回答
  • 0 關(guān)注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號