mirror of
https://github.com/kuhyx/WUT_Computer_Science.git
synced 2026-07-04 18:03:14 +02:00
27 lines
786 B
Python
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)
|