Какой вариант вычислений обычно приводит к наибольшей относительной ошибке

Тест состоит из заданий, составленных на основе §69 Точность вычислений. Если в ответе получается вещественный результат, то его следует вводить в поле для ответом через ЗАПЯТУЮ!

Точность вычислений

Avatar

Власюк Антон Евгеньевич

12.05.2020.
Тест. Информатика, 10 класс

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

Тест состоит из заданий, составленных на основе §69 Точность вычислений. Если в ответе получается вещественный результат, то его следует вводить в поле для ответом через ЗАПЯТУЮ!

Список вопросов теста

Вопрос 1

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

Вопрос 2

С помощью рулетки, цена деления которой равна 1 см, измерили длину стола, она оказалась равна 2 м. Определите относительную погрешность измерения (в процентах). Знак процента в ответе вводить не нужно

Вопрос 3

Укажите, что влияет на погрешность, которая получается при вычислении какой-то величины с помощью компьютера.

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

Вопрос 4

В результате опыта была измерена масса ноутбука, она оказалась равной  2,1 ± 0,1 кг.
Определите максимальную возможную массу ноутбука (в килограммах) согласно этим данным.

Вопрос 5

Размеры пластины, измеренные с точностью 1 мм, оказались равны 3 на 5 см. Найдите абсолютную погрешность (в см2) вычисленной по этим данным площади пластины.

Вопрос 6

Размеры листка бумаги, измеренные с точностью 1 мм, оказались равны 5 на 10 см. Найдите относительную погрешность (в процентах) вычисленной по этим данным площади этого листка. Знак процента в ответе вводить не нужно.

Вопрос 7

Какой метод расчёта называется вычислительно неустойчивым?

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

Вопрос 8

Какой вариант вычислений обычно приводит к наибольшей относительной ошибке?

Варианты ответов
  • большая разность больших чисел
  • малая разность больших чисел
  • малая разность малых чисел
  • деление двух больших чисел
  • деление двух малых чисел

Материал из 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={0\1, 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

Распространение
ошибок

Содержание

[убрать]

  • 1
    Введение

  • 2
    Распространение ошибок

    • 2.1
      Абсолютная ошибка

    • 2.2
      Относительная ошибка

  • 3
    Графы вычислительных процессов

    • 3.1
      Примеры

  • 4
    Памятка программисту

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

  • 6
    См. также

Введение

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

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

Распространение
ошибок

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

Абсолютная
ошибка

Сложение

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

.

Ошибка
суммы, которую мы обозначим через
,
будет равна

.

Вычитание

Тем
же путем получаем

.

Умножение

При
умножении мы имеем

.

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

.

Ошибка
произведения будет равна

.

Деление

Имеем

.

Преобразовываем
это выражение к виду

.

Множитель,
стоящий в скобках, при
можно
разложить в ряд

.

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

.

Следовательно,

.

Необходимо
четко понимать, что знак ошибки бывает
известен только в очень редких случаях.
Не факт, например, что ошибка увеличивается
при сложении и уменьшается при вычитании
потому, что в формуле для сложения стоит
плюс, а для вычитания — минус. Если,
например, ошибки двух чисел имеют
противоположные знаки, то дело будет
обстоять как раз наоборот, то есть ошибка
уменьшится при сложении и увеличится
при вычитании этих чисел.

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

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

Сложение

.

Вычитание

.

Умножение

.

Деление

.

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

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

Графы
вычислительных процессов

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

Рис.1.
Граф вычислительного процесса

На
рис.1
изображен граф вычислительного процесса
.
Граф следует читать снизу вверх, следуя
стрелкам. Сначала выполняются операции,
расположенные на каком-либо горизонтальном
уровне, после этого — операции,
расположенные на более высоком уровне,
и т. д. Из рис.1, например, ясно, что
x
и y
сначала складываются, а потом умножаются
на z.
Граф, изображенный на рис.1,
является только изображением самого
вычислительного процесса. Для подсчета
общей ошибки результата необходимо
дополнить этот граф коэффициентами,
которые пишутся около стрелок согласно
следующим правилам.

Сложение

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

Вычитание

Если
выполняется операция
,
то соответствующие стрелки получают
коэффициенты
и
.

Умножение

Обе
стрелки, входящие в кружок умножения,
получают коэффициент +1.

Деление

Если
выполняется деление
,
то стрелка от
к
косой черте в кружке получает коэффициент
+1, а стрелка от
к
косой черте в кружке получает коэффициент
−1.

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

Примеры

Рис.2.
Граф вычислительного процесса для
сложения
,
причем

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

Пример
1

Рассмотрим
задачу сложения четырех положительных
чисел:

,

где

.

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

.

Сокращая
сумму
в
первом члене и умножая все выражение
на
,
получаем

.

Учитывая,
что ошибка округления равна

данном случае предполагается, что
действительное число в ЭВМ представляется
в виде десятичной дроби с t
значищими цифрами), окончательно имеем

.

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

Пример
2

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

.

Предположим,
кроме того, что x
и y
являются соответствующим образом
округленными положительными числами,
так что

и
.

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

Рассмотрим
простой пример:

Тогда

Зная
x
и y,
мы можем написать

Как
видим, относительные ошибки x
и y
малы. Однако

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

Памятка
программисту

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

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

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

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

  4. В
    любом случае сводите к минимуму число
    необходимых арифметических операций.

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

  • Д.Мак-Кракен,
    У.Дорн.

    Численные методы и программирование
    на Фортране. Москва «Мир», 1977

  • А. А. Самарский,
    А. В. Гулин.

    Численные методы. Москва «Наука», 1989.

Соседние файлы в папке вычМатКурсач

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

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Какое определение ошибочно внутренней энергией тела называется
  • Какой бывает ошибка
  • Какое назначение платежа при возврате ошибочно перечисленной суммы
  • Какое действие является ошибочным при вывихе
  • Какое утверждение является ошибочным причастие лившихся предложение 4

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии