pub fn solve_band_system<T>(
band_matrix: &BandMatrix<T>,
rhs: &ArrayView1<'_, T>,
) -> InterpolateResult<Array1<T>>Expand description
Solve a band linear system using optimized LU factorization
Uses the specialized band LU algorithm which is much faster than general LU for band matrices: O(n*b²) vs O(n³) operations.
§Arguments
band_matrix- The band matrix Arhs- Right-hand side vector b
§Returns
Solution vector x such that A*x = b
§Examples
use scirs2_core::ndarray::Array1;
use scirs2_interpolate::structured_matrix::{BandMatrix, solve_band_system};
// Create a simple tridiagonal system
let mut matrix = BandMatrix::new(3, 1, 1);
matrix.set_diagonal(0, 2.0);
matrix.set_diagonal(1, 2.0);
matrix.set_diagonal(2, 2.0);
matrix.set_superdiagonal(1, -1.0);
matrix.set_superdiagonal(2, -1.0);
matrix.set_subdiagonal(1, -1.0);
matrix.set_subdiagonal(2, -1.0);
let rhs = Array1::from_vec(vec![1.0, 2.0, 1.0]);
let solution = solve_band_system(&matrix, &rhs.view()).unwrap();