ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Metodo de la regla falsa matab


Enviado por   •  2 de Mayo de 2017  •  Prácticas o problemas  •  398 Palabras (2 Páginas)  •  102 Visitas

Página 1 de 2

Metodo de la regla falsa matab

Barriga.B

Se puede demostrar que bajo ciertas condiciones el método de la falsa posición tiene orden de convergencia lineal, por lo que suele converger más lentamente a la solución de la ecuación que el método de la secante, aunque el método de la falsa posición siempre converge a una solución de la ecuación.

El algoritmo tiene el inconveniente de que si la función es convexa o cóncava cerca de la solución, el extremo del intervalo más alejado de la solución queda fijo variando únicamente el más cercano, convergiendo muy lentamente.

En este método nos permite obtener la posición media aproximada dentro de un rango de datos con lo que es usado en métodos numéricos

El desarrollo se da en la plataforma de Matlab debido a que es el sistema usado en la materia de métodos numéricos

El código que se usa para este método se encuentra a continuación

El código debe ser copiado tal y como esta en caso de no copilar se debe reiniciar el matlab

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

...

Descargar como (para miembros actualizados)  txt (2 Kb)   pdf (27.3 Kb)   docx (10.4 Kb)  
Leer 1 página más »
Disponible sólo en Clubensayos.com