Capítulo 2: RESOLUCIÓN DE
ECUACIONES

Índice:

  1. Método de bisección
  2. Método de regula-falsi
  3. Método de regula-falsi modificado
  4. Método iterativo del punto fijo
  5. Método de Newton
  6. Método de la secante
  7. Método de Steffensen
  8. Método de Schröder
  9. Aceleración de la convergencia. Método de Aitken
  10. Estudio de la convergencia

Volver al índice del libro: ERRORES, OPTIMIZACIÓN Y RESOLUCIÓN NUMÉRICA DE SISTEMAS




Método de bisección:

f=@(x)2+sin(x)-2*x;n=7;a=1;b=2;xbi=(b+a)/2;
for i=1:n, if f(xbi(i))*f(a)<0; b=xbi(i);else;a=xbi(i);end;
xbi(i+1)=(b+a)/2;end;
xbi,xbid=abs(diff(xbi)),f(xbi)

Ir al inicio

Método de regula-falsi:

f=@(x)2+sin(x)-2*x; n=7; a=1;b=2;
xrf=a-f(a)*(b-a)/(f(b)-f(a));
for i=1:n, if f(xrf(i))*f(a)<0;b=xrf(i);else;a=xrf(i);end;
xrf(i+1)=a-f(a)*(b-a)/(f(b)-f(a));end;
xrf,xrfd=abs(diff(xrf)),f(xrf)

Ir al inicio

Método de regula-falsi modificado:

f=@(x)2+sin(x)-2*x;a=1;b=2;xrfm=a-f(a)*(b-a)/(f(b)-f(a));
n=7; for i=1:n
if abs(f(xrfm(i)))>abs(f((b+a)/2));xrfm(i)=(b+a)/2;end;
if f(xrfm(i))*f(a)<0;b=xrfm(i);else;a=xrfm(i);end;
xrfm(i+1)=a-f(a)*(b-a)/(f(b)-f(a));end;
xrfm,xrfmd=abs(diff(xrfm)),f(xrfm)

Ir al inicio

Método iterativo del punto fijo:

g=@(x)(2+sin(x))/2; xit=2; n=7;
for i=1:n, xit(i+1)=g(xit(i)); end; xit
xitd=abs(diff(xit)),f=@(x)2+sin(x)-2*x;f(xit)

Ir al inicio

Método de Newton:

f=@(x)2+sin(x)-2*x;fd=@(x)cos(x)-2;xne=2;n=7;
for i=1:n,xne(i+1)=xne(i)-f(xne(i))/fd(xne(i));end
xne,xned=abs(diff(xne)),f(xne)

Ir al inicio

Método de la secante:

 f=@(x)2+sin(x)-2*x;xse(1)=1;xse(2)=2;n=7;
for i=2:n,xse(i+1)=xse(i)-f(xse(i))*(xse(i)-xse(i-1)) ...
/(f(xse(i))-f(xse(i-1)));end
xse,xsed=abs(diff(xse)),f(xse)

Ir al inicio

Método de Steffensen:

f=@(x)2+sin(x)-2*x;xst(1)=1;n=7;
for i=1:n,xst(i+1)=xst(i)-(f(xst(i)))^2 ...
/(f(xst(i)+f(xst(i)))-f(xst(i)));end
xst,xstd=abs(diff(xst)),f(xst)

Ir al inicio

Método de Schröder:

f=@(x)(2+sin(x)-2*x).^2;
fd=@(x)2*(2+sin(x)-2*x)*(cos(x)-2);
fdd=@(x)2*(cos(x)-2).^2-2*sin(x).*(sin(x)-2*x+2);
xnm(1)=2;n=7;
for i=1:n, xnm(i+1)=xnm(i)-(f(xnm(i))*fd(xnm(i)))...
/((fd(xnm(i))).^2-f(xnm(i))*fdd(xnm(i))); end
xnm,xnmd=abs(diff(xnm)),f(xnm)  

Ir al inicio

Aceleración de la convergencia. Método de Aitken:

Aquí se aplica sobre las iteraciones de regula-falsi. Se presupone que se han ejecutado los comandos anteriores de regula-falsi.

for i=1:n-1;xrfa(i)=xrf(i)-(xrf(i+1)-xrf(i))^2/...
(xrf(i+2)-2*xrf(i+1)+xrf(i));end; xrfa,diff(xrfa),f(xrfa)

o bien, también se puede ejecutar con los siguientes comandos:

xrfa=xrf(1:n-1)-diff(xrf(1:n)).^2./diff(diff(xrf))
xrfad=abs(diff(xrfa)),f(xrfa)

Si se quiere aplicar este algoritmo sobre otro método, basta con asignar sus valores a la variable xrf. Por ejemplo, si se quiere ejecutar sobre bisección basta con ejecutar previamente el comando

xrf=xbi

mientras que si, por ejemplo,  se quiere ejecutar sobre el método iterativo basta con ejecutar previamente

 xrf=xit

 
Ir al inicio

Estudio de la convergencia:

Se presupone que se han ejecutado todos los métodos anteriores para realizar un estudio de la convergencia de éstos.

semilogy((1:7)',xbid','r'),hold on,semilogy((1:7)',xbid','sr')
semilogy((1:7)',xrfd','r'),grid,semilogy((1:7)',xrfd','or')
semilogy((1:7)',xrfmd','r'),grid,semilogy((1:7)',xrfmd','pr')
semilogy((1:7)',xitd','r'),semilogy((1:7)',xitd','vr')
semilogy((1:7)',xned','b'),semilogy((1:7)',xned','*b')
semilogy((1:7)',xsed(2:8)','b'),semilogy((1:7)',xsed(2:8)','+b')
semilogy((1:7)',xstd','b'),semilogy((1:7)',xstd','xb')
semilogy((1:5)',xrfad','r'),semilogy((1:5)',xrfad','dr')
 

Ir al inicio