當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy interpolative.interp_decomp用法及代碼示例


本文簡要介紹 python 語言中 scipy.linalg.interpolative.interp_decomp 的用法。

用法:

scipy.linalg.interpolative.interp_decomp(A, eps_or_k, rand=True)#

計算矩陣的 ID。

矩陣 A 的 ID 是由秩 k、列索引數組 idx 和插值係數 proj 定義的分解,使得:

numpy.dot(A[:,idx[:k]], proj) = A[:,idx[k:]]

然後可以將原始矩陣重構為:

numpy.hstack([A[:,idx[:k]],
                            numpy.dot(A[:,idx[:k]], proj)]
                        )[:,numpy.argsort(idx)]

或通過例程 reconstruct_matrix_from_id 。這等效地可以寫成:

numpy.dot(A[:,idx[:k]],
                    numpy.hstack([numpy.eye(k), proj])
                  )[:,np.argsort(idx)]

在骨架和插值矩陣方麵:

B = A[:,idx[:k]]

和:

P = numpy.hstack([numpy.eye(k), proj])[:,np.argsort(idx)]

分別。另請參見 reconstruct_interp_matrix reconstruct_skel_matrix

ID 可以計算為任何相對精度或等級(取決於eps_or_k 的值)。如果指定了精度 (eps_or_k < 1),則此函數具有輸出簽名:

k, idx, proj = interp_decomp(A, eps_or_k)

否則,如果指定了排名(eps_or_k >= 1),則輸出簽名為:

idx, proj = interp_decomp(A, eps_or_k)

參數

A numpy.ndarray或者scipy.sparse.linalg.LinearOperatorrmatvec

要分解的矩陣

eps_or_k 浮點數或int

近似的相對誤差(如果eps_or_k < 1)或等級(如果eps_or_k >= 1)。

rand 布爾型,可選

是否使用隨機抽樣如果A是類型numpy.ndarray(如果出現以下情況,則始終使用隨機算法A是類型scipy.sparse.linalg.LinearOperator)。

返回

k int

如果eps_or_k < 1,則達到指定的相對精度所需的等級。

idx numpy.ndarray

列索引數組。

proj numpy.ndarray

插值係數。

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.linalg.interpolative.interp_decomp。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。