Относительная ошибка численного решения

1.1.
Источники и классификация погрешностей

1.2.
Абсолютная и относительная погрешности.
Форма записи данных

1.3. Вычислительная
погрешность. Погрешность функции

1.4. Понятия о
погрешности машинной арифметики

1.1. Источники и классификация погрешностей

Источниками
возникновения погрешности численного
решения задачи являются:

  1. Неточность
    математического описания, в частности,
    неточность задания начальных данных.

  2. Неточность
    численного метода решения задачи.

(Данная
причина, например, возникает когда
решение математической задачи требует
неограниченного или неприемлемо большого
числа арифметических операций, что
приводит к необходимости ограничения
их числа, т.е. использования приближенного
решения.)

  1. Конечная
    точность машинной
    арифметики.

Виды погрешностей:

  1. Неустранимая
    погрешность

  2. Погрешность
    метода.

  3. Вычислительная
    погрешность.

Неустранимая
погрешность

состоит из двух частей: а) погрешность,
обусловленная погрешностью задания
числовых данных, входящих в математическое
описание задачи; б) погрешность, являющаяся
следствием несоответствия математического
описания задачи реальной действительности
(погрешность математической модели).
Для вычислителя погрешность задачи
следует считать неустранимой, хотя
постановщик задачи иногда может ее
изменить.

Результирующая
погрешность определяется как сумма
величин всех перечисленных выше
погрешностей.

Погрешность
метода

связана со способом решения поставленной
математической задачи. Она появляется
в результате замены исходной математической
модели другой и/или конечной
последовательностью других более
простых (например, линейных) моделей.
При создании численных методов
закладывается возможность отслеживания
таких погрешностей и доведения их до
сколь угодно малого уровня. Отсюда
естественно отношение к погрешности
метода как устранимой (или условной).

Вычислительная
погрешность

(погрешность округлений) обусловлена
необходимостью выполнять арифметические
операции над числами, усеченными до
количества разрядов, зависящего от
применяемой вычислительной техники.

1.2. Абсолютная и относительная погрешности. Формы записи данных

Определение
1.1.
Если a

точное значение некоторой величины и
a

известное приближение к нему, то
абсолютной погрешностью приближенного
значения a
называют некоторую величину
,
про которую известно, что

.
(1.1)

Определение
1.2.
Относительной
погрешностью приближенного значения
называют некоторую величину
,
про которую известно, что

.
(1.2)

Относительную
погрешность часто выражают в процентах.

Определение
1.3.
Значащими
цифрами числа называют все цифры в его
записи, начиная с первой ненулевой
слева.

Пример
1.1

(Здесь цифры,
записанные курсивом, значащие)

Определение
1.4.
Значащую
цифру называют верной, если модуль
погрешности числа не превосходит единицы
разряда, соответствующего этой цифре.

Пример
1.2

(Здесь цифры,
записанные курсивом, верные)

Определение
1.5.
Если все
значащие цифры верные, то говорят, что
число записано со всеми верными цифрами.

Иногда
употребляется термин число
верных цифр после запятой
:
подсчитывается
число верных цифр после запятой от
первой цифры до последней верной цифры.

Довольно
часто информация о некоторой величине
задается пределами измерений

.

Принято
записывать эти пределы с одинаковым
числом знаков после запятой, так как
обычно достаточно грубого представления
о погрешности. В записи чисел a1,
a2
обычно берут столько значащих цифр,
сколько нужно для того, чтобы разность
содержала одну, две значащие цифры.

Информацию
о том, что
является приближенным значением числаa
с абсолютной погрешностью
,
принято также записывать в виде

.
(1.3)

Числа
,принято записывать с одинаковым
количеством знаков после запятой.

Пример 1.3

Информацию
о том, что
является приближенным значением числаа
с относительной погрешностью
записывают в виде

.

Пример 1.4

(Данная запись
числа эквивалентна записи чисел из
примера 1.2)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Материал из MachineLearning.

Перейти к: навигация, поиск

Содержание

  • 1 Введение
    • 1.1 Постановка вопроса. Виды погрешностей
  • 2 Виды мер точности
  • 3 Предельные погрешности
  • 4 Погрешности округлений при представлении чисел в компьютере
  • 5 Погрешности арифметических операций
  • 6 Погрешности вычисления функций
  • 7 Числовые примеры
  • 8 Список литературы
  • 9 См. также

Введение

Постановка вопроса. Виды погрешностей

Процесс исследования исходного объекта методом математического моделирования и вычислительного эксперимента неизбежно носит приближенный характер, так как на каждом этапе вносятся погрешности. Построение математической модели связано с упрощением исходного явления, недостаточно точным заданием коэффициентов уравнения и других входных данных. По отношению к численному методу, реализующему данную математическую модель, указанные погрешности являются неустранимыми, поскольку они неизбежны в рамках данной модели.

При переходе от математической модели к численному методу возникают погрешности, называемые погрешностями метода. Они связаны с тем, что всякий численный метод воспроизводит исходную математическую модель приближенно. Наиболее типичными погрешностями метода являются погрешность дискретизации и погрешность округления.
При построении численного метода в качестве аналога исходной математической задачи обычно рассматривается её дискретная модель. Разность решений дискретизированной задачи и исходной называется погрешностью дискретизации. Обычно дискретная модель зависит от некоторого параметра (или их множества) дискретизации, при стремлении которого к нулю должна стремиться к нулю и погрешность дискретизации.
Дискретная модель представляет собой систему большого числа алгебраических уравнений. Для её решения используется тот или иной численный алгоритм. Входные данные этой системы, а именно коэффициенты и правые части, задаются в ЭВМ не точно, а с округлением. В процессе работы алгоритма погрешности округления обычно накапливаются, и в результате, решение, полученное на ЭВМ, будет отличаться от точного решения дискретизированной задачи. Результирующая погрешность называется погрешностью округления (вычислительной погрешностью). Величина этой погрешности определяется двумя факторами: точностью представления вещественных чисел в ЭВМ и чувствительностью данного алгоритма к погрешностям округления.

