Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Численные методы. В 2 частях. Ч.1. Учебное пособие

.pdf
Скачиваний:
5
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
Министерство науки и высшего образования Российской Федерации
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Н. Б. ИТКИНА, С. И. МАРКОВ
ЧИСЛЕННЫЕ МЕТОДЫ
ЧАСТЬ 1
в качестве учебного пособия
НОВОСИБИРСК
2022
1
УДК 519.6(075.8) И 927
Рецензенты:
д-р физ.-мат. наук В. Ф. Рапута
канд. физ.-мат. наук М. Ю. Баландин
Работа подготовлена на кафедре вычислительных технологий
Иткина Н. Б.
И 927 Численные методы : учебное пособие в 2 ч. / Н. Б. Иткина,
С. И. Марков. – Новосибирск : Изд-во НГТУ, 2022.
ISBN 978-5-7782-4662-1 Ч. 1: – 90 с. ISBN 978-5-7782-4663-8
Рассмотрены алгоритмы аппроксимации функций, численного ин­тегрирования, преобразования Фурье и вэйвлет-преобразования для решения прикладных задач. Может быть рекомендовано для студентов направления 02.03.03 – Математическое обеспечение и администриро­вание информационных систем.
УДК 519.6(075.8)
ISBN 978-5-7782-4663-8 (Ч. 1) © Иткина Н. Б., Марков С. И., 2022 ISBN 978-5-7782-4662-1 © Новосибирский государственный
технический университет, 2022
2
x
x
x
x
x
x
1. ПОГРЕШНОСТЬ РЕЗУЛЬТАТА
Погрешность – величина отклонения приближённого значения
от точного. Если
– приближённое значение,
абсолютной погрешности можно найти по формуле
*
x 
. (1)
Относительная погрешность связана с абсолютной и вычисляется
в виде
**

xx xx

 
*
x
**
xx

,
x
Погрешности классифицируются как неустранимые (погрешность измерительного прибора) и устранимые (ошибки округления, упроще­ние математических моделей).
Любое десятичное число, состоящее из m цифр, можно записать в виде суммы
*
– точное, то величину
. (2)

x
nn nm
10 10 ...10
xx x
 
12
где n – старший разряд числа
11

и
. Значащие цифры десятичного
0x
1
,
m
числа – это все его цифры, начиная с первой ненулевой слева.
Пример. Числа
0,023, 0,000023
0,23 10
,
100
содержат две знача-
щие цифры. Если требуется показать, что в числе 2300 два нуля не яв­ляются значащими, то пишут
0,23 10
4
,
3
2,3 10
3
и т. д.
Значащая цифра числа считается верной, если абсолютная погреш-
x
x
x
ность не превосходит единицы разряда, соответствующего этой цифре. В противном случае цифра называется сомнительной.
Пример. Пусть
*
0,561x и
значащую цифру (цифра 6). По формуле (1)
, то
0,6x
содержит одну верную значащую цифру. Если вы-
0,60x
, то крайний правый нуль уже считается сомнительным,
0,01
.
0,1
брать поскольку
0,6x
. Число
0,6x
содержит одну
*
0,039xx 
. Так как
Между количеством верных значащих цифр и относительной по­грешностью существует связь. Если число
111
NN
чащих цифр, то
  
х
 
(10 1) 10
*
содержит N верных зна-
. Для того чтобы число
со-
держало N верных значащих цифр, достаточно выполнения неравенства
NN
(10 1) 1 0
  
*
x
Замечание. Для того чтобы число
1

.
содержало N верных знача-
щих цифр, достаточно вести вычисления с относительной погрешно­стью
*
РАВЕНСТВО ВЕЩЕСТВЕННЫХ ЧИСЕЛ
Nx
10
 .
Рассмотрим фрагменты кода на языке C++.
Неправильное сравнение Правильное сравнение
1 #define Eps 1e–16 2 double a = 0.1; double a = 0.1; 3 float b = 0.1; float b = 0.1;
if (a == b)
4
std::cout << “a == b”; else std::cout << “a != b”;
if (fabs(a – b) < Eps) std::cout << “a == b”; else std::cout << “a != b”;
Тип одинарной точности float занимает 4 байта, из которых 23 бита отводятся под мантиссу числа. Тип двойной точности double занимает 8 байт, и под мантиссу отводятся 52 бита. Число 0,1 в двоичном коде является бесконечной дробью, поэтому мантиссы чисел a и b никогда не совпадут.
4
Правило. Сравнение двух вещественных чисел на равенство
x
x
(в том числе и сравнение вещественного числа на равенство с нулём) выполняется только с априорно заданной точностью ε.
Пример. Пусть
ε 10
солютную погрешность что a «равно» b, если величина
10
,
1, 2 1 0a , 122,1 10b . Вычислим аб-
  
