§ 6.8. Оценка влияния ошибок вычислений на БЦВМ
Исследования по реализации алгоритма ОРФ Калмана в виде программы БЦВМ, производящей арифметические действия с фиксированной запятой при сравнительно малой длине разрядной сетки (по опубликованным в литературе данным наиболее часто в БЦВМ число разрядов
из которых один — знаковый), показывают, что в ряде случаев возможно быстрое накопление
ошибок вычислений, вызывающее резкое ухудшение точности оценки. Имеющийся опыт показывает, что наиболее быстро ошибки вычислений «деформируют» к.
определяемое рекуррентными уравнениями главы 4, так что, начиная с некоторой величины
эти матрицы теряют основное свойство корреляционных матриц: условие
перестает выполняться и точность оценки существенно ухудшается. В литературе [31], [57] описанное явление часто называют «расходимостью фильтра Калмана» и один из эффективных способов его ликвидации состоит в использовании подпрограмм вычислений с удвоенной точностью. При этом, конечно, время вычислений резко увеличивается и повышаются требования к производительности БЦВМ.
Детальные исследования вопросов точности оценки по формулам алгоритма ОРФ при различных схемах организации последовательных вычислений на БЦВМ можно производить с помощью ИНТЕРПРЕТАТОРА - программы, которая на универсальной ЦВМ моделирует процесс вычислений на БЦВМ. Однако предварительные данные об искажениях матриц
возникающих из-за вычислений с фиксированной зацятой, можно получить и без ИНТЕРПРЕТАТОРА по излагаемой ниже методике.
Как известно, основные особенности вычислений на БЦВМ с фиксированной запятой состоят в том, что
а) модули всех постоянных и переменных величин, входящих в формулы, реализуемые программой БЦВМ, должны быть не более 1;
б) числа, получаемые в БЦВМ после реализации каждой арифметической операции, являются числами вида
где
равны 0 или
заданное целое число, определяющее длину разрядной сетки БЦВМ. Далее, числа вида (6.59) называем «
-разрядными». Если число а в регистрах БЦВМ оказывается
-разрядным, где
то далее оно округляется — переводится в ближайшее
-разрядное число а по формуле
где
целая часть числа х. Если а —
-разрядное число, то
Нетрудно проверить, что ошибка округления
всегда удовлетворяет неравенству
Так как результаты сложения, вычитания и деления
-разрядных чисел также являются
-разрядными, то при этих действиях, операция округления не используется и вычисления в БЦВМ ошибок не вносят. Произведение двух
-разрядных чисел является числом
-разрядным, производится операция округления, и, следовательно, при умножении вычисления на БЦВМ происходят с потерей точности.
Пусть А и а — некоторые матрица и вектор, размерностей
Тогда
вектор, компоненты которого —
-разрядные числа, вычисленные при использовании операции округления. Так как
компонента вектора А а определяется формулой
то
компонента вектора ошибок округления
имеет
Из (6.61) следует, что
Поэтому при большой величине
компоненты вектора
могут быть достаточно велики и, следовательно, умножение в БЦВМ вектора на матрицу может происходить с заметными ошибками. Аналогичные выводы получим при умножении матрицы А на матрицу В. Очевидно, что
элемент матрицы ошибок
оценится формулой
В алгоритмах ОРФ, изложенных, в главе 4, много операций умножения векторов и матриц. Поэтому естественно ожидать быстрого накопления ошибок при расчетах на БЦВМ по формулам алгоритмов ОРФ, производимых не с удвоенной точностью. При расчетах с удвоенной точностью ошибки вычислений резко уменьшаются, так как в (6.63), (6.64) число
надо заменить на
Далее примем, что выбором соответствующих масштабных коэффициентов для компонент вектора фазовых
где
В (6.66) используются
вместо
так как ошибки априорного задания
на порядок больше матриц
Рекуррентное уравнение (6.66), описывающее эволюцию матриц
отличающиеся от матриц
из-за наличия векторов ошибок
и матриц ошибок
последовательно используется при тех же начальных условиях, что и (6.65). Из (6.66) и (6.67) видно, что матрицы
должны быть симметричны.
Обозначим через
матрицу ошибок вычислений на БЦВМ элементов условных к.
Вычитая (6.65) из (6.66) и считая малыми элементы
получим
причем
а при вычислениях элементов матриц
вектор
заменяется на
определяемый из (6.65). Как видно из (6.68), матрица
удовлетворяет нелинейному неоднородному рекуррентному уравнению, исследование решений которого может быть проведено, по-видимому, лишь численно. Грубые оценки влияния ошибок вычислений найдем, если компоненты векторов
и элементы матриц
заменим их верхними гранями в соответствии с (6.63), (6.64).
Рекуррентные формулы, аналогичные (6.66), (6.68), нетрудно получить для общего случая
а также для оценки влияния ошйбок вычислений на определение векторов оптимальных оценок
В литературе описан ряд эвристических способов борьбы с расходимостью алгоритмов ОРФ, основанных на добавлении к матрицам
некоторых матриц, интерпретируемых как корреляционные матрицы случайных векторов ошибок вычислений [60], умножении первого слагаемого в формуле (4.95) на коэффициент, больший 1 [48], и т. д. К числу таких способов можно отнести и метод исправления корреляционных матриц, рассмотренный в § 2.14.