Диссертация (1145311), страница 27
Текст из файла (страница 27)
Пусть a — точное значение некоторой величины, а â —известное приближение к нему. Абсолютной погрешностью приближенногозначения â называют величину ∆(a), про которую известно, что|â − a| ≤ ∆(a).Относительной погрешностью приближенного значения â называют величи-194ну δ(a), про которую известно, что â − a a ≤ δ(a).Относительную погрешность часто выражают в процентах.Замечание 35. Относительная погрешность не определена при a = 0.Наименьшую из верхних границ ∆(a), которую можно найти исходя изспособа получения числа â, будем называть предельной абсолютной погрешностью.
На практике часто за предельную абсолютную погрешность принимаютне наименьшую из верхних граней, а одну из верхних граней, достаточно близкую к наименьшей. Аналогично вводится понятие предельной относительнойпогрешности.Замечание 36. Везде в дальнейшем речь пойдет о предельных относительной и абсолютной погрешностях, если не указано другое.Замечание 37.
Иногда при анализе ошибок удобнее бывает оценить величину a − â .δ̂(a) = â Величины δ(a) и δ̂(a) связаны соотношениямиδ(a)δ(a)≤ δ̂(a) ≤.1 + δ(a)1 − δ(a)Таким образом, на практике при δ(a) < 0.01 разницы между δ(a) и δ̂(a) нет.Далее рассмотрим арифметические операции над приближенными величинами. Выполняются следующие довольно очевидные соотношения, которыенам понадобятся в дальнейшем:1. Абсолютная погрешность алгебраической суммы нескольких чисел непревосходит суммы их абсолютных погрешностей.195Относительная погрешность суммы нескольких слагаемых S = a1 + a2 +· · · + an равнаδ(S) =∆(S) ∆(a1 ) + ∆(a2 ) + · · · + ∆(an )==SSa1 δ(a1 ) + a2 δ(a2 ) + · · · + an δ(an ).=S(4.1)2.
При умножении и делении приближенных чисел их относительные погрешности складываются. Так, относительная погрешность произведения нескольQких чисел= a1 a2 . . . an равнаYδ( ) = δ(a1 ) + δ(a2 ) + . . . + δ(an ).4.1.2. Арифметика с плавающей точкойПри решении вычислительных задач обычно используют представлениечисел в форме с плавающей точкой (запятой). В дальнейшем мы будем рассматривать интегрирование системы обыкновенных дифференциальных уравнений именно в арифметике с плавающей точкой. Приведем здесь сведения обошибках округления, которые возникают при таких вычислениях [3, 25, 31].Все персональные компьютеры и большинство рабочих станций поддерживают IEEE-стандарт двоичной арифметики∗ .
Стандарт предусматривает дватипа чисел с плавающей точкой: числа обычной точности (представляются32 битами — 4 байтами, мантисса занимает 23 + 1 бита, порядок — 8 битов,знак — 1 бит, наибольшее представимое нормализованное число 3.40282 · 1038 ,наименьшее по модулю 1.17549435 · 10−38 ) и числа двойной точности (представляются 64 битами — 8 байтами, мантисса занимает 52 + 1 бит, порядок— 11 битов, знак — 1 бит, наименьшее представимое нормализованное число1.79769313486232 · 10−308 , наибольшее по модулю 2.2250738585072014 · 10308 ).Здесь +1 бит в мантиссе обозначает один бит (первый значащий бит), который∗принят Institute of Electrical and Electronic Engineers196всегда равен 1 в нормализованной мантиссе, и он не сохраняется (за исключением субнормальных чисел, для которых этот бит равен 0).Согласно IEEE-стандарту все арифметические операции (которые включают также квадратный корень и преобразование между целыми числами ичислами с плавающей точкой) выполняются следующим образом: сначала вычисляется точный результат операции, а затем происходит округление по одной из четырех мод.
По умолчанию округление производится до ближайшегопредставимого в компьютере числа, причем в случае наличия двух ближайшихокругляется до четного (нулевой последний значащий бит). Некоторые компьютеры в таком случае округляют до бо́льшего по модулю числа (это проще сделать технически). Поддерживается также округление до +∞ и −∞.
Четвертоймодой округления является округление до нуля.Рассмотрим модель, показывающую, как выполняются основные операциис плавающей точкой на компьютере. Для двух чисел с плавающей точкой x иy обозначим черезfl (x + y), fl (x − y), fl (x · y), fl (x/y)результаты сложения, вычитания, умножения и деления в арифметике с плавающей точкой, которые компьютер хранит в памяти после округления или отбрасывания лишних цифр. В дальнейшем будем предполагать, что не возникаютситуации overflow (получено число, большее максимального представимого накомпьютере числа) и underflow (получено число, меньшее минимального представимого на компьютере числа) и что выполняется следующая стандартнаямодель арифметики:Определение 36.
Пусть x и y — числа с плавающей точкой. Тогда в стандартной модели выполняется следующееfl (x op y) = (x op y)(1 ± δ),|δ| ≤ υ,где op обозначает одну из четырех элементарных операций +, −, ·, /.(4.2)197Здесь величина υ (“unit roundoff”) связана с ε — максимальным значениемотносительной погрешности — по формуле ε = 2υ. Для обычной точности —float — (4 байта) ε ≈ 1.19 · 10−7 , для двойной точности — double — (8 байтов)ε ≈ 2.22 · 10−16 , для long double (10 или 12 байт в зависимости от системы)ε ≈ 1.08·10−19 . Значения ε могут быть взяты в стандартном включенном файлеfloat.h для C-компилятора для архитектуры x86.Стандартная модель выполняется для моды округления по умолчанию вкомпьютерах, поддерживающих арифметику стандарта IEEE 754.
В этом случае имеем также√√fl ( x) = x(1 ± δ),|δ| ≤ υ.(4.3)Естественно, иногда вычисления с плавающей точкой бывают более точными,чем это определяется стандартной моделью. Очевидный пример этому, когдаточное значение операции x op y может быть представлено числом с плавающейточкой, то есть ошибки округления нет вообще.Результаты операций в арифметике с плавающей точкой имеют, до некоторой степени, другие свойства, чем операции в точной арифметике.
Так, варифметике с плавающей точкой сложение и умножение коммутативны, однако ассоциативный и дистрибутивный законы не выполняются.Используя стандартную модель (4.2), можно получить оценки ошибок округления для некоторых основных вычислений. Для этого введем обозначениеγn =nυ1 − nυ2(4.4)Для умножения n чисел имеем|fl (x1 x2 . . . xn ) − x1 x2 . . . xn | < γn−1 |x1 x2 .
. . xn |,что и дает погрешность вычисленного результата.Для суммы n чисел с плавающей точкой может быть получен аналогичный198результат. Для сложения в естественном порядке имеемfl ((. . . (((x1 + x2 ) + x3 ) + · · · + xn )) == x1 (1 + δ1 ) + x2 (1 + δ2 ) + · · · + xn (1 + δn ),где |δ1 | < γn−1 , |δi | < γn+1−i , i = 2, n.Это дает оценку погрешности|fl ((. . . (((x1 + x2 ) + x3 ) + · · · + xn )) − (x1 + x2 + · · · + xn )| <nnXX<γn+1−i |xi | ≤ γn−1|xi |,i=1(4.5)i=1где последняя оценка выполняется независимо от порядка суммирования.Заметим, что для уменьшения первой границы в (4.5) величины нужноскладывать в порядке возрастания модулей.Подобные границы погрешностей могут быть выведены для основных векторных и матричных операций. Для скалярного произведения X T Y , гдеxy 1 1 x2 y2 ,Y = ,X= ...
... xnynимеемTT|fl (X Y ) − X Y | <nXγn+2−i |xi ||yi | < γni=1nX|xi ||yi |.i=1Если через |X|, |Y | обозначить векторы с элементами |xi |, |yi |, то последнююоценку можно записать в более простой форме|fl (X T Y ) − X T Y | < γn |X T ||Y |.(4.6)Эта оценка не зависит от порядка суммирования.Оценка (4.6) легко может быть обобщена и для матричного умножения.Пусть Am×n и Bn×p — две матрицы, и обозначим через |A| и |B| матрицы сэлементами |aij | и |bij | соответственно. Тогда выполняется условие|fl (AB) − AB| < γn |A||B|.(4.7)1994.2.
Локально оптимальный шаг метода ЭйлераРассмотрим один шаг метода Эйлера.Определение 37. Назовем один шаг метода Эйлера локально оптимальнымшагом, если для него погрешность метода совпадает с погрешностью округления.Далее будет доказано, что такой шаг интегрирования является оптимальным шагом в смысле вычислительной точности. Интегрирование с данным шагом обеспечивает минимальную полную погрешность, равную сумме погрешности метода и ошибок округления.Также предлагается алгоритм, позволяющий найти локально оптимальный шаг метода Эйлера.
Алгоритм применяется для решения задачи Кошидля систем обыкновенных дифференциальных уравнений видаdX= F (t, X),dtX(t0 ) = X0 ,(4.8)где F = [fj (t, X)]mj=1 вещественный вектор m × 1, элементы которого — данныефункции,X(t) = x01x1 (t).. , X = .. .. 0xm (t)x0m.Сначала рассмотрим случай, когда все компоненты вектора X0 точные.Будем считать выполненным следующее предположение.Предположение 3. Пусть правая часть первого уравнения системы (4.8)имеет непрерывные частные производные второго порядка по всем переменным.В этом случае правая часть системы уравнений (4.8) удовлетворяет условию Липшица, т.