Valutare la distanza tra due funzioni
ciao a tutti! Sto sviluppando un programma e mi è sorto questo problema:
Mi assegnano un funzione $x=f(t)$ definita in $[0,t_{MAX}]$ per punti, quindi ho una serie di coppie di punti $(t_i,x_i)$; io con il mio programma creo un'altra funzione $y=g(t)$ definita nello stesso intervallo ed ho quindi le coppie di punti $(t_i,y_i)$.
Vorrei sapere come fare a valutare la distanza tra queste funzioni, io pensavo di utilizzare questa formula:
$$D = \frac{1}{t_{MAX}}\cdot \sum_{i=0}^{n} \left|y_i-x_i\right|$$
quello che vorrei cercare di capire è se la funzione $g(t)$ si allontana troppo da $f(t)$
Mi assegnano un funzione $x=f(t)$ definita in $[0,t_{MAX}]$ per punti, quindi ho una serie di coppie di punti $(t_i,x_i)$; io con il mio programma creo un'altra funzione $y=g(t)$ definita nello stesso intervallo ed ho quindi le coppie di punti $(t_i,y_i)$.
Vorrei sapere come fare a valutare la distanza tra queste funzioni, io pensavo di utilizzare questa formula:
$$D = \frac{1}{t_{MAX}}\cdot \sum_{i=0}^{n} \left|y_i-x_i\right|$$
quello che vorrei cercare di capire è se la funzione $g(t)$ si allontana troppo da $f(t)$
Risposte
Dipende da cosa devi fare, ci sono tanti modi per valutare la distanza tra due funzioni. So che in analisi numerica si usa spesso "approssimare ai minimi quadrati", il che significa approssimare tenendo minima la distanza seguente:
\[
D=\sqrt{\sum_i (y_i-x_i)^2}.\]
Se uno parla di "distanza" senza ulteriori specificazioni io tendo a pensare a questa, piuttosto che a quella che proponi tu, che però è una valida alternativa.
\[
D=\sqrt{\sum_i (y_i-x_i)^2}.\]
Se uno parla di "distanza" senza ulteriori specificazioni io tendo a pensare a questa, piuttosto che a quella che proponi tu, che però è una valida alternativa.
Il problema è questo senza entrare nei dettagli: $f(t)$ è un fenomeno fisico di cui non conosco alcune variabili, $g(t)$ è una simulazione dello stesso fenomeno fisico nel quale io "sparo a caso" le variabili che non conosco....
Tutto questo immaginalo "live" nel senso che io simulo nello stesso momento in cui il fenomeno fisico si verifica quindi ho bisogno di uno strumento per vedere se la mia simulazione "diverge" o "converge", in caso di divergenza devo tentare una nuova n-pla di parametri incogniti al fine di trovare quelli giusti.
Il il problema della formulazione che mi hai fornito tu è che questa è sempre crescente con il tempo anche se $x_i-y_i$ rimanesse costante.
potrei fare un controllo puntuale ovvero: $|x_i-y_i|<\varepsilon$ e in caso si verifichi per una coppia di punti interrompere la simulazione ma mi sembra poco efficiace
Tutto questo immaginalo "live" nel senso che io simulo nello stesso momento in cui il fenomeno fisico si verifica quindi ho bisogno di uno strumento per vedere se la mia simulazione "diverge" o "converge", in caso di divergenza devo tentare una nuova n-pla di parametri incogniti al fine di trovare quelli giusti.
Il il problema della formulazione che mi hai fornito tu è che questa è sempre crescente con il tempo anche se $x_i-y_i$ rimanesse costante.
potrei fare un controllo puntuale ovvero: $|x_i-y_i|<\varepsilon$ e in caso si verifichi per una coppia di punti interrompere la simulazione ma mi sembra poco efficiace
Se il problema è solo quello del tempo puoi sempre normalizzare dividendo per \(t_{\mathrm{MAX}}\), esattamente come fai tu nel primo post. In ogni modo, la distanza "euclidea" che propongo io e quella "lineare" che proponi tu sono legate dalle seguenti disuguaglianze:
\[
D_{\mathrm{euclidea}}\le D_{\mathrm{lineare}}\le \sqrt{\text{numero di nodi}}D_{\mathrm{euclidea}}, \]
quindi da un punto di vista qualitativo quale tu scelga è uguale. La distanza "lineare" è più facile da calcolare, e sicuramente se è piccola allora è piccola pure quella euclidea, quindi potrebbe essere una buona scelta, ma solo il tuo modello fisico può essere l'arbitro finale.
\[
D_{\mathrm{euclidea}}\le D_{\mathrm{lineare}}\le \sqrt{\text{numero di nodi}}D_{\mathrm{euclidea}}, \]
quindi da un punto di vista qualitativo quale tu scelga è uguale. La distanza "lineare" è più facile da calcolare, e sicuramente se è piccola allora è piccola pure quella euclidea, quindi potrebbe essere una buona scelta, ma solo il tuo modello fisico può essere l'arbitro finale.
Perfetto! ho le idee più chiare, grazie! Farò una serie di prove e deciderò!