Итак, следует различать погрешности модели, дискретизации и округления. В вопросе преобладания какой-либо погрешности ответ неоднозначен. В общем случае нужно стремиться, чтобы все погрешности имели один и тот же порядок. Например, нецелесообразно пользоваться разностными схемами, имеющими точность 10−6, если коэффициенты исходных уравнений задаются с точностью 10−2.

Виды мер точности

Мерой точности вычислений являются абсолютные и относительные погрешности. Абсолютная погрешность определяется формулой

Delta(tilde a)=|tilde a-a|,

где tilde a – приближение к точному значению a.
Относительная погрешность определяется формулой

delta(tilde a)=frac{|tilde a-a|}{a}.

Относительная погрешность часто выражается в процентах. Абсолютная и относительная погрешности тесно связаны с понятием верных значащих цифр. Значащими цифрами числа называют все цифры в его записи, начиная с первой ненулевой цифры слева. Например, число 0,000129 имеет три значащих цифры. Значащая цифра называется верной, если абсолютная погрешность числа не превышает половины веса разряда, соответствующего этой цифре. Например, tilde a=9348, абсолютная погрешность Delta(tilde a)=15. Записывая число в виде

9348=9cdot10^3+3cdot10^2+4cdot10^1+8cdot10^0,

имеем 0,5cdot10^1<Delta(tilde a)<0,5cdot10^2, следовательно, число имеет две верных значащих цифр (9 и 3).

В общем случае абсолютная погрешность должна удовлетворять следующему неравенству:

Delta(tilde a)<0,5cdot10^{m-n+1} ,

где m — порядок (вес) старшей цифры, n — количество верных значащих цифр.
В рассматриваемом примере Delta(tilde a)le0,5cdot10^{3-2+1}le0,5cdot10^2=50.

Относительная погрешность связана с количеством верных цифр приближенного числа соотношением:

delta(tilde a)lefrac{Delta(tilde a)}{alpha_m}10^mlefrac{10^{m-n+1}}{alpha_m10^m}lefrac{1}{alpha_m10^{n-1}},

где alpha_m — старшая значащая цифра числа.

Для двоичного представления чисел имеем delta(tilde a)le2^{-n}.

Тот факт, что число tilde a является приближенным значением числа a с абсолютной погрешностью Delta(tilde a), записывают в виде

a=tilde apmDelta(tilde a),

причем числа tilde a и Delta(tilde a) записываются с одинаковым количеством знаков после запятой, например, a=2,347pm0,002 или a=2,347pm2cdot10^{-3}.

Запись вида

a=tilde a(1pmdelta(tilde a))

означает, что число tilde a является приближенным значение числа a с относительной погрешностью delta(tilde a).

Так как точное решение задачи как правило неизвестно, то погрешности приходится оценивать через исходные данные и особенности алгоритма. Если оценка может быть вычислена до решения задачи, то она называется априорной. Если оценка вычисляется после получения приближенного решения задачи, то она называется апостериорной.

Очень часто степень точности решения задачи характеризуется некоторыми косвенными вспомогательными величинами. Например точность решения системы алгебраических уравнений

AX=F

характеризуется невязкой

R=F-Atilde X,

где tilde X — приближенное решение системы.
Причём невязка достаточно сложным образом связана с погрешностью решения Delta(X)=tilde X-X, причём если невязка мала, то погрешность может быть значительной.

Предельные погрешности

Пусть искомая величина a является функцией параметров t_1, ldots , t_n in Omega, qquad a* — приближенное значение a. Тогда предельной абсолютной погрешностью называется величина

D(a^*) = suplimits_{(t_1, ldots ,t_n) in Omega } left|{a(t_1, ldots ,t_n) - a^*}right| ,

Предельной относительной погрешностью называется величина D(a*)/| a*|.

Пусть left|{t_j - t_j^*}right| le Delta (t_j^* ), qquad j = 1 div n — приближенное значение a^* = a(t_1^*, ldots ,t_n^* ). Предполагаем, что a — непрерывно дифференцируемая функция своих аргументов. Тогда, по формуле Лагранжа,

a(t_1, ldots ,t_n) - a^* = sumlimits_{j = 1}^n gamma_j (alpha )(t_j - t_j^*),

где gamma_j (alpha ) = a^{prime}_{t_j}(t_1^* + alpha (t_1 - t_1^*), ldots ,t_n^* + alpha (t_n - t_n^*)), qquad 0 le alpha le 1.

Отсюда

left|{a(t_1, ldots ,t_n) - a^*}right| le D_1 (a^*) = sumlimits_{j = 1}^n b_j Delta (t_j^*),

где b_j = suplimits_Omega left|{a^{prime}_{t_j}(t_1, ldots ,t_n)}right|.

Можно показать, что при малых rho = sqrt{{(Delta (t_1^* ))}^2 + ldots + {(Delta (t_n^* ))}^2 } эта оценка не может быть существенно улучшена. На практике иногда пользуются грубой (линейной) оценкой

left|{a(t_1, ldots ,t_n) - a^*}right| le D_2 (a^*),

где D_2 (a^*) = sumlimits_{j = 1} left|{gamma_j (0)}right| Delta (t^*).

Несложно показать, что:

  1. Delta ( pm t_1^* pm , ldots , pm t_n^*) = Delta (t_1^* ) + ldots + Delta (t_n^* ) — предельная погрешность суммы или разности равна сумме предельных погрешностей.
  2. delta (t_1^* cdots t_m^* cdot d_1^{* - 1} cdots d_m^{* - 1} ) = delta (t_1^* ) + ldots + delta (t_m^*) + delta (d_1^*) + ldots + delta (d_n^*) — предельная относительная погрешность произведения или частного приближенного равна сумме предельных относительных погрешностей.

