Minimizzazione di funzione

gabriele812
Salve, vorrei porvi una domanda, come si minimizza una funzione di questo tipo?
$ f(a,b,c)=(y(1)-x(1)*cos(a))^2+(y(2)-x(2)*cos(b))^2+(y(3)-x(3)*cos(c))^2 $
è una domanda non legata alla risoluzione di un esercizio ma ad una mia semplice curiosità...
Inizialmente ho pensato che si potesse derivare prima per a poi per b e poi per c eguagliare ciascuna dervivata a zero e mettere a sistema ma ciò non da una soluzione valida, cosa fareste?

Risposte
ciampax
Fammi capire, la funzione è

[tex]$f(a,b,c)=(y_1-x_1\cos(a))^2+(y_2-x_2\cos(b))^2+(y_3-x_3\cos(c))^2$[/tex]

con $(x_1,y_1),\ (x_2,y_2),\ (x_3,y_3)$ punti fissati, giusto?

gabriele812
si esatto

ciampax
La funzione è di tre variabili... il metodo di derivare va bene, ma quello ti restituisce solo i punti stazionari. Per poter calcolare i minimi (sempre che ce ne siano, e ce ne sono), dovresti usare l'Hessiana della funzione.
Ma io ti propongo un'altra soluzione. Poni le quantità tra parentesi pari rispettivamente a $X,Y,Z$, per cui la tua funzione risulta

[tex]$W=f(X,Y,Z)=X^2+Y^2+Z^2$[/tex]

Visto che $W$ è la somma di tre quantità quadrate, quindi positive, risulterà sempre $W\geq 0$. Il minimo allora si ha per $W=0$ e quindi se e solo se $X=Y=Z=0$... da queste considerazioni segue che il minimo si ha per tutti i punti $(a,b,c)$ tali che

[tex]$\cos(a)=\frac{y_1}{x_1},\qquad \cos(b)=\frac{y_2}{x_2},\qquad \cos(c)=\frac{y_3}{x_3}$[/tex]

Ovviamente la cosa funziona solo se $|y_i/x_i|\leq 1,\ i=1,2,3$.

gabriele812
grazie ciampax, cmq intendevo proprio nei casi scomodi in cui il minimo non può essere individuato eguagliando a zero ciascun quadrato.
mi potresti fare un esempio con la hessiana?
In pratica verrebbe una matrice diagonale, moltiplico i valori sulla diagonale e poi?

ciampax
No aspetta, forse non hai capito. La funzione che scrivi tu ha minimo nei punti che ho scritto solo se puoi risolvere le equazioni relative ai coseni. Se avessi il punto $(1,3)$, il rapporto viene $3$ e non esiste nessun valore di $a$ tale che $\cos(a)=3$.

Di esempi con l'Hessiana e di calcolo in generale di punti di minimo/massimo per funzioni di più variabili è pieno il forum.

gabriele812
"ciampax":
No aspetta, forse non hai capito. La funzione che scrivi tu ha minimo nei punti che ho scritto solo se puoi risolvere le equazioni relative ai coseni. Se avessi il punto $(1,3)$, il rapporto viene $3$ e non esiste nessun valore di $a$ tale che $\cos(a)=3$.

Di esempi con l'Hessiana e di calcolo in generale di punti di minimo/massimo per funzioni di più variabili è pieno il forum.



avevo capito , forse non mi sono spiegato per me la funzione ha sempre un minimo ma potrebbe non essere 0 come credo tu intenda, imponendo gli opportuni vincoli è possibile calcolarlo ad esempio tramite il risolutore di Excel,

ciampax
"gabriele81":
[quote="ciampax"]No aspetta, forse non hai capito. La funzione che scrivi tu ha minimo nei punti che ho scritto solo se puoi risolvere le equazioni relative ai coseni. Se avessi il punto $(1,3)$, il rapporto viene $3$ e non esiste nessun valore di $a$ tale che $\cos(a)=3$.

Di esempi con l'Hessiana e di calcolo in generale di punti di minimo/massimo per funzioni di più variabili è pieno il forum.



avevo capito , forse non mi sono spiegato per me la funzione ha sempre un minimo ma potrebbe non essere 0 come credo tu intenda, imponendo gli opportuni vincoli è possibile calcolarlo ad esempio tramite il risolutore di Excel,[/quote]

........cheeeeeeeeee?????????? :-D

gugo82
Poni per semplicità [tex]$\alpha_1=\cos a,\ \alpha_2=\cos b,\ \alpha_3=\cos c$[/tex]; in tal modo la tua funzione si scrive:

[tex]$f(\alpha_1,\alpha_2,\alpha_3) =\sum_{i=1}^3 (y_i-x_i\ \alpha_i)^2$[/tex],

in cui [tex]$(\alpha_1,\alpha_2,\alpha_3) \in [-1,1]^3$[/tex].

L'insieme [tex]$[-1,1]^3$[/tex] è compatto, perciò [tex]$f$[/tex] vi ha massimo e minimo; tali valori possono essere assunti o nell'interno del cubetto, o sulla sua frontiera.
Per determinare gli estremi interni al cubo [tex]$[-1,1]^3$[/tex], basta tener presente che essi sono necessariamente zeri del gradiente di [tex]$f$[/tex] rispetto agli [tex]$\alpha_i$[/tex], che è:

[tex]$\text{D} f(\alpha_1,\alpha_2,\alpha_3) =-2 (x_1\ (y_1-x_1\ \alpha_1), x_2\ (y_2-x_2\ \alpha_2), x_3\ (y_3-x_3\ \alpha_3))$[/tex],

perciò risolvono il sistema:

[tex]$\begin{cases} x_1\ (y_1-x_1\ \alpha_1) =0 \\ x_2\ (y_2-x_2\ \alpha_2) =0 \\ x_3\ (y_3-x_3\ \alpha_3)=0\end{cases}$[/tex].

Per determinare gli estremi presi sulla frontiera, basta andare a guardare cosa succede su ogni faccia e su ogni spigolo del cubetto.
Per esempio, per guardare cosa succede sulla faccia descritta dai punti con [tex]$\alpha_1=1$[/tex], devi considerare la funzione di due variabili [tex]$f(1,\alpha_2,\alpha_3)$[/tex] e studiarla in [tex]$[-1,1]^2$[/tex]; invece, per guardare cosa succede lungo lo spigolo descritto dai punti con [tex]$\alpha_1=1,\alpha_2=-1$[/tex], devi considerare la funzione [tex]$f(1,-1,\alpha_3)$[/tex] e studiarla in [tex]$[-1,1]$[/tex].

Una volta che hai determinato tutti i candidati, calcoli tutti i valori che danno massimi e minimi locali e poi ti prendi il punto corrispondente al minimo assoluto ed al massimo assoluto.

Sono cose lunghe e seccanti, ma semplici.

gabriele812
Ti ringrazio gugo82 sei stato gentilissimo

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.