Matrix Operations
The matrix library provides operations on matrices represented as lists of lists (2D arrays) of Real numbers.
Construction
- fpy2.libraries.matrix.zeros(rows, cols)
Create a zero matrix of size rows x cols.
- Parameters:
rows (int) – Number of rows
cols (int) – Number of columns
- Returns:
Zero matrix
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.ones(rows, cols)
Create a matrix of ones of size rows x cols.
- Parameters:
rows (int) – Number of rows
cols (int) – Number of columns
- Returns:
Matrix of ones
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.identity(n)
Create an n x n identity matrix.
- Parameters:
n (int) – Matrix size
- Returns:
Identity matrix
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.diagonal(values)
Create a diagonal matrix from a list of values.
- Parameters:
values (list[Real]) – Diagonal values
- Returns:
Diagonal matrix
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.vander(x, n)
Generate Vandermonde matrix.
- Parameters:
x (list[Real]) – Input vector
n (int) – Number of columns
- Returns:
Vandermonde matrix
- Return type:
list[list[Real]]
Predicates
- fpy2.libraries.matrix.is_square(A)
Check if matrix is square.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
True if square, False otherwise
- Return type:
bool
- fpy2.libraries.matrix.is_symmetric(A)
Check if a matrix is symmetric.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
True if matrix is symmetric, False otherwise
- Return type:
bool
- fpy2.libraries.matrix.is_diagonal(A)
Check if matrix is diagonal.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
True if diagonal, False otherwise
- Return type:
bool
- fpy2.libraries.matrix.is_upper_triangular(A)
Check if matrix is upper triangular.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
True if upper triangular, False otherwise
- Return type:
bool
- fpy2.libraries.matrix.is_lower_triangular(A)
Check if matrix is lower triangular.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
True if lower triangular, False otherwise
- Return type:
bool
Element-wise Operations
- fpy2.libraries.matrix.add(A, B)
Element-wise addition of two matrices.
- Parameters:
A (list[list[Real]]) – First matrix
B (list[list[Real]]) – Second matrix
- Returns:
Result matrix A + B
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.sub(A, B)
Element-wise subtraction of two matrices.
- Parameters:
A (list[list[Real]]) – First matrix
B (list[list[Real]]) – Second matrix
- Returns:
Result matrix A - B
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.hadamard(A, B)
Element-wise multiplication (Hadamard product) of two matrices.
- Parameters:
A (list[list[Real]]) – First matrix
B (list[list[Real]]) – Second matrix
- Returns:
Result matrix A ⊙ B
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.scale(scalar, A)
Scale a matrix by a scalar.
- Parameters:
scalar (Real) – Scalar multiplier
A (list[list[Real]]) – Input matrix
- Returns:
Result matrix scalar * A
- Return type:
list[list[Real]]
Matrix Multiplication
- fpy2.libraries.matrix.matmul(A, B)
Matrix multiplication A * B.
- Parameters:
A (list[list[Real]]) – First matrix (m x n)
B (list[list[Real]]) – Second matrix (n x p)
- Returns:
Result matrix (m x p)
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.matvec(A, x)
Multiply a matrix by a vector: A * x.
- Parameters:
A (list[list[Real]]) – Matrix (m x n)
x (list[Real]) – Vector (length n)
- Returns:
Result vector (length m)
- Return type:
list[Real]
- fpy2.libraries.matrix.outer_product(x, y)
Compute outer product of two vectors: x ⊗ y.
- Parameters:
x (list[Real]) – First vector (length m)
y (list[Real]) – Second vector (length n)
- Returns:
Result matrix (m x n)
- Return type:
list[list[Real]]
Matrix Transformations
- fpy2.libraries.matrix.transpose(A)
Transpose a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
Transposed matrix A^T
- Return type:
list[list[Real]]
Row and Column Operations
- fpy2.libraries.matrix.get_row(A, i)
Extract a row from a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
i (int) – Row index
- Returns:
Row vector
- Return type:
list[Real]
- fpy2.libraries.matrix.get_column(A, j)
Extract a column from a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
j (int) – Column index
- Returns:
Column vector
- Return type:
list[Real]
- fpy2.libraries.matrix.set_row(A, i, row)
Set a row in a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
i (int) – Row index
row (list[Real]) – New row values
- Returns:
Matrix with updated row
- Return type:
list[list[Real]]
- fpy2.libraries.matrix.set_column(A, j, col)
Set a column in a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
j (int) – Column index
col (list[Real]) – New column values
- Returns:
Matrix with updated column
- Return type:
list[list[Real]]
Matrix Properties
- fpy2.libraries.matrix.trace(A)
Compute the trace (sum of diagonal elements) of a square matrix.
- Parameters:
A (list[list[Real]]) – Input square matrix
- Returns:
Trace of A
- Return type:
Real
- fpy2.libraries.matrix.determinant_2x2(A)
Compute determinant of a 2x2 matrix.
- Parameters:
A (list[list[Real]]) – 2x2 matrix
- Returns:
Determinant of A
- Return type:
Real
- fpy2.libraries.matrix.determinant_3x3(A)
Compute determinant of a 3x3 matrix using cofactor expansion.
- Parameters:
A (list[list[Real]]) – 3x3 matrix
- Returns:
Determinant of A
- Return type:
Real
Norms
- fpy2.libraries.matrix.frobenius_norm(A)
Compute the Frobenius norm of a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
Frobenius norm ||A||_F
- Return type:
Real
- fpy2.libraries.matrix.norm_1(A)
Compute 1-norm (maximum absolute column sum) of matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
1-norm of matrix
- Return type:
Real
- fpy2.libraries.matrix.norm_inf(A)
Compute infinity-norm (maximum absolute row sum) of matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
Infinity-norm of matrix
- Return type:
Real
Element Statistics
- fpy2.libraries.matrix.max_element(A)
Find the maximum element in a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
Maximum element
- Return type:
Real
- fpy2.libraries.matrix.min_element(A)
Find the minimum element in a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
Minimum element
- Return type:
Real
- fpy2.libraries.matrix.sum_elements(A)
Sum all elements in a matrix.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
Sum of all elements
- Return type:
Real
- fpy2.libraries.matrix.mean_elements(A)
Compute mean of all matrix elements.
- Parameters:
A (list[list[Real]]) – Input matrix
- Returns:
Mean of all elements
- Return type:
Real