Untitled
unknown
plain_text
3 years ago
1.1 kB
12
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...