Текст (PDF):
Читать
Скачать
Введение
Решение практических задач сопровождается накоплением ошибок, формированием полной погрешности, в которую входят погрешности арифметических действий и вычислений аналитических функций. Появляется проблема записи приближенного числа, оценки его точности. Необходимо определить верные значащие цифры, способы округления числа до нужного разряда, выявить сомнительные цифры, не участвующие в формировании точности результата.
Чем больше в числе верных значащих цифр, тем меньше интервал неопределенности неточного числа. Возникает соблазн сохранения большого количества цифр при вычислениях для повышения точности результата. Вычисления с помощью инструментальных средств, применение функций или методов, позволяющих получить ответ с заданным увеличенным количеством десятичных знаков, создают иллюзию получения более точного результата. Тянущиеся в сложных действиях сомнительные цифры загромождают вычисления. В работе «Лекции о приближенных вычислениях» А. Н. Крылов писал: «Приближенное число следует писать так, чтобы в нем все значащие цифры, кроме последней, были верными, и лишь последняя цифра была сомнительной» [1, с. 17]. В работах Б. П. Демидовича и И. А. Марона [2], П. Ф. Фильчакова [3], М. П. Лапчика [4], Nicholas J. Higham [5] затронуты вопросы вычисления погрешностей и определения верных цифр, но отсутствует систематизация данных проблем, выявление верных цифр в результате действий при рассмотрении сразу всех представленных арифметических операций в зависимости от входных погрешностей компонентов действий, объединение полученных выводов в единую модель. Представленная в работе модель определения верных значащих цифр позволит на каждом этапе вычислений получить точное значение количества верных цифр, провести округление неточных чисел и отсечение сомнительных цифр, не дающих вклада
в точность результата.
Теоретические положения
Во входных данных вычислительных задач кроме неточных чисел оперируют также абсолютными (∆) или относительными (δ) погрешностями. Если известно точное значение числа, то абсолютная погрешность равна модулю разности точного значения числа и приближенного значения, относительная погрешность вычисляется по формуле отношения абсолютной погрешности и точного значения числа. В прикладных задачах часто точное значение числа неизвестно, тогда за абсолютные и относительные погрешности принимают их предельные значения [3, 6]. Выведены формулы вычисления относительной погрешности с учетом первых значащих цифр неточного числа [2].
Абсолютная погрешность приближенного числа устанавливает границы, в которых лежит точное число, и определяет, какие из значащих цифр являются верными. Правила вычисления с точными числами дают однозначное количество значащих
и верных цифр в результате, но они не распространяются на неточные числа. Первые n значащих цифр неточного числа могут быть верными в строгом и широком смысле [4].
Относительная погрешность является мерой точности результата и определяет количество верных цифр. После определения количества верных цифр число округляют так, чтобы погрешность округления была минимальной. Если вычисления промежуточные, оставляют одну сомнительную цифру, а в окончательном результате ее отбрасывают. Погрешности записывают с одной или двумя значащими цифрами и округляют с завышением.
Решение практических задач, например вычисление координат космических объектов, связаны
с выполнением арифметических действий и вычислением аналитических функций. Оперируя неточными числами, оценками ошибок, получают приближенные результаты с ошибками, связанными с исходными. Модель определения верных значащих цифр помогает оценить количество цифр, которые целесообразно зафиксировать в ответе на каждом этапе вычислений, четко понимать, сколько оставлено сомнительных цифр, которые не могут влиять на точность результата. В зависимости от вида вычислительных действий, наличия погрешностей неточных чисел на входе модели используется определенная часть знакового модуля модели в виде таблицы, и на выходе получается точное количество верных значащих цифр (рис. 1); в таблице арифметические действия записаны
в заголовках столбцов (рис. 2).
Рис. 1. Модель со смешанным входом и точным выходом
Fig. 1. Model with mixed input and precise output
Входные
значения Сложение Вычитание Умножение Деление Возведение
в n-ю степень Извлечение
корня n-й
степени Вычисление
аналитической
функции
Δ для двух компонентов действий
и аналитических функций
Определение верных значащих цифр по абсолютным
погрешностям Разряды верных цифр результата действий
не превосходят левый разряд итоговой
абсолютной
погрешности.
Разряды верных значащих цифр результата не превосходят левый разряд полученной абсолютной погрешности. Количество верных цифр находится аналогично умножению.
Количество верных цифр находится аналогично вычислению аналитической функции Разряды верных цифр результата не превосходят левый разряд погрешности вычисления функции.
δ для двух компонентов действий
и аналитических
функций
Определение верных значащих цифр по относительным погрешностям
Максимальное натуральное n такое, что будет соответствовать n верным цифрам в широком смысле
в неточном числе. Максимальное натуральное
n такое, что будет соответствовать
n верным цифрам
в строгом смысле в неточном числе. Если в каждом из чисел по крайней мере m верных цифр,
αi – первые значащие цифры
в десятичной записи приближенных чисел, тогда результат имеет по меньшей мере m – 1 верных знаков .
Количество верных цифр
находится аналогично умножению при возведении в степень
и аналогично вычислению
аналитической функции
при извлечении корня. Максимальное
n такое, что , гарантирует
в результате
n верных цифр
в широком смысле. Если нашли максимальное
n такое, что , то в результате
n верных цифр
в строгом смысле.
Рис. 2. Знаковый модуль модели в табличном представлении вычисления количества верных цифр
Fig. 2. The sign module of the model in a tabular representation of calculating the number of correct digits
При сложении и вычитании приближенных чисел абсолютная погрешность не превышает суммы абсолютных погрешностей входных значений. Погрешности суммы и разности сводятся к погрешности компонента с наибольшей абсолютной погрешностью. Перед сложением или вычитанием числа округляют до одной запасной цифры от количества десятичных знаков компонента с наибольшей абсолютной погрешностью. Разность близких величин может привести к потере наибольших разрядов значащих цифр результата, в связи с чем количество верных цифр значительно уменьшается. В этом случае нужно преобразовать выражение или взять исходные данные с большим количеством верных цифр.
Относительная погрешность определяется количеством значащих цифр числа. Относительная погрешность слагаемых с одинаковыми знаками заключена между минимальным и максимальным значениями относительных погрешностей слагаемых Количество верных цифр определяется по относительной погрешности суммы или разности . Максимальное натуральное n такое, что , и удовлетворяющее неравенству
,
будет соответствовать n верным цифрам в широком смысле в неточном числе. Максимальное натуральное n такое, что и удовлетворяющее неравенству
,
будет соответствовать n верным цифрам в строгом смысле в неточном числе. Относительная погрешность разности близких величин с малыми абсолютными погрешностями возрастает в сравнении
с относительными погрешностями уменьшаемого
и вычитаемого, и может произойти потеря точности.
Предельная относительная погрешность произведения или отношения равна сумме относительных погрешностей компонентов действий. Результат
не может иметь больше значащих цифр, чем их имеет наименее точный в относительном смысле компонент, т. е. компонент, имеющий наименьшее количество значащих цифр. Если каждый из менее десяти
(n < 10) компонентов действий имеет по крайней
мере m (m > 1) верных цифр, а – первые знача-
щие цифры в десятичной записи приближенных
чисел, тогда [2]. Произведение имеет, по меньшей мере, верных знака,
(1)
а если одна из значащих цифр αi = 1, то верных знака.
Абсолютная погрешность произведения или отношения может быть вычислена через относительную погрешность и равна модулю произведения или отношения приближенных чисел, умноженному на относительную погрешность соответствующего действия
Точное число при возведении в степень дает увеличение количества значащих цифр в n раз.
С приближенными числами так не происходит. Возведение в степень является n-кратным умножением приближенного числа на самого себя. Так как относительная погрешность равна относительной погрешности основания, увеличенной в n раз, количество значащих цифр результата может быть найдено аналогично правилу нахождения верных цифр для умножения. При вычислениях без точного учета погрешностей в ответе необходимо оставлять столько значащих цифр, сколько в основании степени.
Извлечение корня n-й степени из точного числа сопровождается уменьшением количества значащих цифр в ответе в n раз. Это правило не распространяется на приближенные числа. При извлечении корня относительная погрешность уменьшается в n раз, количество верных цифр результата может быть найдено аналогично правилу для вычисления аналитической функции. При вычислениях без точного учета погрешностей в ответе необходимо оставлять столько значащих цифр, сколько
в подкоренном выражении.
При вычислении аналитической функции от
неточного аргумента абсолютная погрешность функции с точностью до малых высшего порядка равна произведению абсолютной погрешности аргумента и модуля производной функции, при условии дифференцируемости функции; если , то абсолютная погрешность значения функции меньше абсолютной погрешности аргумента; если , то наоборот. Увеличение модуля производной функции от приближенного аргумента может привести к потере точности.
Относительная погрешность функции равна произведению абсолютной погрешности аргумента на модуль отношения производной функции и значения функции. Если нашли максимальное n такое, что , и количество верных цифр удовлетворяет неравенству
, (2)
то приближенное значение функции имеет n верных цифр в широком смысле. Если нашли максимальное n такое, что , и количество верных цифр удовлетворяет неравенству
(3)
то приближенное значение функции имеет n верных цифр в строгом смысле.
В промежуточных вычислениях рекомендуется сохранять на одну цифру больше, чем в прописанных правилах. В окончательном результате эта дополнительная цифра отбрасывается.
Результаты исследования
Астрономические задачи являются глобальными задачами выживания биосферы земли. Основой решения многих исследуемых вопросов служит определение положения космических объектов
в заданную эпоху, в выбранных координатах,
с учетом возмущающих воздействий. Точность вычислений, допустимые погрешности, определение верных значащих цифр являются важными составляющими вычислительных экспериментов, ошибки в которых могут привести к человеческим, материальным и репутационным потерям.
Комплекс программ «Coordinate Conversion (Coco.cpp)» [7, 8] представляет собой библиотечные модули с функциями, необходимыми для решения астрономических задач с директивами заголовков в головной программе. Программа после модификаций под современные среды разработки позволяет в интерактивном режиме использовать экваториальные, эклиптические, геоцентрические, гелиоцентрические, полярные и декартовы координаты с учетом заданной эпохи. В вычислительном эксперименте выполнялась серия преобразований координат, а затем обратные преобразования. Полученный результат теоретически должен был совпасть с входными данными, т. к. программа должна была получить первоначальные координаты точки. Несовпадающие экспериментальные значения координат являются неточными значениями, а за точные принимаются начальные значения координат.
При циклических преобразованиях неточность значений выявляется наглядно, но неточные результаты всегда получаются при сложных вычислениях с применением инструментальных средств в связи с погрешностями округления, погрешностями вычисления чисел с плавающей точкой [9], наличием машинного нуля и вычислением некоторых тригонометрических функций с погрешностью остатка. Неизбежное применение инструментальных средств при вычислении координат космического объекта, когда учитываются прецессия, возмущения со стороны других планет, вычисление барицентра планеты и ее спутников, приводит
к неточным результатам, с которыми в дальнейшем необходимо осуществлять арифметические действия или использовать их как аргумент для вычисления аналитической функции. Получаемые символы неточных значений нужно дифференцировать на верные и сомнительные.
У полученных неточных чисел в результате практического эксперимента можно сосчитать абсолютную и относительную погрешность. Эти данные поступают на вход модели определения верных значащих цифр, а на выходе получают количество верных цифр в зависимости от выбранного действия. В вычислительном эксперименте сначала выбраны экваториальные координаты точки летнего солнцестояния, заданные в полярной форме в эпоху 1875, и расстояние, равное одной астрономической единице с контрольным выводом
в прямоугольных координатах (рис. 3).
Рис. 3. Геоцентрические экваториальные координаты
Fig. 3. Geocentric equatorial coordinates
Далее координаты преобразуются в эклиптические, затем в гелиоцентрические. На следующем этапе координаты трансформируются от точки летнего солнцестояния эпохи 1875 к новой эпохе 1950, используется вызов прецессии. Следующие команды интерфейса программы будут обратными к предыдущим: возврат к геоцентрическим координатам, затем к экваториальным, и пересчет координат к исходной эпохе 1875 (рис. 4).
Рис. 4. Результаты циклического преобразования координат
Fig. 4. Results of cyclic transformation of the coordinates
Получаем координаты точки в прямоугольных координатах, не совпадающие с первоначальными координатами, представленными на рис. 3. Подсчитаем абсолютную погрешность по трем направлениям, округляя по направлениям x1 и z1 «с избытком» .
Возьмем вторую входную точку с начальными данными склонения, равного двум часам, прямым восхождением в 45° в экваториальных, полярных координатах в эпоху 1875 с заданным расстоянием в одну астрономическую единицу с контрольным выводом в прямоугольных координатах (рис. 5).
Рис. 5. Входные данные второй точки
Fig. 5. Input data of the second point
Проделаем аналогичные предыдущим циклические преобразования координат с целью возвращения к исходным значениям. После учета прецессии в конце получили следующие координаты в прямоугольной форме (рис. 6).
Рис. 6. Неточные значения координат второй точки
Fig. 6. Inaccurate values of the second point coordinates
Данные координаты не совпали с начальными, вводимыми в интерактивной форме (см. рис. 5). Подсчитаем абсолютные погрешности трех координат, округляя по направлениям y2 и z2 до двух значащих цифр «с избытком» В результате вычислительных экспериментов с применением инструментальных средств у нас получились два вектора с неточными значениями координат. При решении задачи сложения векторов необходимо сложить координаты по трем направлениям. Для определения количества верных значащих цифр результата обратимся к модели (см. рис. 1). На входе в MISO модель поступают неточные числа, точные значения абсолютных погрешностей координат и арифметическое действие – сложение. Абсолютная погрешность сложения по направлению х: . Округление неточных чи-
сел не требуется, т. к. абсолютные погрешности слагаемых имеют одинаковые разряды. Сумма
неточных чисел равна . Ответ получили с 12 десятичными знаками в связи
с тем, что в методе вывода программы заявлен соответствующий аргумент. Можно получить большее количество десятичных знаков, если в дальнейших вычислениях сомнительные символы
не будут выявлены, и появится вероятность потери верных цифр. Абсолютная погрешность суммы определяет сомнительные цифры результата начиная с десятого разряда. Отбрасывая их, получаем . Если вычисления промежуточные, то сохраняем одну сомнительную цифру и получаем
В программе Coco.cpp сделаем контрольный вывод в экваториальных координатах и допишем программу, меняя расстояние R от 0 до 9,57 с шагом 0,33 во входных данных. Циклический путь смены экваториальных, эклиптических, геоцентрических, гелиоцентрических координат в разных эпохах проделаем аналогично смене координат во второй точке. Получим серию входных в программу (точных) и выходных (неточных) значений параметра R, у которого сосчитаем абсолютную
и относительную погрешность. Полученные зависимости представлены на рис. 7.
Рис. 7. Относительные и абсолютные погрешности радиуса в экваториальных координатах
Fig. 7. Relative and absolute errors of the radius in equatorial coordinates
Анализируя зависимость погрешностей от расстояния, можно сделать вывод, что абсолютная погрешность не меняется, а относительная погрешность от чисел с первыми значащимися числами, равными единице и двойке, намного больше остальных значений. Формула, учитывающая первые значащие цифры, при подсчете относительной погрешности более приемлема, она представлена
в модели при подсчете относительной погрешности произведения и отношения.
Рассмотрим другую задачу вычисления широты – полярного эклиптического угла. Для этого достаточно найти тангенс угла, поделив декартову координату y на x. Во второй точке сосчитаем относительные погрешности неточных значений координат x2 и y2, поделив абсолютные погрешности на точные значения координат, представленные на рис. 5:
= 4 ∙ 10–10. Обратимся к модели, в которой на вход поступают два неточных числа, относительные погрешности и арифметическое действие – деление. Относительная погрешность отношения равна сумме относительных погрешностей делимого
и делителя. Если известны еще абсолютные погрешности неточных делимого и делителя, можно определить по крайней мере m верных цифр
в каждом из чисел. По подсчитанным абсолютным погрешностям координат второй точки определяем m = 9. Сосчитаем относительную погрешность по формуле, использующей первые значащие цифры неточных чисел:
,
следовательно, отношение имеет по меньшей мере
8 верных цифр.
Если абсолютные погрешности неизвестны, а на вход модели поступает только относительная погрешность делимого и делителя, воспользуемся формулой (1). Сумма относительных погрешностей Количество верных цифр
отношения .
В отношении по крайней мере верных цифр.
Подсчитаем тангенс угла, разделив неточные значения y_2 и x_2, представленные на рис. 6, . Из 16 разрядов после запятой только 8 содержат верные цифры . Эти способы проявляют завышенную осторожность, и верных цифр может оказаться больше.
Найдем количество верных цифр в этой же
задаче через абсолютную погрешность. Подсчитаем абсолютную погрешность отношения, используя найденную относительную погрешность
и абсолютная погрешность отношения определяет 9 верных цифр отношения, что подтверждает завышенную осторожность первых способов. Если результаты промежуточные, необходимо оставить одну сомнительную цифру.
Используем неточные значения второй точки для нахождения количества верных цифр при вычислении значения аналитической функции.
В прямоугольной системе координат сложная траектория космического объекта может совпадать
с параболой Нейла [10, 11] в проекции на плоскость XY. Возьмем параметр параболы равный 5,
в первом квадранте уравнение параболы равно , и объект начинает движение от точки
с неточными координатами, представленными на рис. 6. Если на вход модели поступает неточное значение аргумента и известна абсолютная погрешность аргумента, то найдем относительную погрешность значения функции
. По формуле (2) , максимальное верных цифр в широком смысле.
Если известна относительная погрешность аргумента, то По формуле (3) и n = 9 верных цифр в строгом смысле.
Если вычисления не промежуточные, то получаем результат Дополнительный ряд сомнительных цифр сохранять в числе не имеет смысла, но и излишнее округление с потерей верных цифр нецелесообразно, поэтому применение модели способствует наилучшему управлению точности в вычислительных задачах.
Заключение
Прикладные задачи редко решаются по абсолютно точным формулам, с точными числами. Сложные вычисления, учитывающие множество параметров, обрабатываемые инструментальными средствами, получают неточные результаты. Реальные неточные числа идут в связке со своими погрешностями, которые определяют деление значащих цифр на верные и сомнительные и влияют на оценку точности. Вычислительный процесс должен придерживаться правил, повышающих эффективность деятельности вычислителя, который получает «…приближенное решение с возможно меньшею затратой труда и времени» [1, с. 7] и рационализирует использование инструментальных средств. Задание недостаточного аргумента в методе вывода программы может привести к потере верных цифр результата, а задание избыточного – к иллюзии большой точности. Предложенная модель служит основой вычислительных действий с неточными числами, повышает эффективность вычислений, вносит вклад в управление точностью результата. Направление дальнейших исследований целесообразно в расширении данной модели для сложных вычислений неаналитических функций.