ε 10
становке конкретной задачи. Однако
0, 43
, поэтому в терминах относительной погрешности говорить
12
12
0,9 10а b
10
a
. Мы имеем право считать,
считается машинным нулём в по-
/0,75
a 
и
b
/
b
о равенстве a и b нельзя.
ОСОБЫЕ СИТУАЦИИ
Переполнение (overflow) возникает тогда, когда число
по модулю
превышает максимальное представимое число в используемом типе
0x
(имеет код Inf при
и –Inf при 0x ). В характеристике присут-
ствуют только единицы и нули в мантиссе.
Исчезновение порядка (underflow) возникает тогда, когда число по модулю меньше минимального представимого нормализованного числа в используемом типе.
Если все биты мантиссы денормализованного числа обнулятся, то результатом будет 0, при этом нуль может иметь знак.
Математически некорректные операции (ln(0),
и т. д.) заверша-
1
ются результатом NaN (Not Arithmetic Number).
5
x
f
f
f
g
P
x
x
x
x
2. АППРОКСИМАЦИЯ ФУНКЦИЙ
Рассмотрим отрезок [, ]ab и введём сеточное разбиение
ω ...
ния функции личной.
()gx такой, что ()gx – интерполянтом.
может быть сколь угодно точно аппроксимирована многочленами, по­этому такой интерполянт всегда существует
ax x b
01
()
xy
ii
Переход от дискретного набора
()
xy
ii
, в опорных точках которого заданы значе-
n
. Функцию
0,in
()
xy
ii
будем называть таб-
()
x
i
к непрерывной функции
, называют интерполированием, а функцию
По теореме Вейерштрасса непрерывная функция на отрезке
0 (): () ()
Px fx Px   
nn
, (3)
[, ]ab
где
– многочлен степени n.
()
x
n
Пример. На разбиении
ω ...
ax x b
01
отрезка [, ]ab
n
можно задать интерполяционный многочлен Лагранжа
n
() ( )
Px fx
()
lx
где
i
k-м узле сетки
ni
()()
0
i
()
x
n
xx

ini
 
()()
xx x
kini
()()
– базисный полином Лагранжа такой, что в
()
x
nk
()
x
n
xx

ini
ik

,
ik
6

 
,
ni
1,
 
0,
n
() ( )
ki
i
xx
0
– символ Кронекера.
ki
, (4)
Пример. Построить интерполяционный многочлен Лагранжа для
x
g
x
x
g
g
x
табличной функции числим значения
(0)
f
()Px
3
(0) 0f , (1) 1f  , (2) 4f . По формуле (4) вы-
() ( 1)( 2)xxx x
3
()
x
3

(0)(0)
x
xx
1
3
ff
 
(2)
1

,
3
() ()
xx

(1) ( 2)

33

  
( 1)(1) ( 2)(2)
xx
4
33
(1)
xx
2
2
362() xxx
2
.
, тогда
По набору из (n + 1) точек можно задать многочлен степени n. Тогда
()gx – полином степени n, т. е.
() [,]
xCab
n
. В общем случае нельзя
гарантировать существование всех производных включительно до n-го порядка у функции
()fx на множестве [a, b], поэтому при увеличении
числа точек разбиения могут наблюдаться значительные осцилляции интерполянта (вычислительная неустойчивость алгоритма).
КУСОЧНО-ПОЛИНОМИАЛЬНАЯ ИНТЕРПОЛЯЦИЯ. СПЛАЙНЫ
Сеточное разбиение
ω ...
ax x b
01
n
позволяет пе-
рейти к решению задачи интерполяции локально на каждом сегменте
,
x

kk
1
и его производных во внутренних точках разбиения
. Потребуем непрерывность интерполянта ()
1,kn
ω
. Полученная
x
кусочно-полиномиальная функция порядка p называется сплайном. Де­фект сплайна – разность между порядком и числом непрерывных про-
μ
p
изводных. Если μ – дефект сплайна, то
КУБИЧЕСКИЙ ИНТЕРПОЛЯЦИОННЫЙ СПЛАЙН
() [, ]
xC ab
.
Рассмотрим пример построения кубического интерполяционного сплайна
1.
сегменте
2. Условие интерполяции:
3. Непрерывность:
4. Граничные условия нулевой кривизны:
()Sx дефекта 1, который удовлетворяет условиям:
() ()()()
Sx a bxx cxx dxx
     
