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


Python SciPy linalg.qmr用法及代碼示例


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

用法:

scipy.sparse.linalg.qmr(A, b, x0=None, *, tol=<object object>, maxiter=None, M1=None, M2=None, callback=None, atol=0.0, rtol=1e-05)#

使用 Quasi-Minimal 殘差迭代求解 Ax = b

參數

A {稀疏矩陣,ndarray,LinearOperator}

線性係統的實值N-by-N 矩陣。或者, A 可以是線性運算符,它可以使用 scipy.sparse.linalg.LinearOperator 等生成 AxA^T x

b ndarray

線性係統的右手邊。具有形狀 (N,) 或 (N,1)。

x0 ndarray

開始猜測解決方案。

atol, rtol 浮點數,可選

收斂測試的參數。為了收斂,應滿足norm(b - A @ x) <= max(rtol*norm(b), atol)。默認為 atol=0.rtol=1e-5

maxiter 整數

最大迭代次數。即使沒有達到指定的容差,迭代也會在 maxiter 步後停止。

M1 {稀疏矩陣,ndarray,LinearOperator}

A 的左預條件子。

M2 {稀疏矩陣,ndarray,LinearOperator}

用於 A 的右側預調節器。與左側預調節器 M1 一起使用。矩陣 M1@A@M2 應該比單獨的 A 有更好的條件。

callback 函數

每次迭代後調用的用戶提供的函數。它被稱為 callback(xk),其中 xk 是當前解向量。

tol 浮點數,可選,已棄用

返回

x ndarray

融合解決方案。

info 整數
提供收斂信息:

0:成功退出>0:未達到容差收斂,迭代次數<0:參數崩潰

例子

>>> import numpy as np
>>> from scipy.sparse import csc_matrix
>>> from scipy.sparse.linalg import qmr
>>> A = csc_matrix([[3., 2., 0.], [1., -1., 0.], [0., 5., 1.]])
>>> b = np.array([2., 4., -1.])
>>> x, exitCode = qmr(A, b, atol=1e-5)
>>> print(exitCode)            # 0 indicates successful convergence
0
>>> np.allclose(A.dot(x), b)
True

相關用法


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