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。