SciPy 中哪個線性函式用於求解迴圈矩陣方程?
名為 scipy.linalg.solve_circulant 的線性函式用於求解迴圈矩陣方程。該函式的形式如下:
scipy.linalg.solve_circulant(c, b, singular=’raise’, tol=None, caxis=-1, baxis=0, outaxis=0)
此線性函式將求解方程 Cx = b 的 x,其中 C 是與向量 c 關聯的迴圈矩陣。
迴圈矩陣方程透過在傅立葉空間中進行除法來求解,如下所示:
x = ifft(fft(b) / fft(c))
這裡 fft 是快速傅立葉變換,ifft 是逆快速傅立葉變換。
引數
以下是函式 scipy.linalg.solve_circulant() 的引數:
c− array_like
此引數表示迴圈矩陣的係數。
b− array_like
此引數表示方程 ax = b 中的右側矩陣。
singular− str,可選
此引數用於控制如何處理近奇異迴圈矩陣。以下是此引數的選項:
v raise− 如果迴圈矩陣接近奇異,並且您選擇此引數的值為“raise”,則會引發 LinAlgError。它也是 singular 引數的預設值。
v lstsq− 如果迴圈矩陣接近奇異,並且您選擇此引數的值為“lstsq”,則將返回最小二乘解。
tol− float,可選
此引數用於判斷矩陣是否接近奇異。將 tol 的值與迴圈矩陣的特徵值進行比較,如果小於或等於 tol,則矩陣接近奇異。如果未給出 tol 的值,則可以使用以下公式設定:
tol = abs_eigs.max() * abs_eigs.size * np.finfo(np.float64).eps
這裡 abs_eigs 是迴圈矩陣的特徵值的絕對值陣列。
caxis− int
當迴圈矩陣 c 的維度大於 1 時,caxis 是儲存迴圈係數向量的 c 的軸。
baxis− int
當迴圈矩陣 c 的維度大於 1 時,baxis 是儲存右側向量的 b 的軸。
outaxis− int
outaxis 是儲存解向量的結果的軸。
返回值
x− ndarray
它返回迴圈矩陣方程 Cx = b 的解。
引發
LinAlgError
如果與 c 關聯的迴圈矩陣接近奇異,則會引發 LinAlgError。