Método de Bisección y Falsa Posición en MatLab [Corrección]

Probar el método usando las funciones:

  • f(x) = sen (x),   en el intervalo 2,4
  • f(x) = sen(x) + 3x – 5, en el intervalo 0,2

Usar una tolerancia es del 0.005 %

  • Método por Bisección

Fórmula

x No. iteraciones Intervalo F(xr)

y=sin(x)

3.1414794921875 14 (2,4) 0.00011316

y=sin(x)+3x-5

1 1 (0,2)

-1.1585

 

  • Método de la falsa posición

Fórmula

x No. iteraciones Intervalo F(xr)

y=sin(x)

3.14159265360489

4

(2,4)

-1.5095e-011

y=sin(x)+3x-5 1.34202328104585 6 (0,2)

1.5223e-005

 

Código Falsa Posición

 

* * * * * falsaposicion.m * * * * *

[c]
function x=falsaposicion(funcion,a,b,etol)
% Cálculo de raices por el método de falsa posición
disp (‘Cálculo de raices por falsa posicion’);
fl=feval(funcion,a);
fu=feval(funcion,b);
n=1;
if sign(fl)==sign(fu)
disp(‘Error, la función debe de cambiar de signo en el intervalo’);
end
xrant=0;
xr=1;
while (((abs(xr-xrant)/xr)*100)>etol)
fl=feval(funcion,a);
fu=feval(funcion,b);
xrant=xr;
xr=b-(fu*(a-b)/(fl-fu));
fxr=feval(funcion,xr);
disp([‘El valor actual de n es:’,num2str(n)]);
disp([‘El valor actual de Xr es:’,num2str(xr,15)]);
disp([‘El valor actual de F(Xr) es:’,num2str(fxr)]);
if sign(fl)==sign(fxr)
a=xr; fl=fxr;
else
b=xr; fu=fxr;
end
n=n+1;
end;
x=xr
[/c]

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

[c]
function [funci]=funcion(x)
funci=sin(x)+3*x-5

[/c]

Deja un comentario