Table of Contents
Numerical linear algebra is a fundamental aspect of engineering computations, enabling the analysis and solution of complex systems. Python libraries such as NumPy and SciPy provide powerful tools to perform these operations efficiently. This guide introduces practical techniques for engineers working with numerical linear algebra in these libraries.
Basic Matrix Operations
NumPy offers straightforward functions for matrix creation and manipulation. You can create matrices using np.array() and perform operations like addition, multiplication, and transposition.
Example:
import numpy as np
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
Matrix multiplication:
C = np.dot(A, B)
Solving Linear Systems
To solve a system of linear equations Ax = b, use np.linalg.solve(). This function requires the coefficient matrix A and the right-hand side vector b.
Example:
b = np.array([5, 11])
x = np.linalg.solve(A, b)
Eigenvalues and Eigenvectors
Eigenvalues and eigenvectors are essential in many applications. Use np.linalg.eig() to compute them.
Example:
values, vectors = np.linalg.eig(A)
Matrix Decompositions
SciPy provides functions for various matrix decompositions, such as LU, QR, and SVD. These decompositions are useful for solving systems, computing inverses, and analyzing matrix properties.
Example of Singular Value Decomposition (SVD):
U, s, Vh = np.linalg.svd(A)
This decomposes matrix A into unitary matrices U and Vh and a diagonal matrix of singular values s.