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。

更新于: 2021-11-24

124 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.