Mathématiques avec Python et Ruby/Analyse numérique en Python
Fonction Modifier
Dans ce chapitre, on va effectuer des calculs sur la fonction ; on va appeler cette fonction f. Pour se faciliter la suite, on va créer cette fonction :
def f(x):
return x**2-5
Résolution numérique d'une équation Modifier
Pour résoudre l'équation f(x)=0, on cherche un intervalle sur lequel on est certain que f s'annule. C'est le cas pour [1;3] parce que f(1) est négatif et f(3) est positif. La méthode de dichotomie vise à resserrer un tel intervalle. On constate ci-dessous que la fonction f est traitée comme une entrée de l'algorithme au même titre que les bornes a et b de l'intervalle :
def zero(f,a,b):
if f(a)*f(b)>0:
print('pas de solution entre '+str(a)+' et '+str(b)+'!')
return 0
while(abs(a-b)>1e-14):
m=(a+b)/2.
if f(m)*f(a)>0:
a=m
else:
b=m
print('la solution de f(x)=0 est '+str(m))
return m
print(zero(f,1,3))
La résolution de l'équation n'est pas terminée, puisque le script ci-dessus n'a donné qu'une seule des deux solutions de cette équation. Par ailleurs, la solution trouvée n'est affichée qu'à près.
Calcul numérique de nombre dérivé Modifier
Pour calculer le nombre dérivé de f en 5, on va utiliser l'approximation :
def NDer(f,a):
h=1e-10
return (f(a+h)-f(a-h))/(2*h)
print(NDer(f,5))
Calcul numérique d'une intégrale Modifier
La méthode des rectangles dit que où et N est suffisamment grand pour que h soit petit (ci-dessous N=1 000 000) :
def Int(f,a,b):
h=(b-a)/1000000.0
somme=0
for n in range(1000000):
somme+=h*f(a+n*h)
return(somme)
print(Int(f,0,2))