Погрешности округлений при представлении чисел в компьютере

Одним из основных источников вычислительных погрешностей является приближенное представление чисел в компьютере, обусловленное конечностью разрядной сетки (см. Международный стандарт представления чисел с плавающей точкой в ЭВМ). Число a, не представимое в компьютере, подвергается округлению, т. е. заменяется близким числом tilde a, представимым в компьютере точно.
Найдем границу относительной погрешности представления числа с плавающей точкой. Допустим, что применяется простейшее округление – отбрасывание всех разрядов числа, выходящих за пределы разрядной сетки. Система счисления – двоичная. Пусть надо записать число, представляющее бесконечную двоичную дробь

a=underbrace{pm2^p}_{order}underbrace{left(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}+frac{a_{t+1}}{2^{t+1}}+dotsright)}_{mantissa},

где a_j={01, qquad (j=1,2,...) — цифры мантиссы.
Пусть под запись мантиссы отводится t двоичных разрядов. Отбрасывая лишние разряды, получим округлённое число

tilde a=pm2^pleft(frac{a_1}{2}+frac{a_2}{2^2}+dots+frac{a_t}{2^t}right).

Абсолютная погрешность округления в этом случае равна

a-tilde a=pm2^pleft(frac{a_{t+1}}{2^{t+1}}+frac{a_{t+2}}{2^{t+2}}+dotsright).

Наибольшая погрешность будет в случае a_{t+1}=1, qquad a_{t+2}=1,, тогда

|a-tilde a|lepm2^pfrac{1}{2^{t+1}}underbrace{left(1+frac{1}{2}+frac{1}{2^2}+dotsright)}_{=2}=2^{p-t}.

Т.к. |M|ge0,5, где M — мантисса числа a, то всегда a_1=1. Тогда |a|ge2^pcdot2^{-1}=2^{p-1} и относительная погрешность равна frac{|a-tilde a|}{|a|}le2^{-t+1}. Практически применяют более точные методы округления и погрешность представления чисел равна

( 1 )

frac{|a-tilde a|}{|a|}le2^{-t},

т.е. точность представления чисел определяется разрядностью мантиссы t.
Тогда приближенно представленное в компьютере число можно записать в виде tilde a=a(1pmepsilon), где |epsilon|le2^{-t}«машинный эпсилон» – относительная погрешность представления чисел.

Погрешности арифметических операций

При вычислениях с плавающей точкой операция округления может потребоваться после выполнения любой из арифметических операций. Так умножение или деление двух чисел сводится к умножению или делению мантисс. Так как в общем случае количество разрядов мантисс произведений и частных больше допустимой разрядности мантиссы, то требуется округление мантиссы результатов. При сложении или вычитании чисел с плавающей точкой операнды должны быть предварительно приведены к одному порядку, что осуществляется сдвигом вправо мантиссы числа, имеющего меньший порядок, и увеличением в соответствующее число раз порядка этого числа. Сдвиг мантиссы вправо может привести к потере младших разрядов мантиссы, т.е. появляется погрешность округления.

Округленное в системе с плавающей точкой число, соответствующее точному числу x, обозначается через fl(x) (от англ. floating – плавающий). Выполнение каждой арифметической операции вносит относительную погрешность, не большую, чем погрешность представления чисел с плавающей точкой (1). Верна следующая запись:

fl(abox b)=abox b(1pmepsilon),

где box — любая из арифметических операций, |epsilon|le2^{-t}.

Рассмотрим трансформированные погрешности арифметических операций. Арифметические операции проводятся над приближенными числами, ошибка арифметических операций не учитывается (эту ошибку легко учесть, прибавив ошибку округления соответствующей операции к вычисленной ошибке).

Рассмотрим сложение и вычитание приближенных чисел. Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых.

Если сумма точных чисел равна

S=a_1+a_2+dots+a_n,

сумма приближенных чисел равна

tilde S=a_1+Delta(a_1)+a_2+Delta(a_2)+dots+a_n+Delta(a_n),

где Delta(a_i), qquad i=1,2,...,n— абсолютные погрешности представления чисел.

Тогда абсолютная погрешность суммы равна

Delta(S)=Delta(a_1)+Delta(a_2)+dots+Delta(a_n).

Относительная погрешность суммы нескольких чисел равна

( 2 )

delta(S)=frac{Delta(S)}{S}=frac{a_1}{S}left(frac{Delta(a_1)}{a_1}right)+frac{a_2}{S}left(frac{Delta(a_2)}{a_2}right)+dots=frac{a_1delta(a_1)+a_2delta(a_2)+dots}{S},

где delta(a_i), qquad i=1,2,...,n — относительные погрешности представления чисел.

Из (2) следует, что относительная погрешность суммы нескольких чисел одного и того же знака заключена между наименьшей и наибольшей из относительных погрешностей слагаемых:

min quad delta(a_k)ledelta(S)le max quad delta(a_k), qquad k=1,2,...,n, quad a_k>0.

При сложении чисел разного знака или вычитании чисел одного знака относительная погрешность может быть очень большой (если числа близки между собой). Так как даже при малых Delta(a_i) величина S может быть очень малой. Поэтому вычислительные алгоритмы необходимо строить таким образом, чтобы избегать вычитания близких чисел.

Необходимо отметить, что погрешности вычислений зависят от порядка вычислений. Далее будет рассмотрен пример сложения трех чисел.

S=x_1+x_2+x_3,
tilde S_1=(x_1+x_2)(1+delta_1),

( 3 )

tilde S=(tilde S_1+x_3)(1+delta_2)=(x_1+x_2)(1+delta_1)(1+delta_2)+x_3(1+delta_2).

При другой последовательности действий погрешность будет другой:

tilde S_1=(x_3+x_2)(1+delta_1),
tilde S=(x_3+x_2)(1+delta_1)(1+delta_2)+x_1(1+delta_2).

Из (3) видно, что результат выполнения некоторого алгоритма, искаженный погрешностями округлений, совпадает с результатом выполнения того же алгоритма, но с неточными исходными данными. Т.е. можно применять обратный анализ: свести влияние погрешностей округления к возмущению исходных данных. Тогда вместо (3) будет следующая запись:

tilde S=tilde x_1+tilde x_2+tilde x_3,

где tilde x_1=x_1(1+delta_1)(1+delta_2), quad tilde x_2=x_2(1+delta_1)(1+delta_2), quad tilde x_3=x_3(1+delta_2).

При умножении и делении приближенных чисел складываются и вычитаются их относительные погрешности.

S=a_1cdot a_2,
tilde S=a_1cdot a_2(1+delta(a_1))(1+delta(a_2))a_1cdot a_2(1+delta(a_1)+delta(a_2)),

с точностью величин второго порядка малости относительно delta.

Тогда delta(S)=delta(a_1)+delta(a_2).

Если S=frac{a_1}{a_2}, то Delta(S)=frac{a_1(1+delta_1)}{a_2(1+delta_2)}-frac{a_1}{a_2}=frac{a_1(delta_1-delta_2)}{a_2(1+delta_2)}approx frac{a_1}{a_2}(delta_1-delta_2), qquad delta(S)delta_1-delta_2.

При большом числе n арифметических операций можно пользоваться приближенной статистической оценкой погрешности арифметических операций, учитывающей частичную компенсацию погрешностей разных знаков:

delta_Sigma approx delta_{fl} quad sqrt{n},

где delta_Sigma – суммарная погрешность, |delta_{fl}|leepsilon – погрешность выполнения операций с плавающей точкой, epsilon – погрешность представления чисел с плавающей точкой.

Погрешности вычисления функций

Рассмотрим трансформированную погрешность вычисления значений функций.

Абсолютная трансформированная погрешность дифференцируемой функции y=f(x), вызываемая достаточно малой погрешностью аргумента Delta(x), оценивается величиной Delta(y)=|f'(x)|Delta(x).

Если f(x)>0, то delta(y)=frac{|f'(x)|}{f(x)}Delta(x)=left|(ln(f(x)))'right|cdotDelta(x).

Абсолютная погрешность дифференцируемой функции многих аргументов y=f(x_1, x_2, ..., x_n), вызываемая достаточно малыми погрешностями Delta(x_1), Delta(x_2), ..., Delta(x_n) аргументов x_1, x_2, ...,x_n оценивается величиной:

Delta(y)=sumlimits_{i=1}^nleft|frac{partial f}{partial x_i}right|Delta(x_i).

Если f(x_1,x_2,...,x_n)>0, то delta(y)=sumlimits_{i=1}^nfrac{1}{f}cdotleft|frac{partial f}{partial x_i}right|cdotDelta(x_i)=sumlimits_{i=1}^{n}left|frac{partial l_n(f)}{partial x_i}right|Delta(x_i).

Практически важно определить допустимую погрешность аргументов и допустимую погрешность функции (обратная задача). Эта задача имеет однозначное решение только для функций одной переменной y=f(x), если f(x) дифференцируема и f'(x)not=0:

Delta(x)=frac{1}{|f'(x)|}Delta(y).

Для функций многих переменных задача не имеет однозначного решения, необходимо ввести дополнительные ограничения. Например, если функция y=f(x_1,x_2,...,x_n) наиболее критична к погрешности Delta(x_i), то:

Delta(x_i)=frac{Delta(y)}{left|frac{partial f}{partial x_i}right|}qquad (погрешностью других аргументов пренебрегаем).

Если вклад погрешностей всех аргументов примерно одинаков, то применяют принцип равных влияний:

Delta(x_i)=frac{Delta(y)}{nleft|frac{partial f}{partial x_i}right|},qquad i=overline{1,n}.

Числовые примеры

Специфику машинных вычислений можно пояснить на нескольких элементарных примерах.

ПРИМЕР 1. Вычислить все корни уравнения

x^4 - 4x^3 + 8x^2 - 16x + 15.underbrace{99999999}_8 = {(x - 2)}^4 - 10^{- 8} = 0.

Точное решение задачи легко найти:

(x - 2)^2 = pm 10^{- 4},
x_1= 2,01; x_2= 1,99; x_{3,4}= 2 pm 0,01i.

Если компьютер работает при delta _M > 10^{ - 8}, то свободный член в исходном уравнении будет округлен до 16,0 и, с точки зрения представления чисел с плавающей точкой, будет решаться уравнение (x-2)^4= 0, т.е. x_{1,2,3,4} = 2, что, очевидно, неверно. В данном случае малые погрешности в задании свободного члена approx10^{-8} привели, независимо от метода решения, к погрешности в решении approx10^{-2}.

ПРИМЕР 2. Решается задача Коши для обыкновенного дифференциального уравнения 2-го порядка:

u''(t) = u(t), qquad u(0) = 1, qquad u'(0) = - 1.

Общее решение имеет вид:

u(t) = 0,5[u(0) + u'(0)]e^t + 0,5[u(0) - u'(0)]e^{- t}.

При заданных начальных данных точное решение задачи: u(x) = e^{-t}, однако малая погрешность delta в их задании приведет к появлению члена delta e^t, который при больших значениях аргумента может существенно исказить решение.

ПРИМЕР 3. Пусть необходимо найти решение обыкновенного дифференциального уравнения:

stackrel{cdot}{u} = 10u,qquad u = u(t), u(t_0) = u_0,qquad t in [0,1].

Его решение: u(t) = u_0e^{10(t - t_0 )}, однако значение u(t_0) известно лишь приближенно: u(t_0) approx u_0^*, и на самом деле u^*(t) = u_0^*e^{10(t - t_0)}.

Соответственно, разность u* - u будет:

u^* - u = (u_0^* - u_0)e^{10(t - t_0)}.

Предположим, что необходимо гарантировать некоторую заданную точность вычислений epsilon > 0 всюду на отрезке t in [0,1]. Тогда должно выполняться условие:

|{u^*(t) - u(t)}| le varepsilon.

Очевидно, что:

maxlimits_{t in [0,1]} |{u^*(t) - u(t)}| = |{u*(1) - u(1)}| = |{u_0^* - u_0}|e^{10(1 - t_0)}.

Отсюда можно получить требования к точности задания начальных данных delta: qquad|u_0^* - u_0| < delta, qquad delta le varepsilon e^{ - 10} при t_0= 0.

Таким образом, требование к заданию точности начальных данных оказываются в e^{10} раз выше необходимой точности результата решения задачи. Это требование, скорее всего, окажется нереальным.

Решение оказывается очень чувствительным к заданию начальных данных. Такого рода задачи называются плохо обусловленными.

ПРИМЕР 4. Решением системы линейных алгебраических уравнений (СЛАУ):

left{ begin{array}{l} u + 10v = 11,  100u + 1001v = 1101;  end{array} right.

является пара чисел {1, quad 1}.

Изменив правую часть системы на 0,01, получим возмущенную систему:

left{ begin{array}{l} u + 10v = 11.01,  100u + 1001v = 1101;  end{array} right.

с решением {11.01, quad 0.00}, сильно отличающимся от решения невозмущенной системы. Эта система также плохо обусловлена.

ПРИМЕР 5. Рассмотрим методический пример вычислений на модельном компьютере, обеспечивающем точность delta_M = 0,0005. Проанализируем причину происхождения ошибки, например, при вычитании двух чисел, взятых с точностью до третьей цифры после десятичной точки u = 1,001,quad v = 1,002, разность которых составляет Delta = |v_M - u_M| = 0,001.

В памяти машины эти же числа представляются в виде:

u_M = u(1 + delta_M^u), quad v_M = v(1 + delta_M^v), причем mid delta_M^umid le delta_M и mid delta_M^vmid le delta_M.

Тогда:

u_M - u approx udelta_M^u, quad v_M - v approx vdelta_M^v.

Относительная ошибка при вычислении разности u_M - v_M будет равна:

delta = frac{(u_M - v_M) - (u - v)}{(u - v)} = frac{(u_M - u) - (v_M - v)}{(u - v)} = frac{delta_M^u - delta_M^v}{(u - v)}.

Очевидно, что delta = left|{frac{delta_M^u - delta_M^v}{Delta }} right| le frac{2delta_M}{0,001} approx 2000delta_M = 1, т.е. все значащие цифры могут оказаться неверными.

ПРИМЕР 6. Рассмотрим рекуррентное соотношение u_{i+1} = qu_i, quad i ge 0, quad u_0 = a,quad q > 0, quad u_i > 0.

Пусть при выполнении реальных вычислений с конечной длиной мантиссы на i-м шаге возникла погрешность округления, и вычисления проводятся с возмущенным значением u_i^M = u_i + delta_i, тогда вместо u_{i+1} получим u_{i + 1}^M = q(u_i + delta_i) = u_{i + 1} + qdelta_i, т.е. delta_{i + 1} = qdelta_i,quad i = 0,1,ldots .

Следовательно, если |q| > 1, то в процессе вычислений погрешность, связанная с возникшей ошибкой округления, будет возрастать (алгоритм неустойчив). В случае mid qmid le 1 погрешность не возрастает и численный алгоритм устойчив.

Список литературы

  • А.А.Самарский, А.В.Гулин.  Численные методы. Москва «Наука», 1989.
  • http://www.mgopu.ru/PVU/2.1/nummethods/Chapter1.htm
  • http://www.intuit.ru/department/calculate/calcmathbase/1/4.html

См. также

  • Практикум ММП ВМК, 4й курс, осень 2008

Точность решения задачи оценивается Абсолютной или Относительной погрешностью.

Абсолютная погрешность:

, (2.1)

Где — точное решение,

X — численное решение.

Относительная погрешность:

, (2.2)

Источники погрешности численного решения задачи:

1. Погрешность математической модели.

Возникает в результате допущений, принятых при получении модели. Реальность всегда сложнее любой модели, поэтому этот источник погрешности всегда влияет на численное решение. Величина этой погрешности определяется сравнением экспериментальных данных с результатами расчетов по модели (оценивается Адекватность модели объекту).

2. Погрешность исходных данных.
Зависит от точности измерения параметров, используемых в модели. Любые измерения приближенны, поэтому и этот источник всегда влияет на решение.

В вычислительной математике эти два вида погрешности (погрешность математической модели и погрешность исходных данных) принято называть Неустранимой погрешностью, т. к. она не зависит от метода решения задачи и всегда влияет на ее решение, и ее обязательно нужно учитывать при анализе полученного решения.

3. Погрешность метода решения задачи.
Возникает в результате применения итерационного или вероятностного метода решения.
Эти методы позволяют получить точное решение только в результате бесконечной последовательности действий. Поэтому для получения приближенного решения бесконечный процесс прерывают при достижении требуемой точности решения.

4. Погрешность округления.
Возникает в результате проведения вычислений с конечным числом значащих цифр.

Погрешность элементарных арифметических действий изучается в теории погрешности. Учесть погрешность округления при большом количестве арифметических действий практически невозможно.

Есть случайные и систематические источники погрешности округления.

Случайные источники обычно компенсируют друг друга.

Например:

Знаки случайны и компенсируют друг друга при большом n.

Систематические источники вызывают накопление погрешности округления. Они являются дефектом структуры вычислений (алгоритма).

Пример 2.1

Требуется вычислить:

Сложим эти числа столбиком и, округлив результат до 3-х значащих цифр, получим значение с:

0,476

0,411

1,47

26,2

83,

111,557 » 112.

ЭВМ выполняет действия поочередно (складывает пару чисел) и округляет результат после каждого действия.

Выполним суммирование слева направо в порядке записи (как ЭВМ):

+ 0,476 + 0,887 + 2,36 + 28,6

0,411 1,47 26,2 83,

0,887 » 0,887 2,357»2,36 28,56 »28,6 111,6 » 112.

Пусть теперь выражение записано в обратном порядке:

Выполним суммирование как ЭВМ:

+ 83 + 109 + 110 + 110

26,2 1,47 0,411 0,476

109,2 » 109 110,47 » 110 110,411 » 110 110,476 » 110

От перестановки слагаемых сумма изменилась, то есть

Пример 2.2

Требуется перемножить 100 чисел, причем первая половина из них равна 0,1, вторая 10 (числа упорядочены по возрастанию значений).

Если в программе на языке Pascal последовательно перемножать числа, начиная с первого, то результат будет равен 0 (самое маленькое по модулю значение переменной типа Real на языке Pascal ± 2,9 ·10-39 ).

Если же последовательно перемножать с конца, то произойдет переполнение (самое большее по модулю значение переменной типа Real на языке Pascal 1,7·10 38 ).

Если же эти значения чередуются, то независимо от порядка умножения результат будет равен 1,0.

Следовательно, от перестановки мест сомножителей значение произведения в рассмотренном случае меняется.

В машинной арифметике законы коммутативности (Переместительный) и дистрибутивности (Распределительный) не всегда соблюдаются.

Рекомендации для снижения ошибок округления:

1. При сложении и вычитании последовательности чисел действия необходимо начинать с наименьших по абсолютной величине значений.

2. Следует избегать вычитания двух близких чисел, преобразуя выражения.

3. Количество арифметических действий для решения задачи нужно сводить к минимуму.

4. Для уменьшения ошибки округления расчеты следует проводить с повышенной разрядностью (double precision в Pascal).

При выборе численного метода решения задачи необходимо учитывать следующее:

1. Погрешность метода должна быть на порядок меньше неустранимой погрешности. Увеличение погрешности метода снижает точность, уменьшение – увеличивает время решения задачи.

2. Погрешность округления должна быть значительно меньше (на два порядка) погрешности метода и неустранимой погрешности.

Для оценки погрешности решения на практике можно использовать следующие приемы:

1. Решить задачу различными численными методами и результаты сравнить.

2. Незначительно изменить исходные данные и повторно решить задачу. Результаты сравнить. Если они различаются сильно, задача или метод ее решения являются Неустойчивым – выбрать другой.

< Предыдущая   Следующая >

1.1. Источники ошибок при вычислениях на эвм.

1).Ошибки в
исходных данных.

Это неточность
математического описания задачи и в
частности неточность задания исходных
данных.

Подразумевается,
что это неточность представления
исходных материалов, необходимых для
расчетов. Главным образом – это неточности
описания математической модели. Они
возникают либо из-за сложности
математической модели, либо из-за
недостаточного уровня знаний в этой
области на текущий момент времени.
Сформулируем пример подобной ситуации.

Необходимо
определить время, за которое самолет
преодолеет расстояние 800 км. Предположим,
что он движется со средней скоростью
800 км/час. В этом случае весьма приближенное
решение очевидно: 1 час. При этом мы
предположили, что движение самолета
равномерное. Следовательно, исходные
данные таковы:

Путь- S=800
км.

Скорость-
V=800 км/час.

Математическая
модель, описывающая движение самолета
вообще отсутствует. Участки набора
высоты (взлет) и снижения (приземления)
не учитываются.

Скорость и
направление ветра, турбулентности
атмосферы (порывы ветра по вертикали и
горизонтали) на протяжении всего пути,
количество и размер грозовых фронтов,
как правило, неизвестны.

В этих
условиях даже достаточно сложная и
совершенная математическая модель,
описывающая движение самолета, не может
обеспечить точного решения. В данных
рассуждениях акцент сделан на наиболее
трудоемкую и сложную часть любой
вычислительной задачи: создание точной
(реальной) математической модели. Без
натурных экспериментов, серьезных
знаний и опыта проектировщика по работе
в данной области техники такие модели
создать практически невозможно.

Все числовые
параметры, входящие в расчетную
математическую модель, также можно
задать лишь с какой-то точностью. В
данном примере числа заданы с точностью
до 3-х знаков. Проще всего поставленную
задачу решить с помощью статистики,
если она имеется.

К данному
разделу относятся также следующие
ошибки:

а. Ошибки в
вычислительном устройстве (аппаратные
ошибки).

б. Ошибки в
программе.

в. Ошибки в
эксперименте.

По сути дела,
в данном пункте возможных неточностей
расчетов сгруппированы ошибки по всей
цепочке организации вычислений:

— создание и
разработка математической модели с ее
исходными данными,

— разработка
алгоритма и программы,

— отладка
программы и

— анализ
результатов счета.

2). Ошибки
ограничения разрядности ЭВМ.

При любой
разрядной сетке ЭВМ число разрядов,
отведенное для чисел в структуре ЭВМ,
ограничено. Поэтому машинная арифметика
отличается от обычной — без машинной.
Каждый компьютер можно проверить на
машинную точность εмаш. с помощью
программы:

Program
Epsilon;

uses crt;

var Eps:real;

begin
ClrScr;

Eps:=1;

while (1+Eps/2)>1 do
Eps:=Eps/2;

writeln(‘Eps=’, Eps);
readln;

end.

Для чисел
типа real (сопроцессор
отключен) Eps=9.0949470177E-13,
для чисел типа extended
(сопроцессор включен)
Eps=1.08420217217248550E-0019.

Набрав в
МATLAB eps,
получим ответ ans =2.2204e-016.

Современные
компьютеры работают с большим количеством
разрядов (32 или 64 двоичных разряда) и
проблема кажется не актуальной.

Вот, что
получается, если компьютер имел бы 6-ти
разрядную сетку (для десятичных чисел).

Таблица №1

x

exp(x)-машинное

exp(x)-точное)

exp(x)-матлаб

1

2,718282

2,718282

2,7183

10

22026,47

22026,46

2,2026*104

20

4,8516531*108

4,8516520*108

4,8517*108

-1

0,3678794

0,3678795

0,3679

-10

-1,64086091*10-4

4,539993*10-5

4,5400*10-5

-20

1,202966

2,0611537*10-9

2,0612*10-9

В качестве
примера рассмотрен расчет экспоненты

e
x=
1+
x+x2/2!+x3/3!+
∙∙∙
(1.1)

Прежде всего,
отметим, что большинство элементарных
математических функций при расчетах
на ЭВМ разлагаются в ряд.

Если предположить,
что число членов ряда не ограничено, то
в таблице №1 видно, что при x>0
точное значение совпадает со значением,
рассчитанным с точностью до 6-го знака
(2-ой и 3-й столбцы). Значения, рассчитанные
с помощью МATLAB (4-ый столбец),
совпадают с точными значениями в 4-х
знаках. Они рассчитаны по умолчанию,
т.е. не предприняты меры по увеличению
точности расчетов.

Совсем
другая картина для x<0
. Использование 6-ти разрядной сетки
привело к катастрофическим последствиям
при расчете для x=−10
и
x =−20 . Видно,
что нет никакого совпадения результатов
(2-й и 3-й столбцы). В формуле (1.1) слагаемые
вводятся с переменным знаком. И,
следовательно, при сложении членов ряда
возникают малые разности, которые меньше
чисел с 6-тью знаками после запятой,
поэтому результат не может быть
предсказуемым. Числа выходят за пределы
разрядной сетки и «пропадают». Отметим
попутно, что ряд (1.1) непременно сходится,
поскольку факториал является более
быстрорастущей функцией.

Особо следует
обращать внимание на расчетные выражения,
в которых малые разности появляются в
знаменателе. В этом случае можно получить
любой результат даже для ЭВМ с большим
количеством разрядов, если разность
получена для очень близких по величине
чисел. Такие алгоритмы называют
неустойчивыми. Часто простое преобразование
формулы избавляет от рассмотренной
неприятности. Для формулы (1.1) можно
проделать следующее (x<0):

e x
= 1/
ex
.
(1.2)

Рассмотрим
второй пример.

Необходимо
вычислить корни алгебраического
уравнения:

x4
— 8 x3 +24 x2
— 32
x +15,99999999= 0.
(1.3)

Преобразуем
последнее слагаемое 16 – 10-8 и
запишем,

используя
формулу бинома Ньютона:

(x-2)4
=10-8 .
(1.4)

Извлекая
корень квадратный из левой и правой
части уравнения (1.4), получим:

(x-2)2
= ±10-4.

Извлекая
корень квадратный еще раз, получим:

(x-2)
= ±√±10-4.

Откуда
определяем корни уравнения:

x1=2,01;
x=1,99; x=2+0,1j;
x=2- 0,1j.

Если
εмаш.>10-10 , то вместо
исходного уравнения (1.3) решается
уравнение (x-2)4 =
0.

А корни его
принципиально другие. Такие задачи, в
которых небольшие вариации коэффициентов,
приводят к значительным изменениям
решения называются плохо обусловленными.

И, наконец,
третий пример:

Решить
систему линейных уравнений:

0,780x
+ 0,563y = 0,217

(1.5)

0,457x
+ 0,330y = 0,127 .

Если вести
расчеты с учетом трех десятичных
разрядов, то получим решение x=1,71
и
y=-1,98. Подставив
полученное решение в систему уравнений
(1.5), получим невязки: 0,00206 и 0,00107, которые
оказались достаточно малыми. Точное
решение x=1 и
y=-1. Оно обеспечивает
нулевые невязки.

— Таким
образом, метод решения не может исправить
ситуацию, если задача плохо обусловлена.

— Машинная
арифметика может давать неожиданные
результаты.

Конечно,
примеры несколько утрированы относительно
современных ЭВМ, но подобные ситуации
для более сложных задач случаются
нередко.

3) Ошибки
округления
.

Это ошибки,
возникающие при округлении младшего
разряда любого числа. Округление обычно
выполняется аппаратно и соответствует
правилу, принятому в десятичной системе:
округлять с точностью 0.5. Оно точнее,
чем простое отбрасывание младшего
разряда. Округление зависит от машинной
точности и при значительном числе
разрядов, используемых при счете, кажется
фактором совсем ничтожным. Но дело в
том, что при расчетах сложных алгоритмов
число совершаемых операций велико
и многие алгоритмы обладают
способностью накапливать ошибки
округления. Поэтому разрабатываются
методы, позволяющие следить за накоплением
ошибок округления и их оценкой. Для
этого разрабатываются как программные,
так и аппаратные средства. При
программировании конкретных задач эту
проблему следует учитывать.

4) Ошибки
ограничения
.

