Compte Rendu N°3 – MT40 Equations non linéaire

publicité
Speurt Guillaume
Despicht Charles-Henri
Compte Rendu N°3 – MT40
Equations non linéaire
Objectifs :
Dans ce TP nous allons programmer les différentes méthode de base pour la résolution
d’équation non linéaire, tel que la dichotomie, la méthode de la corde ou encore celle de la
sécante.
I)
Programmation des méthodes de bases
a) Méthode de la dichotomie
En algorithmique, la dichotomie est un processus itératif ou récursif de recherche où, à chaque
étape, l'espace de recherche est restreint à l'une des deux parties.
On suppose bien sûr qu'il existe un test relativement simple permettant à chaque étape de
déterminer l'une des deux parties dans laquelle se trouve une solution. Pour optimiser le
nombre d'itérations nécessaires, on s'arrangera pour choisir à chaque étape deux parties
sensiblement de la même « taille » (pour un concept de « taille » approprié au problème), le
nombre total d'itérations nécessaires à la complétion de l'algorithme étant alors logarithmique
en la taille totale du problème initial.
L’algorithme est le suivant :
function [n,x]=iteration_dichotomie(a,b,nmax,eps,f)
fcn=inline(f);
xl=a;
xr=b;
n=0;
while abs(xr-xl)>eps & fcn((xr+xl)/2)~=0 & n<nmax
x=(xr+xl)/2;
if fcn(xl)*fcn(x)>0
xl=x;
else
xr=x;
end
n=n+1;
end
test de la function créée:
[n,x]=iteration_dichotomie(0,10,1000,0.001,'x^2-2')
n =14
x =1.4142
b) Méthode de la corde
La méthode de la corde consiste a rétrécir l’intervalle d’étude tout en aillant la solution alpha
comprise entre deux valeurs, c’est pour cela qu’il faut effectuer un test pour savoir si
f(xn)*f(xn+1) est de signe opposé ou non.
Le programme nous donne l’algorithme suivant :
function [n,xn]=iteration_corde(a,b,x0,nmax,eps,f)
fcn=inline(f);
n=0;
delta=(b-a)/(fcn(b)-fcn(a));
xn=x0;
while abs(fcn(xn))>eps & abs(delta*fcn(xn))>eps & n<nmax
xn=xn-delta*fcn(xn);
n=n+1;
end
Test de l’algorithme :
[n,xn]=iteration_corde(-5,5,1,100,0.0001,'x+6')
n =1
xn = -6
c) Méthode de la sécante
La méthode de la sécante est une méthode dérivée de celle de Newton où l'on remplace
par
On obtient la relation de récurrence
On trouve l’algorithme suivant :
function [n,x2]=iteration_secante(a,b,nmax,eps,f)
fcn=inline(f);
x=a;
x1=b;
n=0;
while abs((x1-fcn(x1)*(x1-x)/(fcn(x1)-fcn(x)))-x1)>eps & n<nmax
x2=x1-fcn(x1)*(x1-x)/(fcn(x1)-fcn(x));
x=x1;
x1=x2;
n=n+1;
end
Test:
[n,x2]=iteration_secante(0,3,1000,0.001,'x-2.55154565654654648')
n =1
x2 =2.5515
d) Méthode de Regula Farci
En analyse numérique, la méthode de la fausse position ou méthode regula falsi est un
algorithme de recherche d'un zéro d'une fonction qui combine les possibilités de la méthode
de dichotomie et de la méthode de la sécante.
Comme la méthode de dichotomie, la méthode de la fausse position commence par deux
points a1 et b1 tels que f(a1) et f(b1) soient de signes opposés, ce qui implique d’après le
théorème des valeurs intermédiaires que la fonction f possède au moins un zéro dans
l’intervalle [a1, b1]. La méthode consiste à produire une suite décroissante d’intervalles [ak,
bk] qui contiennent tous un zéro de f.
À l’étape k, le nombre
est calculé. Comme expliqué ci-dessous, ck est l’abscisse de l’intersection de la droite passant
par (ak, f(ak)) et (bk, f(bk)) avec l'axe des abscisses, que nous appelerons pour simplifier zéro
de la sécante. Si f(ak) et f(ck) sont de mêmes signes, alors nous posons ak+1 = ck et bk+1 = bk,
sinon nous posons ak+1 = ak et bk+1 = ck. Ce procédé est répété jusqu’à ce que le zéro soit
approché de suffisamment près.
La formule ci-dessus est également employée dans la méthode de la sécante, mais la méthode
de la sécante retient systématiquement les deux derniers points calculés, alors que la méthode
de la fausse position retient deux points qui encadrent certainement un zéro. D'autre part, la
seule différence entre la méthode de la fausse position et la méthode de dichotomie est
l’utilisation la relation ck = (ak + bk) / 2.
L’algorithme est le suivant :
function[n,Xp]=iteration_regula_falsi(A,B,nmax,E,f)
fcn=inline(f)
if (fcn(A)*fcn(B))>0;
error ('erreur');
end
n=0;
Xp=A;
Xn=B;
while abs(fcn(Xp))>E&abs(Xn-Xp)>E&n<nmax
X2=Xn-((Xn-Xp)/(fcn(Xn)-fcn(Xp)))*fcn(Xn);
Xp=Xn;
Xn=X2
n=n+1;
end
e) Méthode de Newton
Partant d'une valeur approximative raisonnable d'un zéro d'une fonction d'une variable réelle,
on approxime au premier ordre la fonction par sa tangente en ce point. Cette tangente est une
fonction affine dont on sait trouver l'unique zéro (analyse élémentaire). Ce zéro de la tangente
sera généralement plus proche du zéro de la fonction. Par cette opération, on peut donc
espérer améliorer l'approximation par itérations successives.
Illustration de la méthode de Newton
L'avantage de cette méthode est de pouvoir être expliqué graphiquement. Cependant,
l'implantation d'un programme demande d'expliciter les calculs à effectuer. Soit une fonction f
de [a,b] dans définie et dérivable et sur l'intervalle [a,b], et à valeurs réelles. La régularité
de f est ici minimale. Prenons x0 un réel arbitraire. Par récurrence, on définit la suite xn par :
Où f' désigne la dérivée de la fonction f. Il se peut que la récurrence se termine, si à l'étape n,
xn n'appartient pas au domaine de définition.
Si le zéro inconnu α est isolé, alors il existe un voisinage de α tel que pour toutes les valeurs
de départ x0 dans ce voisinage, la suite (xn) va converger vers α. De plus, si f'(α) est non nul,
alors la convergence est quadratique, ce qui signifie intuitivement que le nombre de chiffres
corrects est approximativement doublé à chaque étape.
Bien que la méthode soit très efficace, certains aspects pratiques doivent être pris en compte.
Avant tout, la méthode de Newton nécessite que la dérivée soit effectivement calculée. Dans
les cas où la dérivée est seulement estimée en prenant la pente entre deux points de la
fonction, la méthode prend le nom de méthode de la sécante, moins efficace (d'ordre 1,618 qui
est le nombre d'or) et inférieure à d'autres algorithmes. Par ailleurs, si la valeur de départ est
trop éloignée du vrai zéro, la méthode de Newton peut entrer en boucle infinie sans produire
d'approximation améliorée. À cause de cela, toute mise en œuvre de la méthode de Newton
doit inclure un code de contrôle du nombre d'itérations.
Conclusion:
Dans ce TP nous avons pu voir les différentes méthode d’approche d’une valeur et voir ainsi
les méthodes qui son les plus efficace comme celle de Newton.
Téléchargement