Resumen: Entrega nº10 del curso Bases de la programación Nivel I.
Codificación aprenderaprogramar.com: CU00111A
EJERCICIO EJEMPLO USO DE ITERACIÓN
Objetivo: Buscar el valor de x que siendo un número real positivo hace f(x) = 5x2 - 3x - 4 igual a cero de acuerdo con estas reglas.
1. Se admite la desviación de f(x) respecto al valor pedido de ± 0'01.
2. Hemos perdido toda nuestra memoria: no se admite el uso de fórmulas o estrategias de resolución gráficas o analíticas: debemos basarnos en un tanteo puro ordenado (no aleatorio) y constante.
3. Se sabe que la solución está entre 1 y 10, debiendo comenzar la búsqueda por uno de estos dos extremos.
Se pide: definir el esquema de búsqueda limitando el número máximo de iteraciones.
SOLUCIÓN:
Primer paso: reflexionar sobre el problema. Muy rápidamente podemos plantear:
Vayamos a todo lo que son datos para resolver el problema. Para acostumbrarnos a resolver problemas genéricos, es decir, con variables no fijadas, usaremos letras en vez de números.
Datos:
· f(x) = ax2 + bx + c , función.
· e , error admisible.
· lim inf , límite inferior del intervalo de búsqueda.
· lim sup , límite superior del intervalo de búsqueda.
· int , valor incremental para cada tanteo.
· Nmax , número máximo de iteraciones.
Los únicos datos que nos faltan son los de incrementos en cada tanteo y número máximo de iteraciones. Podríamos hacer muchas cosas, pero nuestro planteamiento inicial va a ser el siguiente:
· Trataremos de barrer todo el intervalo de búsqueda.
· Trataremos de no superar las 104 iteraciones.
· En nuestro caso el intervalo de búsqueda comprende 10 – 1 = 9 enteros.
sería el intervalo para realizar 10000 tanteos. Vamos a redondear a 0,001 con lo cual
· Cerraremos el asunto estableciendo: int = ± 0,001 ; Nmax = 9000
Pasemos ahora al procedimiento. En primer lugar, ¿Qué extremo del intervalo elegir? Optaremos por evaluar las funciones en ambos puntos, y empezaremos por aquel punto cuya imagen sea más próxima a cero. Es decir, si |f(lim inf)| < |f(lim sup)| entonces se comienza por límite inferior y en caso contrario por límite superior. Evaluaremos la imagen del punto inicial y si resulta inferior o igual al valor admisible e, daremos por resuelto el problema. En caso contrario, evaluaremos si hemos llegado al número máximo de iteraciones, y si no es así, volveremos a repetir el proceso para un valor a evaluar igual al anterior más el intervalo de búsqueda. Por último haremos este esquema reflejo de todo lo anterior.
Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.
Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.