Они возникают,
если расчетная формула при выполнении
расчетов «усекается», т.е. используется
в упрощенном виде:

ex=1+x+x2/2!+x3/3!

(1.6)

Часто в
литературе ошибки в вычислениях называют
погрешностями. При этом ошибки, возникающие
в пунктах 1) и 4) являются неустранимыми,
а ошибки, возникающие в пунктах 2) и 3)
являются вычислительными погрешностями.
Если метод решения задачи приводит к
чрезмерному увеличению продолжительности
счета или не обеспечивает ожидаемых
результатов, то в данном случае можно
сказать, что это погрешности метода.

Введем следующие определения:

абсолютная ошибка — это разность
между полученным при расчете значением
и истинным

значением величины:

,

относительная ошибка— это отношение
абсолютной ошибки к значению, полученному

при расчете:

.



точное решение,

х – приближенное, реально полученное
решение.

Величины
ошибок при совершении конкретных
действий оцениваются с помощью
дифференциала. Важно понять распространение
ошибок в ходе вычислений. Эта проблема
в общем виде не решена.

Оценка абсолютных ошибок при
арифметических действиях:



сложение, вычитание.



умножение.



деление.

Оценка относительных ошибок при
арифметических действиях:

— сложение и вычитание,

— умножение.

— деление.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Точность решения задачи оценивается Абсолютной или Относительной погрешностью.

