Código Matlab – Método de la Regla Falsa

La Regla Falsa utiliza una aproximación lineal entre los extremos del intervalo para estimar la raíz. Este método es iterativo y utiliza una fórmula que toma en cuenta las evaluaciones de la función en los extremos del intervalo, ajustando continuamente el intervalo para acercarse a la raíz.

xai=input('Ingrese limite inferior: ');
xbi=input('Ingrese limite superior: ');
tol=input('Ingrese el porcentaje de Error: ');
syms x;
f=input('Ingrese la Funcion: ');
f1=subs(f,x,xai);
f2=subs(f,x,xbi);
i=1;
ea(1)=100;
if f1*f2 < 0
    xa(1)=xai;f1=subs(f,x,xa(1));
    xb(1)=xbi;f2=subs(f,x,xb(1));
    xr(1)=xa(1)-f1*(xb(1)-xa(1))/(f2-f1); f3=subs(f,x,xr(1));
    fprintf('It.              Xa           Xr            Xb            Error aprox \n');
    fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
    while abs(ea(i))>=tol,
      if f1*f3 < 0
         xa(i+1)=xa(i);f1=subs(f,x,xa(i+1));
         xb(i+1)=xr(i);f2=subs(f,x,xb(i+1));
      end
      if f1*f3> 0
         xa(1)=xr(i);
         xb(1)=xb(i);
      end
      xr(i+1)=xa(i+1)-f1*(xb(i+1)-xa(i+1))/(f2-f1);
      ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1)))*100;
      fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',...
              i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
      i=i+1;
   end
else
   fprintf('No existe una raíz en ese intervalo');
end

8 thoughts on “Código Matlab – Método de la Regla Falsa

  1. El codigo no funciona por que le hace falta la tomar la función subs en una función eval
    ejemplo hacer esto eval(subs(f,x,xa(1))); en donde este subs(f,x,xa(1)); es solo agregar un eval();

Deja un comentario