
Выч.мат
..pdfФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ОБНИНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ АТОМНОЙ ЭНЕРГЕТИКИ (ИАТЭ)
Факультет естественных наук
А.А.ШУТОВ
ЗАДАЧИ И УПРАЖНЕНИЯ
по курсу «Вычислительная математика»
Обнинск 2005
УДК 519.6 (076.1)
Шутов А. А. Задачи и упражнения по курсу «Вычислительная математика»: Учебное пособие. – Обнинск : ИАТЭ, 2005. – 84с.
В пособии приводятся краткие сведения и задачи по курсу вычислительной математики, включающие разделы операций с приближенными числами, интерполяцию степенными многочленами и сплайнами, численного дифференцирования и интегрирования, методов решения уравнений, численных методов решения задач линейной алгебры, численные методы решения задачи Коши и краевых задач.
Пособие предназначено студентам 2 курса факультета кибернетики.
Илл. 18, табл. 32, библиогр. 7 назв.
Рецензенты: к.ф.-м. н. А. Ф. Шапкин, к.ф.-м. н. В. Н. Латышев
Темплан 2005, поз. 11
©Обнинский государственный технический университет атомной энергетики, 2005 г.
©А.А. Шутов, 2005 г.

I. Абсолютная и относительная погрешность числа. Правила округления
Практические действия с числами всегда связаны с некоторой неточностью их задания. Например, неточность результата операций с числами на вычислительных машинах связана ограниченностью количества разрядов для записи числа.
Определение 1. Погрешностью определения (записи) числа a является разность между приближенным значением a и точной величиной a:
∆a = a − a . |
(1) |
Определение 2. Абсолютной погрешностью числа a называется мо-
дуль ∆a :
∆ = |
|
a − a |
|
. |
(2) |
|
|
Определение 3. Относительная погрешность есть отношение аб-
солютной погрешности к модулю числа
δ = |
|
∆ |
. |
(3) |
|
|
a |
|
|||
|
|
||||
|
|
|
|
Чаще всего, точная величина a неизвестна, и тогда вводят предель-
ную абсолютную погрешность ∆a , которую определяют как вся-
кое число, не меньшее абсолютной погрешности
∆= a − a ≤ ∆a .
Впоследнем неравенстве обычно указывается наименее возможное число, и практически ∆a определяется по коридору значений, в
котором заключена a. Например, для числа π известно, что 3,14 ≤ р ≤ 3,15 . Отсюда, взяв разность крайних значений, находим
∆a =0,01 . Можно улучшить эту оценку, взяв 3,14 ≤ р ≤ 3,142 , откуда находим, что р = 3,14 +0,002 .
1. Погрешность вычисления значения функции
Абсолютная и относительная погрешность дифференцируемой функции y = f(x) одного переменного определяется формулами соответственно:
|
′ |
|
|
|
|
f |
′ |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
(x) |
|
|
|
|||
∆ y = |
f (x) |
∆x , |
δ y = |
|
|
|
|
|
|
|
∆x . |
|
|
|
|
|
|
|
|||||
|
|
f (x) |
|
|
|
||||||
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
Абсолютная погрешность функции n переменных f(x1, x2, …, xn) определяется выражением
3

