Busqueda De Raices

    Metodos de Busqueda por Intervalos

    Solucion Sistemas de Ecuaciones Lineales

    Metodos Iterativos

    Descargas

    Método De Búsqueda de Intervalos

    Este método de búsqueda de intervalos pretende a partir de una función y de un intervalo muy grande, determinar en que subintervalos pequeños hay raíces. Para esto se debe recorrer todo el intervalo principal con un avance dado y verificar en cada subintervalo si hay un cambio de signo en la función evaluada en sus extremos. Si la función es continua se puede garantizar que en un subintervalo con cambio de signo hay una raíz. Este método no detectara los subintervalos donde la función toca el eje x tangencialmente pues no se presenta cambio de signo.

     

    Datos de entrada:

    Opción 1

    Intervalo grande

    numero de iteraciones

     

    Opción 2

    Un punto de inicio

    un delta

    numero de iteraciones


    Pseudocodigo

    Datos entrada: intervalo, numero iteraciones, función

    Datos salida: intervalos con raíz, raíces

    paso=(b-a)/n

    x0=a

    x1=a+paso

    l=1

    r=1

    raiz=0

    ni=0

    para i=1 hasta n

    si f(x0)=0

    raiz(r)=x0

    r=r+1

    sino si f(x0)*f(x1)<0

    intervalo(l,1)=x0

    intervalo(l,2)=x1

    l=l+1

    ni=ni+1

    fin si

    x0=x1

    x1=x1+paso

    fin para

    si f(x0)=0

    raiz(r)=x0

    fin si

    if ni=0

    Escriba 'No se detectaron intervalos con cambio de signo que indiquen la existencia de una raiz’

    Fin si

     

    si raiz~=0

    escriba ‘raiz es raiz'

    fin si



    Codigo Matlab/Octave

    Se debe crear un arrchivo .m llamado busquedaincremental y copiar y pegar el siguiente codigo

    function busquedaincremental
    f=input('ingrese la funcion: ','s');
    a=input('ingrese el valor inferior del intervalo: ');
    b=input('ingrese el valor superior del intervalo: ');
    f=inline(f);
    n=input('defina el numero de iteraciones deseadas: ');
    fprintf('\n Intervalos con raiz \n a b \n')
    paso=(b-a)/n;
    x0=a;
    x1=a+paso;
    l=1;
    r=1;
    raiz=0;
    ni=0;
    for i=1:n
        if f(x0)==0
          raiz(r)=x0;
          r=r+1;
            else if f(x0)*f(x1)<0
              fprintf(' %2.4f %2.4f  \n',x0,x1)
              intervalo(l,1)=x0;
              intervalo(l,2)=x1;
              l=l+1;
              ni=ni+1;          
            end  
        end
        x0=x1;
        x1=x1+paso;
    end
    if f(x0)==0
        raiz(r)=x0;
    end
    if ni==0
        fprintf('No se detectaron intervalos con cambio de signo que indiquen la existencia de una raiz\n')
    end

    if raiz~=0
        fprintf('%1.10f es raiz\n',raiz)
    end
    end
     
     
    Comments