Абсолютная погрешность:

, (2.1)

Где — точное решение,

X — численное решение.

Относительная погрешность:

, (2.2)

Источники погрешности численного решения задачи:

1. Погрешность математической модели.

Возникает в результате допущений, принятых при получении модели. Реальность всегда сложнее любой модели, поэтому этот источник погрешности всегда влияет на численное решение. Величина этой погрешности определяется сравнением экспериментальных данных с результатами расчетов по модели (оценивается Адекватность модели объекту).

2. Погрешность исходных данных.
Зависит от точности измерения параметров, используемых в модели. Любые измерения приближенны, поэтому и этот источник всегда влияет на решение.

В вычислительной математике эти два вида погрешности (погрешность математической модели и погрешность исходных данных) принято называть Неустранимой погрешностью, т. к. она не зависит от метода решения задачи и всегда влияет на ее решение, и ее обязательно нужно учитывать при анализе полученного решения.

3. Погрешность метода решения задачи.
Возникает в результате применения итерационного или вероятностного метода решения.
Эти методы позволяют получить точное решение только в результате бесконечной последовательности действий. Поэтому для получения приближенного решения бесконечный процесс прерывают при достижении требуемой точности решения.

4. Погрешность округления.
Возникает в результате проведения вычислений с конечным числом значащих цифр.

