SciPy 的哪个线性函数用于求解循环矩阵方程?
名为scipy.linalg.solve_circulant的线性函数用于求解循环矩阵方程。此函数的形式如下 -
scipy.linalg.solve_circulant(c, b, singular=’raise’, tol=None, caxis=-1, baxis=0, outaxis=0)
该线性函数将为 x 求解方程 Cx = b,其中 C 是与向量 c 关联的循环矩阵。
循环矩阵方程是通过在傅立叶空间中进行除法来求解的,如下所示 -
x = ifft(fft(b) / fft(c))
这里fft是快速傅里叶变换,而ifft是快速傅里叶逆变换。
参数
下面给出函数 scipy 的参数。-linalg.solve_circulant()
c− array_like
该参数表示循环矩阵的系数。
b− array_like
该参数表示等式 ax = b 中的右侧矩阵。
单数- str,可选
此参数用于控制如何处理近奇异循环矩阵。下面给出了这个参数的选项 -
v raise - 如果循环矩阵接近奇异值并且您选择此参数“raise”的值,则会引发 LinAlgError。它也是奇异参数的默认值。
v lstsq - 如果循环矩阵接近奇异值并且您选择此参数 'lstsq' 的值,则将返回最小二乘解。
tol− 浮动,可选
该参数用于判断矩阵是否接近奇异。将 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 的轴,其中包含右侧向量。
外轴- int
outaxis 是保存解向量的结果的轴。
退货
x− ndarray
它返回循环矩阵方程 Cx = b 的解。
加注
线性错误
如果与 c 关联的循环矩阵接近奇异,则会引发 LinAlgError。