n |
|
∂f |
|
|
|
|
∆y = ∑ |
|
|
|
∆x |
, |
(4) |
|
||||||
i=1 |
∂xi |
|
i |
|
|
|
|
|
|
|
а относительная погрешность
n |
1 |
|
|
|
∂f |
|
|
|
|
δ y = ∑ |
|
|
|
|
|
|
|
∆x . |
(5) |
|
|
|
|
|
|
||||
|
|
|
|
|
|
||||
i=1 |
f |
|
|
|
∂xi |
|
i |
|
2. Операции с приближенными числами
2.1. Погрешность суммы и разности чисел. Предельная абсолютная погрешность алгебраической суммы нескольких приближенных чисел равна сумме абсолютных погрешностей этих чисел.
Рассмотрим алгебраическую сумму
y = ±x1 ± x2 ±... ± xn . |
(6) |
Тогда, используя (4), имеем
∆ y = ∆x1 + ∆x2 +... + ∆xn .
Из (6) следует, что предельная абсолютная погрешность разности двух чисел равна сумме абсолютных погрешностей этих чисел.
2.2. Погрешность произведения и частного от деления чисел. От-
носительная погрешность произведения нескольких приближенных чисел, отличных от нуля, не превышает суммы относительных погрешностей этих чисел. Пусть
y = x1 x2 ... xn . |
(7) |
|||
Используя (5), имеем |
|
|
+ +δx . |
|
δ y |
≤ δx |
+δx |
||
|
1 |
|
2 |
n |
Относительная погрешность частного не превышает суммы относительных погрешностей делимого и делителя.
Пусть y = x1 |
x2 |
, тогда δ y ≤δx |
+δx |
2 |
. |
|
|
1 |
|
|
3. Правила округления чисел. Правильные знаки числа
Определение. Первые n значащих цифр (знаков) верные, если абсолютная погрешность этого числа не превышает половины единицы разряда, выражаемого n− значащей цифрой. Это означает, что если известно, что в записи числа
a =α1 g m +α2 g m−1 + +αn g m−n+1 +αn+1 g m−n
абсолютная погрешность
∆ = a − a ≤ 21 g m−n+1 ,
4

то первые n цифр α1 ,α2 , ,αn − верные. Здесь g – основание сис-
темы счисления.
В промежуточных результатах учитывают два-три сомнительных знака, чтобы не накапливать погрешности округления.
Результат вычислений представляется, как правило, в округленном виде. В вычислительных машинах округление сводится к обрезанию чисел до величины, определяемой разрядностью машины. Немного иначе устроено правило округления при ручных расчетах. Если мы хотим удержать в числе первые n знаков, и если в следующем (n +1) разряде стоит цифра an+1 ≥ 5 , то к n-му разряду
добавляется единица. В противном случае цифра n−го порядка остается без изменений.
Пример 1. Число имеет 4 правильных знака после запятой a =a0 +a1 10−1 + a2 10 −2 + a3 10−3 + a4 10 −4 ,
если погрешность не превышает ∆ ≤ 10 −4 2 = 5 10 −5 .
Пример 2. Найти сумму приближенных чисел 345,4; 235,2; 11.75; 9.27; 0,348; 0,1834; 0,0849; 0,0214, считая в них все знаки верными.
Решение. Наибольшую погрешность имеют первые два числа, равную ∆1 = 0,05. Погрешность всей суммы в данном случае определяется суммой погрешностей первых двух чисел, т.е. ∆ = 2∆1 = 0.1. Вычисление суммы всех чисел с одним запасным знаком дает S = 602,25. Здесь верный знак – это первый знак после запятой, поэтому второй знак после запятой следует отбросить, и сумма равна S = 602,2, причем к погрешности ∆ добавляем погрешность округления 0,05, и таким образом, суммарная погрешность равна ∆S = 0,15.
Задачи
1. С какой минимальной точностью надо измерять радиус круга r = 40 см и со скольким наименьшим количеством верных знаков взять число π, чтобы площадь круга вычислялась с точностью 0.01%?
2. Определить относительную погрешность при вычислении полной поверхности усеченного конуса, если радиусы его оснований R, r, и образующая l, измерены с абсолютной погрешностью ∆.
3. Вычислить значение функции y = x3 sin x и определить абсолют-
ную и относительную погрешность при x= 2 , полагая
2 ≈ 1.414. 4. С каким числом верных знаков следует взять свободный член уравнения
x2 − 2x + lg 2 = 0 ,
5

