Lu decomposition#
La fonction lu_decompose réalise la décomposition LU d’une matrice carrée en une matrice triangulaire inférieure (L) et une matrice triangulaire supérieure (U) en utilisant la méthode de décomposition LU. Cette méthode est couramment utilisée en algèbre linéaire pour résoudre des systèmes d’équations linéaires et inverser des matrices.
La fonction prend en paramètre une matrice carrée et retourne les matrices L et U. Elle itère sur les éléments de la matrice d’entrée pour calculer les éléments des matrices L et U en suivant un processus spécifique. Les résultats obtenus sont ensuite retournés sous forme de tuples contenant les matrices L et U.
En utilisant cette fonction, les utilisateurs peuvent facilement décomposer une matrice carrée en ses composantes L et U, ce qui peut être utile dans de nombreuses applications en mathématiques, en science des données et en ingénierie.
Fonction#
1import numpy
2
3def lu_decompose(matrix):
4 """
5 Decomposes a square matrix into its lower triangular matrix (L) and upper triangular matrix (U) using LU decomposition.
6
7 Args:
8 matrix: The square matrix to be decomposed.
9
10 Returns:
11 L: The lower triangular matrix.
12 U: The upper triangular matrix.
13 """
14 rows, columns = numpy.shape(matrix)
15 L = numpy.zeros((rows, columns))
16 U = numpy.zeros((rows, columns))
17
18 if rows != columns:
19 return []
20
21 for i in range(columns):
22 for j in range(i):
23 sum = 0
24 for k in range(j):
25 sum += L[i][k] * U[k][j]
26 L[i][j] = (matrix[i][j] - sum) / U[j][j]
27
28 L[i][i] = 1
29
30 for j in range(i, columns):
31 sum1 = 0
32 for k in range(i):
33 sum1 += L[i][k] * U[k][j]
34 U[i][j] = matrix[i][j] - sum1
35
36 return L, U
matrix = numpy.array([[2, -2, 1],
[0, 1, 2],
[5, 3, 1]])
L, U = lu_decompose(matrix)
print("Lower triangular matrix (L):")
print(L)
print("\nUpper triangular matrix (U):")
print(U)
Lower triangular matrix (L):
[[1. 0. 0. ]
[0. 1. 0. ]
[2.5 8. 1. ]]
Upper triangular matrix (U):
[[ 2. -2. 1. ]
[ 0. 1. 2. ]
[ 0. 0. -17.5]]