You are on page 1of 18

Міністерство науки і освіти України

Херсонський державний технічний університет


Кафедра технічної кібернетики

ЗВІТ

з лабораторної роботи № 4
з дисципліни “Числові методи”
на тему:” Наближення значення таблично заданої функції у точці з допомогою
інтерполяційних поліномів”

Роботу виконав
студент групи 2А Окуневич Б. О.

Звіт прийняв
кандидат технічних наук, доцент Сарафаннікова Н. В.

Херсон (2022)
Мета роботи : сформувати у студентів уявлення про застосування інтерполювання
функцій для вирішення завдань, прищепити вміння складати та застосовувати
інтерполяційні формули Лагранжа заданого ступеня, багаточлени Ньютона, сплайни та
оцінювати їх похибки, дати навички у використанні програмних засобів для перевірки
отриманих результатів.
Теоретичні відомості
Інтерполяційний поліном Лагранжа
Нехай задана функція

X 0,41 1,55 2,67 3,84


Y 2,63 3,75 4,87 5,03

Побудувати інтерполяційний багаточлен Лагранжа для функції заданої таблично, знайти


значення цієї функції в точці х = 1, 91 , побудувати графіки отриманого багаточлена
Лагранжа функції, заданої таблично, і багаточлена n -го ступеня і оцінити точність
наближення.
1. Вводимо матриці вихідних даних:

Знаходимо величину n – показник ступеня многочлена:

n  length( vx)  1
n3

Задаємо змінні:

i  0  n
j  0  n

Записуємо формулу багаточлена Лагранжа у символьному вигляді:


Перевіряємо правильність записаної формули:

f ( 2.67)  4.87

Знаходимо значення функції в точці х = 1, 91 :

f ( 1.91)  4.154

2. Знаходимо коефіцієнти інтерполяційного багаточлена.


Знаходимо матрицю певного виду:

i
XI j  i   vxj
XI j  0  1

Обчислюємо коефіцієнти полінома:


Отримали багаточлен третього ступеня:
3 2
P( x )=−0 ,112 x +0 , 527 x +0 , 309 x+2 , 422

3. Правильність знайдених коефіцієнтів перевіримо, підставивши значення х


серед заданих, і знайдемо значення функції при х= 1,91 .

P ( 0.41)  2.63
P ( 1.91)  4.154

Значення функції повністю збігається із значенням, знайденим вище.


4. Будуємо графіки значень vx i та отриманих багаточленів f ( x ), P ( x ).
Рис.4.1
З малюнка 4.1 видно, що графіки збудованого багаточлена Лагранжа f ( x ) та функції P ( x
) проходять через вузли інтерполяції.
5. Перевіряємо отримане значення за допомогою вбудованої функції:

6. Складаємо функцію, що реалізує інтерполювання функцій багаточленом


Лагранжа:
Інтерполювання сплайнами

Інтерполована функція складається з шести вузлів ( n = 5)

x 0,41 _ 0,46 0,52 0,60 0,65 0,72


F(x) 2,57 2,325 2,09 1,86 1,75 1,62

Знайти значення коефіцієнтів


bi , c i , d i , що визначають кубічний сплайн на п'яти
часткових відрізках.

Складемо систему, що складається з 15 рівнянь

hi  xi1  xi
Given

2 3
B0  h0  C0  h0  D0  h0 y1  y0
2 3
B1  h1  C1  h1  D1  h1 y2  y1
2 3
B2  h2  C2  h2  D2  h2 y3  y2
2 3
B3  h3  C3  h3  D3  h3 y4  y3
2 3
B4  h4  C4  h4  D4  h4 y5  y4
2
B1  B0  2 C0 h0  3 D0  h0 0
2
B2  B1  2 C1 h1  3 D1  h1 0
2
B3  B2  2 C2 h2  3 D2  h2 0
2
B4  B3  2 C3 h3  3 D3  h3 0
C4  C3  3 D3 h3 0
C3  C2  3 D2 h2 0
C2  C1  3 D1 h1 0
C1  C0  3 D0 h0 0
C4  3 D4 h4 0
C0 0

Отримаємо значення коефіцієнтів


bi , c i , d i , які визначають шуканий сплайн.
Переконаємося, що знайдений сплайн задовольняє задані властивості
r ( 0.437)  2.434
linterp( x  y  0.437)  2.438

Збіг значень , знайдених за допомогою побудованого сплайну та вбудованої функції


інтерполювання, можна перевірити і за допомогою функції сплайн-інтерполяції

Побудуємо графіки сплайн-функції, функції r ( x ) і заданих значень у (Рис.4.2) .


Рис.4.2

І інтерполяційний поліном Ньютона

Вкажемо форму запису інтерполяційного полінома Р п (х) , яка допускає уточнення


результатів інтерполяції послідовним поповненням нових вузлів. При цьому
використовуватимемо розділені різниці функції, що є зручним апаратом при роботі з
таблично заданими функціями.
Нехай для функції f ( x ) задані вузли інтерполяції х 0 , х 1 , ... х n :
y 0 = f ( x 0 ), y 1 = f ( x 1 ), ... y n = f ( x n ) - Відповідні значення функції.
Розділеними різницями першого порядку називаються величини, що мають сенс середніх
швидкостей зміни функції та обчислювані за формулами:

f ( x 1 ) −f ( x 0 ) f ( x2 )− f ( x 1 )
f ( x 0 , x 1) = , f ( x 1 , x2 )= ( 4.1 )
x 1− x0 x 2− x 1

f ( x n ) −f ( x n−1 ) ( 4.2 )
f ( x n−1 , x n )=
x n −x n−1

Аналогічно визначаються розділені різниці другого порядку:


f ( x 1 , x 2 ) −f ( x 0 , x1 )
f ( x0 , x1 , x2)= ( 4.3 )
x2 −x 0

і т.д.
У загальному випадку розділені різниці до-го порядку визначаються через розділені
різниці (к-1)-го порядку за рекурентною формулою:

f ( x i +1 , x i +2 ,. . . , x i+k ) −f ( x i , x i+1 , .. . , x i +k −1 )
f ( x i , x i+1 , .. . , x i +k ) = ( 4.4
xi+k −x i )

Обчислення розділених різниць зручно проводити у таблиці

xi f ( xi) Розділені різниці


1-го порядку 2-го порядку 3-го порядку 4-го порядку
x0 f(x 0 )
x1 f(x 1 ) f(x 0 ,x 1 )
x2 f(x 2 ) f(x 1 ,x 2 ) f ( x 0, x 1, x 2)
x3 f ( x 3) f ( x2 , x3 ) _ _ f ( x 1, x 2, x 3) f ( x0 , x1 , x2 , x3
) __
x4 f ( x 4) f ( x3 , x4 ) _ _ f ( x2 , x3 , x4 ) f ( x 1, x 2, x 3, x f ( x0 , x1 , x2 , x3 , x4 )
__ 4) __

Інтерполяційний поліном може бути записаний через розділені різниці у вигляді

Pn ( x )=f ( x 0 ) + ( x−x 0 ) f ( x 0 , x 1 ) + ( x−x 0 )( x−x 1 ) f ( x 0 , x 1 , x 2 ) +. ..+


( 4.5 )
+ ( x−x 0 )( x−x 1 ) . .. ( x−x n−1 ) f ( x 0 , x 1 , .. . , x n )

Записаний поліном має назву інтерполяційного полінома Ньютона


Варіант №4
Інтерполяційний поліном Лагранжа
Нехай задана функція
X 0,46 0,48 0,55 0,62 0,7 0,75
Y 1,63597 1,73234 1,87686 2,03045 2,22846 2,35973

Побудувати інтерполяційний багаточлен Лагранжа для функції заданої таблично, знайти


значення цієї функції в точці х = 0,608 , побудувати графіки отриманого багаточлена
Лагранжа функції, заданої таблично, і багаточлена n -го ступеня і оцінити точність
наближення.
1. Вводимо матриці вихідних даних:
 0.46
 0.48
 
 0.55
