This is a pre-release version (latest).Go to latest (1.18.0)
{ } Raw JSON

bundles / scipy latest / scipy / linalg / _basic / solve_triangular

function

scipy.linalg._basic:solve_triangular

source: build-install/usr/lib/python3.14/site-packages/scipy/linalg/_basic.py:281

Signature

def solve_triangular(a, b, trans = 0, lower = False, unit_diagonal = False, overwrite_b = False, check_finite = True)

Summary

Solve the equation a @ x = b for x, where a is a triangular matrix.

Extended Summary

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. Note that calls with zero-size batches are unsupported and will raise a ValueError.

Parameters

a : (M, M) array_like

A triangular matrix

b : (M,) or (M, N) array_like

Right-hand side matrix in a x = b

trans : {0, 1, 2, 'N', 'T', 'C'}, optional

Type of system to solve:

========  =========
trans     system
========  =========
0 or 'N'  a x  = b
1 or 'T'  a^T x = b
2 or 'C'  a^H x = b
========  =========
lower : bool, optional

Use only data contained in the lower triangle of a. Default is to use upper triangle.

unit_diagonal : bool, optional

If True, diagonal elements of a are assumed to be 1 and will not be referenced.

overwrite_b : bool, optional

Allow overwriting data in b (may enhance performance) See tutorial_linalg_overwrite for details.

check_finite : bool, optional

Whether to check that the input matrices contain 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

x : (M,) or (M, N) ndarray

Solution to the system a x = b. Shape of return matches b.

Raises

: LinAlgError

If a is singular

Notes

Examples

Solve the lower triangular system a x = b, where:: [3 0 0 0] [4] a = [2 1 0 0] b = [2] [1 0 1 0] [4] [1 1 1 1] [2]
import numpy as np
from scipy.linalg import solve_triangular
a = np.array([[3, 0, 0, 0], [2, 1, 0, 0], [1, 0, 1, 0], [1, 1, 1, 1]])
b = np.array([4, 2, 4, 2])
x = solve_triangular(a, b, lower=True)
✓
x
a.dot(x)  # Check the result
✗
array([4., 2., 4., 2.])

Aliases

  • scipy.linalg.solve_triangular

Referenced by