首页 文章资讯内容详情

SciPy 的哪个线性函数用于求解循环矩阵方程?

2026-06-02 1 花语

名为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,可选

此参数用于控制如何处理近奇异循环矩阵。下面给出了这个参数的选项-

vraise-如果循环矩阵接近奇异值并且您选择此参数“raise”的值,则会引发LinAlgError。它也是奇异参数的默认值。

vlstsq-如果循环矩阵接近奇异值并且您选择此参数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。