scipy.sparse.linalg.

onenormest#

scipy.sparse.linalg.onenormest(A, t=2, itmax=5, compute_v=False, compute_w=False)[原始碼]#

計算稀疏陣列 1-範數的下界。

參數:
Andarray 或其他線性算子

可以轉置並產生矩陣乘積的線性算子。

tint,可選

一個正參數,用於控制準確性與時間和記憶體使用量之間的權衡。 較大的值需要更長的時間和更多的記憶體,但會提供更準確的輸出。

itmaxint,可選

最多使用這麼多次迭代。

compute_vbool,可選

如果為 True,則請求範數最大化的線性算子輸入向量。

compute_wbool,可選

如果為 True,則請求範數最大化的線性算子輸出向量。

返回:
estfloat

稀疏陣列 1-範數的低估值。

vndarray,可選

向量使得 ||Av||_1 == est*||v||_1。 它可以被認為是線性算子的輸入,該輸入給出具有特別大範數的輸出。

wndarray,可選

向量 Av,其具有相對較大的 1-範數。 它可以被認為是線性算子的輸出,相較於輸入,其範數相對較大。

註解

這是 [1] 的演算法 2.4。

在 [2] 中,它被描述如下。「此演算法通常需要評估約 4t 個矩陣向量乘積,並且幾乎總是產生範數估計值(實際上是範數的下界),其準確度在 3 倍因子內。」

在 0.13.0 版本中新增。

參考文獻

[1]

Nicholas J. Higham 和 Francoise Tisseur (2000),「矩陣 1-範數估計的區塊演算法,及其在 1-範數偽譜中的應用。」 SIAM J. Matrix Anal. Appl. Vol. 21, No. 4, pp. 1185-1201。

[2]

Awad H. Al-Mohy 和 Nicholas J. Higham (2009),「矩陣指數的新縮放和平方演算法。」 SIAM J. Matrix Anal. Appl. Vol. 31, No. 3, pp. 970-989。

範例

>>> import numpy as np
>>> from scipy.sparse import csc_array
>>> from scipy.sparse.linalg import onenormest
>>> A = csc_array([[1., 0., 0.], [5., 8., 2.], [0., -1., 0.]], dtype=float)
>>> A.toarray()
array([[ 1.,  0.,  0.],
       [ 5.,  8.,  2.],
       [ 0., -1.,  0.]])
>>> onenormest(A)
9.0
>>> np.linalg.norm(A.toarray(), ord=1)
9.0