Un esempio per curva è mostrato come sotto. Il punto del gomito potrebbe essere x = 3 o 4. Come calcolare il gomito per una curva automaticamente e matematicamente?Calcola il 'gomito' per una curva automaticamente e matematicamente
risposta
Si potrebbe voler cercare il punto con la massima derivata seconda assoluta che, per una serie di punti discreti x[i]
come hai lì, può essere approssimata con una differenza centrale:
secondDerivative[i] = x[i+1] + x[i-1] - 2 * x[i]
Come notato sopra, ciò che si vuole veramente è il punto con la massima curvatura, ma la seconda derivata lo farà, e questa differenza centrale è un buon proxy per la seconda derivata.
I dati forniti sono rumorosi. Dovrai essere più attento di così. Il tuo suggerimento potrebbe identificare, ad esempio, x = 12 o x = 19. – Josephine
Grazie per i vostri suggerimenti. Prendo la tua idea come le mie soluzioni. – Jie
Ciao, Chris, mi hai dato una buona risposta. Puoi dirmi se c'è un riferimento per questa soluzione? Voglio redigere un documento e quindi ho bisogno di un riferimento per questa soluzione. – Jie
Funzioni come questo sono di solito chiamati L-curves per le loro forme. Appaiono quando risolvono problemi mal posti attraverso la regolarizzazione.
Il punto "a gomito" è il punto sulla curva con la derivata assoluta assoluta massima.
Quello che vuoi veramente è il punto con il massimo curvature. Quando la pendenza è molto più piccola di 1, questa può essere approssimata dalla seconda derivata (come indicato da @ebo), ma questo non è sempre il caso.
Si consiglia di chiedere che qui: http://math.stackexchange.com/. Ma in ogni caso è necessario fornire un contesto su come viene prodotta la curva e sulle possibili forme che può assumere. – TToni
possibile duplicato di [trovare il miglior punto di trade-off su una curva] (http://stackoverflow.com/questions/2018178/finding-the-best-trade-off-point-on-a-curve) – Jacob
C'è un'ottima risposta a questo problema. Controlla il link che ho postato come possibile duplicato. – Jacob