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