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,可选
具有相对较大 1-范数的向量 Av。它可以被认为是线性算子的输出,该输出与输入相比具有相对较大的范数。
注释
这是 [1] 的算法 2.4。
在 [2] 中,它被描述如下。“该算法通常需要评估大约 4t 次矩阵-向量乘积,并且几乎总是产生一个范数估计值(实际上是范数的下界),该估计值在 3 倍的因子内是正确的。”
在 0.13.0 版本中添加。
参考文献
[1]Nicholas J. Higham 和 Francoise Tisseur (2000),“用于矩阵 1-范数估计的块算法,及其在 1-范数伪谱上的应用。” SIAM J. Matrix Anal. Appl. 第 21 卷,第 4 期,第 1185-1201 页。
[2]Awad H. Al-Mohy 和 Nicholas J. Higham (2009),“用于矩阵指数的新缩放和平方算法。” SIAM J. Matrix Anal. Appl. 第 31 卷,第 3 期,第 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