WUT_Computer_Science/code/matrix_generator.py

27 lines
786 B
Python

import numpy as np
class MatrixGenerator:
@staticmethod
def generate_spd_matrix(n: int) -> np.ndarray:
"""
Generates a random symmetric positive definite matrix of size n x n.
Parameters:
n (int): The size of the matrix to generate.
Returns:
np.ndarray: A symmetric positive definite matrix of size n x n.
"""
A = np.random.rand(n, n)
spd_matrix = np.dot(A, A.T) + n * np.eye(n) # Adding n*I ensures positive definiteness
return spd_matrix
@staticmethod
def generate_random_matrix_and_vector(size):
A = MatrixGenerator.generate_spd_matrix(size)
b = np.random.uniform(-1, 1, size)
return A, b
def generate_identity_matrix(size):
return np.eye(size)