kk k k k k k
,
x

kk
1
11 1
 
.
1,kn
()
Sx y
ii
() ()
ll
(0) (0) (,), 0,1,2
Sx Sx xabl 
7
23
.
0,in
 
() () 0Sa Sb

на каждом
.
.
Замечание. Сплайном (spline – c англ. рейка) изначально называ-
x
x
x
лось приспособление для проведения гладких кривых через заданные точки. Из физических соображений рейка, зафиксированная в некото­рых точках, должна принять такое изогнутое положение, при котором достигается минимум потенциальной энергии. Если функция
()Sx опи-
сывает форму этих изгибов, то граничные условия нулевой кривизны обозначают отсутствие нагрузки на концах рейки. Так достигается ми­нимум потенциальной энергии.
,
Обозначим как
. Из условий интерполяции следует, что
1,kn
кубическую функцию на сегменте
()
Sx
k
x

1
kk
()
Sx a y
kk k k

11

Во всех внутренних точках отрезка сплайна
где
hxx

() ()
Sx S x
kk k k
abhch dh y  
kkkkk kk k
.
1kkk
1
23
1, 1kn 
[,]ab потребуем непрерывность
:
. (5)
1,kn
, (6)
1, 1kn 
Запишем условия непрерывности первой производной во внутрен­них точках
для второй производной
Граничные условия нулевой кривизны в точке

()2 6( )0Sx c dx x
 
10 1 10 0
В точке

() ()
Sx S x
kk k k
23
bchdhb
 
kkkkkk
26 2
cdhc
kkkk
1
 
() ()
Sx S x
kk k k

, откуда
получим
xb
n
:
1, 1kn 
2
1

()2 6 ( )0
Sx c dx x
nn n nn n
1
1
1
0c
1, 1kn 
. (9)
  
, (7)
1, 1kn 
1, 1kn 
. (8)
xa
0
1
и
дают
30
cdh
nnn
8
. (10)
Из уравнений (8) и (10) выразим
cc
d
k
d
k
1
kk
h
3
k
и
1, 1kn 
:
d
n
, (11)
Подставим
dch
nnn
в уравнение (6) с учётом (5), тогда
d
k
yy cc

kk kk
bh

kk
h
k
2
11

3
. (12)
/3
, (13)
1, 1kn 
на последнем сегменте
yy
nn
bch

nnn
h
n
2
1
. (14)
3
Если воспользоваться представлением (11) и рекуррентной форму­лой (13), то уравнение (7) можно переписать в виде


yyyy
11
kkkk
2( ) 3

ch h h с h с
где
kk k k k k k
.
1, 1kn
11 12
 
Из краевых условий нулевой кривизны
knимеем
ccdh

13nnnn
= [см. уравнение (12)] = 0.


hh
1
kk

. Из уравнения (8) при
0c
1
Соотношение (15) определяет систему линейных алгебраических уравнений относительно неизвестных коэффициентов c:


11


222
 

333
  
0
 

...
0

n
22 1 2
nn n n
 
2

11 1
nn n n

c
21
c
32
c
43
... ...
c
c
  
, (16)
, (15)
9
где
β 2( )

kkk
2, 1kn
hh

,
k
1

yyyy
kkkk
3
 
1, 1kn 

11

hh
1
kk
,
γ
kkh
1
1, 1kn 
1, 2kn 
.
,
h
kk
Матрица СЛАУ (16) является трёхдиагональной, поэтому для её хра­нения можно использовать диагональный формат. Решить данную СЛАУ можно с помощью метода прогонки – вариация метода Гаусса для СЛАУ с трёхдиагональными матрицами.
На первом шаге приведём матрицу СЛАУ к верхней треугольной форме (прямой ход метода Гаусса)
γ

11

0 γ 0
22
 
0 γ
33
  
00
 

...
γ
nn n
n
2

0
c
21
c
32
c
43
... ...
c

21 2
c
nn n

11
  
, (17)
где элементы матрицы и правой части определяются как
β ,
11

,
11
kk kk

k
1
kk kk
1
k
1
2, 1kn
,
1
.
На втором шаге выполняется обратный ход метода Гаусса – исклю-
чение по строкам с конца:
c

nn n

111
kkk
ckn


k
k
11

γ
c
1
c
1
/,
0.
(18)
1, 2 ,
По формулам (11)–(14) можно восстановить массивы коэффициен-
d
тов
b
и
k
k
. Массив
1,kn
a
определён формулой (5).
k
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]