Top Banner
Algorithmes en analyse Illustrations avec XCAS et CAML Guillaume CONNAN IREM de Nantes 11 janvier 2010 (IREM de Nantes) 1 / 85
106

Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Sep 15, 2018

Download

Documents

PhạmDũng
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Algorithmes en analyseIllustrations avec XCAS et CAML

Guillaume CONNAN

IREM de Nantes

11 janvier 2010

(IREM de Nantes) 1 / 85

Page 2: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 2 / 85

Page 3: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 3 / 85

Page 4: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Ayez toujours en tête qu’un ordinateur ne peut pas travailler avec desréels !Par essence, il a un nombre fini de bits sur lesquels il peut coder desnombres...

(IREM de Nantes) 4 / 85

Page 5: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Ayez toujours en tête qu’un ordinateur ne peut pas travailler avec desréels !Par essence, il a un nombre fini de bits sur lesquels il peut coder desnombres...

(IREM de Nantes) 4 / 85

Page 6: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Les nombres flottants qu’il manipule sont donc des classes quireprésentent chacune une infinité de réels (mais tout en constituant unintervalle cohérent).

(IREM de Nantes) 5 / 85

Page 7: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Si on n’y fait pas attention, cela peut créer des surprises...

(IREM de Nantes) 6 / 85

Page 8: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Entrons trois nombres sur XCAS :x:=10;y:=­5;z:=5.00000001;(IREM de Nantes) 7 / 85

Page 9: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Alors :(x*y)+(x*z)renvoie : 1.000000012e­07Maisx*(y+z)renvoie : 9.999999939e­08

(IREM de Nantes) 8 / 85

Page 10: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Alors :(x*y)+(x*z)renvoie : 1.000000012e­07Maisx*(y+z)renvoie : 9.999999939e­08

(IREM de Nantes) 8 / 85

Page 11: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Le problème est le même avec CAML :# let x,y,z=10.,­5.,5.00000001;;val x : float = 10.val y : float = ­5.val z : float = 5.00000001# (x*.y)+.(x*.z);;­ : float = 1.00000001168609742e­07# x*.(y+.z);;­ : float = 9.99999993922529e­08(IREM de Nantes) 9 / 85

Page 12: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Ainsi l’addition n’est pas toujours distributive sur la multiplication quand ontravaille sur les flottants !Ces petites erreurs qui s’accumulent peuvent en créer de grandes !

(IREM de Nantes) 10 / 85

Page 13: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Ainsi l’addition n’est pas toujours distributive sur la multiplication quand ontravaille sur les flottants !Ces petites erreurs qui s’accumulent peuvent en créer de grandes !

(IREM de Nantes) 10 / 85

Page 14: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

Créons une fonction qui renvoie l’approximation de la dérivée d’unefonction en un nombre donné avec un « dx » valant 10−10 :

(IREM de Nantes) 11 / 85

Page 15: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

# let dernum(f)=fun tionx­>(f(x+.0.0000000001)­.f(x))/.0.0000000001;;Dérivons le sinus cinq fois de suite et évaluons la fonction obtenue en 0 :# dernum(dernum(dernum(dernum(dernum(sin)))))(0.);;­ : float = ­1.33226762955018773e+25

(IREM de Nantes) 12 / 85

Page 16: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Les réels et le processeur

# let dernum(f)=fun tionx­>(f(x+.0.0000000001)­.f(x))/.0.0000000001;;Dérivons le sinus cinq fois de suite et évaluons la fonction obtenue en 0 :# dernum(dernum(dernum(dernum(dernum(sin)))))(0.);;­ : float = ­1.33226762955018773e+25

(IREM de Nantes) 12 / 85

Page 17: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 13 / 85

Page 18: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive à pas constant

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 14 / 85

Page 19: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive à pas constant