vx 
 0.62
 0.7 
 
 0.75
 1.63597
 1.73234
 
 1.87686
vy 
 2.03045
 2.22846
 
 2.35973
Знаходимо величину n – показник ступеня многочлена:
n  äëèíà ( vx)  1

n 5

Задаємо змінні:
i  0 n

j  0 n

Записуємо формулу багаточлена Лагранжа у символьному вигляді:

  x  vx  
j
f ( x)    vy 
 if  i j 1  
 i 

vx  vx  
i j
i  j 
Знаходимо значення функції в точці х = 0,608
f ( 0.608)  2

2. Знаходимо коефіцієнти інтерполяційного багаточлена. Знаходимо матрицю певного


виду:

XI
j i  j i
 vx

XI  1
j 0
1 0.46 0.212 0.097 0.045 0.021
1 0.48 0.23 0.111 0.053 0.025
 
1 0.55 0.303 0.166 0.092 0.05 
XI  
1 0.62 0.384 0.238 0.148 0.092
1 0.7

0.49 0.343 0.24 0.168
 
1 0.75 0.563 0.422 0.316 0.237

Обчислюємо коефіцієнти полінома:


1
a  XI  vy

 232.351
 1925.865
 
 6306.396
a
 10265.702
 8300.573
 
 2668.173
Отримали багаточлен п’ятого ступеня:

P( x )=2668,173 x5 −8300,573 x 4 + 10265,702 x 3−6306,396 x 2+ 1925,86 x 1−232,357


3. Правильність знайдених коефіцієнтів перевіримо, підставивши значення х серед
заданих, і знайдемо значення функції при х= 0,608.
k  n  0

  ak x 
k
P( x) 
k

P( 0.46)  1.636

P( 0.68)  2.183

Значення функції повністю збігається із значенням, знайденим вище.


4. Будуємо графіки значень vx i та отриманих багаточленів f ( x ), P ( x ).

100

0
P( xI)

vy i  100

f  vxi
 200

 300
0 0.2 0.4 0.6 0.8
xIvxi
З малюнка видно, що графіки збудованого багаточлена Лагранжа f ( x ) та функції P ( x )
проходять через вузли інтерполяції.
5. Перевіряємо отримане значення за допомогою вбудованої функції:
linterp(vxvy 0.608)  2.004

6. Складаємо функцію, що реалізує інтерполювання функцій багаточленом Лагранжа:


lagrang( vxvy zn)  ORIGIN  1
n  äëèíà ( vx)  1
f 0
for i  1  n
p 1
for j  1  n

p  p
zn  vxj if j  i
vxi  vxj
f  f  vy  p
i
f

lagrang(vxvy 0.608)  2.003

Інтерполювання сплайнами
Інтерпольована функція складається з шести вузлів ( n = 5)
x 0,46 0,48 0,55 0,62 0,7 0,75
F(x) 1,63597 1,73234 1,87686 2,03045 2,22846 2,35973

Знайти значення коефіцієнтів


bi , c i , d i , що визначають кубічний сплайн на п'яти
часткових відрізках.
Складемо систему, що складається з 15 рівнянь
 0.46
 0.48
 
 0.55
x 
 0.62
 0.7 
 
 0.75
 1.63597
 1.73234
 
 1.87686
y 
 2.03045
 2.22846
 
 2.35973
i  0 4

h  x x
i i 1 i
 0.02
 0.07
 
h   0.07
 0.08
 
 0.05
0 0 0
0 0 0
     
B   0  C   0  D   0 
0 0 0
     
0 0 0

Given

B h  C  h
0 0 0  02  D0h 03 y y
1 0

B h  C  h
1 1 1  12  D1h 13 y y
2 1

B h  C  h
2 2 2  22  D2h 23 y y
3 2

B h  C  h
3 3 3  32  D3h 33 y y
4 3

B h  C  h
4 4 4  42  D4h 43 y y
5 4

B  B  2C h  3D  h
1 0 0 0 0  02 0

