Bonjour,
Je me permets de vous solliciter afin de m'apporter une aide concernant un souci dans la programmation ci-dessous exposée :
Je précise que je suis totalement novice dans la programmation (3mois), je n'ai certainement pas le recul et la connaissance nécessaire afin de pouvoir m'en sortir toute seule !!! Pour info on utilise Pyzo.
Je sais que le résultat que je dois obtenir est approximativement -0,58xxxxxxxxx
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import numpy as np import matplotlib.pyplot as plt # Fonction: def f(x): return x + np.exp(-x**2) * np.cos(x) def df(x): return 1 + np.exp(-x**2) * (-2*x*np.cos(x) - np.sin(x)) def newton(f,df,x0,eps): u = x0 n = int() for i in range(0,n+1): u_1 = u + np.exp(-u**2) * np.cos(u) while np.abs(u - u_1) <= eps: u = u - (f(u)/df(u)) x = np.linspace(-30, 30, 100) y = x + np.exp(-x**2) * np.cos(x) plt.plot(x,y) plt.grid() plt.show() return u # Code: x1 = newton(f, df, 0, 10**(-6)) print("La valeur approchée de f(x)=0 est ", x1)
Il faut que la boucle s’arrête quand l’écart est <= a eps
Maintenant, je ne sais pas si le fait d'inclure un "while" dans une boucle "for" est judicieux !!! Mais je ne vois pas comment faire autrement, ce qui est peut-être le pire !!!
Merci à vous de la lecture et de l'aide que vous pourrez m'apporter.
Veuillez m'excuser d'avance, étant en outre-mer et n'ayant pas un accès facile au PC, je risque de prendre un peu de temps pour répondre et remercier les différents intervenants.![]()
Partager