• Aucun résultat trouvé

Méthodes Numériques Algorithmique numérique François Cuvelier

N/A
N/A
Protected

Academic year: 2022

Partager "Méthodes Numériques Algorithmique numérique François Cuvelier"

Copied!
54
0
0

Texte intégral

(1)

Méthodes Numériques

Algorithmique numérique

François Cuvelier

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

Université Paris XIII.

20 mars 2016

20 mars 2016 1 / 40

(2)

Plan

1

Introduction

2

Pseudo-langage algorithmique Les bases

Les instructions structurées

3

Méthodologie de construction d’un algoritme Exercices

4

Pseudo-langage algorithmique (suite) Les fonctions

Exemple : résolution d’une équation du premier degré Exemple : résolution d’une équation du second degré

Introduction 20 mars 2016 2 / 40

(3)

Définition

Definition 1.1: Petit Robert 97

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

Introduction 20 mars 2016 3 / 40

(4)

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 Saxo, est sur l’emplacement 2, la seconde, une Clio, est sur l’emplacement 3.

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

Introduction 20 mars 2016 4 / 40

(5)

Exemple 2 : équation du premier degré

Donner un algorithme permettant de résoudre ax “ b

Introduction 20 mars 2016 5 / 40

(6)

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 20 mars 2016 6 / 40

(7)

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 20 mars 2016 7 / 40

(8)

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 20 mars 2016 7 / 40

(9)

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 20 mars 2016 7 / 40

(10)

Plan

1

Introduction

2

Pseudo-langage algorithmique Les bases

Les instructions structurées

3

Méthodologie de construction d’un algoritme Exercices

4

Pseudo-langage algorithmique (suite) Les fonctions

Exemple : résolution d’une équation du premier degré Exemple : résolution d’une équation du second degré

Pseudo-langage algorithmique 20 mars 2016 8 / 40

(11)

Vocabulaire de base

‚ constantes,variables,

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

‚ expressions,

‚ instructions (simples et composées),

‚ fonctions.

Pseudo-langage algorithmique Les bases 20 mars 2016 9 / 40

(12)

Données et constantes

‚ Donnée ñ introduite par l’utilisateur

‚ Constante ñ symbole, identificateur non modifiable

Pseudo-langage algorithmique Les bases 20 mars 2016 10 / 40

(13)

Variables

Definition 2.1

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

Pseudo-langage algorithmique Les bases 20 mars 2016 11 / 40

(14)

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 20 mars 2016 12 / 40

(15)

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 20 mars 2016 13 / 40

(16)

Opérateurs logiques

Nom Symbole Exemple

négation „ „ a

ou | a|b

et & a&b

Pseudo-langage algorithmique Les bases 20 mars 2016 14 / 40

(17)

Opérateur d’affectation

Nom Symbole Exemple

affectation Ð a Ð b

Pseudo-langage algorithmique Les bases 20 mars 2016 15 / 40

(18)

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 algébrique qui représente une valeur (i.e. un élément de donnée simple)

Exemple d’expression numérique

