Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Lidea del metodo la seguente. Sia data una terna di numeri (a,b,c) iniziale (a < b < c) che comprende il minimo della funzione f, cio tale che f(b) < f(a) e f(b) < f(c). Cerchiamo un punto x interno allintervallo [a, c] tale che una delle due terne (a, b, x) (nel caso f(b) < f(x)) oppure (b,x,c) (nel caso opposto, f(b) > f(x)) comprende il minimo. Il problema quello di trovare la strategia ottimale per determinare il nuovo punto x. Poniamo (b - a) / (c - a) = W e quindi (c - b) / (c - a) = 1 - W ; inoltre poniamo anche (x - b) / (c - a) = Z. Nel primo caso, corrispondente alla terna (a, b, x) , lintervallo [a, x] ha lunghezza relativa a quello iniziale [a, c] pari a W + Z; nel secondo caso, corrispondente alla terna (b, x, c) il nuovo intervallo [b, c] e quindi di lunghezza relativa ad [a, c] pari a 1 - W. Se vogliamo minimizzare il caso peggiore, dobbiamo prendere le due lunghezze relative uguali, cio
(1)
Z=1-2W
Si vede subito che x - c = b - a . Poich Z > 0 implica W < 1/2 si ha che x appartiene allintervallo [b, c], che pi grande dellintervallo [a, b]. Unulteriore determinazione si ottiene applicando una similarit di scala; cio se la scelta di x e quindi di Z corrisponde ad un valore ottimale, lo stesso deve valere della iterazione precedente che ha portato a b e quindi di W. Perci x deve essere posto di una frazione tra b e c di quanto b lo era tra a e c, cio
Z/(1-W) =W
(3) che d
W2 - 3 W + 1 = 0
(4)
W = (3 - 5) / 2 0.038197
Notiamo che W coincide con la frazione di Fibonacci F1 . Lalgoritmo si puo pertanto formalizzare nel modo seguente. Ricordiamo le seguenti frazioni di Fibonacci F1 =(3- 5)/2 ; F2 =( 5-1)/2 (F1+F2 =1; F1 =(F2)2 ) Consideriamo le valutazioni della funzione in tre punti, x3(0) (ultimo punto), x2(0) , x1(0) e sia f(x3(0)) f(x2(0)). Siano x3(k), x1(k) , x2(k) , i tre punti al passo k-esimo. Poniamo D(k) = x3(k) - x1(k) Lintervallo D(k+1) calcolato nel modo seguente: Poniamo
y1(k) = x1(k) +F1 D(k) y2(k) = x1(k) +F2 D(k) = x3(k) -F1D(k)
Se f(y1(k)) < f(y2(k)) : D(k+1) =(y2(k) - x1(k) ) ; x1(k+1) = x1(k) ; x3(k+1) = y2(k) Se f(y1(k)) > f(y2(k) ) : D(k+1) =( x3(k) - y1(k) ) ; x1(k+1) = y1(k) ; x3(k+1) = x3(k) Se f(y1(k)) = f(y2(k) ) : D(k+1) =( y2(k) - x1(k) )= ( x3(k) - y1(k) ); x1(k+1) = x1(k) ; x3(k+1) = y2(k) oppure x1(k+1) = y1(k) ; x3(k+1) = x3(k) .
Un approccio ottimale sembra essere quello di combinare passi di interpolazione inversa parabolica e passi di sezione aurea.