Voir plus bas la réponse à la question 2.
Solution1:
function [xn,ni]=PLX1(x0,nmax,err)
format long
ni=0;
err1=err+eps;
x1=x0;
while ni<=nmax & err1>err
xn=(x1+2/x1)/2;
err1=abs(xn-x1);
x1=xn;
ni=ni+1;
end
end
Solution2:
function [xn,ni]=PLX2(x0,nmax,err)
format long
xx=x0;
x=x0+err+eps;
ni=0;
while ni<=nmax & abs(xx-x)>err
x=xx;
xx=(x+2/x)/2;
ni=ni+1;
end
xn=xx
end
Solution3:
function [xn,ni]=PLX3(x0,nmax,err)
format long
xx=(x0+2/x0)/2;
va=abs(xx-x0);
ni=1;
while ni<=nmax && va>err
x=xx;
xx=(x+2/x)/2;
va=abs(xx-x);
ni=ni+1;
end
xn=xx;
end
Solution4:
function [xn,ni]=PLX4(x0,nmax,err)
format long
xkplus1=@(xk) (xk+2/xk)/2;
erreur=@(xi,xj) abs(xi-xj);
xn=x0;
x1=x0+err+eps;
ni=0;
for ni=1:nmax
x1=xn;
xn=xkplus1(x1);
if (erreur(xn,x1)<=err)
break;
end
end
end
Solution5:
function [xn,ni]=PLX5(x0,nmax,err)
format long
x(1)=(x0+2/x0)/2;
va=abs(x(1)-x0);
ni=1;
while ni<=nmax && va>err
x(ni+1)=(x(ni)+2/x(ni))/2;
va=abs(x(ni+1)-x(ni));
ni=ni+1;
end
xn=x(ni);
end
Solution6: contient une erreur
function [xn,ni]=PLX6(x0,nmax,err)
format long
x(1)=x0
va=1;
ni=1;
while ni<=nmax+1 && abs(x(ni+1)-x(ni))>err
x(ni+1)=(x(ni)+2/x(ni))/2;
ni=ni+1;
end
xn=x(ni);
ni=ni-1;
end
Réponse à la question 2.
l'erreur de sortie donne le nombre de chiffres significatifs.
Exemple:
err=1e-4 = 10^(-4)
va= 2.123899819794772e-06 = 2,12*10^(-6)
on a voulu avoir au moins 4 chiffres significatifs (err=1e-4) mais d’après l'erreur de sortie 5 chiffres significatifs car l'erreur est dans le chiffre 6 x(n)-x(n-1)<10^(-5).
Si on veux avoir l'erreur de sortie on doit ajouter une variable de sortie va.
Exemple:
PLX2 modifié
function [xn,ni,va]=PLX7(x0,nmax,err)
format long
xx=(x0+2/x0)/2;
va=abs(xx-x0);
ni=1;
while ni<=nmax && va>err
x=xx;
xx=(x+2/x)/2;
va=abs(xx-x);
ni=ni+1;
end
xn=xx;
end