чтобы получить корни уравнения с верными первыми четырьмя значащими цифрами?
5. По экватору шара, сопоставимого с земным шаром, натянута нить вплотную к поверхности. Затем нить удлиняется на ∆L и натягивается над шаром по окружности, соосной с экватором:
а) на сколько необходимо удлинить нить, чтобы увеличить радиус на 2 метра?
b) произвольная точка, удлиненной на ∆L нити, смещается в радиальном направлении от центра; каково будет наибольшее расстояние h от этой точки до поверхности сферы радиусом R?
6. С каким количеством знаков следует брать число π, чтобы вычислить с тремя правильными знаками
a) sin 1° ; b) cos 1°.
7. С каким числом верных знаков следует взять значение аргумента
x, чтобы получить значения указанных функций с точностью до
10−6 ?
a) y = x 3 sin x, |
x = |
2 ; |
b) y = x ln x, x = π ; |
c) y = e x cos x, |
x = |
3 . |
|
8. Прямолинейный стержень длиной l = 1 метр, жестко зажатый на краях, нагревается на T = 400°. Коэффициент линейного расширения стержня α = 10 − 5 град− 1. Определить наибольшее отклонение h стержня от положения равновесия, если в результате термического расширения он принимает форму
a)равнобедренного треугольника;
b)квадратичной параболы, симметричной относительно краев.
Ответы и указания.
2). |
2l |
+3R |
+3r |
∆ , |
4). 4, |
5а) 12.6 метра, 5в). h = |
R |
3∆L 2 / 3 |
||||
|
|
|
|
|
|
|
||||||
l(R + r) + R 2 + r 2 |
2 |
2R |
||||||||||
|
|
|
|
|
|
|
||||||
8а). h = |
l∆ |
8b). h = |
3l∆ |
, |
∆ =αT . |
|
|
|
|
|||
|
|
2 |
|
|
8 |
|
|
|
|
|
|
II. Вычисление значений трансцендентных функций
Для вычисления значений функций воспользуемся разложением функции в степенной ряд и методом итераций. Используемые алгоритмы наиболее адаптированы под вычислительные возможности компьютеров.
6

1. Использование степенных рядов для вычисления значений функций
Этот метод рассматривается здесь только для функций, которые можно представить в виде ряда Маклорена:
∞ |
f |
(k ) |
(0) k |
|
f |
(0) |
|
2 |
|
||
f (x)= ∑ |
|
|
|
x = f (0)+ f |
(0)+ |
|
′′ |
x |
|
+… |
|
|
|
|
|
|
′ |
|
|
|
|
|
|
k =0 |
|
k! |
|
|
2! |
|
|
|
|
||
|
|
|
|
|
|
|
|
В качестве значения функции берется конечная сумма
f (x)≈ Pn (x)= ∑n f k !(0)xk ,
k =0 k
причем погрешность определяется остатком ряда
Rn (x)= f (x)− Pn (x)= ∑∞ |
f (k) (x) |
xk . |
(1) |
|
|||
k =n+1 |
k! |
|
Для оценки погрешности можно использовать также формулу Тейлора, которая для ряда Маклорена дает
Rn (x)= |
x n+1 |
|
f (n+1) (θ x) , |
(2) |
|
(n + 1)! |
|||||
|
|
|
где 0 < θ < 1. Сравнение остатка с заданной погрешностью позволяет определить количество слагаемых n в Pn .
1.1. Вычисление показательной функции. Для показательной функ-
ции справедливо разложение
∞ |
x |
k |
|
x |
|
x |
2 |
|
x |
3 |
|
x |
n |
|
e x = ∑ |
|
=1 + |
+ |
|
+ |
|
+…+ |
|
+… −∞ < x < ∞ (3) |
|||||
|
|
|
|
|
|
|
|
|
||||||
k =0 |
k! |
1! |
2! |
3! |
|
n! |
|
Этот ряд удобно суммировать, воспользовавшись следующим рекуррентным представлением. Выражение (3) можно записать следующим образом
∞ |
|
|
x |
|
|
e x = ∑U k , где U0 |
= 1, |
U k = |
U k −1 . |
||
|
|||||
k =0 |
|
|
k |
Действительно, члены ряда (2) можно представить в виде:
U 0 = 1, |
|
U 1 |
= |
x |
= |
|
x |
U0 |
, |
U 2 |
= |
x 2 |
|
= |
x x |
= |
x |
U 1 |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
1! |
|
1 |
2! |
|
2 1! |
2 |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
U 3 |
= |
x3 |
= |
x x 2 |
= |
x |
U 2 |
, ..., |
|
U n |
= |
|
x |
U n−1 |
|
|
||||||||||
3! |
3 |
|
2! |
3 |
|
|
n |
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для оценки погрешности рассмотрим остаток ряда
7

