Licence de Mathématiques Fondamentales Calcul Scientifique

publicité
Licence de Mathématiques Fondamentales
Calcul Scientifique
feuille de TD 1
Introduction – Quelques commandes Matlab pour le graphisme 2D
La commande plot sert à tracer des courbes planes. Plus précisément, si x et y désignent des
vecteurs de même longueur, l’appel plot(x,y) ouvre une fenêtre graphique et trace une ligne brisée
joignant les points dont les coordonnées sont définies par les listes x et y. Par exemple, une façon
d’obtenir la représentation graphique de la fonction sinus sur l’intervalle [−4, 4] consiste à écrire :
x = −4 : 0.01 : 4 ; y = sin(x) ; plot(x, y)
Dans cet exemple, x est un vecteur (au sens MATLAB) qui constitue une subdivision à pas
constant (0.01) de l’intervalle [−4, 4], et y est un vecteur donnant les valeurs de la fonction sinus
aux points de cette subdivision (l’action de sin se distribue sur tous les éléments d’un vecteur).
Lorsque l’on représente une courbe avec plot, les points sont reliés par un segment, si bien que
l’on a intérêt à choisir un pas de subdivision assez petit pour obtenir une courbe d’apparence lisse.
On obtient de même la représentation graphique de la courbe paramétrée
2
x(t) = t/(t2 + 1), y(t) = t3 e−t ,
sur l’intervalle [−1, 2], de la manière suivante :
t = −1 : 0.01 : 2 ; x = t./(t.∧ 2 + 1) ; y = t.∧ 3. ∗ exp(−t.∧ 2) ; plot(x, y)
Il faut faire précéder les signes puissance, multiplication et division par un point, de manière à
ce que l’opération se distribue sur les éléments du vecteur t.
Enfin, lorsque l’on fait plusieurs graphiques, la commande hold permet de geler la fenêtre
graphique courante de sorte que les représentations suivantes se superposent sur cette même figure.
Dans ce cas il peut arriver que les échelles soient réajustées. On annule l’effet de hold ou hold on
avec la commande hold off.
feuille de TD 1
Licence 2002-2003
Calcul Scientifique
Résolution de l’équation f (x) = 0
La résolution de l’équation f (x) = 0 est l’une des chevilles ouvrière de l’Analyse Numérique.
Plusieurs méthodes sont utilisables en fonction de la complexité du problème à résoudre.
Exercice - 1 Résolution par dichotomie
Il n’y a pas de commentaire particulier à faire sur la résolution par dichotomie. C’est la méthode
la plus simple mais aussi la moins efficace ... La figure (1) donne le principe de l’algorithme.
Solution : x4
x4
x0
x3
x1
x2
Fig. 1 – résolution de f (x) = 0 par dichotomie.
Aperçu de l’algorithme de dichotomie
1 – trouver x0 et x1 tels que f (x0 ) f (x1 ) ≤ 0,
2 – poser x2 = 21 (x0 + x1 ),
3 – si f (x0 ) f (x2 ) ≤ 0 poser x1 = x2 , sinon poser x0 = x2 ,
4 – reprendre à partir de (1) tant que |f (x2 )| ≥ ǫ.
1- A l’aide d’un tracé de courbe, donner un encadrement des trois premières solutions positives de
l’équation tan(x) = 1/x.
2- Programmer une fonction Matlab y = f (x) calculant la valeur f (x) pour
f (x) = x tan(x) − 1.
(1)
Programmer une fonction Matlab sol = dichotomie(a, b, eps) calculant par dichotomie à eps près
une solution comprise entre a et b de f (x) = 0. Cette fonction fera appel à la fonction Matlab
précédente.
A l’aide de la question précédente, trouver une valeur approchée à 10−5 près de la première
solution positive de f (x) = 0.
3- Faire un programme Matlab vitessedicho pour tracer f (xn ) en fonction du numéro d’itération
n de l’algorithme (cf. dessin). Tracer ensuite log10 (|f (xn )|) en fonction de n.
4- Recommencer le tracé de f (xn ) pour les 2 solutions positives suivantes de f (x) = 0.
Exercice - 2 Méthode de Newton
Passons à une méthode de résolution plus évoluée : la méthode de Newton. Ici, l’algorithme est
xn+1 = xn −
f (xn )
,
f ′ (xn )
feuille de TD 1
Licence 2002-2003
Calcul Scientifique
Solution : x3
x3
x2
x1
x0
avec x0 astucieusement choisi. L’algorithme s’arrête quand |xn+1 − xn | ≤ ǫ.
1- Programmer une fonction Matlab sol = N ewton(a, eps) calculant la solution de l’équation
f (x) = 0 par Newton à eps près, en partant du réel a .
Cette fonction Matlab fera appel à la fonction Matlab y = f (x) (déjà programmée) et à la
fonction Matlab yprime = f prime(x) (à programmer) calculant f ′ (x).
2- Calculer les 3 premières solutions positives de f (x) = 0.
3- Faire un programme Matlab vitesseN ewton pour tracer log10 (|f (xn )|) en fonction du numéro
d’itération n de l’algorithme.
Exercice - 3 Méthode de la sécante
1
à chaque itération de l’algorithme de calcul. Ceci
La méthode de Newton nécessite le calcul de f ′ (x
n)
peut être particulièrement coûteux. C’est pourquoi la méthode de Newton est souvent remplacée
par la méthode de la tangente.
1
Dans cette méthode, le calcul de f ′ (x
est approché.
n)
Solution : x4
X4
x3
x2
x1
x0
L’algorithme est le suivant :
xn+1 = xn −
xn − xn−1
f (xn ).
f (xn ) − f (xn−1 )
Il est nécessaire de connaître xn et xn−1 à chaque itération de l’algorithme. Par conséquent, l’initialisation demande de choisir astucieusement les nombres x0 et x1 . Le critère d’arrêt est le même
que celui employé pour la méthode de Newton.
feuille de TD 1
Calcul Scientifique
Licence 2002-2003
1- Programmer une fonction Matlab sol = secante(a, b, eps) calculant par la méthode de la
sécante en partant de a et b la solution à eps près de f (x) = 0 pour la fonction
f (x) = x tan(x) − 1.
2- Calculer la première solution positive de f (x) = 0.
3- Faire un programme Matlab vitessesecante pour tracer l’erreur log10 (|f (xn )|) en fonction du
numéro d’itération n de l’algorithme.
Exercice - 4 La méthode du point fixe
La méthode de résolution de l’équation g(x) = x par la méthode du point fixe utilise le fait
que, pour g(x) et x0 correctement choisis la suite réccurente
xn+1 = g(xn ),
est convergente.
1- Trouver un critère d’arrêt pour la méthode du point fixe.
2- Ecrire une fonction Matlab sol = pointf ixe(a, eps) calculant la solution de g(x) = x par la
méthode du point fixe. Le réel de départ est a et eps est le critère d’arrêt. Cette fonction fera appel
à une fonction Matlab y = g(x) calculant la valeur de g(x).
3- Calculer la première solution positive de cos(x) = x.
4- On souhaite maintenant calculer la première solution positive de tan(x) = 1/x par la méthode
du point fixe. Pour cela on pose
g(x) = x − α(x ∗ tan(x) − 1),
où α > 0 intervient comme variable locale dans la fonction Matlab y = g(x).
Essayer la méthode du point fixe pour α ∈ {0.1, 1, 0.01}.
Expliquer les résultats.
5- Tracer l’erreur log(|f (xn )|) en fonction du numéro d’itération n, où f est la fonction
f (x) = x tan(x) − 1.
6- Comparer les vitesses de convergence pour les différents algorithmes.
(2)
Téléchargement