pb ˚ b ´ 4 ˚ a ˚ cq{p2 ˚ aq

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

Pseudo-langage algorithmique Les bases 20 mars 2016 16 / 40

(19)

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 algébrique qui représente une valeur (i.e. un élément de donnée simple)

Exemple d’expression numérique

pb ˚ b ´ 4 ˚ a ˚ cq{p2 ˚ aq

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

Pseudo-langage algorithmique Les bases 20 mars 2016 16 / 40

(20)

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 algébrique qui représente une valeur (i.e. un élément de donnée simple)

Exemple d’expression numérique

pb ˚ b ´ 4 ˚ a ˚ cq{p2 ˚ aq

Opérandes ñ identifiants a, b, c, constantes 4 et 2.

Opérateurs ñ symboles ˚, ´ et {

Pseudo-langage algorithmique Les bases 20 mars 2016 16 / 40

(21)

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 algébrique qui représente une valeur (i.e. un élément de donnée simple)

Exemple d’expression numérique

pb ˚ b ´ 4 ˚ a ˚ cq{p2 ˚ aq

Opérandes ñ identifiants a, b, c, constantes 4 et 2.

Opérateurs ñ symboles ˚, ´ et {

Pseudo-langage algorithmique Les bases 20 mars 2016 16 / 40

(22)

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 algé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 20 mars 2016 17 / 40

(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 algé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 20 mars 2016 17 / 40

(24)

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 algé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 20 mars 2016 17 / 40

(25)

Instructions

Definition 2.4

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 20 mars 2016 18 / 40

(26)

Instructions simples

‚ affectation d’une valeur a une variable.

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

Pseudo-langage algorithmique Les bases 20 mars 2016 19 / 40

(27)

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 20 mars 2016 20 / 40

(28)

Exemple : boucle «pour»

Données : n

1:

S Ð 0

2:

Pour i Ð 1 à n (pas `1) faire

3:

S Ð S ` cos p i ˆ2 q

4:

Fin Pour

Mais que fait-il ?

Calcul de S “

n

ÿ

i“1

cospi

2

q

Pseudo-langage algorithmique Les instructions structurées 20 mars 2016 21 / 40

(29)

Exemple : boucle «pour»

Données : n

1:

S Ð 0

2:

Pour i Ð 1 à n (pas `1) faire

3:

S Ð S ` cos p i ˆ2 q

4:

Fin Pour

Mais que fait-il ? Calcul de S “

n

ÿ

i“1

cospi

2

q

Pseudo-langage algorithmique Les instructions structurées 20 mars 2016 21 / 40

(30)

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

Mais que fait-il ?

Calcul de x “ 1 `

999

ÿ

i“0

iˆ2

Pseudo-langage algorithmique Les instructions structurées 20 mars 2016 22 / 40

(31)

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

Mais que fait-il ? Calcul de x “ 1 `

999

ÿ

i“0

iˆ2

Pseudo-langage algorithmique Les instructions structurées 20 mars 2016 22 / 40

(32)

Exemple : instructions conditionnelles «si»

Données :

note : un réel.

1:

Si note ą 12 alors

2:

affiche(’gagne’)

3:

Sinon Si note ě 8 alors

4:

affiche(’oral’)

5:

Sinon

6:

affiche(’perdu’)

7:

Fin Si

Pseudo-langage algorithmique Les instructions structurées 20 mars 2016 23 / 40

(33)

Plan

1

Introduction

2

Pseudo-langage algorithmique Les bases

Les instructions structurées

3

Méthodologie de construction d’un algoritme Exercices

4

Pseudo-langage algorithmique (suite) Les fonctions

Exemple : résolution d’une équation du premier degré Exemple : résolution d’une équation du second degré

Méthodologie de construction d’un algoritme 20 mars 2016 24 / 40

(34)

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 d’un algoritme 20 mars 2016 25 / 40

(35)

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 : raffinement.

‚ Effectuer des raffinements successifs.

‚ Le niveau de raffinement le plus élémentaire est celui des instructions.

Méthodologie de construction d’un algoritme 20 mars 2016 26 / 40

(36)

Réalisation d’un algorithme

‚ Le type des données et des résultats doivent être précisés.

‚ L’algorithme doit fournir au moins un résultat.

‚ 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 d’un algoritme 20 mars 2016 27 / 40

(37)

Exercice 1

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

ax

2

` bx ` c “ 0, (1)

en supposant que a P R

˚

, b P R et c P R sont donnés.

Ecrire un algorithme permettant de résoudre cette équation.

Méthodologie de construction d’un algoritme Exercices 20 mars 2016 28 / 40

(38)

Exercice 2

Ecrire un algorithme permettant de calculer

Spx q “

n

ÿ

k“1

k sinp2 ˚ k ˚ x q

Méthodologie de construction d’un algoritme Exercices 20 mars 2016 29 / 40

(39)

Exercice 3

Ecrire un algorithme permettant de calculer

Ppzq “

k

ź

n“1

sinp2 ˚ k ˚ z{nq

k

Méthodologie de construction d’un algoritme Exercices 20 mars 2016 30 / 40

(40)

Exercice 4

Soit la série de Fourier x ptq “ 4A

π

"

cos ωt ´ 1

3 cos 3ωt ` 1

5 cos 5ωt ´ 1

7 cos 7ωt ` ¨ ¨ ¨

* .

1

Ecrire un algorithme permettant de calculer x ptq tronquée au trois premiers termes, avec ω “ 2π et A “ 1.

2

Même question avec une troncature au n-ième terme.

Méthodologie de construction d’un algoritme Exercices 20 mars 2016 31 / 40

(41)

Exercice 5

Reprendre les quatre exercices précédants en utilisant les boucles

«tant que».

Méthodologie de construction d’un algoritme Exercices 20 mars 2016 32 / 40

(42)

Plan

1

Introduction

2

Pseudo-langage algorithmique Les bases

Les instructions structurées

3

Méthodologie de construction d’un algoritme Exercices

4

Pseudo-langage algorithmique (suite) Les fonctions

Exemple : résolution d’une équation du premier degré Exemple : résolution d’une équation du second degré

Pseudo-langage algorithmique (suite) 20 mars 2016 33 / 40

(43)

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 20 mars 2016 34 / 40

(44)

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 20 mars 2016 35 / 40

(45)

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 20 mars 2016 35 / 40

(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 20 mars 2016 35 / 40

(47)

Ecrire ses propres fonctions

1

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

2

Quelles sont les données (avec leurs limitations) ?

Pseudo-langage algorithmique (suite) Les fonctions 20 mars 2016 36 / 40

(48)

Syntaxe

Fonction r args

1

, . . . , args

n

s Ð N

OM

F

ONCTION

( arge

1

, . . . , arge

m

) instructions

Fin Fonction

Fonction args Ð N

OM

F

ONCTION

( arge

1

, . . . , arge

m

) instructions

Fin Fonction

Pseudo-langage algorithmique (suite) Les fonctions 20 mars 2016 37 / 40

(49)

équation du premier degré

Ecrire une fonction permettant de résoudre ax ` b “ 0

‚ But :

trouver x P R solution de ax ` b “ 0.

‚ Données :

a P R

˚

et b P R.

‚ Résultats :

x P R.

Pseudo-langage algorithmique (suite) Exemple : résolution d’une équation du

premier degré 20 mars 2016 38 / 40

(50)

équation du premier degré

Ecrire une fonction permettant de résoudre ax ` b “ 0

‚ But :

trouver x P R solution de ax ` b “ 0.

‚ Données :

a P R

˚

et b P R.

‚ Résultats :

x P R.

Pseudo-langage algorithmique (suite) Exemple : résolution d’une équation du

premier degré 20 mars 2016 38 / 40

(51)

équation du premier degré

Ecrire une fonction permettant de résoudre ax ` b “ 0

‚ But :

trouver x P R solution de ax ` b “ 0.

‚ Données : a P R

˚

et b P R.

‚ Résultats :

x P R.

Pseudo-langage algorithmique (suite) Exemple : résolution d’une équation du

premier degré 20 mars 2016 38 / 40

(52)

équation du premier degré

Ecrire une fonction permettant de résoudre ax ` b “ 0

‚ But :

trouver x P R solution de ax ` b “ 0.

‚ Données : a P R

˚

et b P R.

‚ Résultats : x P R.

Pseudo-langage algorithmique (suite) Exemple : résolution d’une équation du

premier degré 20 mars 2016 38 / 40

(53)

équation du premier degré

Algorithme 1 Exemple de fonction : Résolution de l’équation du pre- mier degré ax ` b “ 0.

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ésolution d’une équation du

premier degré 20 mars 2016 39 / 40

(54)

équation du second degré

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

ax

2

` bx ` c “ 0, (2)

Pour celà, on pose ∆ “ b

2

´ 4ac

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

‚ si ∆ “ 0 alors la solution est x “ ´

2ab

,

‚ 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 (2).

2

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

3

Ecrire un programme permettant de valider ces deux fonctions.

Pseudo-langage algorithmique (suite) Exemple : résolution d’une équation du

second degré 20 mars 2016 40 / 40

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 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 algébrique qui représente une valeur (i.e.

Ecrire une fonction RSLC HOLESKY permettant de résoudre un système linéaire en utilisant la factorisation positive de Cholesky. On supposera les fonctions R ES T RI I NF et R ES T RI

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

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.

Méthodes de Newton-Cotes Méthodes composites Autres méthodes Intégrales multiples. 4 Résolution de systèmes

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.