|
|
|
∞ |
|
x |
k |
|
|
|
x |
n+1 |
|
|
|
x |
|
|
|
x |
2 |
|
|
|
|
||||||
Rn (x) = |
∑ |
|
|
|
= |
|
|
|
|
1 |
+ |
|
+ |
|
|
|
|
|
+ ... |
< |
||||||||||
|
|
k! |
|
|
|
|
|
n + 2 |
|
(n + 2)(n + 3) |
||||||||||||||||||||
|
|
k =n+1 |
|
|
|
(n + 1)! |
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
xn+1 |
|
|
|
|
|
|
|
|
x |
|
|
|
x2 |
|
|
|
|
|
|
xn+1 |
|
|
1 |
|
|
|
|||
< |
|
|
1 |
+ |
|
|
|
|
|
|
+ |
|
|
|
|
|
|
+... |
= |
|
|
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
n |
+ 2 |
|
|
(n + 2) |
|
|
|
(n + 1)! 1 − x /(n + 2) |
|
||||||||||||||
|
(n + 1)! |
|
|
|
|
|
|
|
|
|
|
При суммировании геометрической прогрессии предполагается,
что x < n+2. Если 0 < x < 1, то
Rn (x) < |
x n+1 |
=U n |
x |
<U n , 0 |
< x < 1 . |
(4) |
|
n!n |
n |
||||||
|
|
|
|
|
Можно показать, что если |x| ≤ n/2, то погрешность также не превышает величины последнего слагаемого в конечной сумме Pn , т.е.
Rn |
|
< |
|
U n |
|
, |
| x | < n / 2 . |
(4a) |
|
|
|
В случае применимости оценок (4) и (4а), как только модуль очередного слагаемого Un не превышает допустимую погрешность ε
U n < ε ,
то вычисления прекращают и полагают:
n
e x ≈ ∑U n .
k =0
Если x велико, то прямое использование ряда (3) связано с суммированием очень большого числа слагаемых. В этом случае процесс вычисления модифицируется путем разбиения x на целую и дробную части
Экспонента представляется в виде e x = e E(x)eq , и к множителю eq применяют рекуррентную процедуру. Этот метод пригоден и для показательной функции ax , если воспользоваться формулой
a x = ex ln a , а также для вычисления гиперболических функций. Пример 1. Вывести оценку (4a).
Решение. Выполним следующие преобразования в остатке ряда:
|
|
|
|
∞ |
|
|
|
xk |
|
|
|
xn |
x |
|
|
|
x2 |
|
|
|
|
|||||||
Rn (x) = |
∑ |
|
|
|
|
= |
|
|
|
|
|
|
|
+ |
|
|
|
|
|
+... |
< |
|||||||
|
|
|
k! |
|
|
|
|
|
|
(n + 1)(n + 2) |
||||||||||||||||||
|
|
|
k =n+1 |
|
|
|
|
|
n! n + 1 |
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
xn x |
|
|
x |
2 |
|
|
x3 |
|
|
xn |
x |
1 |
|
|
|
x |
|
||||||||||
< |
|
|
|
+ |
|
|
|
|
|
+ |
|
|
|
|
... = |
|
|
|
|
|
|
|
=U |
n |
|
. |
||
|
|
|
|
2 |
|
|
3 |
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
n |
|
|
n |
|
|
n! |
n 1 − x / n |
|
n − x |
|
|||||||||||||
|
n! n |
|
|
|
|
|
|
|
|
|
|
|
|
|
8

