Professional Documents
Culture Documents
INTEGRANTES -> JOSE PABLO SANTIAGO CABRERA - > ERWIS MELCHOR PEREZ
GRUPO 408
LICENCIATURA EN INFORMATICA
METODOS DE BUSQUEDA INCREMENTAL Est dicho que estos tipos de mtodos de bsqueda son mejores que aplicar las tcnicas graficas. Por lo tanto haremos enfoque a dos tipos de mtodos de bsqueda incremental El Mtodo de Biseccin El Mtodo de la Falsa Posicin
Estos mtodos tienen la caracterstica de localizar un intervalo donde la funcin cambie de signo. Entonces la localizacin del cambio de signo se logra con ms exactitud al dividir el intervalo en varios subintervalos. De ah se investiga cada uno de estos subintervalos para encontrar el cambio de signo. Este proceso se repite y la aproximacin a la raz mejora cada vez ms en la medida que los intervalos se dividen en intervalos ms pequeos. PARA EL MTODO DE BISECCIN TENEMOS ESTE ALGORITMO. Paso1: Elija valores iniciales inferior, Xi y superior Xu. Que encierren la raz, de forma tal que la funcin cambie de signo en el intervalo. Esto se verifica comprobando que f(Xi) f(Xu)<0; Paso 2: Una aproximacin de la raz x, se determina mediante: Xi= (Xi+Xu) 2 Paso 3: Realice las siguientes evaluaciones para determinar en que subintervalo esta la raz:
El presente algoritmo es del Mtodo de Biseccin o tambin conocido como el corte binario. El pseudpcodigo anterior fue implementado en el MATLAB para su futura
compilacin y verificacin de errores. De tal manera que se logro hacer cambios en el cdigo, como tal cdigo no mostr error alguno se aplicaron varios ejercicios donde probramos su aplicacin. Uno de ellos es el del problema del paracaidista donde desarrollara mas adelante. REPRESENTACIN DEL METODO DE BISECCION EN MATLAB. printf('\n Calculo de la raz de una ecuacin por mtodo de Biseccin\n\n'); y=input('INGRESE LA FUNCION: ','s'); xl=input('INGRESE EL INTERVALO INFERIOR X(i) : '); xu=input('INGRESE EL INTERVALO SUPERIOR X(s) : '); e=input('INGRESE EL PORCIENTO DE ERROR : '); xi=0; ea=100; c=0; %** SE VERIFICA QUE EL CALCULO DE LA RAIZ ESTE ENTRE EL %INTERVALO x=xl; a=eval(y); x=xu; b=eval(y); cc=a*b; if cc>0 fprintf('\n NO ES VALIDO NO EXISTE RAIZ ENTRE ESTE INTERVALO\n\n'); break end %SE IMPRIMEN LOS VALORES EN FORMA DE LISTA DENTRO DE UN CICLO fprintf('\n\n\tITERA.\t\tX(i)\t\t\tX(s)\t\t\tX(r)\t\t\tE(a)'); while ea>e xr=(xl+xu)/2; fprintf('\n\t%d \t\t%.5f \t\t%.5f \t\t%.5f',c,xl,xu,xr); x=xl; yl=eval(y); x=xr; yr=eval(y); ea=abs((xr-xi)/xr)*100; z=yl*yr; if z<0 xu=xr; end if z>0 xl=xr; end xi=xr; fprintf('\t\t\t\t%.5f',ea); c=c+1; end %SE IMPRIME EL RESULTADO FINAL FUERA DEL CICLO if ea<e fprintf('\n\n\n\nLA RAIZ APROXIMADA ES: %.5f',xr) fprintf('\n\nEL NUMERO DE ITERACIONES FUE: %d\n',c); end
Solucione los siguientes problemas por el mtodo de la diseccion. Problema 1 Determine el coeficiente de arrastre c necesario para que un paracaidista de masa m=68.1 Kg. tenga una velocidad de 40 m/s despus de una cada libre de t =10s. Nota la aceleracin de la gravedad es 9.8 m/(s*s). Con los valores iniciales en Xi=12; Xu=16; Solucin con el algoritmo.
Problema 2 Localice la raz de F(x)= (x^10)-1 Entre los valores de x(i)=0, x(s)=1.3.
PARA EL METODO DE LA FALSA POSICION El mtodo de la falsa posicin es uno de los ms usados para encontrar races en ciertos problemas que solo se pueden llegar a su resultado mediante aproximaciones. Este mtodo tiene la caracterstica de reducir ampliamente el intervalo que contiene a la raz mediante las iteraciones que se generan dentro del cdigo de este. Pseudocodigo para resolver por medio de la falsa posicin.
El mtodo de la regla falsa sigue los siguientes pasos:
Sea
continua,
tales que
iii) Evaluar
En este caso se tiene que y por lo El proceso se vuelve a repetir con el nuevo intervalo, hasta que:
tanto
ya
localizamos
la
raz.
fprintf('\t*** VALOR ERRONEO, NO PUEDE SER NEGATIVO O MAYOR QUE 100 ***\n'); end end Z(1,8)=101; I=1; Z(1,2)=A; Z(1,4)=C; Salir=1; while (Z(I,8)>=R & I<=N) Z(I,1)=I-1; x=Z(I,2); X=Z(I,2); Z(I,5)=eval(Funcion); x=Z(I,4); X=Z(I,4); Z(I,7)=eval(Funcion); if I==1 if Z(I,5)*Z(I,7)>0 fprintf('\t\t\t NO EXISTEN RAICES REALES EN EL INTERVALO DADO \n'); Salir=0; break; end end Z(I,3)=(Z(I,2)*Z(I,7) - Z(I,4)*Z(I,5))/(Z(I,7)-Z(I,5)); X=Z(I,3);x=Z(I,3); Z(I,6)=eval(Funcion); if Z(I,5)*Z(I,6)<0 Z(I+1,2)=Z(I,2); x=Z(I+1,2); X=Z(I+1,2); Z(I+1,5)=eval(Funcion); Z(I+1,4)=Z(I,3); x=Z(I+1,4); X=Z(I+1,4); Z(I+1,7)=eval(Funcion); elseif Z(I,6)*Z(I,7)<0 Z(I+1,2)=Z(I,3); x=Z(I+1,2); X=Z(I+1,2); Z(I+1,5)=eval(Funcion); Z(I+1,4)=Z(I,4); x=Z(I+1,4); X=Z(I+1,4); Z(I+1,7)=eval(Funcion); end Z(I+1,3)=(Z(I+1,2)*Z(I+1,7) - Z(I+1,4)*Z(I+1,5))/(Z(I+1,7)-Z(I+1,5)); if Z(I+1,3)~=0 Z(I+1,8)=abs((Z(I+1,3)-Z(I,3))/Z(I+1,3))*100; end I=I+1; end if Salir==1 fprintf('\n\n\tITERA.\t\tX(i)\t\t\tX(r)\t\t\tX(s)\t\t\tE(a)'); for J=1:I if J==1 fprintf('\n\t%d \t\t%.5f \t\t%.5f \t\t%.5f \t\t%.5f \t\t------',J-1,Z(J,2),Z(J,3),Z(J,4)); else fprintf('\n\t%d \t\t%.5f \t\t%.5f \t\t%.5f \t\t%.5f \t\t%.5f \t\t%.5f \t\t%.5f',J1,Z(J,2),Z(J,3),Z(J,4),Z(J,8)); end end fprintf('\n\n\tLA RAIZ APROXIMADA DE LA FUNCION INGRESADA ES: %.5f\n\n',Z(J,3)); end
Solucione los siguientes problemas por el mtodo de la falsa posicin. Problema 1 Determine el coeficiente de arrastre c necesario para que un paracaidista de masa m=68.1 Kg. tenga una velocidad de 40 m/s despus de una cada libre de t =10s. Nota la aceleracin de la gravedad es 9.8 m/(s*s). Con los valores iniciales en Xi=12; Xu=16; Solucin con el algoritmo.
Problema 2 Localice la raz de F(x)= (x^10)-1 Entre los valores de x(i)=0, x(s)=1.3.