On a créé une liste de coordonnées du type (x , f (x)) avec un pas de hentre a et b.liste_points(f,a,b,h):={if(a>b)then{[b,f(b)℄}else{[a,f(a)℄,liste_points(f,a+h,b,h)}}:;

(IREM de Nantes) 15 / 85

Page 20: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive à pas constant

On a créé une liste de coordonnées du type (x , f (x)) avec un pas de hentre a et b.liste_points(f,a,b,h):={if(a>b)then{[b,f(b)℄}else{[a,f(a)℄,liste_points(f,a+h,b,h)}}:;

(IREM de Nantes) 15 / 85

Page 21: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive à pas constant

On relie ces points par des segments avec polygonplot(liste de oordonnées) :graph(f,a,b,h):={polygonplot([liste_points(f,a,b,h)℄)}:;(IREM de Nantes) 16 / 85

Page 22: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive à pas constant

On relie ces points par des segments avec polygonplot(liste de oordonnées) :graph(f,a,b,h):={polygonplot([liste_points(f,a,b,h)℄)}:;(IREM de Nantes) 16 / 85

Page 23: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive à pas constant

Par exemple, on trace la fonction carrée entre −2 et 2 avec un pas de0, 75 :graph(x­>x^2,­2,2,0.75)

(IREM de Nantes) 17 / 85

Page 24: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive à pas constant

x

y

-2 -1.5 -1 -0.5 0 0.5 1 1.5 20

0.5

1

1.5

2

2.5

3

3.5

4

(IREM de Nantes) 18 / 85

Page 25: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive par sondage aléatoire

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 19 / 85

Page 26: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive par sondage aléatoire

On interroge au hasard un réel et on lui demande son image par unecertaine fonction : cela nous permettra-t-il d’avoir une bonne idée del’allure de la courbe ?

(IREM de Nantes) 20 / 85

Page 27: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive par sondage aléatoire

liste_points_hasard(f,a,a0,b,n):={if(n==0)then{[b,f(b)℄}else{[a0,f(a0)℄,liste_points_hasard(f,a,a+rand(0,1)*(b­a),b,n­1)}}:;(IREM de Nantes) 21 / 85

Page 28: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive par sondage aléatoire

graph_hasard(f,a,b,n):={polygonplot([liste_points_hasard(f,a,a,b,n)℄)}:;Alors on obtient pour la fonction sinus entre −5 et 5 avec 8 « sondés » :graph_hasard(x­>sin(x),­5,5,8)

(IREM de Nantes) 22 / 85

Page 29: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Tracé de représentations graphiques Version récursive par sondage aléatoire

x

y

-4 -2 0 2 4

-0.5

0

0.5

(IREM de Nantes) 23 / 85

Page 30: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 24 / 85

Page 31: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

Comment faire dessiner une courbe en dents de scie, chaque dent ayantune largeur de 2 et une hauteur de 1 ? Peut-on avoir une formule explicitequi permette de calculer l’image de n’importe quel nombre ?Les coefficients directeurs valent alternativement 1 et −1.Les ordonnées s’annulent aux points d’abscisses paires...

(IREM de Nantes) 25 / 85

Page 32: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

Comment faire dessiner une courbe en dents de scie, chaque dent ayantune largeur de 2 et une hauteur de 1 ? Peut-on avoir une formule explicitequi permette de calculer l’image de n’importe quel nombre ?Les coefficients directeurs valent alternativement 1 et −1.Les ordonnées s’annulent aux points d’abscisses paires...

(IREM de Nantes) 25 / 85

Page 33: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

Comment faire dessiner une courbe en dents de scie, chaque dent ayantune largeur de 2 et une hauteur de 1 ? Peut-on avoir une formule explicitequi permette de calculer l’image de n’importe quel nombre ?Les coefficients directeurs valent alternativement 1 et −1.Les ordonnées s’annulent aux points d’abscisses paires...

(IREM de Nantes) 25 / 85

Page 34: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

s ie_re (n):={if(n==0)then{[0,0℄}else{[n,(1­(­1)^n)/2℄,s ie_re (n­1)}}:;s ie(n):={polygonplot([s ie_re (n)℄)}:;(IREM de Nantes) 26 / 85

Page 35: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

s ie_re (n):={if(n==0)then{[0,0℄}else{[n,(1­(­1)^n)/2℄,s ie_re (n­1)}}:;s ie(n):={polygonplot([s ie_re (n)℄)}:;(IREM de Nantes) 26 / 85

Page 36: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

x

y

0 1 2 3 4 5 6 70

0.2

0.4

0.6

0.8

1

(IREM de Nantes) 27 / 85

Page 37: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

Le tracé a été obtenu sans formule explicite pour chaque réel. Cherchonsune telle formulation :f(x):={if(irem(floor(x),2)==0)then{x­floor(x)}else{1­x+floor(x)}}:;sachant que floor donne la partie entière et irem le reste de la divisioneuclidienne.

(IREM de Nantes) 28 / 85

Page 38: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

Le tracé a été obtenu sans formule explicite pour chaque réel. Cherchonsune telle formulation :f(x):={if(irem(floor(x),2)==0)then{x­floor(x)}else{1­x+floor(x)}}:;sachant que floor donne la partie entière et irem le reste de la divisioneuclidienne.

(IREM de Nantes) 28 / 85

Page 39: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Fonctions définies par morceaux

Le tracé a été obtenu sans formule explicite pour chaque réel. Cherchonsune telle formulation :f(x):={if(irem(floor(x),2)==0)then{x­floor(x)}else{1­x+floor(x)}}:;sachant que floor donne la partie entière et irem le reste de la divisioneuclidienne.

(IREM de Nantes) 28 / 85

Page 40: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 29 / 85

Page 41: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum

On repère graphiquement qu’une fonction semble atteindre par exempleun minimum. Pour obtenir une approximation de ce minimum, on fournit unpoint de départ et une précision.

(IREM de Nantes) 30 / 85

Page 42: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version récursive

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 31 / 85

Page 43: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version récursive

En CAML :# let re min_re (f,xo,h)=if f(xo+.h)>f(xo) then xoelse min_re (f,xo+.h,h);;(IREM de Nantes) 32 / 85

Page 44: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version récursive

En XCAS :min_re (f,xo,h):={if(f(xo+h)>f(xo)){return(xo)}else{min_re (f,xo+h,h)}}(IREM de Nantes) 33 / 85

Page 45: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version impérative

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 34 / 85

Page 46: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version impérative

Entrées : fonction f, point de départ xo et incrément iInitialisation : Y←− f(xo) X←− xo+idébut

tant que t(X)<Y faireY←− evalf(t(X)) X←− X+i

retourner X-ifin

(IREM de Nantes) 35 / 85

Page 47: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version impérativeminimum(f,xo,p):={lo al X,Y, ompteur;Y:=f(xo);X:=xo+10^(­p); ompteur:=0 / / on r a j o u t e un c o m p t e u r p o u r que l a

c o m p i l a t i o n ne d u r e p a s t r o p l o n g t e m p stantque evalf(f(X))<Y et ompteur<10^p faireY:=evalf(f(X));X:=X+10^(­p); ompteur:= ompteur+1;ftantque:;X­10^(­p);}:;(IREM de Nantes) 36 / 85

Page 48: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version impérative

Par exemple, pour la fonction x 7→√

x2 + 25 +

(x − 18)2+ 49, il

semble que le minimum soit vers 7.Demandons une approximation du minimum à 10−5 près :minimum(x­>sqrt((x)^2+25)+sqrt((x­18)^2+49),7.0,5)et on obtient 7.50000

(IREM de Nantes) 37 / 85

Page 49: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version impérative

Par exemple, pour la fonction x 7→√

x2 + 25 +

(x − 18)2+ 49, il

semble que le minimum soit vers 7.Demandons une approximation du minimum à 10−5 près :minimum(x­>sqrt((x)^2+25)+sqrt((x­18)^2+49),7.0,5)et on obtient 7.50000

(IREM de Nantes) 37 / 85

Page 50: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Version impérative

Par exemple, pour la fonction x 7→√

x2 + 25 +

(x − 18)2+ 49, il

semble que le minimum soit vers 7.Demandons une approximation du minimum à 10−5 près :minimum(x­>sqrt((x)^2+25)+sqrt((x­18)^2+49),7.0,5)et on obtient 7.50000

(IREM de Nantes) 37 / 85

Page 51: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Avec affinage progressif du pas

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 38 / 85

Page 52: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Avec affinage progressif du pas

On peut améliorer la situation en affinant petit à petit le balayage : d’abordh puis h/10, etc.

(IREM de Nantes) 39 / 85

Page 53: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Avec affinage progressif du pas

Avec CAML :# let re min_bis(f,xo,h,p)=if abs_float(h)<p then xoelse if f(xo+.h)>f(xo)then min_bis(f,xo,­.0.1*.h,p)else min_bis(f,xo+.h,h,p);;(IREM de Nantes) 40 / 85

Page 54: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Recherche de minimum Avec affinage progressif du pas

Avec XCAS :min_bis(f,xo,h,p):={if(abs(h)<p)then{xo}else{if(f(xo+h)>f(xo))then{min_bis(f,xo,­0.1*h,p)}else{min_bis(f,xo+h,h,p)}}}:;(IREM de Nantes) 41 / 85

Page 55: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 42 / 85

Page 56: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie

Pour résoudre une équation du type f (x) = 0, on recherchegraphiquement un intervalle [a, b] où la fonction semble changer de signe.On note ensuite m le milieu du segment [a, b]. On évalue le signe de f (m).Si c’est le même que celui de f (a) on remplace a par m et onrecommence. Sinon, c’est b qu’on remplace et on recommence jusqu’àobtenir la précision voulue.

(IREM de Nantes) 43 / 85

Page 57: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie

Pour résoudre une équation du type f (x) = 0, on recherchegraphiquement un intervalle [a, b] où la fonction semble changer de signe.On note ensuite m le milieu du segment [a, b]. On évalue le signe de f (m).Si c’est le même que celui de f (a) on remplace a par m et onrecommence. Sinon, c’est b qu’on remplace et on recommence jusqu’àobtenir la précision voulue.

(IREM de Nantes) 43 / 85

Page 58: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie

Pour résoudre une équation du type f (x) = 0, on recherchegraphiquement un intervalle [a, b] où la fonction semble changer de signe.On note ensuite m le milieu du segment [a, b]. On évalue le signe de f (m).Si c’est le même que celui de f (a) on remplace a par m et onrecommence. Sinon, c’est b qu’on remplace et on recommence jusqu’àobtenir la précision voulue.

(IREM de Nantes) 43 / 85

Page 59: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie Version récursive

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 44 / 85

Page 60: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie Version récursive

En CAML :# let re di ho_re (f,a,b,eps)=if abs_float(b­.a)<eps then 0.5*.(b+.a)else if f(a)*.f(0.5*.(b+.a))>0. then di ho_re (f,0.5*.(b+.a),b,eps)else di ho_re (f,a,0.5*.(b+.a),eps);;ce qui donne :# di ho_re ( (fun x­>(x*.x­.2.)),1.,2.,0.00001);;­ : float = 1.41421127319335938

(IREM de Nantes) 45 / 85

Page 61: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie Version récursive

En CAML :# let re di ho_re (f,a,b,eps)=if abs_float(b­.a)<eps then 0.5*.(b+.a)else if f(a)*.f(0.5*.(b+.a))>0. then di ho_re (f,0.5*.(b+.a),b,eps)else di ho_re (f,a,0.5*.(b+.a),eps);;ce qui donne :# di ho_re ( (fun x­>(x*.x­.2.)),1.,2.,0.00001);;­ : float = 1.41421127319335938

(IREM de Nantes) 45 / 85

Page 62: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie Version récursive

En XCAS :di ho_re (f,a,b,eps):={if(evalf(b­a)<eps){return(0.5*(b+a))};if(f(a)*f(0.5*(b+a))>0){return(di ho(f,0.5*(b+a),b,eps))}else{return(di ho(f,a,0.5*(b+a),eps))}}:;(IREM de Nantes) 46 / 85

Page 63: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie Version impérative

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 47 / 85

Page 64: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie Version impérative

Entrées : une fonction f, les bornes a et b, une précision pInitialisation : aa←− a, bb←− bdébut

tant que bb-aa>p fairesi signe de f((aa+bb)/2) est le même que celui de f(bb) alors

bb←− (aa+bb)/2sinon

aa←− (aa+bb)/2

retourner (aa+bb)/2fin

(IREM de Nantes) 48 / 85

Page 65: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie Version impérative

Avec XCAS, il faut juste ne pas oublier de régler quelques problèmes deprécision :

(IREM de Nantes) 49 / 85

Page 66: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Dichotomie Version impérativedi ho(F,p,a,b):={lo al aa,bb,k,f;aa:=a;bb:=b;epsilon:=1e­100; / / on r è g l e l e " z é r o " de XCAS à une v a l e u r

s u f f i s a m m e n t p e t i t ef:=unapply(F,x); / / on t r a n s f o r m e l ’ e x p r e s s i o n f en f o n c t i o nk:=0; / / on p l a c e un c o m p t e u rtantque evalf(bb­aa,p)>10^(­p) fairesi sign(evalf(f((bb+aa)/2),p))==sign(evalf(f(bb),p))alors bb:=evalf((aa+bb)/2,p);sinon aa:=evalf((aa+bb)/2,p);k:=k+1; / / un t o u r de p l u s au c o m p t e u rfsi;ftantque;return evalf((bb+aa)/2,p)+" est la solution trouvée après "+k+ " itérations";}:;(IREM de Nantes) 50 / 85

Page 67: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 51 / 85

Page 68: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON

Les prérequis sont plus nombreux ! Il faut avoir étudié les suites définiespar une relation du type un+1 = f (un) et la dérivation... et ne pas être tropperdu en Analyse...Un exemple de TP possible en terminale S est présenté dans le poly.

(IREM de Nantes) 52 / 85

Page 69: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON

x1

x0

Le zéro cherché

(IREM de Nantes) 53 / 85

Page 70: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme récursif

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 54 / 85

Page 71: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme récursif

En XCAS : on notera que fun tion_diff(f) renvoie la fonction dérivéedonc fun tion_diff(f)(x0) désigne le nombre dérivé de f en x0.newton_re (f,x0,eps):={if(evalf(abs(f(x0)/fun tion diff(f)(x0)))<eps){evalf(x0)}else{newton_re (f,evalf(x0­f(x0)/fun tion diff(f)(x0)),eps)}}:;

(IREM de Nantes) 55 / 85

Page 72: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme récursif

En XCAS : on notera que fun tion_diff(f) renvoie la fonction dérivéedonc fun tion_diff(f)(x0) désigne le nombre dérivé de f en x0.newton_re (f,x0,eps):={if(evalf(abs(f(x0)/fun tion diff(f)(x0)))<eps){evalf(x0)}else{newton_re (f,evalf(x0­f(x0)/fun tion diff(f)(x0)),eps)}}:;

(IREM de Nantes) 55 / 85

Page 73: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme récursif

Alors, après avoir fixé par exemple la précision à 100 :DIGITS:=100:;newton_re (x­>x^2­2,1.0,evalf(10^(­99)))On obtient immédiatement :1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415728

(IREM de Nantes) 56 / 85

Page 74: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme récursif

Alors, après avoir fixé par exemple la précision à 100 :DIGITS:=100:;newton_re (x­>x^2­2,1.0,evalf(10^(­99)))On obtient immédiatement :1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415728

(IREM de Nantes) 56 / 85

Page 75: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme récursif

En OCAML : il y a un petit plus car il faut définir une dérivée approchée.# let der(f,x,dx)=(f(x+.dx)­.f(x))/.dx;;(IREM de Nantes) 57 / 85

Page 76: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme récursif

Maintenant la partie Newton :# let re newton_re (f,xo,dx,eps)=if abs_float(f(xo)/.der(f,xo,dx))<eps then xoelse newton_re (f,xo­.f(xo)/.der(f,xo,dx),dx,eps);;(IREM de Nantes) 58 / 85

Page 77: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme récursif

# let k(x)=x*.x­.2.;;# newton_re (k,1.,0.0001,0.000000001);;­ : float = 1.41421356245305962(IREM de Nantes) 59 / 85

Page 78: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme impératif

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 60 / 85

Page 79: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme impératif

Ça se complique un peu : évidemment, car il faut faire de l’informatique aulieu de se concentrer sur les mathématiques... :-)

(IREM de Nantes) 61 / 85

Page 80: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme impératif

Entrées : fonction f précision p premier terme a0 nombre maximumd’itération // Pour éviter de « planter » si on tombe sur un as pathologique

Initialisation : fp←− dérivée de f ;compteur←− 0 // le ompteur d'itérationsun←− u0 −

f(u0)fp(u0)

début

tant que∣

f(xn)fp(xn)

∣est plus grand que la précision p et que k < N faire

si fp(un) = 0 alorsOn sort de la boucle avant de diviser par zéro et on expliquepourquoi

un←− un −f(un)fp(un) compteur←− compteur+1

finretourner L’approximation et la valeur du compteur

(IREM de Nantes) 62 / 85

Page 81: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode de NEWTON Algorithme impératif

Comparez ensuite avec les résultats trouvés avec la dichotomie.Regardez également ce qui se passe avec l’équation (x − 1)4 = 0 : quelleprécaution supplémentaire faut-il prendre ? (La preuve n’est évidemmentpas envisageable au Lycée).

(IREM de Nantes) 63 / 85

Page 82: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 64 / 85

Page 83: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER

Supposons qu’on connaisse f ′(x) en fonction de x et de f (x) sous laforme f ′(x) = u

(

f (x), x)

.

On utilise le fait que f ′(x) ≈ f(x+h)−f(x)h . Alors

f (x + h) ≈ h · u(

f (x), x)

+ f (x)

La traduction algorithmique est alors directe.

(IREM de Nantes) 65 / 85

Page 84: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER Version récursive

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 66 / 85

Page 85: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER Version récursive

Pour la liste des coordonnées de points :Euler(u,x,xmax,y,h,liste):={if(x>=xmax)then{liste}else{ Euler(u,x+h,xmax,y+u(y,x)*h,h,[op(liste),[x,y℄℄)}}:;(IREM de Nantes) 67 / 85

Page 86: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER Version récursive

Puis pour le tracé :tra e_euler(u,xo,xmax,yo,h):={polygonplot([Euler(u,xo,xmax,yo,h,[℄)℄)}:;(IREM de Nantes) 68 / 85

Page 87: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER Version récursive

Alors, pour résoudre graphiquement y ′ = −y avec y(0) = 1, sur [−2; 2]avec un pas de 0, 01 on entre :tra e_euler((y,x)­>­y,­2,2,1,0.01)

(IREM de Nantes) 69 / 85

Page 88: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER Version récursive

x

y

-2 -1.5 -1 -0.5 0 0.5 1 1.5 20

0.2

0.4

0.6

0.8

1

(IREM de Nantes) 70 / 85

Page 89: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER Version impérative

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 71 / 85

Page 90: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER Version impérative

On effectue une division régulière en découpant notre intervalle d’étude[a; b] en N points.

(IREM de Nantes) 72 / 85

Page 91: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Méthode d’EULER Version impérativeEulerImp(u,N,a,b,yo):={S:=NULL;X:=a;Y:=yo;h:=(b­a)/Npour k de 0 jusque N pas 1 faireX:=a+k*h;Y:=Y+u(Y,X)*h;S:=S,[X,Y℄;fpourpolygonplot([S℄);}:;(IREM de Nantes) 73 / 85

Page 92: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 74 / 85

Page 93: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des rectangles

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 75 / 85

Page 94: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des rectangles

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 76 / 85

Page 95: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des rectangles

# let re integ(f,a,b,dx)=if a>b then 0.else f(a)*.dx+.integ(f,a+.dx,b,dx);;(IREM de Nantes) 77 / 85

Page 96: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des rectangles

Par exemple :# let g(x)=x;;# integ(g,0.,1.,0.0001);;donne :­ : float = 0.500049999999960249C’est-à-dire

∫1

0xd x ≈ 0.5

(IREM de Nantes) 78 / 85

Page 97: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des rectangles

Par exemple :# let g(x)=x;;# integ(g,0.,1.,0.0001);;donne :­ : float = 0.500049999999960249C’est-à-dire

∫1

0xd x ≈ 0.5

(IREM de Nantes) 78 / 85

Page 98: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des rectangles

Par exemple :# let g(x)=x;;# integ(g,0.,1.,0.0001);;donne :­ : float = 0.500049999999960249C’est-à-dire

∫1

0xd x ≈ 0.5

(IREM de Nantes) 78 / 85

Page 99: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des rectangles

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 79 / 85

Page 100: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des rectanglesinteg_re tangle(f,a,b,dx):={lo al aa,I;aa:=a;I:=0;while(aa<b){I:=I+f(aa)*dx;aa:=aa+dx;}return(I)}:;(IREM de Nantes) 80 / 85

Page 101: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des trapèzes

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 81 / 85

Page 102: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des trapèzes

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 82 / 85

Page 103: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des trapèzes

# let re integ_trap(f,a,b,dx)=if a>b then 0.else 0.5*.dx*.(f(a)+.f(a+.dx))+.integ_trap(f,a+.dx,b,dx);;# integ_trap(g,0.,1.,0.0001);;­ : float = 0.500100004999960213(IREM de Nantes) 83 / 85

Page 104: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des trapèzes

# let re integ_trap(f,a,b,dx)=if a>b then 0.else 0.5*.dx*.(f(a)+.f(a+.dx))+.integ_trap(f,a+.dx,b,dx);;# integ_trap(g,0.,1.,0.0001);;­ : float = 0.500100004999960213(IREM de Nantes) 83 / 85

Page 105: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des trapèzes

Sommaire

1 Les réels et le processeur

2 Tracé de représentations graphiquesVersion récursive à pas constantVersion récursive par sondage aléatoire

3 Fonctions définies par morceaux

4 Recherche de minimumVersion récursiveVersion impérativeAvec affinage progressif du pas

5 DichotomieVersion récursiveVersion impérative

6 Méthode de NEWTON

Algorithme récursifAlgorithme impératif

7 Méthode d’EULER

Version récursiveVersion impérative

8 Intégration numériqueMéthode des rectangles

Version récursiveVersion impérative

Méthode des trapèzesVersion récursiveVersion impérative

(IREM de Nantes) 84 / 85

Page 106: Illustrations avec XCAS et CAML Guillaume CONNAN pdf... · 2010-01-11 · Version récursive à pas constant Version récursive par sondage aléatoire 3 Fonctions définies par morceaux

Intégration numérique Méthode des trapèzesinteg_trap(f,a,b,dx):={lo al aa,I;aa:=a;I:=0;while(aa<b){I:=I+(f(aa)+f(aa+dx))*dx*0.5;aa:=aa+dx;}return(I)}:;(IREM de Nantes) 85 / 85