bundles / scipy 1.17.1 / scipy / linalg / _basic / solve_toeplitz
function
scipy.linalg._basic:solve_toeplitz
source: /scipy/linalg/_basic.py :1035
Signature
def solve_toeplitz ( c_or_cr , b , check_finite = True ) Summary
Solve the equation T @ x = b for x, where T is a Toeplitz matrix defined by c_or_cr.
Extended Summary
The Toeplitz matrix has constant diagonals, with c as its first column and r as its first row. If r is not given, r == conjugate(c) is assumed.
The documentation is written assuming array arguments are of specified "core" shapes. However, array argument(s) of this function may have additional "batch" dimensions prepended to the core shape. In this case, the array is treated as a batch of lower-dimensional slices; see linalg_batch for details.
Parameters
c_or_cr: array_like or tuple of (array_like, array_like)The vector
c, or a tuple of arrays (c,r). If not supplied,r = conjugate(c)is assumed; in this case, if c[0] is real, the Toeplitz matrix is Hermitian. r[0] is ignored; the first row of the Toeplitz matrix is[c[0], r[1:]].b: (M,) or (M, K) array_likeRight-hand side in
T x = b.check_finite: bool, optionalWhether to check that the input matrices contain only finite numbers. Disabling may give a performance gain, but may result in problems (result entirely NaNs) if the inputs do contain infinities or NaNs.
Returns
x: (M,) or (M, K) ndarrayThe solution to the system
T @ x = b. Shape of return matches shape ofb.
Notes
The solution is computed using Levinson-Durbin recursion, which is faster than generic least-squares methods, but can be less numerically stable.
Examples
Solve the Toeplitz system ``T @ x = b``, where:: [ 1 -1 -2 -3] [1] T = [ 3 1 -1 -2] b = [2] [ 6 3 1 -1] [2] [10 6 3 1] [5] To specify the Toeplitz matrix, only the first column and the first row are needed.import numpy as np 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)✓
x
✗T = toeplitz(c, r)
✓T.dot(x)
✗See also
- toeplitz
Toeplitz matrix
Aliases
-
scipy.linalg.solve_toeplitz