Vous êtes sur la page 1sur 8

TP1 

: Résolution d’équations non-linéaires

Introduction
Dans ce TP, nous nous intéressons à la résolution numérique des équations non linéaires de type f(x) = 0. Pour résoudre ce type de problème,
deux méthodes sont utilisées :

– La méthode de dichotomie (résolution d’équations du type f(x) = 0).

– La méthode de Newton (résolution d’équations du type f(x) = 0)

Résolution de l'équation f(x) = 0


Soit f une fonction continue sur l'intervalle [a; b]. On suppose que f s'annule sur cet intervalle et on cherche à approcher numériquement le (ou
les) zéro(s) de cette fonction.

On veut trouver le zéro de la fonction : f(x) = sin (2x) − 1 + x.

On trace le graphe de la fonction f grâce aux commandes Matlab

>> f = inline (’sin(2*x) -1 + x’, ’x’);

>> x=[-3:0.1:3];

>> grid on; hold on; plot(x , feval (f,x));

1
2

-1

-2

-3

-4
-3 -2 -1 0 1 2 3

2
Figure1: Représentation graphique du f

La méthode de dichotomie
La méthode de dichotomie permet d'approcher le zéro d'une fonction continue en cas de changement de signe. Le principe est de tester le signe
de la fonction au point courant, en divisant la taille de l'intervalle d'étude par deux à chaque itération (voir Algorithme 1). Cette méthode est
basée sur le principe des valeurs intermédiaires.

3
1. Implémenter cet algorithme sous Matlab.

2. Modifier le critère d'arrêt pour atteindre une tolérance ε sur le résidu.


3. Reprendre la question précédente avec un critère d'arrêt sur l'incrément.

4. Comparer les résultats et expliquer.

4
Algorithme 1 Algorithme de dichotomie
Paramètres d'entrées : f, a, b
f : fonction continue sur un intervalle I
deux réels a et b de I tels que f(a)f(b) < 0
Paramètres de sorties : x, n
x : approximation du zéro de la fonction f
n : nombre d'itérations nécessaires pour atteindre x

function [ y ] = ff( x )
y= sin(2*x)-1+x;

end

clear
clc
a=1;
b=-1;

5
eps=0.0001;
if (ff(a)*ff(b)<0)
while abs(b-a)>eps
m=(a+b)/2;
if ff(m)*ff(a)<0
b=m
else
a=m
end
end
format long
disp(m)
disp(n)

end

eps 0.0001 0.00001 0.000001 0.0000001 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
1 01 001 0001 00001 000001

n 15 18 21 25 28 31 35 38 41 45
X0 0.3522338 0.3522872 0.3522882 0.3522884 0.3522884 0.3522884 0.3522884 0.3522884 0.3522884 0.35228845
=[ 86718750 92480469 46154785 24968719 62221622 55702364 56459064 56466340 56459974 6460826]
new 0.3522884
ton 0.3509670 46685919
62362530

6
0.3523

0.3523

0.3523

0.3523

0.3523

0.3523

0.3522

0.3522
1 2 3 4 5 6 7 8 9 10

Méthode de Newton

On souhaite calculer une valeur approchée d’une racine d’une fonction f donnée, partant d’un point x0 donné. La racine doit être calculée avec
une précision de ε.

– Quels sont les paramètres d’entrée ? Quels sont les paramètres de sortie ?

– Définir un critère d’arrêt pour cet algorithme.

– Ecrire l’algorithme complet de la fonction Newton.m


function [ y ] = df( x )
y= 2*cos(2*x)+1

end

7
clear
clc
x1=0.4;
eps=0.0001;
xn1=x1-ff(x1)/df(x1);
while abs(xn1-x1)>eps
xn1= x1-ff(x1)/df(x1)
x1=xn1;
end

la méthode de newton est plus rapide puisque les nombres d’itérations est plus faible

que la 1 ère méthode

Vous aimerez peut-être aussi