Погрешность элементарных арифметических действий изучается в теории погрешности. Учесть погрешность округления при большом количестве арифметических действий практически невозможно.

Есть случайные и систематические источники погрешности округления.

Случайные источники обычно компенсируют друг друга.

Например:

Знаки случайны и компенсируют друг друга при большом n.

Систематические источники вызывают накопление погрешности округления. Они являются дефектом структуры вычислений (алгоритма).

Пример 2.1

Требуется вычислить:

Сложим эти числа столбиком и, округлив результат до 3-х значащих цифр, получим значение с:

0,476

0,411

1,47

26,2

83,

111,557 » 112.

ЭВМ выполняет действия поочередно (складывает пару чисел) и округляет результат после каждого действия.

Выполним суммирование слева направо в порядке записи (как ЭВМ):

+ 0,476 + 0,887 + 2,36 + 28,6

0,411 1,47 26,2 83,

0,887 » 0,887 2,357»2,36 28,56 »28,6 111,6 » 112.

Пусть теперь выражение записано в обратном порядке:

Выполним суммирование как ЭВМ:

+ 83 + 109 + 110 + 110

26,2 1,47 0,411 0,476

109,2 » 109 110,47 » 110 110,411 » 110 110,476 » 110

От перестановки слагаемых сумма изменилась, то есть

