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

Численные методы. Учебное пособие

.pdf
Скачиваний:
3
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
2. Разработать программную реализацию построения графиков:
интерполяционного многочлена, полученного с помощью фор-
мулы Лагранжа, по произвольной таблице значений функции;
интерполяционного многочлена, полученного с помощью фор-
мулы Ньютона, по произвольной таблице значений функции;
сглаживающих многочленов 1, 2, 3 степени, полученных по ме-
тоду наименьших квадратов, по произвольной таблице значений функции;
произвольного многочлена четвертой степени, заданного набо-
ром коэффициентов
При разработке алгоритмов стараться по возможности
ровать вычислительные затраты
(для выполнения следующего пункта задания).
минимизи-
.
Для решения системы (3.2) использовать реализацию метода Гаус­са с выбором главного элемента фики отображать как кусочно-линейную аппроксимацию с малым
–2
) шагом. Стили отображения линий (штриховка, цвет, толщина
(~10
и др.) должны отдельно
позволять видеть совпадающие графики. Желательно
отобразить точки исходной таблицы. Ограничений на сре-
из соответствующего задания. Гра-
ду разработки не накладывается, однако рекомендуется использовать современные высокоуровневые возможности, позволяющие не тратить время на программирование построения графиков (компонент Chart в C# Windows Forms, библиотека QCustomPlot в Qt/C++, компонент Tchart в Embarcadero C++ Builder и т. п.).
Способ ввода должен быть удобным и позволять корректировку отдельных элементов данных (поля ввода в окне, чтение файла и
не последовательный ввод в консоли).
но
др.,
3. С помощью разработанной программы показать совпадение гра-
фиков многочленов, рассчитанных вручную в п. 1, с реализованными программно.
Отчет должен содержать:
исходную таблицу значений функции;
результаты «ручных» расчетов в сторонних программных паке-
тах (коэффициенты многочленов, графики);
тексты разработанных программ;
результаты, полученные с помощью разработанных программ
(сравнения согласно п. 3 задания).
41
3.6. Интерполяция сплайнами
x
f (x
x
Поведение интерполяционных многочленов высоких степеней между узловыми точками может оказаться неприятным сюрпризом. Дело в том, что с увеличением степени появляются выраженные колеба­ния большой амплитуды. На рис. 3.2 показан пример интерполяционного многочлена, построенного по таблице значений функции (табл. 3.3).
В большинстве случаев для большой таблицы значений функции более пригодна кусочно-полиномиальная аппроксимация, при различным интервалам соответствуют разные аппроксимирующие многочлены.
0 1 34567891011
) 1 2 05100953 4 2
которой
Таблица 3.3
Рис. 3.2
Сплайном степени m называется функция ()
Sx, обладающая сле-
m
дующими свойствами:
она непрерывна на отрезке
[],
x вместе со своими производ-
0
n
ными до некоторого порядка p;
42
[],
x
x
f
x
x
x
x
x
x
xf
x

x

на каждом частичном отрезке
x
1
ii
совпадает с некоторым
многочленом степени m.
Разность между степенью сплайна и наивысшим порядком непре-
[],
рывной на отрезке
x производной (m − p) называют дефектом
0
n
сплайна.
Можно сказать, что кусочно-линейная функция является сплайном первой степени с дефектом, равным единице.
3.7. Кубический сплайн
Наиболее распространенный вид сплайн-интерполяции – это куби­ческий сплайн с дефектом 1. Пусть аппроксимирующая ()
обозначена как ()
, а на каждом отрезке
совпадает с многочленом третьей степени
Пусть
φ ()
abxcx dx  
iiiii
23
, где , , ,
()
i
abcd – коэффициенты
iii i
x, 1, ..., ,
1,ii
.
сплайна, определяемые из следующих условий:
равенство значений ()
и аппроксимируемой функции ()fx
i
в узлах:
φ ()
ii i
непрерывность первой и второй производных от сплайнов во
внутренних узлах 1, ...,()1in
f , φ ()
11
ii i
:
;
x кривая
in она
() ()
 , 1() ()
ii i i
1

x
ii i i
 .
x
Перечисленных условий недостаточно, необходимы еще два, в ка­честве которых выступают граничные (краевые) условия. Значение второй производной в крайних точках таблицы принимают равными нулю:
φ ()0x
10
φ ()0
,
x
nn
.
Из этих соотношений складывается полная система, содержащая 4n линейных алгебраических уравнений, решением которой будут все ис­комые коэффициенты. Матрица такой системы будет сильно разря­женной, что очевидно уже из постановки задачи: отдельные сплайны непосредственно влияют только на соседние. Систему уравнений можно
43
существенно изменить в лучшую сторону, если в ней останутся только
x
x
x

x
c , а остальные коэффициенты будут вычисляться на основе их значе-
i
ний по некоторым простым формулам. Для этого
φ ()
нужно опреде-
i
лить так:
φ () ()()()
xabxx cxx dxx
   
i iii ii ii
11 1
 
23
.
Тогда условия равенства φ ()

hxx.
где
iii
1
abhch dh f
iiiii ii i
и ()fx в узловых точках примут вид:
i
af

; (3.3)
1ii
23
, (3.4)
С учетом выражений для производных
  
() 2 ( ) 3 ( )
xb cxx dxx
ii i i i
() 2 6 ( )

11

cdxx
ii i
из условий их непрерывности в точке
1
получатся следующие соот-
i
2
;
ношения:
23
bchdhb
 
iiiiii
3
cdhc
iiii
2
. (3.6)
; (3.5)
1
1
Из граничных условий на основании выражения для второй производ­ной можно записать, что
30
cdh . (3.8)
nnn
0c
; (3.7)
1
На этом этапе коэффициенты системы относительно оставшихся нужно выразить
d :
i
a и 1c уже найдены. Для построения
i
c
, 2, , ,in из уравнения (3.6)
i
cc
13ii
d
. (3.9)
i
h
i
44
При объединении уравнений (3.3), (3.4) с соотношением (3.9) коэффи-
f

циенты
b также выражаются через ic :
i
(2)
fcch
11
ii i ii

b
i

h
i
. (3.10)
3
После подстановки выражений (3.9) и (3.10) в соотношение (3.5) будет получено уравнение, в которое входят только неизвестные ко­эффициенты
c . Для симметричности записи в полученном уравнении
i
значение индекса i уменьшено на единицу:
hc h hc hc
ii i ii ii


()( )
ff f f
ii i i

3,
hh
2( )
11 1 1
112

ii
 
2, ...,in
1
. (3.11)
При i = n, учитывая граничное условие (3.6), в уравнении (3.11) следует считать
. (3.12)
10nc
Таким образом, n–1 уравнение вида (3.11) вместе с (3.7) и (3.12) образует систему линейных алгебраических уравнений для определе­ния коэффициентов
При условии постоянного шага, т. е.
c .
i
hh h
, для всех
1ii
2, ...,in систему можно упростить:
hc hc hc f f f

42
11 12
iii iii
 
Коэффициенты
b и id вычисляются по формулам (3.9), (3.10)
i
3

h
, 2, ...,in
.
с учетом (3.12).
Ниже показан пример вычисления коэффициентов
c для значений
i
функции, приведенных в табл. 3.4.
Таблица 3.4
x 0 1 2 3 4
f (x) 1 3 1 4 2
45
С учетом постоянного шага
f
f
0c  , система уравнений (3.11) принимает вид
1
hh c
40
 
hhhc f ff
42
 
hhc
04

hx x
3
 
h

2
3
 

3321

h

4
3



h

После подстановки значений получается:
в матричной форме
, 1,..., 4,


i и того, что
1ii

ff
2
210
.
ff

2
432
410 3161
 
141 3423
 
014 3281

c

2
c

3
c
4


 



в виде отдельных уравнений
412
cc
23
415
ccc

234
cc
34


415
Ниже приведено решение данной системы:
4,– 554;с
2
6,214;с
3
4
5,– 304.с
Решение округлено до третьего знака.
,
46

f
xh
f
f
f
4. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ
Производная функции есть предел отношения приращения функ­ции к приращению аргумента при стремлении к нулю приращения ар­гумента:
()
df x f
dx x
lim ,
x

При численном нахождении производной отношение бесконечно малых приращений функций и аргумента заменяют отношением ко­нечных разностей. Очевидно, что чем меньше будет приращение аргу­мента, тем точнее численное значение производной.
Приращение аргумента задается тремя способами: вается вправо, влево и в обе стороны от исследуемой точки. Соответ­ственно получается три двухточечных метода численного дифферен­цирования:
где ()()
0
fx x fx
.
отклады-
hx x
.
где
df x f f x x f x
() ( ) ()


dx x x h
dyx f fx fx x
dx x x h
() ( ) ( )
df x f f x x f x x
dx x x h
1ii

() () ( )




  
22
f
1
ii
ii
; (4.1)
f
1
; (4.2)
f
11
ii
, (4.3)
Аналогичные формулы можно получить дифференцированием ин­терполяционного многочлена первой степени, построенного по двум точкам.
47
Вторая производная вычисляется как первая производная от первой
f
x
f
x
производной. Расчетная формула в этом случае имеет вид
ffff

22
iiii
2
() ()
dfx d dfx
2
dx
 
dx dx h

2
ff
22
iii
(4.4)
2
4
h


22
hh
2
или
где
hx x
.
2ii
2
()
dfx
22
dx h
2
fff

22
iii

,
Формулу для приближенного вычисления второй производной можно получить, дважды дифференцируя интерполяционный много­член в форме Ньютона, построенный по трем последовательным рав­ноотстоящим точкам. Слагаемые, содержащие x в первой степени, об-
ратятся в ноль, останется взять производную члена, содержащего
2
С учетом выражения для разделенной разности второго порядка будет получено соотношение, идентичное (4.4):
.
() ()
fx fx
22
dxfxxx

() 2
fx

(,, )

012
2
dx
01
xx xx
01 12
 
() ( )
xx
02
xfx
12
.
4.1. Погрешности вычисления производных
Поведение погрешности вычисления производной на отрезке
[,]
x можно проанализировать, глядя на рис. 4.1. В середине отрезка
01
хорда почти совпадает с касательной и погрешность значительно меньше, чем на концах. Очевидно, что погрешность уменьшается при уменьшении шага
–hx x.
10
48
x
f
f
f(x)
x
x0
Рис. 4.1
1
Используя разложение ()fx в ряд Тейлора по степеням h, можно записать:
2
h
( ) () () ()
xh fx hfx fx
 

2!
34
hh

fx f x
() () ...
; (4.5)
(4)
3! 4!
2
h
( ) () () ()
xh fx hfx fx
 

2!
34
hh

() () ...
fx f x
 (4.6)
(4)
3! 4!
Из разложения (4.5) для первой производной, вычисленной по форму­ле (4.1), следует
()()
fx h fx h

() () ...
fx f x

h

2
Из разложения (4.6) для первой производной, вычисленной по форму­ле (4.2), следует
() ( )
fx fx h h

() () ...
fx f x

h
49

2
Вычитанием разложения (4.6) из (4.5) для первой производной,
f
M
M
fx
E
E
g
вычисленной по формуле (4.3), можно получить
()()
fx h fx h h

() () ...
fx f x
 
26
h
2

Для второй производной сложением равенств (4.5) и (4.6) можно получить
12
2
(4)
()2()()
fx h fx fx h h

() () ...
fx f x
  

2
h
Говорят, что односторонние формулы для первой производной имеют ность есть второй производной
первый порядок точности относительно шага, т. е. погреш-
(h). Погрешность симметричной формулы и формулы для
(h2).
Слишком сильное уменьшение шага может привести не к ожидае­мому (согласно предыдущим рассуждениям) уменьшению погрешно­сти, а наоборот – к ее росту. Дело в том, что свою роль в общей оценке погрешности должна играть погрешность вычисления функции. Пусть
() ( )
xfx
()
fx
r
1
10
h
h
2
, где
2
, тогда погрешность метода
max ( )
2
xxx
01

fx
.
r
можно оценить как
1
Если вычисления f (x) содержат по-
грешности, не превосходящие E, то () будет дополнительно содержать по-
2
грешность
rh
2
. Общую погрешность r
можно оценить неравенством
rr r gh

12
Рис. 4.2
марной погрешности () ние шага
h .
опт
h , пунктиром обозначено оптимальное значе-
На рис. 4.2 показано поведение сум-
50
()
Mh
2
2
2
.
h
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]