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。
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP