В пакетах DE НАСА дает нам ряд коэффициентов для приближения Чебышева. Насколько я понимаю, эти приближения задаются рядом полиномов для интервала . Затем мы считаем быть (куда нормированное время). Что такое и каковы его значения?
Затем мы рассмотрим аппроксимацию с помощью ряда Тейлора, определяемого как . Что такое ? Является ли это функцией Бесселя?
Последние два соотношения представляют алгоритм Кленшоу. Вот я не совсем понимаю, как это работает. Также имеет ли число 13 коэффициентов какое-то отношение к феномену Рунге?
Ниже приведены уравнения с 3.52 по 3.59 из раздела 3.3.3 (аппроксимация Чебычева) в книге Де Оливера Монтенбрука и Эберхарда Гилла Спрингера « Спутниковые орбиты: модели, методы и приложенияISBN 978-3-642-58351-3
» * , 2000 г., которую можно просмотреть на books.google.com.
The — коэффициенты чебышевского приближения. Как вы говорите, НАСА дает нам их. Это то, что вы найдете в файлах DE, например, de430.bsp . (Не нажимайте на нее, если не хотите загрузить файл >100 МБ.) НАСА/Лаборатории реактивного движения нуждался в способе обеспечить функции времени с высоким разрешением и высокой точностью для положений планет, и самым компактным способом были коэффициенты Чебышева. многочлены. Функции разбиваются на небольшие интервалы, в пределах которых действуют коэффициенты и результирующие функции.
Нет, не являются функциями Бесселя. Это коэффициенты ряда Тейлора, который оценивает над для этого интервала. Это уравнение было вырвано из контекста, поскольку в этом контексте обсуждалось, почему многочлены Чебышева, используются для аппроксимации вместо ряда Тейлора, в котором используются многочлены . Причина в том, что приближение Чебышева потребует меньше членов для той же точности.
Алгоритм Кленшоу — это просто способ генерировать полиномы Чебышева и умножать на и складывайте их одновременно, чтобы свести к минимуму количество необходимых операций. Это хорошо описано на связанной странице Википедии и может быть легко получено из рекуррентного соотношения для полиномов Чебышева в верхней части вашего изображения.
В статье « Формат файлов эфемерид JPL » подробно описано, как использовать эфемериды разработки, включая пример пошагового руководства и пример исходного кода.
Я думаю, что у вас много лишней информации, все, что вам действительно нужно, это:
Где коэффициенты, - временная переменная, нормированная на интервал , и определяется следующим образом:
Код в Javascript для выполнения этого вычисления:
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;
}
Обратите внимание, что суммирование всех переменных выполняется в обратном порядке, от наименьшего к наибольшему, чтобы избежать округления с плавающей запятой.
Репозиторий Github gmiller123456/jpl-development-ephemeris содержит неоптимизированный исходный код на нескольких языках, реализующих весь процесс.
ооо
Александру Лапушняну
ооо