Действия над приближенными числами
Иркутский государственный технический университет
Факультет кибернетики
Кафедра вычислительной техники
КУРС ЛЕКЦИЙ
По дисциплине
ВЫЧИСЛИТЕЛЬНАЯ
МАТЕМАТИКА
Направления
подготовки: - 654600 “Информатика и вычислительная техника”
- 654700 “Информационные системы”
Специальности: 2201 “Вычислительные машины, комплексы,
Системы и сети ” (ЭВМ)
Автоматизированные системы обработки
Информации и управления ” (АСУ)
Информационные системы в технике и
Технологиях ” (МЭИ)
ЛЕКЦИЯ 1
Приближенные числа.
«В численных расчетах всегда есть
бездна ловушек…»
Форсайт, Малькольм, Моулер.
1. Источники погрешностей результатов вычислений.
а) исходные данные получены из эксперимента, т.е. имеют ограниченную точность;
б) в процессе вычислений иррациональные величины: π, е, и т.д. могут быть представлены лишь приближенно;
в) часто методы решения задач требуют для получения ответа бесконечного числа шагов (например при интегрировании, когда исходная функция заменяется степенным рядом с бесконечным числом членов). Решение прекращается после выполнения конечного числа операций;
г) ограниченное число разрядов в ЭВМ и т.д.
При решении задач на ЭВМ пользуются те или иные вычислительные схемы.
Пример, «ловушки» при численных расчетах [Березин, Жидков, т 1 стр. 39]
Вычислить объем шара, заключенного между цилиндром радиуса R и взаимно перпендикулярными плоскостями. Радиус шара – r.
;
Рассмотрим три различных вычислительных схемы:
Подсчитаем три выражения для двух приблизительных значений
= 1,4142135624…
1. = 1,4 = ; ∆1 = 0,014 /∆1 / = 0,014
2. = 1,4166 = ∆2 = -0,0024 /∆2 / = 0,0024
второе значение более точное.
Результаты сведем в таблицу
(3-2 ) | 99-70 | ||
Имеем 6 ответов (от -0,1666 до +1), существенно отличающихся друг от друга. Причем вариант - очевидно абсурден. Сразу не ясно, какой из оставшихся результатов ближе к верному.
Один программист сказал: «написать две хороших подпрограммы на порядок легче, чем решить, какая из них лучше»
[Малькольм, Форсайт, Моулер]
Необходимость оценивать результаты программ обусловила необходимость анализа погрешностей.
2. Абсолютная и относительная погрешности,
Под ошибкой или погрешностью, ∆а приближенного числа, а понимают разность между точным числом и приближенным
∆а = А – а (иногда: ∆а = а – А )
Абсолютная погрешность приближенного числа
∆ = /∆а/ ∆ = /А-а/
Т.к. точное число А обычно неизвестно, то используют верхнюю оценку ∆ – предельную абсолютную погрешность ∆а, т.е. всякое число, не меньше абсолютной погрешности этого числа.
∆ = /А – а/ ≤ ∆а (1)
Т.о.
а – ∆а ≤ А ≤ а +∆а
Или
А = а ± ∆а
Пример: определить ∆а числа а = 3,14, заменяющего π.
Решение: 3,14 < π < 3,15
/а – π/ < 0,01 т.о. ∆а = 0,01
Если учесть, что
3,14 < π < 3,142, то ∆а = 0,02
Нужно выбирать нижнюю грань числа ∆а, удовлетворяющего неравенству (1).
Относительной погрешностью δ приближенного числа а называют отношение абсолютной погрешности ∆ к модулю точного числа А (А ≠0)
δ = (2)
т.е. ∆ = /А/ • δ
Предельной относительной погрешностью δа называется всякое число, не меньшее относительной погрешности приближенного числа а.
δ ≤ δа т.е. ≤ δа → ∆ = /А/ • δа
Сравнивая с (1) получаем: предельная абсолютная погрешность равная предельной относительной погрешности умноженной на модуль точного значения числа.
∆а = /А/ • δа (3)
На практике считают (т.к. А ≈ а)
∆а = /а/ • δа (4)
границы для точного числа А равны
а(1 – δа) и а(1 + δа)
т.о. А = а(1 ± δа)
3. Значащая цифра. Число верных знаков.
Опр. 1 | Значащей цифрой приближенного числа называется всякая цифра в его десятичном изображении, отличная от нуля, и нуль, если он содержится между значащими цифрами или является представлением сохраненного десятичного разряда. |
Примеры:
незначащие цифры
значащие цифры
Опр. 2 | n первых значащих цифр приближенного числа а является верными, если абсолютная погрешность этого числа не превышает половины единицы разряда, выражаемого n-ой значащей цифрой, считая слева направо. |
Т.о. для числа
а = αm • 10m +…+ αm-n+1 – 10m-n +1 +…
(ли известно, что ∆ = /А – а/ ≤ 1/2 • 10m-n +1)
Пример: А = 35,97 а = 36,00
В а верны три знака, т.к. /А – а/ = 0,03 < 1/2 • 0,1
следовательно, 0 • 10-1 – верная значащая цифра.
4. Округление чисел.
Чтобы округлить число до n значащих цифр, отбрасывают все цифры его, стоящие справа от n-ой значащей цифры, или, если это нужно для сохранения разряда, заменяют их нулями. При этом:
1) если первая из отброшенных цифр < 5, то оставшиеся десятичные знаки сохраняются без изменения;
2) если первая из отброшенных цифр > 5, то к последней оставшейся цифре добавляется 1;
3) если первая из отброшенных цифр = 5 и среди отброшенных цифр есть ненулевые, то последняя оставшееся цифра увеличивается на 1;
4) если все отброшенные цифры (первая = 5) – нулевые, то последняя оставшееся цифра остается неизменной, если она четная, и увеличивается на 1, если она нечетная.
Рекомендации для практического применения:
1. Количество верных знаков числа отсчитывается от 1-ой значащей цифры числа до первой значащей цифры его абсолютной погрешности. S = 20.7426; ∆s = 0.0926 верные знаки 2, 0, 7. по определению 2, верные значащие цифры были бы 2,0, т.к. 0,09>
1/2 • 0,1 = 0,05
2. В окончательных результатах вычислений обычно оставляют, кроме верных, один сомнительный знак. В промежуточных результатах обычно оставляют два-три сомнительных знака, чтобы не накапливать погрешности от округлений.
Пример: Длина и ширина комнаты, измеренные с точностью до 1 см., равны
а = 5,43м; в = 3,82м. Оценить погрешность площади.
S = ав = 20,7426 м2
Решение: ∆а = 0,01м; ∆в = 0,01м
Smax = (a + 0.01)(в + 0,01) = 20,8952 м2 /Smax – S/ = 0,0926
Smin = (a - 0.01)(в - 0,01) = 20,6502 м2 /Smin – S/ = 0,0924
∆S = 0,0926. Можно положить ∆S = 0,1. Погрешность увеличивают при округлении.
Приближенное значение S = 20,7 (или даже 21).
5. Сложение и вычитание приближенных чисел.
Абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей слагаемых:
если S = а1+а2+…±аn
то ∆S = ∆а1+∆а2+…±∆аn
За предельную абсолютную погрешность можно принять сумму предельных абсолютных погрешностей.
Практическое правило для сложения приближенных чисел.
1. выделить числа, десятичная запись которых обрывается ранее других, и оставить их без изменения;
2. остальные числа округлить по образцу выделенных, сохраняя один или два запасных знака;
3. произвести сложение, учитывая все сохраненные знаки;
4. результат округлить на 1 знак
Пример: найти сумму приближенных чисел, каждое из которых имеет все верные значащие цифры:
0,348; 0,1834; 345,4; 235,2; 11,2; 11,75; 9,27; 0,0849; 0,0214; 0,000354.
Решение:1) выделяем числа наименьшей точности: 345,4; 235,2 (абсолютная погрешность может достигать 0,1).
2) округляем остальные числа до 0,01
получим
345,4 | 3) округляем результат до 0,1. По правилу четной цифры получаем: S = 602,2 |
235,2 | |
11,2 | |
9,27 | |
0,35 | |
0,18 | |
0,08 | |
0,02 | |
0,00 | |
602,25 |
Абсолютная погрешность находится в (приближенно) как сумма абсолютных погрешностей исходных данных и погрешности округления
∆S = 0,10 + 0,05 = 0,15 ∆а = 0,2
Относительная погрешность δs суммы нескольких чисел одного и того же знака между наименьшей и наибольшей из относительных погрешностей слагаемых: min δак ≤ δs ≤ δак (ак > 0, к = 1, 2, 3…, n)
Пример: оценить относительную погрешность суммы, найденной в предыдущем примере, и сравнить ее с относительными погрешностями слагаемых.
Решение: абсолютная погрешность (погрешность суммирования) ∆ равна 0,1. относительная погрешность δ = ∆/А:
Δ = 0,1/602,2 = 0,017 %
Относительные погрешности слагаемых: 0,0005/0,348 = 0,5/348 = 15 %
0,5/348 = 15 %; 0,5/1834 = 0,027 %; 0,5/3454 = 0,015 %
05/2352 = 0,022 %; 0,5/1175 = 0,043 %; 0,5/927 = 0,054 %
0,5/849 = 0,059 %; 0,5/214 = 0,24 %; 0,5/354 = 0,015 %
min δак = 0,015 %
max δак = 0,24 %
δs = 0,017 %
Наибольший вклад в сумму вносят слагаемые 345,4 (δ = 0,015 %) и 235,2 (δ = 0,022 %). δ заключена между этими значениями.
Относительная погрешность разности двух положительных чисел больше относительных погрешностей этих чисел, особенно, если эти числа близки между собой.
Это приводит к потере точности при вычитании близких чисел. При приближенных вычислениях полезно преобразовать выражения, связанные с вычислением близких чисел.
Пример: U = ; найти разность с тремя верными знаками.
= 1,41774469
= 1,41421356
U = 0,00353 = 3,53•10–3 вычисления нужно вести с 6 знаками после запятой, т.е. 7 верных знаков.
Преобразуем U:
Заданную точность можно обеспечить, взяв корни лишь с тремя верными знаками.
U =
ЛЕКЦИЯ 2
Действия над приближенными числами.
1 Умножение и деление приближенных чисел.
1. При умножении и делении приближенных чисел складываются их относительные погрешности (не абсолютные!).
Относительная погрешность выражения
r = (1)
оценивается величиной
δ2 = δа1 + δа2 +…+ δаm + δb1 + δb2 +…+ δbn (2)
Если у одного из чисел ai, bj относительные погрешности значительно превышают относительные погрешности других чисел, относительная погрешность выражения (1) считается равной этой наибольшей погрешности.
2. Абсолютная погрешность выражения (1) вычисляется по его относительной погрешности.
∆r = /r/•δr
Пример: вычислить выражение:
считая, что все числа даны с верными знаками, т.е. их абсолютные погрешности не превосходят половины единицы младшего оставляемого разряда.
Решение: наибольшую относительную погрешность имеет число 3,2
δа =
т.о. результат содержит не более двух верных знаков. В расчетах сохраняем один дополнительный знак (округляем числа)
Абсолютная погрешность ∆r = r • δr = 0,221• 0,016 = 0,0036
Результат: r = 0,22; ∆r < 0,005
2. Погрешности вычисления значений функции.
Пусть задана дифференциальная функция
U = f (x1, x2,…xn)
Пусть /∆xi/ (i = 1,…,n) – абсолютные погрешности аргументов.
Абсолютная погрешность функции
/∆U/ = /f (x1 +∆ x1, x2 +∆ x2, …, xn +∆ xn) - f (x1, x2,…xn)/
Т.к. ∆xi – малы, то можно, разложив f (xi +∆xi (i = 1,…n)) в ряд Тейлора и пренебрегая числами ∆xi 2 и т.д., т.е. оставив в разложении только линейные числа, получить:
, т.е.
(1)
Относительная погрешность функции:
(2)
7.1. Функция одной переменной: y = f (x)
Абсолютная погрешность: ∆у = /f’(x)/ • ∆x
Относительная погрешность: (3)
Т.к.
Примеры: а) степенная функция у = ха
∆у = /а/ха-1∆x; т.к. ∆у = /f’(x)/ • ∆x
б) показательная функция: у = ах (а > 0)
∆у = ах • lnа • ∆х; δу = ∆х • lnа
для функции у = ех получаем δу = ∆х
в) логарифмическая функция у = lnх
∆у = 1/х • ∆х = δх
для десятичного логарифма имеем ∆у = 0,4343•δх
г) тригонометрические функции:
абсолютные погрешности синуса и косинуса не превосходят абсолютные погрешности аргумента: ∆sinx = /cosx/•∆x ≤ ∆x и т.д.
д) функция нескольких переменных.
Пусть U = x y2 z3.
x = 37.1 y = 9.87 z = 6.052
∆x = 0.3 ∆у = 0.11 ∆z = 0.016
Находим относительные погрешности аргументов.
; ;
Относительная погрешность функции равна см.(2)
;
На практике ориентировочно можно считать, что наличие только одного знака соответствует относительной погрешности порядка 10 %, двух верных знаков – относительная погрешность порядка 1 %, трех верных знаков – порядка 0,1 %.
При такой относительной погрешности значение функции следует вычислять не более чем с двумя-тремя значений.
U = 801 • 103
Абсолютная погрешность при этом равна
∆U = U • δU = 801• 103 • 0,038 = 30 • 103
Целесообразно результат округлить до двух знаков:
U = 8,0 • 105 ∆U = 0,3 • 105
3. Определение допустимой погрешности аргументов по допустимой погрешности функции.
(Обратная задача теории погрешностей)
Каковы должны быть абсолютные погрешности аргументов функции, чтобы абсолютная погрешность функции не превышала заданной величины?
Эта задача математически неопределенна, т.к. заданную предельную погрешность Δu функции u = f(x1,x2,…,xn) можно обеспечить, устанавливая по-разному предельные абсолютные погрешности Δx ee аргументов.
Простейшее решение обратной задачи дается принципом равных влияний: