-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsecantMethod.py
More file actions
66 lines (57 loc) · 1.51 KB
/
secantMethod.py
File metadata and controls
66 lines (57 loc) · 1.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from sympy import *
x, f = symbols("x f")
g, d = symbols("g d")
recommencer0 = True
while recommencer0:
try:
f = sympify((input("f(x)=")))
recommencer0 = False
except:
print("veuillez entrer une fonction valable")
# entrer des valeurs x1 et x2
while True:
try:
x1 = float(input("x1="))
break
except:
print("entrer une valeur valabe")
while True:
try:
x2 = float(input("x2="))
break
except:
print("veuillez entrer une valeur valable")
while True:
try:
iteration = int(input("entrer le nombre d'itération:"))
break
except:
print("veuillez entrer une valeur valable")
while True:
try:
z = float(input("entrer le critère d'arrêt:"))
break
except:
print("veuillez entrer une valeur valable")
# algo
j = 0
while j <= iteration:
xn = 0
if f.subs(x, x2) - f.subs(x, x1) == 0:
print("division par zero, veuillez recommencer")
exit()
xn = x2 - ((x2 - x1) * f.subs(x, x2)) / (f.subs(x, x2) - f.subs(x, x1))
if abs(xn - x2) < z:
break
else:
x1 = x2
x2 = xn
j += 1
print("la racine est :", xn, "en %d itération" % j)
continuer = True
choix = input("voulez-vous visualiser la courbe? 'O' pour OUI et autres touche pour 'NON':")
if choix.lower() == 'o':
continuer = True
plot(f, legend=True, line_color="red", show=True)
else:
continuer = False