Método de la Secante en MatLab

Crear el m-file para el método de la secante para encontrar raíces de ecuaciones no lineales.

Usar como base el método de Newton Raphson.

Probar el método usando las funciones:

  • f(x) = sen (x),
  • f(x) = sen(x) + 3x – 5,

Usar una tolerancia es del 0.005 %

  • Método de Newton – Raphson

Número máximo de iteraciones: 100

Fórmula

Valor inicial estimado Solución No. iteraciones Error aproximado %

y=sin(x)

2.5

3.14159265358979

5

6.4097e-010

y=sin(x)+3x-5 1 1.34201856313019 4

0.0024394

 

  • Método de la secante

Número máximo de iteraciones: 100

Fórmula

Valor inicial Xn Valor inicial Xn-1 Solución No. iteraciones

Error aproximado %

y=sin(x)

3.5 2.5 3.14159265358979 5 1.5061e-007
y=sin(x)+3x-5 2 1 1.34201857646419 5

0.0016196

Código Secante

* * * * secante.m * * * * *

[c]
% Obtención de raices de funciones por el método de la Secante
disp (‘OBTENCIÓN DE RAICES DE FUNCIONES USANDO EL METODO DE LA SECANTE’);
etol = input (‘Error de tolerancia: ‘);
nmax = input (‘Número máximo de iteraciones: ‘);
xn = input (‘Valor estimado de la raiz (Xn)): ‘);
xnmenos1 = input (‘Valor estimado de la raiz (Xn-1)): ‘);
ea=100;
i=1;
while (ea > etol) & (i < nmax)
fxn = funcion(xn);
fxnmenos1=funcion(xnmenos1);
dfxn = funcion_derivada(xn);
xnmas1 = xn – ((fxn*(xn-xnmenos1))/(fxn-fxnmenos1));
ea = abs((xnmas1 – xn)/xnmas1)*100;
xnmenos1=xn;
xn = xnmas1;
i=i+1;
end
if (i<nmax)
disp ([‘La solución es: ‘,num2str(xnmas1,15)]);
disp ([‘El error aproximado porcentual es: ‘,num2str(ea)]);
disp ([‘El número de iteraciones fue: ‘,num2str(i)]);
else
disp (‘Se rebasó el número máximo de iteraciones.’);
end
[/c]

* * * * * funcion.m * * * * *

[c]
function y = funcion(x)
y = sin(x);
[/c]

* * * * * funcion_derivada.m * * * * *

[c]
function y=funcion_derivada(x)
y = cos(x);
[/c]

Deja un comentario