Domanda:
Come viene utilizzato il metodo Chebyshev da JPL?
Alexandru Lapusneanu
2018-09-09 05:17:36 UTC
view on stackexchange narkive permalink

Nei pacchetti DE, la NASA ci fornisce una serie di coefficienti per l'approssimazione di Chebyshev. A quanto ho capito, quelle approssimazioni sono date da una serie di polinomi $ T_n $ per l'intervallo $ [- 1,1] $. Quindi consideriamo $ f (t) $ $ \ sum_i a_i T_i (\ tau) $ (dove $ \ tau $ è il tempo normalizzato). Che cos'è $ a_i $ e quali sono i suoi valori?

Quindi consideriamo un'approssimazione utilizzando una serie di Taylor definita come $ f (t) = \ sum_i b_i \ tau ^ i $. Cos'è $ b_i $? È una funzione di Bessel?

Le ultime due relazioni rappresentano l'algoritmo di Clenshaw. Qui non capisco esattamente come funziona. Inoltre il numero di 13 coefficienti ha qualcosa a che fare con il fenomeno di Runge?

Di seguito sono riportate le equazioni da 3.52 a 3.59, dalla sezione 3.3.3 (Approssimazione di Chebychev) nel libro Orbite satellitari: modelli, metodi and Applications * di De Oliver Montenbruck e Eberhard Gill Springer 2000, ISBN 978-3-642-58351-3 che è visualizzabile su books.google.com

image12323

enter image description here

enter image description here

enter image description here

Sarebbe fantastico se potessi aggiungere un collegamento alla fonte che stai leggendo.
https://books.google.com/books?id=tLU-wjQktoMC&printsec=frontcover&dq=satellite+orbits&hl=ro&sa=X&ved=0ahUKEwjUkJfc1a3dAhWDp4sKHU1xCsgQ6wEIKDAA#v=onepage&q=chebyshev&f=false
È un libro fantastico, comunque!
Due risposte:
Mark Adler
2018-09-09 09:44:47 UTC
view on stackexchange narkive permalink

I $ a_i $ sono i coefficienti per l'approssimazione di Chebyshev. Come dici tu, la NASA ce li fornisce. Questo è ciò che trovi nei file DE, ad es. de430.bsp. (Non fare clic su questo a meno che non si desideri scaricare un file> 100 MB.) NASA / JPL necessitava di un modo per fornire funzioni di tempo ad alta risoluzione e alta precisione per le posizioni dei pianeti, e il modo più compatto erano i coefficienti di Chebyshev polinomi. Le funzioni sono suddivise in piccoli intervalli, entro i quali sono validi i coefficienti e le funzioni risultanti.

No, i $ b_i $ non sono funzioni di Bessel . Sono i coefficienti di una serie di Taylor che stima $ f $ su $ \ tau $ per quell'intervallo . Quell'equazione è stata estratta dal contesto, dove quel contesto discuteva perché i polinomi di Chebyshev, $ T_n \! \ Left (\ tau \ right) $ span > vengono utilizzati per l'approssimazione al posto di una serie di Taylor, che utilizza i polinomi $ \ tau ^ n $ . Il motivo è che un'approssimazione di Chebyshev richiederà meno termini per la stessa precisione.

L ' algoritmo di Clenshaw è semplicemente un modo sia per generare i polinomi di Chebyshev sia per moltiplicare per $ a_i $ e sommali, il tutto contemporaneamente per ridurre al minimo il numero di operazioni richieste. È ben descritto nella pagina di Wikipedia collegata e può essere facilmente derivato dalla relazione di ricorrenza per i polinomi di Chebyshev vicino alla parte superiore dell'immagine.

[Le effemeridi planetarie e lunari DE430 e DE431] (https://ipnpr.jpl.nasa.gov/progress_report/42-196/196C.pdf)
L'errore in un'approssimazione di Chebyshev non è piatto. Oscilla ed è vicino a quello del polinomio minimax dello stesso ordine. La differenza tra una funzione ben comportata $ f (t) $ e il polinomio minimax di ordine $ n $ che approssima questa funzione su quell'intervallo mostra $ n + 2 $ extrema, dove $ n $ è l'ordine del polinomio, con il valore assoluto della differenza a ciascun estremo è lo stesso. Non esiste alcuna garanzia di come si comporta la funzione di errore per una serie di Taylor, o anche per un'approssimazione di errore quadratico minimo. ...
Un utente di un'approssimazione in genere si preoccupa della cosa peggiore che l'approssimazione può fare per loro, piuttosto che un comportamento meno quadrato. Il fatto che i polinomi di Chebyshev siano vicini al polinomio minimax ideale è il motivo per cui sono usati così ampiamente.
Greg Miller
2020-07-14 19:48:01 UTC
view on stackexchange narkive permalink

L'articolo Formato dei file delle effemeridi JPL presenta un'analisi dettagliata di come utilizzare le effemeridi di sviluppo, inclusa una procedura dettagliata e un codice sorgente di esempio.

Penso che tu abbia un molte informazioni superflue, tutto ciò di cui hai veramente bisogno è:

$$ \ sum_ {i = 1} ^ {n} a_i T_i (x) $$ span>

Dove $ a_i $ sono i coefficienti, $ x $ è il variabile temporale normalizzata sull'intervallo $ [- 1,1] $ e $ T_i (x) $ è definito come segue:

$ T_0 (x) = 0 $

$ T_1 (x) = x $

$ T_ {n + 1} (x) = 2xT_n (x) -T_ {n- 1} (x) $

Codice in Javascript per eseguire questo calcolo:

  function computePolynomial (x, coefficients) {let T = new Array () ; T [0] = 1; T [1] = x; for (let n = 2; n<coefficients.length; n ++) {T [n] = 2 * x * T [n-1] - T [n-2]; } let v = 0; for (let i = coefficients.length-1; i> = 0; i -) {v + = T [i] * coefficients [i]; } return v;} 

Nota che la somma di tutte le variabili viene eseguita in ordine inverso, dalla più piccola alla più grande per evitare l'arrotondamento in virgola mobile.

Il repository Github gmiller123456 / jpl-development-ephemeris ha un codice sorgente non ottimizzato in diversi linguaggi che implementano l'intero processo.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...