Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ОМ1_new.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

Теоретичні відомості

Нехай відомі значення функції в різних точках: . ( ): Наприклад, ці значення знайдені експериментально або отримані у результаті розрахунків. Виникає задача наближено відбудувати функцію у довільній точці .

Для розв’язання цієї задачі будується алгебраїчний багаточлен степеня , який в точках приймає ті ж значення , що й функція , тобто:

,

Такий багаточлен називають інтерполяційним. Точки називають вузлами інтерполяції

Будемо шукати інтерполяційний багаточлен у вигляді лінійної комбінації багаточленів степеня

(1)

При цьому вимагатимемо, щоб кожен багаточлен обертався в нуль в усіх вузлах інтерполяції, за винятком одного і-го вузла, де він повинен дорівнювати одиниці. Легко перевірити, що цим умовам задовольняє багаточлен виду

(2)

Підставляючи вираз (2) у вираз (1), отримуємо

(3)

Інтерполяційний багаточлен, представлений у вигляді (3), називають інтерполяційним багаточленом Лагранжа, а функції , представлені у вигляді , – лагранжевими коефіцієнтами.

Окремі випадки:

Лінійна інтерполяція За (інтерполюємо за двома точками)

Квадратична інтерполяція За (інтерполюємо за трьома точками)

Зразок виконання завдання Завдання: наближено відбудувати функцію , що задана таблицею

321.0

322.8

324.2

325.0

2.50651

2.50893

2.51081

2.51188

у точці =323.5 за допомогою інтерполяційного багаточлена Лагранжа.

Розв’язання:

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

+ +

+ + .

Тоді

= 0.07996+1.18794+1.83897 0.43708 = 2.50987

Відповідь: 2.50987

Приклад програми

#include <conio.h>

#include <iostream.h>

double XX[] = {0.43, 0.48, 0.55, 0.62, 0.70, 0.75};

double YY[] = {1.63597, 1.73234, 1.87688, 2.03345, 2.22846, 2.35973};

double g, l, r;

int i, j;

void main ()

{

cout<<"Тable of values of a function:"<<endl;

cout<<"X: ";

for(i=0; i<5; i++)

cout<<XX[i]<<" | ";

cout<<endl;

cout<<"Y: ";

for(i=0; i<5; i++)

cout<<YY[i]<<" | ";

cout<<endl;

cout<<endl;

cout<<"Еnter value X: ";

cin>>r;

l=0;

for(i=0; i<5; i++)

{

g=1;

for(j=0; j<5; j++)

{

if(i != j)

g = g*((r-XX[j])/(XX[i]-XX[j]));

}

l=l+YY[i]*g;

}

cout<<"Y = "<< l;

getch();

}

Контрольні питання

  1. Сформулюйте задачу інтерполяції функції.

  2. Що таке глобальна інтерполяція?

  3. Що таке локальна інтерполяція?

  4. Яке наближення називають екстраполяцією?

  5. Який багаточлен називають інтерполяційним багаточленом Лагранжа?

  6. Наведіть інтерполяційний багаточлен Лагранжа для випадку лінійної інтерполяції.

  7. Наведіть інтерполяційний багаточлен Лагранжа для випадку квадратичної інтерполяції.

Практична робота №4

Тема: Інтерполяція з рівновіддаленими вузлами. Інтерполяційний багаточлен Ньютона

Завдання: наближено відбудувати функцію , що задана таблицею, у довільній точці за допомогою інтерполяційних багаточленів Ньютона.

Таблиця 1

№ варіанта

Значення аргумента

1.415

1.420

1.425

1.430

1.435

1.440

1.445

1.450

1.455

1.460

1.465

0.888551

0.889599

0.890637

0.891667

0.892687

0.893698

0.894700

0.895693

0.896667

0.897653

0.898619

1

11

21

1.4161 1.4655

1.4657 1.4105

1.4254 1.4605

Таблиця 2

№ варіанта

Значення аргумента

0.101

0.106

0.111

0.116

0.121

0.126

0.131

0.136

0.141

0.146

0.151

1.26183

1.27644

1.29122

1.30617

1.32130

1.33660

1.35207

1.36773

1.38357

1.39959

1.41579

2

12

22

0.1115 0.1423

0.1035 0.1512

0.1074 0.1464

Таблиця 3

№ варіанта

Значення аргумента

0.15

0.20

0.25

0.30

0.35

0.40

0.45

0.50

0.55

0.60

0.65

0.860708

0.818731

0.778801

0.740818

0.704688

0.670320

0.637628

0.606531

0.576950

0.548812

0.522046

3

13

23

0.151 0.605

0.203 0.652

0.252 0.653

Таблиця 4

№ варіанта

Значення аргумента

0.180

0.185

0.190

0.195

0.200

0.205

0.210

0.215

0.220

0.225

0.230

5.51543

5.46693

5.32634

5.19304

5.06649

4.94619

4.83170

4.72261

4.61855

4.51919

4.42422

4

14

24

0.1817 0.2305

0.1857 0.2222

0.1873 0.2255

Таблиця 5

№ варіанта

Значення аргумента

3.50

3.55

3.60

3.65

3.70

3.75

3.80

3.85

3.90

3.95

4.00

33.1154

34.8133

36.5982

38.4747

40.4473

42.5211

44.7012

46.9931

49.4024

51.9354

54.5982

5

15

25

3.522 3.955

3.643 4.055

3.575 4.204

Таблиця 6

№ варіанта

Значення аргумента

0.115

0.120

0.125

0.130

0.135

0.140

0.145

0.150

0.155

0.160

0.165

8.65729

8.29329

7.95829

7.64893

7.36235

7.09613

6.84915

6.61859

6.39986

6.19658

6.00551

6

16

26

0.1217 0.1655

0.1168 0.1568

0.1175 0.1605

Таблиця 7

№ варіанта

Значення аргумента

1.340

1.345

1.350

1.355

1.360

1.365

1.370

1.375

1.380

1.385

1.390

4.25562

4.35325

4.45522

4.56184

4.67344

4.79038

4.91306

5.04192

5.17744

5.32016

5.47069

7

17

27

1.3617 1.3945

1.3463 1.3868

1.3432 1.3932

Таблиця 8

№ варіанта

Значення аргумента

0.01

0.06

0.11

0.16

0.21

0.26

0.31

0.36

0.41

0.46

0.51

0.9918

0.9519

0.9136

0.8769

0.8416

0.8077

0.7753

0.7441

0.7141

0.6854

0.6579

8

18

28

0.027 0.515

0.124 0.492

0.083 0.424

Таблиця 9

№ варіанта

Значення аргумента

0.15

0.16

0.17

0.18

0.19

0.20

0.21

0.22

0.23

0.24

0.25

4.4817

4.9530

5.4739

6.0496

6.6859

7.3891

8.1662

9.0250

9.9742

11.0232

12.1825

9

19

29

0.153 0.255

0.173 0.242

0.164 0.234

Таблиця 10

№ варіанта

Значення аргумента

0.45

0.46

0.47

0.48

0.49

0.50

0.51

0.52

0.53

0.54

0.55

20.1946

19.6133

18.9425

18.1746

17.3010

16.3123

15.1984

13.9484

12.5508

10.9937

9.2647

10

20

30

0.455 0.545

0.473 0.550

0.467 0.541