B  B  2C h  3D  h
2 1 1 1 1  12 0

B  B  2C h  3D  h
3 2 2 2 2  22 0

B  B  2C h  3D  h
4 3 3 3 3  32 0

C  C  3D h 0
4 3 3 3

C  C  3D h 0
3 2 2 2

C  C  3D h 0
2 1 1 1

C  C  3D h 0
1 0 0 0

C  3D h 0
4 4 4

C 0
0

B
 C   Find ( BCD)
 
D
 5.162  0   859.385
 4.131  51.563  314.897 
     
B   1.541 C   14.565  D   74.811 
 2.481  1.145   13.464 
     
 2.556  2.086   13.909 

Отримаємо значення коефіцієнтів


bi , c i , d i , які визначають шуканий сплайн.
Переконаємося, що знайдений сплайн задовольняє задані властивості

r ( X)  Sy B  Xx
0  0  C0X  x02  D0X  x03
0
if ( X  0.41)  ( X  0.46)

S  y  B  X  x   C  X  x   D   X  x 
2 3
if ( X  0.46)  ( X  0.52)
1 1 1 1 1 1 1

S  y  B  X  x   C  X  x   D   X  x 
2 3
if ( X  0.52)  ( X  0.6)
2 2 2 2 2 2 2

S  y  B  X  x   C  X  x   D   X  x 
2 3
if ( X  0.6)  ( X  0.65)
3 3 3 3 3 3 3

S  y  B  X  x   C  X  x   D   X  x 
2 3
if ( X  0.65)  ( X  0.72)
4 4 4 4 4 4 4
S

 0.46  1.636  1.927


 0.48  1.732  1.915
     
 0.55  1.877  1.939
x y  r ( x) 
 0.62  2.03   2.044
 0.7   2.228  2.228
     
 0.75  2.36   2.36 
r ( 0.608)  2 linterp(xy 0.608)  2.004

Збіг значень , знайдених за допомогою побудованого сплайну та вбудованої функції


інтерполювання, можна перевірити і за допомогою функції сплайн-інтерполяції
vs  cspline( xy)

 0 
 3 
 2 
 120.499
 
vs   88.153 
 25.057 
 
 0.968 
 2.781 
 5.124 

interp( vs xy 0.608)  2.001

Побудуємо графіки сплайн-функції, функції r ( x ) і заданих значень у.


2.4

2.2

r ( x)
2
interp ( vs xy x)

1.8

1.6
0.4 0.5 0.6 0.7 0.8
xxx

Інтерполяційний поліном Ньютона


T
x  ( 0.46 0.48 0.55 0.62 0.7 0.75)

T
y  ( 1.63597 1.73234 1.87686 2.03045 2.22846 2.3597)

n  5

i  0 n

j  1 n

C  y
i 0 i

 C C 
i j 1 i 1 j 1
C  if  i  j  0
i j  x x 
 i i j 
 1.63597 0 0 0 0 0 
 1.73234 4.8185 0 0 0 0 
 
 1.87686 2.06457142857130.599206349207 0 0 0 
C
 2.03045 2.194142857143 0.925510204082 197.029478458051 0 0 
 2.22846 2.475125 1.873214285714 4.307745825603 803.007219301869 0

 
 2.3597 2.6248 
1.151346153846 3.609340659341 29.3225425368282667.878195741521

n  n 
F( t)   C  if  i  j t  x 1

 i i j 
i0  j 0 
F( 0.608)  1.99975
3

2.5

2
y

F( t )
1.5

0.5
0.4 0.5 0.6 0.7 0.8
xt

Висновок: на цій лабораторній роботі я сформував уявлення про застосування


інтерполювання функцій для вирішення завдань, навчитився складати та застосовувати
інтерполяційні формули Лагранжа заданого ступеня, багаточлени Ньютона, сплайни та
оцінювати їх похибки, здобув навички у використанні програмних засобів для перевірки
отриманих результатів.Згадав та застосував знання обчислень, програмування у СКМ
MathCAD

You might also like