viernes, 16 de marzo de 2012

Método de BISECCIÓN, cálculo de raiz de una función.

Implementación del método de bisección en Pascal para dar con la raiz de una función. La función de la cual se quiere hayar la raiz se debe de introducir en el código fuente, en la función llamada f , en este caso f:=x*x-4; pero se puede cambiar usando las funciones matemáticas de Pascal y sus bibliotecas.

program BISECCION(input,output);
var
  a,b,c,precision,solucion:real;
  buscando:boolean;
  pasos:integer;

function f(x:real):real;
  begin
    f:=x*x-4 {en esta fila (8) se iguala la función f a la que se quiera}
  end;

begin
  pasos:=0;
  buscando:=true;
  while buscando do begin
    writeln('Introduzca los extremos del intervalo en el que buscar la raiz');
    write('Extremo inferior: ');readln(a);
    write('Extremo superior: ');readln(b);
    if f(a)*f(b)<=0 then buscando:=false
  end;
  if f(a)=0 then
    solucion:=a
  else if f(b)=0 then
    solucion:=b
  else
    buscando:=true;
  write('Introduzca la precisión de la respuesta: ');readln(precision);
  while buscando do begin
    pasos:=pasos+1;
    c:=(a+b)/2;
    If abs(b-c)<precision then begin
      buscando:=false;
      solucion:=c
    end;
    If f(a)*f(c)<0 then
      b:=c
    else if f(a)*f(c)=0 then begin
      buscando:=false;
      solucion:=c
    end
    else
      a:=c;
  end;
  writeln('Para x=',solucion:7:4,', f(x)=0 por lo que es raiz de la funcion');
  writeln('Se han llevado a cabo ',pasos,' pasos para llegar a la solucion');
  readln
end.

No hay comentarios:

Publicar un comentario