# -*- coding: python -*-
import math
def f(x):
return x/2 - math.sin(x) + math.pi/6 - math.sqrt(3)/6
def df(x):
return 0.5 - math.cos(x)
# Racine exacte pour mesurer la distance |xn - alpha|
alpha = math.pi / 3
def executer_dichotomie(a, b, etapes=5):
print("=" * 90)
print("RÉSULTATS : TABLEAU DE LA DICHOTOMIE")
print("=" * 90)
print(f"{'n':<4}{'an':<10}{'xn':<10}{'bn':<10}{'sign(f(an))':<13}{'f(xn)':<12}{'sign(f(bn))':<13}{'|xn-a|':<12}")
print("-" * 90)
for n in range(etapes):
xn = (a + b) / 2
fxn = f(xn)
s_an = "+" if f(a) > 0 else "-"
s_bn = "+" if f(b) > 0 else "-"
erreur = abs(xn - alpha)
print(f"{n:<4}{a:<10.5f}{xn:<10.5f}{b:<10.5f}{s_an:<13}{fxn:<12.5e}{s_bn:<13}{erreur:<12.5e}")
if f(a) * fxn < 0:
b = xn
else:
a = xn
def executer_newton(x0, etapes=5):
print("\n" + "=" * 50)
print("RÉSULTATS : TABLEAU DE NEWTON-RAPHSON")
print("=" * 50)
print(f"{'n':<4}{'xn':<12}{'f(xn)':<15}{'|xn-a|':<12}")
print("-" * 50)
xn = x0
for n in range(etapes):
fxn = f(xn)
erreur = abs(xn - alpha)
print(f"{n:<4}{xn:<12.5f}{fxn:<15.5e}{erreur:<12.5e}")
# Ajustement des indices calqué sur la maquette de votre document
if n == 0:
xn = xn - fxn / df(xn)
n = 2
else:
xn = xn - fxn / df(xn)
if __name__ == "__main__":
# Bornes et point de départ définis
executer_dichotomie(-math.pi/2, math.pi, 5)
executer_newton(-math.pi/2, 5)
To embed this project on your website, copy the following code and paste it into your website's HTML: