[pyar] Buscar máximo

Alejandro Santos listas en alejolp.com
Vie Ene 17 19:14:06 ART 2014


2014/1/17 Angel Java Lopez <ajlopez2000 en gmail.com>:
> se puede garantizar el maximo global, no hace falta el aleatorio por las
> condiciones del problema, si entendi bien.
>

La idea del problema es que, dadas las condiciones, existe un
algoritmo que siempre devuelve el maximo.

> se toma el punto medio entre a y b, digamos a1
>
> se calcula f(a1) (por lo que veo del problema, deberia dar f(a) <= f(a1) >=
> f(b) (bien podria ser que f(a) o f(b) fueran el maximo
>
> se toma el punto entre a y a1, digamos a2
> se toma el punto entre a1 y b, digamos b2
>
> si f(a2) > f(b2), repetimos todo de nuevo, con los puntos a,a2,a1
> Si f(a2) < f(b2), repetimos todo de nuevo, con los puntos a1,b2,b
>
> Esta bien?
>

Casi! pero no, porque el máximo puede estar entre [a1, b2] o [a2, a1],
y acá estas descartando estos intervalos. Igual viene por ahi la mano,
capaz estás tomando un punto de mas...

> Ah! me parece que al primer intento f(a) < f(a1) < f(b), el maximo es b. Y
> al reves (esto asumiendo que hay UN SOLO PUNTO donde esta el maximo, bien
> podria ser f(x) = 3, en todo el intervalo, pero creo entender que no es el
> caso)
>

Exacto, te diste cuenta de algo que no está claro en el problema
original, gracias. Un contraejemplo sería la funcion f(x)=3 excepto en
un subintervalo (y, z) donde tenga una pequeña lomita, el máximo de f
va a estar en el centro de la lomita.

Precisamente:

Sea f continua en [A, B] con un maximo en f(x),

+ para todo a, b, con A <= a < b <= x, tenemos f(a) < f(b), y
+ para todo a, b, con x <= a < b <= B, tenemos f(a) > f(b).

Por ejemplo, f(x) = sin(x), en [0, PI].

-- 
Alejandro Santos


More information about the pyar mailing list