Fix: Correct jacobi, gauss, cholesky

This commit is contained in:
Namu
2025-10-19 19:03:43 +02:00
parent b04a54cad7
commit 128e07d420
5 changed files with 133 additions and 96 deletions

40
ex5.py
View File

@@ -4,6 +4,7 @@ import numpy as np
dich_steps = []
new_raph_steps = []
def f(x) -> float:
return np.exp(x) - 2 * np.cos(x)
@@ -26,18 +27,33 @@ def dichotomie(x_0, a, b, epsilon, n=0) -> float:
def f_prime(x) -> float:
return 1 + np.sin(x)
return np.exp(x) + 2 * np.sin(x)
def newton_raphson(x_0, epsilon) -> float:
x_1 = x_0 - (f(x_0) / f_prime(x_0))
new_raph_steps.append(x_1)
def newton_raphson(x_0, epsilon, max_iter=1_000) -> float | None:
"""
Condition : connaître la dérivée de f(x)
:param x_0:
:param epsilon:
:param max_iter:
:return:
"""
x = x_0
if np.abs(x_1 - x_0) < epsilon:
return x_1
elif np.abs(f(x_0)) < epsilon:
return x_1
return newton_raphson(x_1, epsilon)
for _ in range(max_iter):
x_prev = x
fx = f(x)
fpx = f_prime(x)
if np.abs(fx) < epsilon:
return x
elif fpx == 0:
return None
x = x - (fx / fpx)
new_raph_steps.append(x)
if np.abs(x - x_prev) < epsilon:
return x
return None
def ex1() -> None:
@@ -71,10 +87,10 @@ def ex1() -> None:
plt.show()
"""
La dichotomie à moins d'étape que NR, mais NR à l'air plus rapide,
comme Flash McQueen
La NR à moins d'étape que la dichotomie, NR à l'air rapide,
comme Flash McQueen (Kachow)
"""
if __name__ == '__main__':
ex1()
ex1()