Untitled

 avatar
unknown
plain_text
2 years ago
1.1 kB
7
Indexable
import numpy as np

def muLU(A):
    n = A.shape[0]  # Obtenemos la dimensión de la matriz A
    
    L = np.matrix(np.identity(n))  # Crea una matriz de tamaño n
    U = np.copy(A)  # Realiza una copia de la matriz A
    
    for j in range(0, n-1):
        for i in range(j+1, n):
            mult = U[i, j] / U[j, j]  # Calcula el multiplicador necesario
            
            U[i, j+1:n] = U[i, j+1:n] - mult * U[j, j+1:n]
            L[i, j] = mult  
            U[i, j] = 0  # Establece los elementos debajo de la diagonal en 0
            
    return L, U

# Matriz de entrada
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Aplicar el algoritmo muLU
L, U = muLU(A)

# Mostramos los resultados
print("Matriz L:")
print(L)
print("Matriz U:")
print(U)


-------------------------------------

# Generamos una matriz aleatoria de al menos 10 filas
n = 10
A = np.random.randn(n, n)

# Aplicar el algoritmo muLU
L, U = muLU(A)

# Comprobar la factorización A = LU
factor = np.dot(L, U)
print("Matriz A:")
print(A)
print("Matriz L:")
print(L)
print("Matriz U:")
print(U)
print("A = LU:")
print(factor)


Editor is loading...