Отсюда находим, что Rn <U n , если x/(n-x) < 1, или x < n/2.
Пример 2. Вычислить e5/2 с двумя правильными знаками после запятой.
Решение. Представляем e5/2=e2e1/2 и используем значения e=2,718 , e2=7,389. Вычисляем ex при x=1/2.
U0 =1, |
U1 = x U0 =1/2=0,5, |
U 2 = |
|
x |
U1 = |
U1 |
= 0,125, |
||||||||||
|
2 |
|
4 |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
U 3 |
|
|||||
U 3 |
= |
x |
U 2 = |
U 2 |
= 0,021, U 4 |
= |
x |
U 3 |
= |
= 0,003 . |
|||||||
3 |
6 |
4 |
|
8 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Здесь можно использовать оценку (4), и поскольку следующие приближения не затрагивают второй знак, то P4 = 1,649 . Отсюда
e5 / 2 =7,389 1,649 = 12,38 .
1.2. Вычисление тригонометрических функций. Для тригонометри-
ческих функций используем представления
sin x = ∑∞ (−1)k |
x2k +1 |
, |
cos x = ∑∞ (−1)k |
x2k |
|
. |
|
(2k )! |
|||||
k=0 |
(2k + 1)! |
k=0 |
|
При больших x эти ряды сходятся медленно. Однако, пользуясь периодичностью функций, можно свести эту задачу к вычислению функций в промежутке [0, π/2]. Для функций sin x и cos x можно построить рекуррентный процесс:
n |
|
|
|
|
x2 |
|
||
sin x = ∑U k + Rn (x), |
U1 = x |
, |
U k +1 = − |
|
|
U k , |
||
2k(2k + 1) |
||||||||
k=1 |
|
|
|
|
|
|||
n |
|
|
|
|
x2 |
|
||
cos x = ∑Vk + Rn (x), |
V1 =1 |
, |
Vk +1 = − |
|
|
|
Vk . |
|
|
(2k −1)2k |
|||||||
k =1 |
|
|
|
|
|
Поскольку ряд знакопеременный, то его погрешность не превышает первого отброшенного слагаемого:
Rn |
|
< |
|
U n+1 |
|
. |
(5) |
|
|
|
Пример 3. Вычислить sin 1 с двумя правильными знаками после запятой.
Решение. |
Используем |
соотношения |
|
1≈π/ 2−0,57, |
sin1= |
|||||
sin(π/ 2−0,57) =sin(π/ 2) cos(0,57)=cos(0,57), (0,57)2=0,325. |
|
|||||||||
Рекуррентная процедура для cos(0,57) дает: |
|
|
|
|
||||||
|
V1 = 1, |
V2 |
= − |
x 2 |
V1 = − |
(0,57)2 |
= −0,163 |
|
||
|
1 2 |
|
2 |
|
|
|||||
|
|
|
|
|
|
|
|
|
9

V3 = − |
x 2 |
V2 = − |
(0,57)2 |
0,163 = 0,027 0,163 = 0,0044 |
|
3 4 |
|
12 |
|||
|
|
|
|
||
Отсюда имеем, используя (5): |
|
||||
|
|
P3 =1−0,163+0,0044=0,84. |
|||
2. Метод итераций вычисления значений функций |
|||||
Пусть функция y = f (x) |
задана неявно уравнением F(x, y)=0 . |
Пусть yn − приближенное значение y. Тогда можем записать тождество:
F(x, yn )= F(x, yn )− F(x, y). |
(6) |
Поскольку предполагается, что y и yn близки, разложим F(x, y)по |
|
малому параметру (yn − y) вблизи yn |
|
F(x, y)= F(x, yn −(yn − y))= F(x, yn )−(yn − y)Fy′ (yn ). |
(7) |
Из равенств (6) и (7) имеем F(x, yn )= (yn − y)Fy′ (yn ). Отсюда по- |
|||||
лучаем |
|
||||
y = yn − |
F(x, yn ) |
. |
|
|
|
|
|
|
|||
|
Fy′(x, yn ) |
|
|||
Для организации итерационного процесса полагаем |
y ≈ yn+1 , то- |
||||
гда значение функции вычисляется по следующей формуле |
|||||
yn+1 = yn − |
F(x, yn ) |
. |
(8) |
||
|
|||||
|
|
Fy′(x, yn ) |
|
||
Процесс вычисления продолжается до совпадения |
yn и yn+1 в |
пределах заданной точности ε. Как только | yn+1 - yn |<ε, то вычисления прекращают и полагают y ≈ yn+1 .
2.1. Вычисление квадратного корня. Пусть y = x . Преобразуем
это уравнение к виду
F(x, y)= y2 − x = 0 .
Тогда Fy′ = 2 y и рекуррентная формула (8) приобретает вид
|
|
1 |
|
x |
|
(9) |
|
yn+1 |
= |
|
|
||||
|
|
||||||
2 |
yn + |
|
. |
||||
|
|
|
yn |
|
В качестве начального приближения выбирают близкое к x число.
10