scipy.linalg.cholesky_banded¶
- 
scipy.linalg.cholesky_banded(ab, overwrite_ab=False, lower=False, check_finite=True)[source]¶
- Cholesky decompose a banded Hermitian positive-definite matrix - The matrix a is stored in ab either in lower diagonal or upper diagonal ordered form: - ab[u + i - j, j] == a[i,j] (if upper form; i <= j) ab[ i - j, j] == a[i,j] (if lower form; i >= j) - Example of ab (shape of a is (6,6), u=2): - upper form: * * a02 a13 a24 a35 * a01 a12 a23 a34 a45 a00 a11 a22 a33 a44 a55 lower form: a00 a11 a22 a33 a44 a55 a10 a21 a32 a43 a54 * a20 a31 a42 a53 * * - Parameters
- ab(u + 1, M) array_like
- Banded matrix 
- overwrite_abbool, optional
- Discard data in ab (may enhance performance) 
- lowerbool, optional
- Is the matrix in the lower form. (Default is upper form) 
- check_finitebool, optional
- Whether to check that the input matrix contains only finite numbers. Disabling may give a performance gain, but may result in problems (crashes, non-termination) if the inputs do contain infinities or NaNs. 
 
- Returns
- c(u + 1, M) ndarray
- Cholesky factorization of a, in the same banded format as ab 
 
 - See also - cho_solve_banded
- Solve a linear set equations, given the Cholesky factorization of a banded hermitian. 
 - Examples - >>> from scipy.linalg import cholesky_banded >>> from numpy import allclose, zeros, diag >>> Ab = np.array([[0, 0, 1j, 2, 3j], [0, -1, -2, 3, 4], [9, 8, 7, 6, 9]]) >>> A = np.diag(Ab[0,2:], k=2) + np.diag(Ab[1,1:], k=1) >>> A = A + A.conj().T + np.diag(Ab[2, :]) >>> c = cholesky_banded(Ab) >>> C = np.diag(c[0, 2:], k=2) + np.diag(c[1, 1:], k=1) + np.diag(c[2, :]) >>> np.allclose(C.conj().T @ C - A, np.zeros((5, 5))) True 
