Ottimizzazione

Messaggioda Marss_8 » 05/01/2019, 01:01

Salve a tutti. Grazie in anticipo per l'attenzione e perdonatemi per il titolo vago, non sapevo proprio cosa metterci.
Stavo studiando per conto mio un problema di ottimizzazione e sono arrivato a questa equazione
$ ax+b+c*sum_(i)(x-x_i)/sqrt((x-x_i)^2 + (y-y_i)^2)=0 $
che avrei voluto esplicitare in x. La sommatoria va da i=1 a n. a, b, c, x_i, y, y_i sono tutte da intendersi come delle costanti, almeno in questo primo momento.
Visto che mi sembra impossibile esplicitare x da questa equazione, mi chiedevo se fosse possibile almeno ottenerla approssimata col calcolo numerico.
Tuttavia non ho ancora studiato il calcolo numerico, per questo ho deciso di chiedere cosa ne pare a voi prima di gettarmi nello studio della materia a zonzo. Quello che mi demoralizza un po' è che x compare molte volte nell'equazione, 2n+1 volte a essere preciso, con n che nella pratica sarebbero numeri nell'ordine di grandezza di 100 o 1000... Forse è troppo anche per il calcolo numerico? :cry:
Marss_8
Starting Member
Starting Member
 
Messaggio: 14 di 42
Iscritto il: 11/01/2017, 18:00

Re: Ottimizzazione

Messaggioda feddy » 05/01/2019, 10:45

Ciao,

in sostanza vuoi azzerare la funzione $f(x)=ax+b+c \sum_{i=1}^{n} \frac{x-x_i}{\sqrt{(x-x_i)^2+(y-y_i)^2}}$. Non è che la $x$ la espliciti. Se ammette soluzione il problema, trovi esattamente il valore numerico.Saresti in grado di provare che ammetta (almeno) uno zero tale equazione? Per farlo servirebbe sapere almeno se le costanti in gioco sono positive o meno. Un metodo di bisezione dovrebbe andare bene, tuttavia se non hai fatto calcolo numerico non so nemmeno se tu abbia MatLab/Octave per testare il tutto. Il metodo di Newton comporta il calcolo della derivata di $f(x)$, che se vuoi puoi fare. Oppure un metodo di punto fisso e ricondursi a un'equazione del tipo $g(x)=x$. Tuttavia qui serve che la derivata prima sia limitata, in particolare $|g'(x)| <1$ (la distanza tra le soluzioni è moltiplicata per questo fattore e dunque la convergenza viene raggiunta solo in tal caso). Nota che una scrittura del tipo $x=g(x)$ potrebbe essere fatta con $g(x)=- b- c \sum_{i=1}^{n} \frac{x-x_i}{\sqrt{(x-x_i)^2+(y-y_i)^2}}$, ma va verificato che sia $|g'(x)| <1$, e senza ulteriori informazioni questo non è assolutamente vero.
Come vedi, ci sono diverse strategie. Partire subito e buttare l'espressione dentro a solver tipo Wolfram etc. può essere una soluzione, ma se vuoi farlo da te, queste sono le strade diciamo.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2346 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA

Re: Ottimizzazione

Messaggioda Marss_8 » 05/01/2019, 15:39

Ciao feddy, grazie per la risposta.
L'equazione di sicuro ammette uno zero, per via del suo significato geometrico. Tuttavia non posso garantire mai l'unicità della soluzione (anzi, dato il significato geometrico, è molto probabile che abbia diverse soluzioni). Considerando che la funzione data è una derivata $ E'(x)=0 $ , sto cercando il punto di minimo assoluto di $ E(x) $ . Perciò, penso di non poter tralasciare alcuno zero, dal momento che ogni zero potrebbe essere il punto di minimo assoluto. Penso di poter sempre sovrastimare il numero di zeri di E(x), con alcuni accorgimenti, ma non so se serva allo scopo.

Se questo suona abbastanza difficile, quello che mi deprime di più è che nel caso più generale, y non è costante, e che quindi, essendo interessato ai punti (x,y) minimizzanti, ne risulti che devo studiare anche la derivata $ dE/dy=0 $, che ha questa forma:
$ ay+d+c*sum_(i)(y-y_i)/sqrt((x-x_i)^2 + (y-y_i)^2)=0 $
Immagino che il problema allora diventi di trovare una curva sul piano xOy che annulli dE/dx, e una che annulli dE/dy. E poi di intersecare le due curve, trovando così i punti stazionari, e da lì, il punto di minimo assoluto.
Però mi chiedo se esistano algoritmi di calcolo numerico per la soluzione di funzioni continue di due o più variabili...
Marss_8
Starting Member
Starting Member
 
Messaggio: 15 di 42
Iscritto il: 11/01/2017, 18:00

Re: Ottimizzazione

Messaggioda feddy » 05/01/2019, 15:48

Nel caso consideri la $x$ come l'unica variabile, e tutto il resto è noto, il problema "nella pratica" non è difficile. Intendo, se non vuoi metterti a scrivere il metodo di Newton esistono già solutori di problemi di questo tipo. Veramente, basterebbe wolfram alpha.
Avatar utente
feddy
Moderatore
Moderatore
 
Messaggio: 2351 di 5934
Iscritto il: 26/06/2016, 00:25
Località: SISSA


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite