// activité 4 function y=f(x) y=x.*x-2 endfunction function y=df(x) y=2*x endfunction function y=convergence(f,df,a,b,x0) // x0 représente la valeur exacte clf edicho=[] eregula=[] esecante=[] enewton=[] adicho=a bdicho=b aregula=a bregula=b xsecante=a xnewton=a for n=1:50 // dichotomie 14 edicho=[edicho abs(adicho-x0)] if f(adicho)*f((adicho+bdicho)/2)<0 then bdicho=(adicho+bdicho)/2 else adicho=(adicho+bdicho)/2 end // regula falsi 19 cregula = aregula-f(aregula)*(bregula-aregula)/(f(bregula)-f(aregula)) eregula=[eregula abs(cregula-x0)] if f(aregula)*f(cregula)<0 then bregula=cregula else aregula=cregula end // secante 25 xsecante=xsecante-f(xsecante)*(0.0001)/(f(xsecante+0.0001)-f(xsecante)) esecante=[esecante abs(xsecante-x0)] // newton 28 xnewton=xnewton-f(xnewton)/df(xnewton) enewton=[enewton abs(xnewton-x0)] end emax=max(max(esecante),max(edicho),max(eregula),max(enewton)) y=[edicho' eregula' esecante' enewton'] plot2d(1:50,[edicho' eregula' esecante' enewton'],leg="dicho@regula@secante@newton",logflag="nl") title("vitesse de convergence") endfunction