Files
tp_ana_num/ex1.py
2025-10-19 19:03:43 +02:00

55 lines
1.0 KiB
Python

import numpy as np
def resolve_up(A, b) -> list[float]:
"""
:param A: Une matrice
:param b: Un vecteur
:return:
"""
x = np.zeros(len(b))
for i in range(len(A) - 1, -1, -1):
right_of_diagonal = 0.0
for k in range(i + 1, len(A)):
right_of_diagonal += A[i, k] * x[k]
x[i] = (b[i] - right_of_diagonal) / A[i, i]
return x
def resolve_down(A, b) -> list[float]:
"""
:param A: Une matrice
:param b: Un vecteur
:return:
"""
x = np.zeros(len(b))
for i in range(len(A)):
sum = 0.0
for k in range(i):
sum += A[i, k] * x[k]
x[i] = (b[i] - sum) / A[i, i]
return x
if __name__ == '__main__':
A = np.array([
[2, 4, -6],
[0, -1, 1],
[0, 0, -2],
], dtype=float)
b = np.array([2, 3, -7], dtype=float)
A_down = np.array([
[2, 0, 0],
[4, -1, 0],
[-6, 1, -2],
])
b_down = np.array([2, 3, -7])
print(resolve_up(A, b))
print(resolve_down(A_down, b_down))