Untitled
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...