Возникает ли ошибка в эфемеридах из-за входных данных, формулы или машины?
Один и тот же результат должен пройти четыре уровня: ввод, алгоритм, внутренняя операция и окончательное отображение. Не путайте их в одну «точность».
Общие алгоритмы и численные вычисления
Программа может отображать много десятичных знаков, но время ввода может быть округлено, в формулах могут быть пропущены члены, а внутренние операции могут терять детализацию. Only by taking apart these steps one by one can you know where the changes are really useful; just changing the output format usually cannot change the previous errors.
Угадай сначала
Если внутренние неверно рассчитанные 125° отображаются как 125,000000000°, можно ли восстановить недостающую десятичную дробь?
Показать ответ и объяснение
не могу — Удлинение строки не восстанавливает информацию, потерянную во время ввода, алгоритма или операции.
Тогда соедините опыт и науку
Введенные данные сначала удаляются?
Сохранение всего нескольких десятичных знаков для T эквивалентно первому выделению времени запроса полужирным шрифтом. Если я позже воспользуюсь точной формулой, я не смогу найти исходный ввод.
Ошибка округления ввода ≠ Ошибка аппроксимации формулы
Какие члены опущены в самой формуле?
Активное исключение T² и T³ изменит результаты. Это различие вызвано выбором алгоритма и не может быть исправлено добавлением нескольких нулей в последнюю строку.
Сравните полную выбранную версию и пропущенную версию отдельно.
Машины могут сохранять лишь ограниченное количество деталей
Большой угол сначала рассчитывается до сотен тысяч градусов, а затем нормализуется, что обнажает недостаточные внутренние эффективные биты. Когда cos малого угла близок к 1, включенный угол может быть потерян, если вы напрямую отмените расчет.
Выберите численно стабильный маршрут расчета
Наконец решите, как отображать
В примере с Нептуном в оригинальной книге сначала вычисляется полный угол, а затем округляется до 19°; два входа сначала округляются до 20°. Количество отображаемых цифр должно соответствовать точности ввода и модели.
Сначала рассчитайте, а затем выполните значимое окончательное округление.
Округление, арифметическое усечение и ошибки с плавающей запятой вводятся отдельно, а затем полностью выбранные записанные и пропущенные версии сравниваются с использованием одних и тех же входных данных. Отображение нескольких дополнительных знаков после запятой в конце результата не повышает автоматически точность научной модели.
попробуй
Сначала посмотрите «только 6 цифр внутри», затем измените отображение на 9 цифр — ответ не будет ближе к эталонному. Условия расширения изменяют входные данные, алгоритм и внутреннюю точность соответственно; Случаи малого угла и окончательного закругления — это отдельные вопросы.
Нет необходимости запоминать символы
- T
- Юлианский век из J2000; 0,4 примерно соответствует J2040.0
- внутренние действительные биты
- Точность десятичной операции, смоделированная в этом уроке, не требует изменения аппаратного формата JS.
- Показать десятичные знаки
- Строковый формат, не меняет процесс расчета
- acos / atan2
- Два математически эквивалентных, но численно разных пути малоугловой инверсии
Алгоритм, точность и область применения
Дополните главу 2 о различиях между точностью, необходимой для целей расчета, точностью машины и точностью итогового отчета, чтобы избежать повторения вычитания ближайших чисел на старом уроке взвешивания. Эксперимент 0 использует полином средней лунной небесной долготы Printed Page 17 218.3164477+481267.88123421T−0.0015786T²+0.0000019T³; это усеченная книжная формула главы 2, а не полная лунная истинная небесная долгота. Вход сравнения T округляется, члены более высокого порядка активно опускаются, десятичные значащие цифры моделируются операция за операцией, и, наконец, отображаются четыре уровня эффектов. Так называемая ссылка — это математический результат двойной точности той же книжной формулы, а не измеренное истинное значение или верхняя граница истинной ошибки эфемерид. В эксперименте 1 используется предупреждение о малом угле из главы 1/2: atan2(sinθ, cosθ) сравнивается с acos(cosθ); первый до сих пор не может восстановить утраченную входную информацию. Эксперимент 2 воспроизводит ошибку преждевременного округления Нептуна на Зоннеберге в 1996 году и составила 1,4+1,4; Эксперимент 3 воспроизводит непрерывный квадрат 1,0000001 и использует log1p/exp для независимой проверки его с эталонным значением в книге; Эксперимент 4 воспроизводит x ←(9x+1)x−1, но математическая фиксированная точка 1/3 будет отклоняться при операциях с плавающей запятой. Вывод оригинальной книги, специфичный для аппаратного обеспечения, не предназначен для фиксированного результата для всех машин. Если итерация превышает 1e100 или останавливается в течение неограниченного времени, диапазон T модели ограничивается ±1 столетием; см. также Курс планетарного освещения/величины, чтобы узнать количество значащих цифр величины.
мое понимание, проверка
Полная формула отличается от пропущенной версии. Какой уровень ошибок в основном вызван?
аппроксимация алгоритма — Пропущенные термины напрямую меняют математическую модель расчета.
Если cos округлил очень маленький угол до 1, можно ли восстановить исходный угол с помощью acos?
Нет, вам необходимо сохранить более достоверную информацию или изменить стабильный маршрут. — Тот же вход 1 не может отличить, является ли он изначально нулевым углом или очень маленьким ненулевым углом.
Следует ли просто округлить 15,88 марта до 16 марта?
Нет, дата все равно относится к 15-му числу. — Это означает 0,88 дня после полуночи 15-го числа. Сегментация метки даты — это не то же самое, что окончательное числовое округление.
Сначала определите, на каком уровне находится ошибка, а затем решите, следует ли дополнить данные, изменить формулу, изменить численный метод или просто скорректировать количество сообщаемых цифр.
Jean Meeus · Astronomical Algorithms, 2nd ed. · Нет. 2 глава
Общие алгоритмы и численные вычисления · Все интерактивные курсы