700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python scipy linalg.solve_toeplitz

Python scipy linalg.solve_toeplitz

时间:2023-07-31 12:54:23

相关推荐

Python scipy linalg.solve_toeplitz

用法:

scipy.linalg.solve_toeplitz(c_or_cr, b, check_finite=True)

使用Levinson递归求解Toeplitz系统

Toeplitz矩阵具有恒定的对角线,其中c为第一列,r为第一行。如果没有给出rr == conjugate©假设。

参数:

c_or_cr:array_like 或 tuple of (array_like, array_like)

向量c,或数组元组(c,r)。不论实际形状c,它将转换为一维数组。如果未提供,r = conjugate©假设;在这种情况下,如果c [0]为实,则Toeplitz矩阵为Hermitian。 r [0]被忽略; Toeplitz矩阵的第一行是[c[0], r[1:]]。不论实际形状r,它将转换为一维数组。

b:(M,) 或 (M, K) array_like

Right-hand侧入T x = b。

check_finite:bool, 可选参数

是否检查输入矩阵仅包含有限数。禁用可能会提高性能,但是如果输入中确实包含无穷大或NaN,则可能会导致问题(完全导致NaN)。

返回值:

x:(M,)或(M,K)ndarray

系统解决方案T x = b。返回形状与b形状匹配。

注意:

该解决方案是使用Levinson-Durbin递归计算的,该递归比通用的least-squares方法要快,但数值稳定性较差。

例子:

求解Toeplitz系统T x = b,其中:

[ 1 -1 -2 -3] [1]T = [ 3 1 -1 -2] b = [2][ 6 3 1 -1] [2][10 6 3 1] [5]要指定Toeplitz矩阵,只需要第一列和第一行。>>> c = np.array([1, 3, 6, 10]) # First column of T>>> r = np.array([1, -1, -2, -3]) # First row of T>>> b = np.array([1, 2, 2, 5])>>> from scipy.linalg import solve_toeplitz, toeplitz>>> x = solve_toeplitz((c, r), b)>>> xarray([ 1.66666667, -1. , -2.66666667, 2.33333333])通过创建完整的Toeplitz矩阵并将其乘以x来检查结果。我们应该得到b。>>> T = toeplitz(c, r)>>> T.dot(x)array([ 1., 2., 2., 5.])

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。