• Aucun résultat trouvé

Méthodes numériques (cours du 15 janv. 2019)

N/A
N/A
Protected

Academic year: 2022

Partager "Méthodes numériques (cours du 15 janv. 2019)"

Copied!
73
0
0

Texte intégral

(1)

Méthodes numériques (cours du 15 janv. 2019)

François Cuvelier

Laboratoire d’Analyse Géométrie et Applications Institut Galilée

Université Paris XIII.

2019/01/15

2019/01/15 1 / 58

(2)

Divers

‚ Volume horaire : 8 ˆ 3h cours/TD, 2 ˆ 8h TP.

‚ Prérequis des cours :

§ Cours commun Mathématiques pour l’ingénieur (L. El Alaoui), ...

§ Algorithmique

§ Langage de programmation : Matlab/Octave

‚ Note finale : pP 1 ` P 2 ` TPq{ 3 si possible.

§ P 1 : partiel 1 du 12 février 2019 (1h30/2h00),

§ P 2 : partiel 2 du 26 mars 2019 (1h30/2h00),

§ TP : travaux pratiques en mai et juin.

2019/01/15 2 / 58

(3)

Objectifs

‚ Algorithmique numérique.

‚ Poursuite de l’apprentissage de Matlab/Octave.

‚ Résolution numériques d’équations différentielles ordinaires (E.D.O.[fr]

ou O.D.E.[en]).

‚ Résolution numériques d’équations aux dérivées partielles (E.D.P.[fr]

ou P.D.E.[en]) par des méthodes de différences finies.

2019/01/15 3 / 58

(4)

Plan du cours

Chapitre I : Algorithmique numérique Chapitre II : Dérivation numérique

Chapitre III : Résolution numérique des E.D.O.

Chapitre IV : Résolution numérique des E.D.P.

2019/01/15 4 / 58

(5)

Chapitre I

Algorithmique numérique

2019/01/15 5 / 58

(6)

Plan

1 Introduction

2 Pseudo-langage algorithmique

3 Méthodologie de construction

4 Pseudo-langage algorithmique (suite)

5 Exercices

6 Histoire de ponts

Introduction 2019/01/15 6 / 58

(7)

Définition

Definition 1.1: Petit Robert 97

Algorithmique : Enchaînement d’actions nécessaires à l’accomplissement d’une tâche.

Introduction 2019/01/15 7 / 58

(8)

Exemple 1 : permutation

Nous voulons permutter deux voitures sur un parking de trois places numérotées de 1 à 3 et ceci sans géner la circulation.

La première voiture, une Renault Zoé, est sur l’emplacement 2, la seconde, une Citroën C1 , est sur l’emplacement 3.

Donner un algorithme permettant de résoudre cette tâche.

Introduction 2019/01/15 8 / 58

(9)

Exemple 2 : équation du premier degré

Donner un algorithme permettant de résoudre ax “ b

Introduction 2019/01/15 9 / 58

(10)

Caractéristiques d’un bon algorithme

‚ Il ne souffre d’aucune ambiguité ñ très clair.

‚ Combinaison d’opérations (actions) élémentaires.

‚ Pour toutes les données d’entrée, l’algorithme doit fournir un résultat en un nombre fini d’opérations.

Introduction 2019/01/15 10 / 58

(11)

Première approche méthodologique

Etape 1 : Définir clairement le problème.

Etape 2 : Rechercher une méthode de résolution (formules, ...) Etape 3 : Ecrire l’algorithme (par raffinement successif pour des

algorithmes compliqués ).

Introduction 2019/01/15 11 / 58

(12)

Première approche méthodologique

Etape 1 : Définir clairement le problème.

Etape 2 : Rechercher une méthode de résolution (formules, ...)

Etape 3 : Ecrire l’algorithme (par raffinement successif pour des algorithmes compliqués ).

Introduction 2019/01/15 11 / 58

(13)

Première approche méthodologique

Etape 1 : Définir clairement le problème.

Etape 2 : Rechercher une méthode de résolution (formules, ...) Etape 3 : Ecrire l’algorithme (par raffinement successif pour des

algorithmes compliqués ).

Introduction 2019/01/15 11 / 58

(14)

Plan

1 Introduction

2 Pseudo-langage algorithmique Les bases

Les instructions structurées

3 Méthodologie de construction

4 Pseudo-langage algorithmique (suite)

5 Exercices

6 Histoire de ponts

Pseudo-langage algorithmique 2019/01/15 12 / 58

(15)

Vocabulaire de base

‚ constantes,variables,

‚ opérateurs (arithmétiques, relationnels, logiques),

‚ expressions,

‚ instructions (simples et composées),

‚ fonctions.

Pseudo-langage algorithmique Les bases 2019/01/15 13 / 58

(16)

Données et constantes

‚ Donnée ñ introduite par l’utilisateur

‚ Constante ñ symbole, identificateur non modifiable

Pseudo-langage algorithmique Les bases 2019/01/15 14 / 58

(17)

Variables

Definition 2.1

Une variable est un objet dont la valeur est modifiable, qui possède un nom et un type (entier, caractère, réel, complexe, tableau, matrice, vecteur...).

Pseudo-langage algorithmique Les bases 2019/01/15 15 / 58

(18)

Opérateurs arithmétiques

Nom Symbole Exemple

addition ` a ` b

soustraction ´ a ´ b

opposé ´ ´a

produit ˚ a ˚ b

division { a{b

Pseudo-langage algorithmique Les bases 2019/01/15 16 / 58

(19)

Opérateurs relationnels

Nom Symbole Exemple

identique ““ a ““ b

différent „“ a „“ b

inférieur ă a ă b

supérieur ą a ą b

inférieur ou égal ă“ a ă“ b supérieur ou égal ą“ a ą“ b

Pseudo-langage algorithmique Les bases 2019/01/15 17 / 58

(20)

Opérateurs logiques

Nom Symbole Exemple

négation „ „ a

ou | a|b

et & a&b

Pseudo-langage algorithmique Les bases 2019/01/15 18 / 58

(21)

Opérateur d’affectation

Nom Symbole Exemple

affectation Ð a Ð b

Pseudo-langage algorithmique Les bases 2019/01/15 19 / 58

(22)

Expressions

Definition 2.2

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e. un élément de donnée simple)

Exemple d’expression numérique

pb ˚ b ´ 4 ˚ a ˚ c q{p2 ˚ aq Opérandes ñ identifiants a, b, c ,

constantes 4 et 2. Opérateurs ñ symboles ˚, ´ et {

Pseudo-langage algorithmique Les bases 2019/01/15 20 / 58

(23)

Expressions

Definition 2.3

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e. un élément de donnée simple) Exemple d’expression numérique

pb ˚ b ´ 4 ˚ a ˚ c q{p2 ˚ aq

Opérandes ñ identifiants a, b, c, constantes 4 et 2. Opérateurs ñ symboles ˚, ´ et {

Pseudo-langage algorithmique Les bases 2019/01/15 20 / 58

(24)

Expressions

Definition 2.4

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e. un élément de donnée simple) Exemple d’expression numérique

pb ˚ b ´ 4 ˚ a ˚ c q{p2 ˚ aq Opérandes ñ identifiants a, b, c,

constantes 4 et 2.

Opérateurs ñ symboles ˚, ´ et {

Pseudo-langage algorithmique Les bases 2019/01/15 20 / 58

(25)

Expressions

Definition 2.5

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e. un élément de donnée simple) Exemple d’expression numérique

pb ˚ b ´ 4 ˚ a ˚ c q{p2 ˚ aq Opérandes ñ identifiants a, b, c,

constantes 4 et 2.

Opérateurs ñ symboles ˚, ´ et {

Pseudo-langage algorithmique Les bases 2019/01/15 20 / 58

(26)

Expressions

Definition 2.6

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e. un élément de donnée simple) Exemple d’expression booléenne

px ă 3.14q

Opérandes ñ identifiants x et contantes 3.14 Opérateurs ñ symboles ă

Pseudo-langage algorithmique Les bases 2019/01/15 21 / 58

(27)

Expressions

Definition 2.7

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e. un élément de donnée simple) Exemple d’expression booléenne

px ă 3.14q

Opérandes ñ identifiants x et contantes 3.14

Opérateurs ñ symboles ă

Pseudo-langage algorithmique Les bases 2019/01/15 21 / 58

(28)

Expressions

Definition 2.8

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e. un élément de donnée simple) Exemple d’expression booléenne

px ă 3.14q

Opérandes ñ identifiants x et contantes 3.14 Opérateurs ñ symboles ă

Pseudo-langage algorithmique Les bases 2019/01/15 21 / 58

(29)

Instructions

Definition 2.9

Une instruction est un ordre ou un groupe d’ordres qui déclenche l’exécution de certaines actions par l’ordinateur. Il y a deux types d’instructions : simple et structuré.

Pseudo-langage algorithmique Les bases 2019/01/15 22 / 58

(30)

Instructions simples

‚ affectation d’une valeur a une variable.

‚ appel d’une fonction (procedure, subroutine, ... suivant les langages).

Pseudo-langage algorithmique Les bases 2019/01/15 23 / 58

(31)

Instructions structurées

1 les instructions composées, groupe de pulsieurs instructions simples,

2 les instructions répétitives, permettant l’exécution répétée d’instructions simples, (i.e. boucles «pour», «tant que»)

3 les instructions conditionnelles, lesquels ne sont exécutées que si une certaine condition est respectée (i.e. «si»)

Pseudo-langage algorithmique Les instructions structurées 2019/01/15 24 / 58

(32)

Exemple : boucle «pour»

Algorithme 1 Exemple boucle

«pour»

Données : n, un entier positif

1: S Ð 0

2: Pour i Ð 1 à n faire

3: S Ð S ` cospi ˆ2 q

4: Fin Pour

Listing 1: (Matlab) Exemple boucle for

1 n = i n p u t ( ’ n = ’ ) ;

2 a s s e r t ( n > = 0 )

3 S =0;

4 for i =1: n

5 S = S + cos ( i ^2) ;

6 end

Mais que fait-il?

Calcul de S “ ÿ n

i“1

cospi 2 q

Pseudo-langage algorithmique Les instructions structurées 2019/01/15 25 / 58

(33)

Exemple : boucle «pour»

Algorithme 2 Exemple boucle

«pour»

Données : n, un entier positif

1: S Ð 0

2: Pour i Ð 1 à n faire

3: S Ð S ` cospi ˆ2 q

4: Fin Pour

Listing 2: (Matlab) Exemple boucle for

1 n = i n p u t ( ’ n = ’ ) ;

2 a s s e r t ( n > = 0 )

3 S =0;

4 for i =1: n

5 S = S + cos ( i ^2) ;

6 end

Mais que fait-il?

Calcul de S “ ÿ n

i“1

cospi 2 q

Pseudo-langage algorithmique Les instructions structurées 2019/01/15 25 / 58

(34)

Exemple : boucle «tant que»

Algorithme 3 Exemple boucle

«tant que»

1: i Ð 0, x Ð 1

2: Tantque i ă 1000 faire

3: x Ð x ` i ˚ i

4: i Ð i ` 1

5: Fin Tantque

Listing 3: (Matlab) Exemple boucle while

1 i =0; x =1;

2 w h i l e ( i < 1 0 0 0 )

3 x = x + i * i ;

4 i = i +1;

5 end

Mais que fait-il?

Calcul de x “ 1 `

999

ÿ

i“0

i ˆ 2 et i “ 1000

Pseudo-langage algorithmique Les instructions structurées 2019/01/15 26 / 58

(35)

Exemple : boucle «tant que»

Algorithme 4 Exemple boucle

«tant que»

1: i Ð 0, x Ð 1

2: Tantque i ă 1000 faire

3: x Ð x ` i ˚ i

4: i Ð i ` 1

5: Fin Tantque

Listing 4: (Matlab) Exemple boucle while

1 i =0; x =1;

2 w h i l e ( i < 1 0 0 0 )

3 x = x + i * i ;

4 i = i +1;

5 end

Mais que fait-il?

Calcul de x “ 1 `

999

ÿ

i“0

i ˆ 2 et i “ 1000

Pseudo-langage algorithmique Les instructions structurées 2019/01/15 26 / 58

(36)

Exemple : instructions conditionnelles «si»

Algorithme 5 Exemple instruc- tion «si»

Données : age , un réel.

1: Si age ą“ 18 alors

2: affiche(’majeur’)

3: Sinon Si age ą“ 0 alors

4: affiche(’mineur’)

5: Sinon

6: affiche(’en devenir’)

7: Fin Si

Listing 5: (Matlab) Exemple instruction if

1 age = i n p u t ( ’ age = ’ ) ;

2 if age > = 1 8

3 d i s p ( ’ m a j e u r ’ )

4 e l s e i f age >=0

5 d i s p ( ’ m i n e u r ’ )

6 e l s e

7 d i s p ( ’ en ␣ d e v e n i r ’ )

8 end

Pseudo-langage algorithmique Les instructions structurées 2019/01/15 27 / 58

(37)

Plan

1 Introduction

2 Pseudo-langage algorithmique

3 Méthodologie de construction Principe

Exercices

4 Pseudo-langage algorithmique (suite)

5 Exercices

6 Histoire de ponts

Méthodologie de construction 2019/01/15 28 / 58

(38)

Description du problème

‚ Spécification d’un ensemble de données

Origine : énoncé, hypothèses, sources externes, ...

‚ Spécification d’un ensemble de buts à atteindre Origine : résultats, opérations à effectuer, ...

‚ Spécification des contraintes

Méthodologie de construction Principe 2019/01/15 29 / 58

(39)

Recherche d’une méthode de résolution

‚ Clarifier l’énoncé.

‚ Simplifier le problème.

‚ Ne pas chercher à le traiter directement dans sa globalité.

‚ S’assurer que le problème est soluble (sinon problème d’indécidabilité!)

‚ Recherche d’une stratégie de construction de l’algorithme

‚ Décomposer le problème en sous problèmes partiels plus simples.

‚ Effectuer des raffinements successifs de chaque sous problème. Le niveau de raffinement le plus élémentaire étant celui des instructions.

Méthodologie de construction Principe 2019/01/15 30 / 58

(40)

Réalisation d’un algorithme

‚ Les types des données et des résultats doivent être précisés.

‚ L’algorithme doit fournir au moins un résultat (qui peut être graphique).

‚ L’algorithme doit être exécuté en un nombre fini d’opérations.

‚ L’algorithme doit être spécifié clairement, sans la moindre ambiguïté.

Méthodologie de construction Principe 2019/01/15 31 / 58

(41)

Exercices

Les deux exercices qui suivent sont intentionnellement mal rédigés!!!

Exercice 1

Ecrire un algorithme permettant de calculer Spx q “

n

ÿ

k“1

k sinp 2 ˚ k ˚ xq

Méthodologie de construction Exercices 2019/01/15 32 / 58

(42)

Exercices

Exercice 2

Ecrire un algorithme permettant de calculer Ppzq “

k

ź

n“1

sinp2 ˚ k ˚ z {nq k

Méthodologie de construction Exercices 2019/01/15 33 / 58

(43)

Exercices

Exercice 3

Reprendre les deux exercices précédents en utilisant les boucles «tant que».

Méthodologie de construction Exercices 2019/01/15 34 / 58

(44)

Plan

1 Introduction

2 Pseudo-langage algorithmique

3 Méthodologie de construction

4 Pseudo-langage algorithmique (suite) Les fonctions

Exemple : résoudre ax “ b Equation du second degré

5 Exercices

6 Histoire de ponts

Pseudo-langage algorithmique (suite) 2019/01/15 35 / 58

(45)

Les fonctions

Les fonctions permettent

‚ d’automatiser certaines tâches répétitives au sein d’un même algorithme,

‚ d’ajouter à la clarté de la l’algorithme,

‚ l’utilisation de portion de code dans un autre algorithme,

‚ ...

Pseudo-langage algorithmique (suite) Les fonctions 2019/01/15 36 / 58

(46)

Les fonctions prédéfinies

‚ les fonctions d’affichage et de lecture : Affiche, Lit

‚ les fonctions mathématiques :

sin, cos, exp, ¨ ¨ ¨

‚ les fonctions de gestion de fichiers

‚ ...

Pseudo-langage algorithmique (suite) Les fonctions 2019/01/15 37 / 58

(47)

Les fonctions prédéfinies

‚ les fonctions d’affichage et de lecture : Affiche, Lit

‚ les fonctions mathématiques :

sin, cos, exp, ¨ ¨ ¨

‚ les fonctions de gestion de fichiers

‚ ...

Pseudo-langage algorithmique (suite) Les fonctions 2019/01/15 37 / 58

(48)

Les fonctions prédéfinies

‚ les fonctions d’affichage et de lecture : Affiche, Lit

‚ les fonctions mathématiques :

sin, cos, exp, ¨ ¨ ¨

‚ les fonctions de gestion de fichiers

‚ ...

Pseudo-langage algorithmique (suite) Les fonctions 2019/01/15 37 / 58

(49)

Ecrire ses propres fonctions

Avant d’écrire une fonction, voici les questions à se poser:

1 Que doit-elle calculer/réaliser précisement (but)?

2 Quelles sont ses données (avec leurs limitations)?

Pseudo-langage algorithmique (suite) Les fonctions 2019/01/15 38 / 58

(50)

Syntaxe

Fonction rargs 1 , . . . , args n s Ð NomFonction( arge 1 , . . . , arge m ) instructions

Fin Fonction

Fonction args Ð NomFonction( arge 1 , . . . , arge m ) instructions

Fin Fonction

Pseudo-langage algorithmique (suite) Les fonctions 2019/01/15 39 / 58

(51)

Résoudre ax “ b

Ecrire une fonction permettant de résoudre ax “ b

‚ But :

Enoncé insuffisament précis! On choisi ici le problème: a P R ˚ et b P R donnés, trouver x P R solution de ax “ b On aurait pu prendre a une matrice réelle d’ordre n et b P R n ...

‚ Données :

a P R ˚ et b P R.

‚ Résultats :

x P R.

Pseudo-langage algorithmique (suite) Exemple : résoudre ax “ b 2019/01/15 40 / 58

(52)

Résoudre ax “ b

Ecrire une fonction permettant de résoudre ax “ b

‚ But :

Enoncé insuffisament précis! On choisi ici le problème:

a P R ˚ et b P R donnés, trouver x P R solution de ax “ b On aurait pu prendre a une matrice réelle d’ordre n et b P R n ...

‚ Données :

a P R ˚ et b P R.

‚ Résultats :

x P R.

Pseudo-langage algorithmique (suite) Exemple : résoudre ax “ b 2019/01/15 40 / 58

(53)

Résoudre ax “ b

Ecrire une fonction permettant de résoudre ax “ b

‚ But :

Enoncé insuffisament précis! On choisi ici le problème:

a P R ˚ et b P R donnés, trouver x P R solution de ax “ b On aurait pu prendre a une matrice réelle d’ordre n et b P R n ...

‚ Données : a P R ˚ et b P R.

‚ Résultats :

x P R.

Pseudo-langage algorithmique (suite) Exemple : résoudre ax “ b 2019/01/15 40 / 58

(54)

Résoudre ax “ b

Ecrire une fonction permettant de résoudre ax “ b

‚ But :

Enoncé insuffisament précis! On choisi ici le problème:

a P R ˚ et b P R donnés, trouver x P R solution de ax “ b On aurait pu prendre a une matrice réelle d’ordre n et b P R n ...

‚ Données : a P R ˚ et b P R.

‚ Résultats : x P R.

Pseudo-langage algorithmique (suite) Exemple : résoudre ax “ b 2019/01/15 40 / 58

(55)

Résoudre ax “ b

Algorithme 6 Exemple de fonction : Résolution de l’équation du premier degré ax “ b.

Données : a : nombre réel différent de 0 b : nombre réel.

Résultat : x : un réel.

1: Fonction x Ð REPD( a, b )

2: x Ð b{a

3: Fin Fonction

Pseudo-langage algorithmique (suite) Exemple : résoudre ax “ b 2019/01/15 41 / 58

(56)

Exemple: équation du second degré

On cherche les solutions réelles de l’équation

ax 2 ` bx ` c “ 0, (1)

Pour celà, on pose ∆ “ b 2 ´ 4ac

‚ si ∆ ă 0 alors les deux solutions sont complexes,

‚ si ∆ “ 0 alors la solution est x “ ´ 2a b ,

‚ si ∆ ą 0 alors les deux solutions sont x 1 “ ´b´

? ∆

2a et x 2 “ ´b´

? ∆ 2a .

Exercice

1 Ecrire la fonction discriminant permettant de calculer le discriminant de l’équation (1).

2 Ecrire la fonction RESD permettant de résoudre l’équation (1) en utilisant la fonction discriminant.

3 Ecrire un programme permettant de valider ces deux fonctions.

Pseudo-langage algorithmique (suite) Equation du second degré 2019/01/15 42 / 58

(57)

Plan

1 Introduction

2 Pseudo-langage algorithmique

3 Méthodologie de construction

4 Pseudo-langage algorithmique (suite)

5 Exercices

6 Histoire de ponts

Exercices 2019/01/15 43 / 58

(58)

Exercices

Exercice 4 Soit la série de Fourier

xptq “ 4A π

"

cos ωt ´ 1

3 cos 3ωt ` 1

5 cos 5ωt ´ 1

7 cos 7ωt ` ¨ ¨ ¨

* . Ecrire la fonction SFT permettant de calculer x n ptq.

Exercices 2019/01/15 44 / 58

(59)

Exercices

Exercice 5

Soient x un réel, m, n,p,q des entiers strictement supérieurs à 1, u u u “ pu

1

, . . . ,u

m

q un vecteur de R

m

, vvv “ pv

1

, . . . ,v

p

q un vecteur de R

p

et w w w “ pw

1

, . . . ,w

q

q un vecteur de R

q

.

Le réel y est donné par

y “

m

ź

i“1

˜

pu

i

` cospxqq

n

ÿ

k“1

pk ` px ´ iq

2

q

¸

Q.1

1

Quelles sont les données nécessaires et suffisantes permettant de calculer y? Préciser les types et les dimensions.

2

Ecrire la fonction PS permettant de calculer y. Toutes les données seront passées en paramètre à la fonction.

3

Donner un exemple d’utilisation de cette fonction.

Soit zzz “ pz

1

, . . . ,z

m

q le vecteur de R

m

défini par z

i

p

ÿ

k“1

˜

pu

i

` cospkxqq

p

ź

j“1

pv

k

` px ´ jq

2

q

¸

, @i P v1,mw.

Q.2

1

Quelles sont les données nécessaires et suffisantes permettant de calculer zzz? Préciser les types et les dimensions.

2

Ecrire la fonction SP permettant de calculer zzz. Toutes les données seront passées en paramètre à la fonction.

3

Donner un exemple d’utilisation de cette fonction.

Exercices 2019/01/15 45 / 58

(60)

Exercices

Exercice 6

Q.1 Ecrire une fonction DisReg permettant de d’obtenir une discrétisation régulière de l’intervalle ra, bs (a ă b) en n ` 1 points.

Soient A “ px

A

, y

A

q et B “ px

B

, y

B

q deux points du plan tels que x

A

ă x

B

et y

A

ă y

B

. Ces deux points permettent de définir le rectangle de sommets A, px

B

,y

A

q, B et px

A

, y

B

q.

On suppose que pour tracer un trait entre les points A et B, on dispose de la commande plot(rx

A

, x

B

s,ry

A

, y

B

s).

Q.2 Ecrire une fonction exo21 de paramètres A, B et n permettant de

‚ représenter les bords du rectangle,

‚ relier les points des bords gauche et droit, dont les ordonnées sont une discrétisation régulière en n `1 points, et passant par le centre de symétrie du rectangle.

Deux exemples d’utilisation de cette fonction sont donnés ci-dessous :

exo21([-1,0],[2,2],10)

A=(-1,0)

B=(2,2)

exo21([-1,-2],[3,3],15)

A=(-1,-2)

B=(3,3)

Exercices 2019/01/15 46 / 58

(61)

Exercices

Exercice 7

On dispose d’un quadrillage quelconque généré par la fonction quadrillage(imin,imax,jmin,jmax) dont voici un exemple d’utilisation

Quadrillage(−1,10,−3,15)

−1 0 1 2 3 4 5 6 7 8 9 10

−3−2−10123456789101112131415

colonnes lignes

On dispose de plus d’une fonction black(i,j) qui dessine un pavé noir en ligne i et colonne j d’un quadrillage.

Q.1 Ecrire une fonction Damier permettant de créer un damier quelconque sachant que le pavé en bas à gauche d’un quadrillage doit toujours être noir. Voici une représentation pour le quadrillage précédent :

Damier(−1,10,−3,15)

−1 0 1 2 3 4 5 6 7 8 9 10

−3−2−10 1234 5678 9101112131415

Exercices 2019/01/15 47 / 58

(62)

Plan

1 Introduction

2 Pseudo-langage algorithmique

3 Méthodologie de construction

4 Pseudo-langage algorithmique (suite)

5 Exercices

6 Histoire de ponts

Histoire de ponts 2019/01/15 48 / 58

(63)

Mais avant de pousuivre ...

(a) Pont de la Basse-Chaîne, Angers (1850)

(b) Takoma Narrows Bridge, Washington (1940)

(c) Millenium Bridge, London (2000)

Figure: Une histoire de ponts

Histoire de ponts 2019/01/15 49 / 58

(64)

Chapitre II

Dérivation numérique

2019/01/15 50 / 58

(65)

Definition 6.1

Soit N P N ˚ . On appelle discrétisation régulière de ra, bs à N pas ou N ` 1 points l’ensemble des points a ` nh, n P v0, Nw où le pas h est donné par h “ pb ´ aq{N.

On note t n “ a ` nh, n P v 0, Nw, une discrétisation régulière de ra, bs et pDy q n une approximation de y 1 pt n q. On appelle

‚ différence finie progressive l’approximation pDy q P n “ y pt n`1 q ´ ypt n q

h , @n P v 0, N ´ 1 w (2)

‚ différence finie rétrograde l’approximation pDy q R n “ y pt n q ´ ypt n´1 q

h , @n P v1, Nw (3)

‚ différence finie centrée l’approximation pDy q C n “ y pt n`1 q ´ y pt n´1 q

2h , @n P v1, N ´ 1w (4)

2019/01/15 51 / 58

(66)

Proposition 6.2: Développement de Taylor

Soit f une application f : ra, bs ÝÑ R . Si f P C r`1 pra, bsq alors

‚ @px, yq P ra, bs 2 il existe un ξ Psx, yr tel que

f pxq “ f pyq `

r

ÿ

k“1

f pkq pyq

k ! px ´ yq k ` f pr`1q pξq

pr ` 1q! px ´ y q r`1 (5)

‚ @x P ra, bs , @h P R ˚ vérifiant x ` h P ra, bs, il existe ξ Ps minpx, x ` hq, maxpx, x ` hqr tel quel

f px ` hq “ f px q `

r

ÿ

k“1

f pkq pxq

k! h k ` f pr`1q pξq

pr ` 1q! h r`1 (6)

2019/01/15 52 / 58

(67)

Exercice 8

Q.1 Soit y P C 2 pra, bsq.

1

Montrer qu’il existe η n P Pst n ,t n`1 r et η n R Pst n´1 ,t n r tels que pDy q P n “ y p1q pt n q ` h

2 y p2q pη P n q et

pDy q R n “ y p1q pt n q ´ h 2 y p2q pη R n q

2

En déduire que

|y p1q pt n q ´ pDy q P n | ď C 1 h, avec C 1 “ 1

2 max

tPrt

n

,t

n`1

s | y p2q ptq|

et

|y 1 pt n q ´ pDy q R n | ď C 2 h, avec C 2 “ 1

2 max

tPrt

n´1

,t

n

s

| y p2q ptq|

Q.2 Soit y P C 3 pra, bsq.

1

Montrer qu’il existe η n 1 Pst n ,t n`1 r et η 2 n Pst n´1 , t n r tels que

pDyq C n “ y p1q pt n q ´ h 2

12 py p3q pη 1 n q ` y p3q pη 2 n qq

2

En déduire que

|y p1q pt n q ´ pDyq C n | ď Eh 2 , avec E “ 1

6 max

tPrt

n´1

,t

n`1

s

|y p3q ptq|

2019/01/15 53 / 58

(68)

Definition 6.3

Soit g une fonction. On dit que g se comporte comme un grand O de h q quand h tend vers 0 si et seulement si il existe H ą 0 et C ą 0 tel que

|g phq| ď Ch q , @h Ps ´ H , H r.

On note alors g phq “ Oph q q.

Definition 6.4

La différence |y 1 pt n q ´ pDy q n | est appelée erreur de troncature au point t n . On dira que |y 1 pt n q ´ pDy q n | est d’ordre p ą 0 si il existe une constance C ą 0 telle que

|y 1 pt n q ´ pDy q n | ď Ch p ðñ |y 1 pt n q ´ pDy q n | “ Oph p q.

2019/01/15 54 / 58

(69)

On a démontré le lemme suivant Lemme 6.5

Si y P C 2 pra, bsq alors ˇ

ˇ ˇ ˇ

y 1 pt n q ´ y pt n`1 q ´ y pt n q h

ˇ ˇ ˇ

ˇ “ Ophq, @n P v0, N ´ 1w, (7) ˇ

ˇ ˇ

ˇ y 1 pt n q ´ y pt n q ´ ypt n´1 q h

ˇ ˇ ˇ

ˇ “ Ophq, @n P v1, Nw. (8) Si y P C 3 pra, bsq alors

ˇ ˇ ˇ

ˇ y 1 pt n q ´ ypt n`1 q ´ y pt n´1 q 2h

ˇ ˇ ˇ

ˇ “ Oph 2 q, @n P v1, N ´ 1w. (9)

2019/01/15 55 / 58

(70)

Exercice 9

Soit f P C 3 pra, bs; Rq. On note t n , n P v0, Nw, une discrétisation régulière de ra, bs de pas h. On note F F F P R N`1 le vecteur défini par F n`1 “ f p t n q , @ n P v0, N w .

Q.1

1

Déterminer en fonction de h et F F F, un vecteur V V V P R N`1 vérifiant V n`1 “ f 1 pt n q ` Ophq, @n P v0, Nw.

2

Ecrire une fonction algorithmique permettant, à partir du vecteur F F F et de la discrétisation régulière, de calculer le vecteur V V V précédant.

Q.2

1

Connaissant uniquement le vecteur F F F , déterminer un vecteur W W W P R N`1 vérifiant W

W

W n “ f 1 pt n q ` Oph 2 q, @n P v0, Nw

2

Ecrire une fonction algorithmique permettant, à partir du vecteur F F F et de la discrétisation régulière, de calculer le vecteur W W W précédant.

2019/01/15 56 / 58

(71)

Application

0 1 2 3 4 5 6 7

x -1

-0.5 0 0.5 1 1.5

y

h=2π/10

y=f'(x) DeriveOrdre1 DeriveOrdre2

0 1 2 3 4 5 6 7

x -1

-0.5 0 0.5 1 1.5

y

h=2π/100

y=f'(x) DeriveOrdre1 DeriveOrdre2

Figure: Représentation des dérivées numériques avec f pxq :“ sinpxq, a “ 0, b “ 2π. A gauche h “ 10 , à droite h “ 100 .

2019/01/15 56 / 58

(72)

Application

0 1 2 3 4 5 6 7

x 0.05

0.1 0.15 0.2 0.25 0.3 0.35

error

Erreur DeriveOrdre1 : h=2 π/10

0 1 2 3 4 5 6 7

x 0

0.02 0.04 0.06 0.08 0.1 0.12

error

Erreur DeriveOrdre2 : h=2 π/10

0 1 2 3 4 5 6 7

x 0

0.01 0.02 0.03 0.04

error

Erreur DeriveOrdre1 : h=2 π/100

0 1 2 3 4 5 6 7

x 0

0.5 1 1.5

error

×10-3 Erreur DeriveOrdre2 : h=2 π/100

Figure: Erreur des dérivées numériques numériques avec f pxq :“ sinpxq, a “ 0, b “ 2π. A gauche h “ 10 , à droite h “ 100 .

‚ Dérivée ordre 1 :

h a été divisé par 10 ùñ l’erreur, Ophq, divisée par 10.

‚ Dérivée ordre 2 :

h a été divisé par 10 ùñ l’erreur, Oph 2 q, divisée par 100.

2019/01/15 57 / 58

(73)

Application

10-3 10-2 10-1

h 10-5

10-4 10-3 10-2 10-1

Erreur

ordres des methodes de dérivation

DeriveOrdre1 (0.99986) DeriveOrdre2 (1.99941) O(h) O(h2)

Figure: Dérivation numérique : mise en évidence de l’ordre des méthodes Figure en échelle logarithmique : intérêt de monter en ordre.

2019/01/15 58 / 58

Références

Documents relatifs

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme algébrique qui représente une valeur (i.e.

Comparer les programmes prog2 et prog3 avec m assez grand ( m 4000 par exemple) en utilisant l'outil Matlab Proler... Ecrire le programme comparaison permettant de comparer

La méthode composite de Simpson 3/8 a pour degré d'exactitude 3 : elle est exacte pour les polynômes de degré inférieur ou égal à3. 2 Ecrire un programme permettant de vérier

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme algébrique qui représente une valeur (i.e.

Une expression est un groupe d'opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme algébrique qui représente une valeur (i.e.

Une expression est un groupe d'opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e.

Une expression est un groupe d'opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e.

Une expression est un groupe d’opérandes (i.e. nombres, constantes, variables, ...) liées par certains opérateurs pour former un terme al- gébrique qui représente une valeur (i.e.