Пример 2.2

Требуется перемножить 100 чисел, причем первая половина из них равна 0,1, вторая 10 (числа упорядочены по возрастанию значений).

Если в программе на языке Pascal последовательно перемножать числа, начиная с первого, то результат будет равен 0 (самое маленькое по модулю значение переменной типа Real на языке Pascal ± 2,9 ·10-39 ).

Если же последовательно перемножать с конца, то произойдет переполнение (самое большее по модулю значение переменной типа Real на языке Pascal 1,7·10 38 ).

Если же эти значения чередуются, то независимо от порядка умножения результат будет равен 1,0.

Следовательно, от перестановки мест сомножителей значение произведения в рассмотренном случае меняется.

В машинной арифметике законы коммутативности (Переместительный) и дистрибутивности (Распределительный) не всегда соблюдаются.

Рекомендации для снижения ошибок округления:

1. При сложении и вычитании последовательности чисел действия необходимо начинать с наименьших по абсолютной величине значений.

2. Следует избегать вычитания двух близких чисел, преобразуя выражения.

3. Количество арифметических действий для решения задачи нужно сводить к минимуму.

4. Для уменьшения ошибки округления расчеты следует проводить с повышенной разрядностью (double precision в Pascal).

При выборе численного метода решения задачи необходимо учитывать следующее:

1. Погрешность метода должна быть на порядок меньше неустранимой погрешности. Увеличение погрешности метода снижает точность, уменьшение – увеличивает время решения задачи.

2. Погрешность округления должна быть значительно меньше (на два порядка) погрешности метода и неустранимой погрешности.

Для оценки погрешности решения на практике можно использовать следующие приемы:

1. Решить задачу различными численными методами и результаты сравнить.

2. Незначительно изменить исходные данные и повторно решить задачу. Результаты сравнить. Если они различаются сильно, задача или метод ее решения являются Неустойчивым – выбрать другой.

< Предыдущая   Следующая >

Понравилась статья? Поделить с друзьями:
  • Относительная ошибка суммы
  • Относительная ошибка среднего результата
  • Относительная ошибка прямого измерения
  • Относительная ошибка прогнозирования формула
  • Относительная ошибка прибора