47660

Методичні вказівки. Чисельні методи в інформатиці

Книга

Информатика, кибернетика и программирование

У тому випадку, коли заздалегідь невідомий ступінь багаточлена Лагранжа, який необхідно використовувати для забезпечення необхідної точності, уживають підхід, заснований на рекурентній схемі організації обчислень, яка звісна, як схема Ейткена

Украинкский

2013-12-01

1.52 MB

9 чел.

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

ОДЕСЬКИЙ НАЦІОНАЛЬНИЙ ПОЛІТЕХНІЧНИЙ УНІВЕРСИТЕТ

МЕТОДИЧНІ ВКАЗІВКИ

ДО ЛАБОРАТОРНИХ РОБІТ З ДИСЦИПЛІНИ

“ЧИСЕЛЬНІ МЕТОДИ В ІНФОРМАТИЦІ”

для студентів напряму 6.050101 – „Комп’ютерні науки”

денної форми навчання

Одеса ОНПУ 2010

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

ОДЕСЬКИЙ НАЦІОНАЛЬНИЙ ПОЛІТЕХНІЧНИЙ УНІВЕРСИТЕТ

МЕТОДИЧНІ ВКАЗІВКИ

ДО ЛАБОРАТОРНИХ РОБІТ З ДИСЦИПЛІНИ

“ЧИСЕЛЬНІ МЕТОДИ В ІНФОРМАТИЦІ”

для студентів напряму 6.050101 – „Комп’ютерні науки”

денної форми навчання

Затверджено на засіданні

кафедри інформаційних технологій

проектування в електроніці

та телекомунікаціях,

протокол № 7 від 03.11.2010

Одеса ОНПУ 2010

Методичні вказівки до лабораторних робіт з дисципліни “Чисельні методи в інформатиці ” для студентів напряму 6.050101 – „Комп’ютерні науки ” денної форми навчання / Укл.: О.В.Андріянов. Одеса – 2010. ОНПУ, 40 с.

Укладач:   О.В. Андріянов, канд. фіз.-мат. наук, доцент

Зміст

стор

Лабораторна робота №1 Поліноміальна інтерполяція………………………………………4

1.1 Короткі теоретичні положення………………………………………………………….4

1.2 Завдання до роботи……………………………………………………………………….9

1.3 Контрольні питання……………………………………………………………………..10

Лабораторна робота № 2 Апроксимація функцій, які задані таблицею…………………….11

2.1 Короткі теоретичні положення…………………………………………………………11

2.2 Завдання до роботи……………………………………………………………………..15

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

Лабораторна робота №3 Інтерполяція функції кубічними сплайнами …………………….18

3.1 Короткі теоретичні положення…………………………………………………………18

3.2 Завдання до роботи……………………………………………………………………..23

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

Лабораторна робота №4 Чисельне інтегрування……………………….……………………25

4.1 Короткі теоретичні положення…………………………………………………………25

4.2 Завдання до роботи……………………………………………………………………..29

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

Лабораторна робота №5 Чисельне диференціювання………………………………………..

5.1 Короткі теоретичні положення………………………………………………………….

5.2 Завдання до роботи……………………………………………………………………….

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

Література…………………………………………………………………………………………


Лабораторна робота №1

ПОЛІНОМІАЛЬНА ІНТЕРПОЛЯЦІЯ

Мета роботи – вивчити методи наближених обчислень із  використанням інтерполяційних формул.

1.1 Короткі теоретичні положення

1.1.1 Інтерполяційний багаточлен Лагранжа

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

Задача апроксимації функції f(х) функцією (x) складається в побудові для заданої функції f(х) такої функції (x), що

f(x)φ(x).                                                                 (1.1)

Нехай у крапках x0, x1, …..., xn таких, що a x0<…<xn<b, відомі значення функції y = f(x), тобто на відрізку [а, b] задана таблична (сіткова) функція f(x)

Таблиця 1.1 – Сіткова функція f(x)

x

х0

x1

x2

x3

xn-1

xn

y

y0

y1

y2

y3

yп-1

yп

 

Функція φ(x) називається інтерполяційною  або інтервенційною для f(x) на [а, b], якщо її значення (х0), (х1),…,(хn) у заданих крапках х0, х1..., хn, які звуться вузлами інтерполяції, збігаються із заданими значеннями функції f(x), тобто з y0, y1,..., yп відповідно. Геометрично факт інтерполяції означає, що графік функції φ(x) проходить так, що, щонайменше, в n +1 заданих крапках він перетинає або торкається графіка функції f(x).

Задача поліноміальної, алгебраїчної або параболічної інтерполяції полягає в тому, щоб для функції f(x), заданою таблицею 1.1, знайти багаточлен Рп(х), для якого виконується сукупність умов інтерполяції

                                        (1.2)

Знайти багаточлен Рn(х) — значить знайти  n + 1 коефіцієнт а0, a1, ...,ап. його канонічної форми

                                 (1.3)

Багаточлен (1.4) буде інтерполяційним для функції (1.2), якщо його коефіцієнти а0, a1, ...,ап задовольняють системі рівнянь

Жозеф Луі агранж запропонував спосіб обчислення таких багаточленів. Багаточлен n-го ступеня Ln(x) будується у вигляді лінійної комбінації  багаточленів n-го ступеня li(х) (i= 0,1,...,n). Для того, щоб такий багаточлен був інтерполяційним для функції f(x), досить зафіксувати як коефіцієнти сi цієї лінійної комбінації значення уi = f(xi), які задані в табл. 1.1,  а від базисних багаточленів li(х) вимагати виконання умови

  (1.4)

Таким чином, багаточлен представляється у вигляді

Тому що базисні багаточлени Лагранжа мають вигляд

то шуканий інтерполяційний багаточлен Лагранжа є

 (1.5)

Якщо інформація про функцію y=f(x) зосереджена у двох крапках: (x0;y0) і (x1,y1), то отримаємо формулу лінійної інтерполяції (багаточлен Лагранжа першого ступеня) 

    (1.6)

Якщо є відомості про три крапки (x0;y0), (x1,y1) і (x2,y2) функції, то можна побудувати інтерполяційний багаточлен Лагранжа другого ступеня, інакше називаний формулою квадратичної інтерполяції:

(1.7)

1.1.2 Схема Ейткена

У тому випадку, коли заздалегідь невідомий ступінь багаточлена Лагранжа, який необхідно використовувати для забезпечення необхідної точності, уживають підхід, заснований на рекурентній схемі організації обчислень, яка звісна, як схема Ейткена:

   (1.8)

де k=1,2,…...;    Pi,i=yi.

При проведенні обчислень поступово підвищується ступінь інтерполяційних багаточленів  k за рахунок підключення до обчислення більше вилучених від x вузлів. Рахунок триває доти, поки при фіксованому значенні i  зі збільшенням k модуль різниці |Pi,i+до-1(x) - Pi,i+до(x)| не почне зменшуватися.

Таблиця 1.2 - Інтерполяційні багаточлени, які можуть бути використані в схемі Ейткена при обчисленні значення y(x0+) ( < x1-x0)

i

xi

yi

Pi,i+1(x)

Pi,i+2(x)

Pi,i+3(x)

Pi,i+4(x)

Pi,i+5(x)

Pi,i+6(x)

Pi,i+7(x)

0

x0

y0

P0,1(x)

P0,2(x)

P0,3(x)

P0,4(x)

P0,5(x)

P0,6(x)

P0,7(x)

1

x1

y1

P1,2(x)

P1,3(x)

P1,4(x)

P1,5(x)

P1,6(x)

P1,7(x)

2

x2

y2

P2,3(x)

P2,4(x)

P2,5(x)

P2,6(x)

P2,7(x)

3

x3

y3

P3,4(x)

P3,5(x)

P3,6(x)

P3,7(x)

4

x4

y4

P4,5(x)

P4,6(x)

P4,7(x)

5

x5

y5

P5,6(x)

P5,7(x)

6

x6

y6

P6,7(x)

7

x7

y7

Порядок обчислень: P0,1(x)  P1,2(x)  P0,2(x)  P2,3(x)  P1,3(x)  P0,3(x)  P3,4(x)  P2,4(x)  P1,4(x)  P0,4(x) і т.д.

1.1.3 Кінцеворізницеві  інтерполяційні формули

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

Процес побудови кінцевих різниць описується рекурентною формулою, що виражає кінцеву різницю k-го порядку kyi через різниці (k -1) -го порядку:

kyi= k-1yi+1   k-1yi,                                               (1.9)

де k=1, 2, ..., п   і   0уi :=уi.

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

      (1.10)

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

Для інтерполяції з найбільшою точністю варто застосовувати той ступінь багаточлена k, при якій k-і різниці таблиці кінцевих різниць деякої функції практично постійні.

Виходять із припущення, що функція у = f(x) задана своїми значеннями y0, y1,…,yп на системі рівновіддалених вузлів х0, x1, ..., хn, тобто таких, що будь-який вузол xi  цієї сітки можна представити у вигляді xi=x0 + ih, де i = 0,1, ..., п, a h>0 — деяка постійна величина, яка називається кроком сітки.

Інтерполяційний багаточлен Рn(х) будується у формі

 (1.11)

Таблиця 1.3 - Таблиця кінцевих різниць

xi

yi

yi

2yi

3yi

4yi

5yi

x0

y0

...

y0

x1

y1

2y0

y1

3y0

x2

y2

2y1

4y0

y2

3y1

x3

y3

2y2

4y1

y3

3y2

x4

y4

2y3

y4

...

x5

y5

...

...

...

Коефіцієнти ak цього подання можуть бути знайдені з вираження

      (1.12)

Підставляючи a0, a1 ..., ап в (1.11), одержують багаточлен

   (1.13)

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

Цей багаточлен придатний для інтерполяції навколо вузла x0. Вузол х0 називають базовим для багаточлену (1.13). Уводячи нову змінну = ( x0)/h  багаточлен (1.13) перетворюють у формулу

   (1.14)

яка називається першою інтерполяційною формулою Ньютона.

Перша формула Ньютона (1.14) звичайно застосовується при значеннях \q\ < 1, а саме для інтерполяції вперед (при х (x0, x1), тобто при q(0,1)) і екстраполювання назад (при x< x0, тобто при q < 0).

У другому інтерполяційному багаточлені Ньютона

  (1.15)

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

Змінна = ( xn)/h  у цьому випадку перетворює (1.15)  до другої інтерполяційної формули Ньютона:

          (1.16)

Її доцільно використовувати при значеннях \q\ < 1, тобто навколо вузла хп для інтерполяції назад (при q  (-1, 0)) і екстраполювання вперед (при q > 0).

Існує кілька формул, розрахованих на їхнє застосування в центральній частині таблиці й тому називаних центральними інтерполяційними формулами.

Вузол x0 розташовується в середині таблиці, інші вузли нумеруються з використанням як позитивних, так і негативних індексів.

Таблиця 1.4 - Таблиця центральних різниць

xi

yi

yi

2yi

3yi

4yi

5yi

6yi

x-3

y-3

y-3

x-2

y-2

2 y-3

y-2

3 y-3

x-1

y-1

2 y-2

4 y-3

y-1

3 y-2

5 y-3

x0

y0

2 y-1

4 y-2

6 y-3

y0

3 y-1

5 y-2

x1

y1

2y0

4 y-1

y1

3y0

x2

y2

2y1

y2

x3

y3

Перша інтерполяційна формула Гаусса має вигляд:

                    (1.17)

Друга інтерполяційна формула Гаусса

          (1.18)

Напівсума першого і другого інтерполяційних багаточленів Гаусса після перетворень приводить до формули

(1.19)

яка називається інтерполяційною формулою Стірлінга.

Якщо ж взяти напівсуму другого інтерполяційного багаточлена Гаусса й такого ж багаточлена, але з нижніми індексами, збільшеними на одиницю (тобто з базовою крапкою x1 замість х0), то прийдемо до інтерполяційної формули Бесселя

(1.21)

Якщо підставити значення q = 1/2, що відповідає значенню аргументу x = (хx1)/2, то вийде окремий випадок формули Бесселя, називаний формулою інтерполяції на середину:

   (1.22)

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

  1.  Якщо крапка x, у якій потрібно знайти наближене значення функції f(x),  перебуває на початку або наприкінці таблиці, застосовується відповідно перша або друга формули Ньютона. Базова крапка вибирається так, щоб значення |q| було якнайменше.
  2.  Якщо крапка x перебуває в середині таблиці, то крапку x0  у таблиці центральних різниць фіксують так,  щоб q або було за модулем менше 0.25 і тоді застосовують інтерполяційну  формулу  Стірлінга, або  щоб 0.25 |q|  0.75 і використовують формулу Бесселя.

1.2 Завдання до роботи

Функція f(x), яка багато разів диференціюється, задана таблицею значень уi  f (xi) (див. таблицю 1.5):

Останні цифри в значеннях yi є результатом правильного округлення. Задано контрольні значення аргументу:

  1.  Записати конкретні інтерполяційні багаточлени Лагранжа першого й другого ступеня,  які підходять для наближеного обчислення значень

й одержати ці значення.

  1.  Скласти алгоритм, що реалізує схему Ейткена обчислення з максимально можливою точністю значення y = f(x) у довільній крапці х проміжку [xo, xn +(хn -xn-1)]. Користуючись цим алгоритмом, обчислити наближені значення
  2.  Скласти таблицю кінцевих різниць, записати оптимальні для обчислення  конкретні кінцеворізницеві формули й з їхньою допомогою одержати ці значення.
  3.  Зрівняти результати виконання завдань 1.-3.

Таблиця 1.5 – Варіанти завдань

Варіант

xi

0

0.2

0.4

0.6

0.8

1.0

1.2

1.4

1.6

1

уi

1.0000

1.0201

1.0811

1.1855

1.3374

1.5431

1.8107

2.1509

2.5775

2

уi

0.0000

0.2013

0.4108

0.6367

0.8881

1.1752

1.5095

1.9043

2.3756

3

уi

2.0000

2.0254

2.1001

2.2260

2.4072

2.6501

2.9631

3.3570

3.8446

4

уi

0.0020

0.0081

0.0219

0.0427

0.0706

0.1070

0.1543

0.2158

0.2960

5

уi

3.5000

3.5161

3.5713

3.7059

3.9894

4.5200

5.4254

6.8623

9.0162

6

уi

0.0000

0.0102

0.0392

0.1042

0.2238

0.4204

0.7204

1.1537

1.7542

7

уi

4.0000

4.0061

4.0199

4.0407

4.0686

4.1050

4.1523

4.2138

4.2940

8

уi

0.5000

0.5313

0.6266

0.7956

1.0521

1.4134

1.9006

2.5385

3.3556

9

уi

4.5000

4.5069

4.5327

4.6055

4.7734

5.1050

5.6891

6.6346

8.0708

10

уi

1.0503

1.0704

1.1375

1.2263

1.4174

1.5431

1.8617

2.2103

2.6283

11

уi

0.0025

0.2113

0.4306

0.6879

0.9381

1.2152

1.5576

1.9621

2.4153

12

уi

2.0350

2.0603

2.1351

2.2665

2.4404

2.6825

3.0231

3.3968

3.8835

13

уi

0.0127

0.0581

0.0916

0.1427

0.1783

0.2071

0.2153

0.2815

0.3463

14

уi

3.5000

3.5161

3.5713

3.7059

3.9894

4.5200

5.4254

6.8623

9.0162

15

уi

0.0362

0.0743

0.0984

0.1395

0.2734

0.4723

0.7937

1.2536

2.1443

16

уi

4.2469

4.2865

4.3299

4.4405

4.4981

4.5055

4.6534

4.7179

4.9642

17

уi

0.6056

0.6312

0.7269

0.8955

1.1528

1.5133

2.0008

2.6384

3.4551

18

уi

4.7500

4.7769

4.8334

4.8758

5.1065

5.4062

5.8999

6.8841

8.3417

19

уi

3.7500

3.5161

3.5713

3.7059

3.9894

4.5200

5.4254

6.8623

9.0162

20

уi

0.5750

0.5102

0.5392

0.6043

0.7235

0.9209

1.2205

1.6536

2.2543

21

уi

5.0000

5.0067

5.0201

5.0714

5.0732

5.1165

5.2510

5.3647

5.5674

22

уi

1.5050

1.5352

1.6377

1.7687

2.0523

2.4337

2.9208

3.5493

4.2356

23

уi

5.5000

5.5072

5.5335

5.6423

5.7835

6.1355

6.7753

7.7139

9.1819

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

  1.  Що таке інтерполяція?
  2.  У чому полягає задача поліноміальної інтерполяції?
  3.  Яким умовам повинна задовольняти функція, що інтерполює?
  4.  Яка може бути ступінь багаточлена, що інтерполює, у функції, що задана шістьома вузлами?
  5.  Приведіть загальний вид інтерполяційної формули Лагранжа.
  6.  Чому дорівнює максимальна погрішність при інтерполяції функції багаточленом Лагранжа?
  7.  Запишіть формулу лінійної інтерполяції.
  8.  Запишіть формулу квадратичної інтерполяції.
  9.  Що таке схема Ейткена? Приведіть рекурентну формулу організації обчислювального процесу багаточленів Лагранжа.
  10.  Приведіть визначення кінцевих різниць і їхніх найпростіших властивостей.
  11.  Запишіть перший інтерполяційний багаточлен і першу інтерполяційну формулу Ньютона.
  12.  Запишіть другий інтерполяційний багаточлен і другу інтерполяційну формулу Ньютона.
  13.  Які формули й чому звуться центральними інтерполяційними формулами?
  14.  Запишіть першу й другу інтерполяційні формули Гаусса.
  15.  Приведіть критерії вибору варіанту кінцеворізницевої інтерполяційної формули. У якому випадку обчислення рекомендується робити за формулою Бесселя? За формулою Стірлінга?


ЛАБОРАТОРНА РОБОТА № 2

АПРОКСИМАЦІЯ ФУНКЦІЙ, ЯКІ ЗАДАНІ ТАБЛИЦЕЮ

Мета роботи - вивчити методи апроксимації функцій, які задані таблицею, на прикладі методу найменших квадратів.

2.1 Короткі теоретичні положення

Експериментальні дані, наприклад, залежності між x  і y, звичайно представляють  у вигляді таблиці значень змінних:

 

 

У цьому випадку виникає задача пошуку аналітичної залежності між   і , тобто  деякої формули  , що явно  виражає   як функцію  . Природно вимагати, щоб графік шуканої функції y=f(x) змінювався плавно й не занадто відхилявся від експериментальних крапок (xi,yi). Пошук такої функціональної залежності називають "згладжуванням" експериментальних даних.

Звичайне згладжування експериментальних даних виконують  за допомогою методу найменших квадратів. Відповідно до методу найменших квадратів вказується вид емпіричної залежності

                                                  (2.1)

де - числові параметри.

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

                           (2.2)

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

                                         (2.3)

Якщо система (2.3) має єдине рішення  , то воно є шуканим і аналітична залежність між  експериментальними даними визначається формулою

В загальному випадку система (2.3) нелінійна.

Найпростейшим випадком (2.1) є апроксимуючі залежності із двома параметрами: = (x,α,β). Використовуючи співвідношення (2.3) одержують систему двох рівнянь із двома невідомими α і β:

                                       (2.4)

При апроксимації експериментальних даних за допомогою лінійної функції

Система (2.4) для цього випадку є лінійною щодо  невідомих k і b:

                    (2.5)

Якщо для змінних x і у відповідні значення експериментальних даних (хii) не розташовуються поблизу прямої, тоді вибирають нові змінні

                                                    (2.6)

так, щоб перетворені експериментальні дані

                                               (2.7)

у новій системі координат (Х,Y) давали крапки (Xi,Yi), які менш відхиляються від прямої.

Для апроксимуючої прямої

                                                            (2.8)

числа k і b визнають з рівнянь (5), де замість xi і yi підставляють відповідні значення Xi і Yi. Знаходження залежностей (6) називають вирівнюванням експериментальних даних.

Функціональна залежність = f(х), яка визначається неявно рівнянням (х,у) = k(x,у) + b, вирішується відносно y в окремих випадках.

Приклад 1. Установити вид емпіричної формули y=f(x), використовуючи апроксимуючі залежності (2.1) із двома параметрами α і β, і визначити найкращі значення параметрів, якщо дані експерименту

1

3

5

7

9

9,2

97

291

600

1030

Рішення. Будуємо графік функції уi=f(xi). Експериментальні крапки (xii) не розташовуються поблизу прямої. Покладемо X = ln х, Υ = ln y і складемо таблицю експериментальних даних у нових змінних Xi  і Yi.:

Xi

0,000

1,099

1,609

1,946

2,197

Yi

2,214

4,575

5,673

6,397

6,937

Крапки (Xi, Yi) лежать приблизно на прямій. Найкращі значення параметрів k і b емпіричної залежності Υ = kX + b знаходяться із системи рівнянь:

Вирішивши цю систему, отримаємо b = 2,22, k = 2,15. Неявне рівняння, що виражає зв'язок між змінними x і y, має вигляд

Легко одержати явну залежність між  x  і  y в вигляді  статечної функції

                                                        (2.9)

Порівняння експериментальних даних з результатами обчислень по емпіричній формулі (2.9) у відповідних крапках представлено у вигляді таблиці

1

3

5

7

9

9,2

97

291

600

1030

9,19

97,53

292,48

602,94

1034,99

Формула (2.9) - це окремий випадок апроксимуючої залежності із двома параметрами, що має вид

Застосування способу вирівнювання істотно спрощує обчислення параметрів. У цьому випадку

Рекомендації з вирівнювання експериментальних даних і апроксимуючі залежності із двома параметрами наведені в таблиці 2.1.

Одну із шести запропонованих формул перетворення до змінного (Χ,Υ) варто вибирати одночасно з перевіркою застосування лінійної залежності до вихідних даних (xi,yi) (i=1,2,..,n). Умовою вибору найкращої емпіричної формули є найменше відхилення вихідних або перетворених  експериментальних даних від прямої.

Таблица  2.1 – Варіанти емпіричних залежностей

Вирівнювання даних

(перетворення змінних)

Емпірична формула

1

     

    

2

     

   

3

     

   

4

     

     

5

    

     

6

    

     

Відхилення даних від прямої в кожному варіанті  вирівнювання даних визначається величиною  

Для найкращої емпіричної формули величина d є  найменшою, тобто  (j = 0 для випадку, коли Xii і Yi=yi).

Якщо не вдається задовільно  побудувати функціональну залежність, використовуючи вид емпіричної формули  із двома  параметрами, то продовжується пошук серед формул з більшим числом параметрів.

Приклад 2. Дані дослідження наведені в таблиці

xi

0

1

3

4

yi

4

0

4

2

Установити вид емпіричної формули  y=f(x), використовуючи  апроксимуючу залежність із трьома параметрами  а, b і с  виду

Рішення. У цьому випадку співвідношення (2.2) приймає вид

Для знаходження    а, b, і с складемо систему рівнянь виду (2.3):

Звідси одержуємо систему трьох  лінійних рівнянь із трьома невідомими:

Рішенням цієї системи є числа Емпірична формула являє собою функцію

2.2 Завдання до роботи

Виконайте наступні завдання для свого варіанта (див. таблицю 2.2):

  1.  Побудуйте координатну сітку (х,у) і нанесіть на неї експериментальні  крапки (xi,yi).
  2.  Складіть блок-схему визначення параметрів емпіричної формули із двома параметрами методом найменших квадратів.
  3.  Використовуючи лінійну апроксимацію, визначте параметри в рівнянні прямої.
  4.  Використовуючи кожну із шести формул перетворення  до змінних (Х,Y), визначте параметри рівнянь.
  5.  Методом найменших квадратів знайдіть найкращі значення параметрів k і b у рівнянні прямій (2.8).
  6.  Знайдіть явний вид емпіричної формули y=(x,,) і побудуйте графік емпіричної функції.
  7.  Встановіть вид емпіричної формули  y=f(x), використовуючи  апроксимуючу залежність із трьома параметрами  а, b і с.

Таблиця 2.2 Варіанти завдань

Варіант

хi

1

2

3

4

5

1

yi

1,1

1,4

1,6

1,7

1,9

2

yi

1,05

1,55

1,7

1,75

1,8

3

yi

0,4

0,55

0,13

0,09

0,07

4

yi

7,5

6,2

5,5

3,5

3

5

yi

8,2

5,9

4,9

4

3,2

6

yi

7,2

5,9

4,9

4

3,2

7

yi

7,1

6,1

4,9

4

3,1

8

yi

0,55

0,7

0,77

0,82

0,85

9

yi

1,1

1,55

1,9

2,3

2,6

10

yi

1,1

1,55

1,9

2,25

2,5

11

yi

5,1

4,4

3,2

2,7

2,55

12

yi

5,1

3,4

3,2

2,7

2,55

13

yi

1,9

5,5

10

15

21

14

yi

3

3,5

3,67

3,75

3,8

15

yi

0,25

0,09

0,07

0,05

0,04

16

yi

0,25

0,111

0,071

0,053

0,042

17

yi

0,20

0,28

0,33

0,36

0,38

18

yi

4,8

5,76

6,912

8,294

9,95

19

yi

1

3,08

4,3

5,16

5,83

20

yi

0,33

0,5

0,6

0,67

0,71

21

yi

1,5

1,75

1,83

1,87

1,9

22

yi

1

0,2

0,11

0,077

0,059

23

yi

1

0,4

0,33

0,31

0,29

24

yi

2,25

3,38

5,06

7,59

11,4

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

  1.  У чому суть наближення функції, яка задана таблицею, за методом найменших квадратів? У яких випадках він застосовується? Чим відрізняється цей метод від методу інтерполяції?
  2.  У чому сенс лінеаризації експериментальних залежностей? Яким чином завдання побудови наближеної функції у вигляді різних елементарних функцій зводиться до випадку лінійної функції?
  3.  У чому полягає основна ідея методу найменших квадратів?
  4.  Чому в методі наїменьщих квадратів використовується принцип мінімуму суми квадратів абсолютних величин, а не суми самих абсолютних величин? Відповідь обгрунтуйте і підтвердите прикладами.

          Додаток 2.1

/* Визначення параметрів емпіричної формули із двома параметрами методом найменших квадратів */

#include <stdio.h>

#include <conio.h>

#include <cmath>

int i,j,k,m,n=20;

float d1,a[7],b[7],d[7];

float *x=new float[n];

float *y=new float[n];

float *x1=new float[n];

float *z1=new float[n];

void mnk_calculate_parameters(void);

void main()

{

printf ("Enter number of experimental points m > i\n");

scanf_s("%i",&m);

printf ("Enter pairs of values xi, yi;  i=1,...,m\n");

for(i=1; i<=m; i++, printf("\n"))

 scanf_s("%f%f",&x[i],&y[i]);

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

{

 switch (j)

 {

 case 0:   

  for(i=1; i<=m; i++)

  {

   x1[i]=x[i];

   z1[i]=y[i];

  };

  break;

 case 1:

  for(i=1; i<=m; i++)

   z1[i]=x[i]*y[i];

  break;

 case 2:  

  for(i=1; i<=m; i++)

   z1[i]=1/y[i];

  break;

 case 3:  

  for(i=1; i<=m; i++)  

   z1[i]=x[i]/y[i];

  break;

 case 4:  

  for (i=1; i<=m; i++)

   z1[i]=log(y[i]);

  break;

 case 5:  

  for (i=1; i<=m; i++)

  {  

   x1[i]=log(x[i]);

   z1[i]=y[i];

  };

  break;

 case 6:

  for (i=1; i<=m; i++)

   z1[i]=log(y[i]);

  break;

 }

mnk_calculate_parameters();

};

for (d1=d[0],k=0,i=1; i<=6; i++)

 if (d[i]<d1)

 {

  d1=d[i];

  k=i;

 };

printf ("The empirical formula N=%i d=%f", k, d1);

printf ("  k=%f  b=%f\n",a[k],b[k]);

printf("\nPress any key for continue...");

delete []x;

delete []y;

delete []x1;

delete []z1;

_getch();

}

Додаток 2.2

/* Функція обчислення параметрів лінійної залежності при вирівнюванні експериментальних даних*/

void mnk_calculate_parameters(void)

{

float k0, b0, a1, b1, a2, b2, f2;

for (a1=b1=a2=b2=0, i=1; i<=m; i++)

{

 a1=a1+x1[i];

 b1=b1+z1[i];

 a2=a2+x1[i]*x1[i];

 b2=b2+x1[i]*z1[i];

};

d1=m*a2-a1*a1;

k0=(m*b2-a1*b1)/d1;

b0=(b1*a2-a1*b2)/d1;

for (d1=f2=0, i=1; i<=m; i++)

{

 f2=f2+z1[i]*z1[i];

 d1=d1+(z1[i]-k0*x1[i]-b0)*(z1[i]-k0*x1[i]-b0);

};

d[j]=sqrt(d1/f2);

a[j]=k0;

b[j]=b0;

}


ЛАБОРАТОРНА РОБОТА №3

ІНТЕРПОЛЯЦІЯ ФУНКЦІЇ КУБІЧНИМИ СПЛАЙНАМИ

Мета роботи: вивчити методи інтерполяції функцій, які задані таблицєю, за допомогою сплайнів.

3.1 Короткі теоретичні положення

Нехай відрізок [a,b] розбитий на n частин  крапками {xi}:

a=x0  < x1 <x2 < xi-1 < xi < … < xn=b

Сплайном k-го ступеня називається  функція, що представляє собою багаточлен не вище k-го ступеня на кожному з інтервалів (хi-1, xi), які послідовно примикають один до одного (i=1, 2,…, n), причому в крапках стику двох інтервалів xi  (i=1,…, n-1) функція безперервна разом зі своїми похідними до порядку не вище k.

Наприклад, безперервна кусочно-лінійна функція (ламана) є сплайном першого ступеня з похідній, що терпить розрив у крапках зламу.

Нехай на відрізку [a,b] визначена функція, y=f(x), значення якої в крапках xi рівні yi=f(xi).

Задача інтерполяції функції на відрізку [a,b] кубічним сплайном (сплайном третього ступеня) складається в знаходженні функції S(x), рівної багаточлену третього ступеня Si(x) на кожному відрізку [xi-1, xi] (i=1, 2,…, n), тобто

                      (3.1)

причому значення сплайну у вузлах інтерполяції xi дорівнюють відповідним значенням заданої функції yi і сплайн-функція безперервна у вузлах інтерполяції разом з похідними першого й другого порядків:

S(x) = Si+1(xi) = yi  (i=1, 2,…, n-2),     S(xn) = Sn(xn) = yn,                             (3.2)

Si(xi) = Si+1(xi)  (i=1, 2,…, n-2),                                             (3.3)

S'i(xi) = Si+1(xi)  (i=1,2,…,n-2),                                             (3.4)

Sim(xi) = Si+1(xi) (i=1,2,…,n-2).                                            (3.5)

Умови (3.2)-(3.5) дають 4n-2 лінійних алгебраїчних рівнянь для визначення 4n невідомих  коефіцієнтів  (p=0, 1, 2, 3; i=1, 2,…,n) при відповідних ступенях x у багаточленах Si(x).

Можна показати, що інтерполяційний кубічний сплайн для функції y=f(x) існує і є єдиним, якщо разом з рівняннями (3.2)-(3.5) задовольняється яка-небудь пара додаткових умов (крайових умов) наступного типу:

I.           S'(a)=f'(a),        S'(b)=f'(b);

II.         S''(a)=f''(a),       S''(b)=f''(b);

III.        S'(a)=S'(b),       S''(a)=S''(b).

Нехай відрізок [a,b] розбитий на n рівних частин із кроком h, тобто для якого x0=a, x1=x0+h,…xi+1=x1+h,…, xn=bі h=(b-a)/n. Побудова  інтерполяційного кубічного сплайна для умов  I і II типів виконується наступним чином.

При побудові сплайна, що задовольняє крайовим умовам I типу виконують введення величин mi=S'(xi), які називаються нахилами сплайна в крапках (вузлах) xi (i=0, 1,…, n)...

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

     (3.6)

       x ϵ [ xi-1, xi]     (i=1, 2,…, n)

задовольняє умовам (3.2), (3.3), (3.4) для будь-яких mi. З умов (3.5) і крайових умов I типу можна визначити n+1 параметр mi.

S(xi-1) = Si(xi-1) = yi-1, S(xi) = Si(xi) = yi, (i=1, 2,…, n).

Крім того, обчислення показують, що

S'(xi)=S'i(xi)=mi,

S'(xi)=S'i+1(xi)=mi        (i=1, 2,…, n-1)...

Якщо врахувати, що

         (i=1, 2,…, n-1),

   (i=1, 2,…, n-1),

а також крайові умови I типу й умови (3.5), то одержимо систему з n+1 лінійних рівнянь щодо невідомих mi:

    (i=1,2,…,n-1),  (3.7)

Рішення цієї системи дозволяє знайти значення невідомих mi і визначити інтерполяційний сплайн у вигляді співвідношень (3.6).

Матриця А системи (3.7) має порядок n+1 і є трьохдіагональною:

Метод Гаусса (метод виключення невідомих) для системи (3.7) значно спрощується й зветься методом прогону. Прямим прогоном знаходять так звані прогоночні коефіцієнти:

L0=0,   M0=0,     Mi=Li(Mi-1-bi)    (i=1, 2,…, n-1)...

Зворотним прогоном послідовно визначають невідомі mi:

Приклад 1. На відрізку  побудувати кубічний сплайн із кроком , що задовольняє на кінцях відрізка крайовим умовам I типу й інтерполює функцію y=sin x. За допомогою  інтерполяційної формули обчислити наближене значення   й зрівняти його з точним.

Рішення. Виконується пошук кубічної параболи y=S(x), що задовольняє наступним умовам на кінцях відрізка x0=0 і :

y0=S(x0)=sin x0=0,                         y1=S(h)=sin h=1,

m0=S'(x0)=sin'x0=cos x0=1            m1=S'(h)=sin'h=cos h=0.

Підстановка значення n, y0, y1, m0, y1 у формулу (3.6) дозволяє одержати сплайн виду

Тоді  (точне значення дорівнює 0,5).

Приклад 2. На відрізку  побудувати кубічний сплайн із  кроком , що інтерполює функцію y=sin x, якщо задані значення функція в трьох вузлах інтерполяції:

x

x0=0

x1=π/4=0,7853982

x2=π/2=1,570796

bin x

y0=0

y1=0,7071068

y2=1

За допомогою інтерполяційної формули обчислити наближене значення  й зрівняти з точним значенням 0,5.

Рішення.  Сплайн предствляється у вигляді (3.6):

При такому поданні повинні задовольнятися рівняння (3.7):

Тоді, з огляду на, що  або

одержується  вираження для функції S1(x):

Значення

При побудові сплайна, що задовольняє крайовим умовам II типу, вводиться величина  - значення другій похідній сплайна  у вузлі x1   (i=01,…, n)...

Рівняння (3.2), (3.3), (3.4) будуть задоволені, якщо інтерполяційний кубічний сплайн представляється у вигляді

 (3.8)

З врахуванням того, що

і використовуючи крайові умови II типу й умови (3.3), одержується система з n+1 лінійних рівнянь щодо невідомих :

               (3.9)

Системи (3.7) і (3.9) є окремими випадками системи лінійних алгебраїчних рівнянь наступного виду:

                                    (3.10)

Для функції f(x), що має на відрізку [a,b] безперервні похідні до третього порядку включно, точність інтерполяції її кубічним сплайном S(x) по крапках рівномірної розбивки відрізка із кроком n при будь-яких зазначених раніше крайових умовах оцінюється наступною нерівністю для будь-яких x на відрізку [a,b]:

                                               (3.11)

де                         

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

Нехай відрізок [a,b] розбитий на n рівних частин і в крапках xi (i=0, 1, 2,…, n; x= a, x= b) деяка функція приймає значення yi. Для змінної x, що належить частини розбивки  [ xi-1, xi] (i=1,…, n), визначено функцію (кубічний багаточлен)

Тут  - крок розбивки відрізка. Невідомі mi визначаються рекурентними співвідношеннями

m0=A;    mn=B;    mi=Limi+1+Mi      (i= n-1, n-2,…, 0)

після попереднього обчислення допоміжних величин Mi, Li    за рекурентними формулами

де

Величини А и В повинні бути задані. При побудові кубічного сплайна, що інтерполює діференцируєму функцію y=f(x) по системі крапок, припускають  (крайові умови I типу). Вибір необхідної формули Si(x) для заданого значення змінної х визначається цілим числом i:

3.2 Завдання до роботи

  1.  Побудувати кубічний сплайн, що інтерполює функцію y = f(х) на відрізку [1,00; 1,20] для рівномірної розбивки із кроком h=0,04 при крайових умовах I або II типу.
  2.  Знайти значення сплайну в крапках 1,05; 1,09; 1,13; 1,15; 1,17. Одержати оцінку точності за допомогою нерівності (3.11).

Таблиця 3.1 Варіанти табличної функції  y=f(x)

x

Варіант

1

2

3

4

5

6

7

8

9

10

11

1,00

3,62686

2,85765

2,71828

0,36788

1,17520

1,54308

0,84147

0,54030

1,55741

0,52500

0,76159

1,02

3,78029

2,91538

2,77319

0,36059

1,20630

1,56689

0,85211

0,52337

1,62813

0,54480

0,76987

1,04

3,93977

2,97427

2,82922

0,35345

1,23788

1,59134

0,86240

0,50622

1,70361

0,56422

0,77789

1,06

4,10555

3,03436

2,88637

0,34646

1,26996

1,61641

0,87236

0,48887

1,78442

0,58327

0,78566

1,08

4,27791

3,09566

2,94468

0,33960

1,30254

1,64214

0,88196

0,47133

1,87122

0,60196

0,79320

1,10

4,45711

3,15819

3,00417

0,33287

1,33565

1,66852

0,89121

0,45360

1,96476

0,62031

0,80050

1,12

4,64344

3,22199

3,06485

0,32628

1,36929

1,69557

0,90010

0,43568

2,06596

0,63833

0,80757

1,14

4,83720

3,28708

3,12677

0,31982

1,40347

1,72329

0,90863

0,41759

2,17588

0,65603

0,81441

1,16

5,03870

3,35348

3,18993

0,31349

1,43822

1,75171

0,91680

0,39934

2,29580

0,67342

0,82104

1,18

5,24827

3,42123

3,25437

0,30728

1,47355

1,78083

0,92461

0,38092

2,42727

0,69051

0,82745

1,20

5,46623

3,49034

3,32012

0,30119

1,50946

1,81066

0,93204

0,36236

2,57215

0,70732

0,83365

Продовження таблиці 3.1

x

Варіант

12

13

14

15

16

17

18

19

20

21

22

1,00

0,37600

1,04720

0,84147

0,70711

0,54630

1,12763

0,96403

0,70711

0,88137

0,00000

0,67767

1,02

0,38460

1,03561

0,85211

0,72111

0,55936

1,13289

0,96675

0,71407

0,89545

0,19967

0,70892

1,04

0,39303

1,02395

0,86240

0,73485

0,57256

1,13827

0,96926

0,72083

0,90938

0,28191

0,74142

1,06

0,40131

1,01220

0,87236

0,74833

0,58592

1,14377

0,97159

0,72739

0,92317

0,34470

0,77530

1,08

0,40942

1,00036

0,88196

0,76158

0,59943

1,14938

0,97375

0,73376

0,93683

0,39738

0,81074

1,10

0,41739

0,98843

0,89121

0,77460

0,61311

1,15510

0,97574

0,73994

0,95035

0,44357

0,84796

1,12

0,42522

0,97641

0,90010

0,78740

0,62695

1,16094

0,97759

0,74594

0,96373

0,48513

0,88718

1,14

0,43290

0,96429

0,90863

0,80000

0,64097

1,16690

0,97929

0,75176

0,97699

0,52316

0,92873

1,16

0,44046

0,95207

0,91680

0,81240

0,65517

1,17297

0,98087

0,75741

0,99011

0,55840

0,97296

1,18

0,44788

0,93974

0,92461

0,82462

0,66956

1,17916

0,98233

0,76290

1,00311

0,59135

1,02033

1,20

0,45518

0,92730

0,93204

0,83666

0,68414

1,18547

0,98367

0,76822

1,01597

0,62236

1,07143

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

  1.  Приведіть визначення сплайна. Що таке дефект сплайна?
  2.  У чому відмінність інтерполяції кубічними сплайнами від кусочно-кубічної інтерполяції?
  3.  Який сплайн називається природним? Приведіть його визначення.
  4.  Охарактеризуйте метод прогону як спосіб знаходження коефіцієнтів сплайна. Приведіть систему зв'язків, яка лежить в основі методу.
  5.  Який сплайн називається квадратичним?
  6.  Приведіть визначення b-сплайна cтупеню m-1 (m=1, 2, 3, 4).

Додаток 3.1

//Програма побудови кубічного сплайну, що інтерполює задану функцію

#include <stdio.h>

#include <conio.h>

#include <cmath>

void main ()

{

int i,n=20;

float a,b1,h,s,x,x0,x1;

float *m=new float[n];

float *l=new float[n];

float *y=new float[n];

float *b=new float[n];

printf ("Enter n - number of intervals in [a, b]\n");

scanf_s("%i",&n);

printf ("Enter coordinates of points a, b\n");

scanf_s ("%f%f",&a, &b1);

printf ("Enter values of function y(xi) in xi,");

printf ("  it is know, y(0) = f(a), y(n) =f(b)\n");

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

  scanf_s("%f",&y[i]);

printf ("Enter values x\n");

scanf_s("%f",&x);

/* Умови на кінцях відрізка: m(0)=f'(а)=1 і m(n)=f(b)=0 */

for(m[0]=1,m[n]=l[0]=0,h=(b1-a)/n,i=1; i<=n-1; i++)  

{

b[i]=3*(y[i+1]-y[i-1])/h;

l[i]=-1/(l[i-1]+4);

m[i]=l[i]*(m[i-1]-b[i]);

};

for(i=n-1; i>=1; i--)

m[i]=l[i]*m[i+1]+m[i];

if((x>a)&&(x<b1))

{

i=floor((x-a)/h)+1;

x0=a+(i-1)*h;

x1=x0+h;

s=y[i-1]*((x-x1)*(x-x1)*(2*(x-x0)+h))/(h*h*h)+y[i]*((x-x0)*(x-x0)*(2*(x1-x)+h))/(h*h*h)+m[i-1]*(x-x1)*(x-x1)*(x-x0)/(h*h)+m[i]*(x-x0)*(x-x0)*(x-x1)/(h*h);

printf ("x = %f s = %f",x,s);

};

printf("\nPress any key for continue...");

_getch();

delete []m;

delete []l;

delete []y;

delete []b;

}


ЛАБОРАТОРНА РОБОТА №4

ЧИСЕЛЬНЕ ІНТЕГРУВАННЯ

Мета роботи - вивчити основні квадратурні формули й алгоритми чисельного інтегрування.

4.1 Короткі теоретичні положення

4.1.1 Квадратурні формули прямокутників, трапецій і Сімпсона

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

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

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

 

У цьому випадку

і одержуємо квадратурну формулу прямокутників:

                               (4.1)

Якщо функцію на кожному відрізку  замінити її лінійною інтерполяцією по крапках  і  то одержимо безперервну кусочно-лінійну функцію

Тут . Графіком цієї функції є ламана лінія. У цьому випадку

і одержуємо квадратурну формулу трапеції:

                      (4.2)

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

Для подальших перетворень уведемо змінну  за допомогою рівності  Значенням , рівним 0, 1/2 , 1, відповідають значення , рівні

Виразимо сплайн  через нову змінну :

З огляду на те  що  маємо

і в результаті приходимо до квадратурної формули парабол:

         (4.3)

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

Похибка кожної квадратурної формули оцінюється величиною залишкового члена , що залежить від кроку розбивки  (або від числа розбивок ):

Приведемо оцінки похибок квадратурних формул у тому випадку, коли підінтегральна функція має безперервну похідну другого порядку:

для формули прямокутників

для формули трапецій

Якщо підінтегральна функція має безперервну похідну четвертого порядку, то справедливою є така оцінка похибки формули Сімпсона:

Помітимо, що при інтегруванні ступеневої функції, ступінь якої не вище трьох, квадратурна формула Сімпсона дає точний результат.

Приклад. Знайти наближені значення інтеграла  за допомогою квадратурних формул прямокутників, трапецій і Сімпсона, якщо відрізок інтегрування [0,1] розбитий на n=2; 4; 10 рівних частин. Оцінити величину похибки отриманих результатів у кожному випадку.

Рішення. Позначимо через  похибку результату інтегрування за квадратурними формулами (тут ).

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

, , , ,

,

При n=4 одержимо наступні оцінки величин похибки результатів:

;  ;   

.

Результати обчислень за квадратурними формулами прямокутників, трапецій і Сімпсона для різних чисел розбивок n і похибки цих результатів зведені в таблицю.

Таблиця 4.1 – Результати обчислень

Квадратурна формула

n=2

n=4

n=10

(2)

(4)

(10)

прямокутників

1,40977

0,1699

1,44875

0,0425

1,46039

0,0068

трапецій

1,57158

0,3398

1,49068

0,085

1,46717

0,0136

Сімпсона

1,46371

0,0045

1,46272

0,0003

1,46265

10-5

Практично важливо вести обчислення до досягнення заданої точності  по тій або іншій квадратурній формулі. Цієї мети задовольняє метод подвійного перерахування, що полягає в наступному. За квадратурною формулою проводять обчислення інтеграла із кроком h і одержують значення (h). Потім зменшують крок удвічі й одержують нове наближене значення інтеграла (h/2). Щоб визначити, як сильно ухиляється значення (h/2) від точного значення інтеграла , використовується правило Рунге:

де k=2 для формул прямокутників і трапецій і k=4 для формули Сімпсона.

При заданій точності  обчислення зі зменшуваним кроком закінчуются при виконанні умови

При цьому приймають  із точністю .

4.1.2 Алгоритм прямокутників-трапецій

Алгоритм прямокутників-трапецій обчислення інтеграла із заданою точністю виглядає в такий спосіб.

Крок 1. Припускаємо

Крок 2. Знаходимо

Крок 3. Обчислюємо

Крок 4. Порівнюємо  з ε.

Якщо > ε, то припускаємо n=2n; H=h;

і вертаємося до кроку 2.

Крок 5. Обчислюємо

і

приймаємо

4.2 Завдання до роботи

Дано інтеграл (див. таблицю 4.2).

Таблиця 4.2 – Варіанти завдань

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

  1.  Обчислити задані інтеграли за формулами прямокутників, трапецій і Сімпсона, якщо відрізок інтегрування розбитий на n=6 і n=8 частин.
  2.  Оцінити погрішність результату. Результати обчислень представити у вигляді таблиці, наведеної в прикладі теоретичної частини лабораторної роботи.
  3.  Скласти блок-схему алгоритму й програму обчислень інтегралів за методом прямокутників-трапецій з оцінкою точності обчислення за правилом Рунге. Обчислити інтеграл з точністю = 10-5.

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

1. Скільки потрібно знати значень підінтегральної функції для підрахунку інтеграла (у варіанті номер _) за формулою трапецій з точністю =10-2?

2. Запишіть формулу прямокутників (трапецій, Сімпсона).

3. Які співвідношення існують між формулами прямокутників, трапецій і Сімпсона?  

4. Сформулюйте правило Рунге.

5. У чому полягає метод подвійного перерахунку?

6. Сформулюйте алгоритм Ромберга.

7. Опишіть основні етапи алгоритму прямокутників-трапецій.  

8. Запишіть залишковий член формули прямокутників (трапецій, Сімпсона).

9. Як впливає на точність чисельного інтегрування величина кроку h?  

10. Чи можна добитися необмеженого зменшення похибки інтегрування шляхом послідовного зменшення кроку?

11. Чому метод середніх прямокутників непридатний для чисельного інтегрування функцій, які задані таблицею?

12. Які переваги формули Сімпсона  в порівнянні з формулою трапецій і слідством чого є ці переваги?

13. У якому випадку формула Сімпсона дає точне значення інтеграла?

Додаток 4.1

/* Програма обчислення інтеграла  за квадратурними формулами прямокутників, трапецій і Сімпсона */

#include <stdio.h>

#include <conio.h>

#include <math.h>

float f(float x) { float у; у = x*x; return у; };

void main()

{

int i,n;

float a, b, h, s1, s2, s3, x, x1,x2;

printf ("Enter values of segment ends [a,b]\n");

scanf_s ("%f%f",&a, &b);

printf ("Enter number of partitions of a segment n\n");

scanf_s ("%i",&n);

h=(b-a)/n; x1=a+h/2; x2=a;

s1=f(x1); s2=(f(x2)+f(b))/2;

for (i=1; i<=n-1; i++)

{

 x1+=h; x2+=h; s1+=f(x1); s2+=f(x2);

}

s1*=h; s2*=h; s3=(2*s1+s2)/3;

printf("\ns1 = %f  s2 = %f  s3 = %f", s1, s2, s3);

printf("\n\nPress any key for continue...");

_getch();

}

Додаток 4.2

/* Програма обчислення інтеграла із заданою точністю методом подвійного перерахунку */

#include <stdio.h>

#include <conio.h>

#include <math.h>

float f(float x){float y; y = x; return y; };

void main()

{

int i,n;

float a, b, d, e, f0, f1, h, s, s1, s2, x, x1,x2;

printf ("Enter values of the ends of a segment [a,b]\n");

scanf_s ("%f%f",&a,&b);

printf ("Enter accuracy of calculation\n");

scanf_s ("%f",&e);

f0=f(a); f1=f(b); s=f0-f1;

s1=(b-a)*(f0+f1+4*f((a+b)/2))/6;

n=2;

do

 {

  h=(b-a)/n; x1=a+h/2; x2=a+h; s2=s;

  for(i=1; i<=n; i++)

  {

   s2=s2+4*f(x1)+2*f(x2);

   x1+=h; x2+=h;

  };

  s2*=h/6; d=fabs(s1-s2)/15;

  s1=s2; n*=2;

 }

while (d>=e);

printf ("n=%i Value of integral s = %f Error d = %f", n, s2, d);

printf("\n\nPress any key for continue...");

_getch();

}


ЛАБОРАТОРНА РОБОТА №5

ЧИСЕЛЬНЕ ДИФЕРЕНЦІЮВАННЯ

Мета роботи - вивчити кінцеворізницеві формули чисельного диференціювання.

5.1 Короткі теоретичні положення

5.1.1 Обчислення похідної за її визначенням

Нехай функція y=f(х) визначена в деякій околиці крапки х0 і має похідну в цій крапці, тобто існує межа відношення приросту функції до приросту аргументу  при прагненні  до нуля:

                (5.1)

Значення похідної в крапці х0 можна одержати, переходячи до межі в (5.1) по послідовності цілих чисел п і припускаючи, наприклад, .Тут  -деяке початкове приросту аргументу, а - деяке число, більше одиниці, Тоді значення похідної функції  f(х) у крапці  запишеться так :

Звідси одержуємо наближену рівність

                                                             (5.2)

Для функції в=f(х), що має безперервну похідну до другого порядку включно в околиці крапки х0, точність наближення похідній співвідношенням (5.2) можна встановити, скориставшись формулою Тейлора

   

Тоді

      

і остаточно маємо

Для досягнення заданої точності наближення похідної при певнім числі обчислень можна використовувати нерівність

                                                          (5.3)

Приклад. Обчислити похідну функції y=sinx у крапці   з точністю ( ).

Рішення. Покладемо              , звідки     

Визначимо наближене значення похідної

Знайдемо відношення, що  апроксимують похідну:

                      

        

Отже, починаючи із третього наближення, відповідно до оцінки (5.3) одержуємо шукане наближення похідної даної функції    з точністю,  не менше, ніж задана

5.2 Кінцеворізницеві апроксимації похідних

Нехай відрізок  [a,b]   розбитий на n (n>2) рівних частин крапками  Різниця між сусідніми значеннями аргументу постійна, тобто крок  Далі, нехай на відрізку  [a,b]   визначена функція y=f(х), значення якої в крапках  рівні

Запишемо вираження для першої похідної функції в крапці  за допомогою кінцевих різниць:

а) апроксимація за допомогою різниць уперед (правих різниць)

                                        (5.4)

б) апроксимація за допомогою різниць назад (лівих різниць)

                                                 (5.5)

в) апроксимація за допомогою центральних різниць (крапка є центром системи крапок )

                                              (5.6)

Апроксимація похідної за допомогою центральних різниць являє собою середнє арифметичне співвідношень (5.4) і (5.5) ] крапках

Відзначимо, що співвідношення (5.4) і (5.6) не дозволяють обчислити похідну в крапці хп=b, а (5.5) і (5.6) - у крапці х0=а.

Можна показати, що для функції y=f(х), що має безперервну похідну до другого порядку включно, погрішність апроксимації похідних різницями вперед та назад має один і той  же порядок 0(h), а погрішність апроксимації центральними різницями (5.6) для функції y=f(х), що має безперервну похідну до третього порядку включно, має порядок .

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

а похідні першого порядку й - за допомогою лівих різниць:

                   

і остаточно одержимо

                              (5.7)

Погрішність останньої апроксимації має порядок для функції y=f(x), що має безперервну похідну до четвертого порядку включно на відрізку[a,b]. Природно, що подання (5.7) за допомогою кінцевих різниць дозволяє обчислювати значення другої похідної тільки у внутрішніх крапках відрізка.

5.3 Формули чисельного диференціювання на основі інтерполяційних багаточленів Лагранжа

Нехай функція y=f(х) визначена на відрізку [a,b] і в крапках  цього відрізка приймає значення ,

Різниця між сусідніми значеннями аргументу  постійна і є кроком      (= 1,2,…n) розбивки відрізка на.  частин, причому а = х0 і b = хп.

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

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

                      (5.8)

Багаточлен інтерполює функцію f(х)  на відрізку . Диференціюючи багаточлен одержуємо значення похідних у крапках

Якщо m=1, то - лінійна функція, графік якої проходить через крапки й .Тоді

Якщо m=2, то графік інтерполяційного багаточлена Лагранжа - парабола, що проходить через три крапки й .

Перша й друга похідні багаточлена Лагранжа в крапках  є наближеннями відповідні похідні функції f(x) у цих крапках:

                   (5.9)

Якщо функція f(х) на відрізку має безперервну похідну до третього порядку включно, то справедливо залишення функції у вигляді суми:

                                             (5.10)

- залишковий член інтерполяційної формули, причому

У цьому випадку можна дати оцінку погрішності наближень похідних співвідношеннями (8) і (9). Диференціюючи (10), одержимо

                                                 (5.11)

                                                 (5.12)

Тут

             (5.13)

                   (5.14)

Похибки при обчисленні похідних у крапках визначаються з формул (5.11)-(5.14) наступними значеннями залишків:

                                 (5.15)

                                  (5.16)

Таким чином, рівності (5.15) показують, що похибки апроксимації першої похідної за допомогою формул (5.8) мають той самий порядок і природна наступна рекомендація з їхнього застосування на відрізку [а,b] у крапках при :

                                         (5.17)

З рівності (5.16) треба, що наближення другої похідної за допомогою формули (5.9) має різний порядок залежно від h у різних крапках: у крапках  є погрішність порядку h, а в крапці  порядок погрішності вище .

У випадку інтерполяції функції f(х), яка має на відрізку [a,b] безперервну похідну до четвертого порядку включно, можна одержати похибку інтерполяції другої похідної, що має порядок і однакову у всіх крапках, за допомогою багаточлена Лагранжа третього ступеня  по чотирьох вузлах інтерполяції хk Опускаючи викладення, приведемо результати для апроксимації другої похідної:

            (5.18)

Якщо функція f(х) на відрізку має безперервну похідну до (m+1)- го порядку включно, то справедливо подання

де -інтерполяційний багаточлен Лагранжа ступеню m апроксимуючу функцію f(х) по вузлах інтерполяції - залишковий член інтерполяційної формули, причому

Далі, використовуючи наведену схему й вибираючи пасуючий ступінь  m інтерполяційного багаточлена, можна домогтися потрібної точності при апроксимації похідних різних порядків.

Приклад. Значення функції y=sinx визначені таблицею

0

0

0,5

0,866


Потрібно за допомогою формул (5.8) і (5.9) приблизно знайти  у' (0) і у'(0) і оцінити погрішності результатів обчислень.

Рішення. Відповідно до першого з формул (5.8), маємо

  .

Тому що      те . Отже (точне значення ). Тепер скористаємося формулою (5.9)

Як бачимо, для кращої оцінки похідної другого порядку необхідно збільшити число вузлових крапок і вибрати менший крок.

5.2 Завдання до роботи

  1.  Функція f(x) визначена на відрізку [1;1.2]. Вибравши крок h=0,01, по формулах (17) і (19) знайти наближені значення похідних  і в крапках 1,05 і 1,13; оцінити погрішність обчислень.

Таблиця 5.1Варіанти завдань

x

Варіант y=f(x)

1

2

3

4

5

6

7

8

9

10

11

1,00

3,62686

2,85765

2,71828

0,36788

1,17520

1,54308

0,84147

0,54030

1,55741

0,52500

0,76159

1,02

3,78029

2,91538

2,77319

0,36059

1,20630

1,56689

0,85211

0,52337

1,62813

0,54480

0,76987

1,04

3,93977

2,97427

2,82922

0,35345

1,23788

1,59134

0,86240

0,50622

1,70361

0,56422

0,77789

1,06

4,10555

3,03436

2,88637

0,34646

1,26996

1,61641

0,87236

0,48887

1,78442

0,58327

0,78566

1,08

4,27791

3,09566

2,94468

0,33960

1,30254

1,64214

0,88196

0,47133

1,87122

0,60196

0,79320

1,10

4,45711

3,15819

3,00417

0,33287

1,33565

1,66852

0,89121

0,45360

1,96476

0,62031

0,80050

1,12

4,64344

3,22199

3,06485

0,32628

1,36929

1,69557

0,90010

0,43568

2,06596

0,63833

0,80757

1,14

4,83720

3,28708

3,12677

0,31982

1,40347

1,72329

0,90863

0,41759

2,17588

0,65603

0,81441

1,16

5,03870

3,35348

3,18993

0,31349

1,43822

1,75171

0,91680

0,39934

2,29580

0,67342

0,82104

1,18

5,24827

3,42123

3,25437

0,30728

1,47355

1,78083

0,92461

0,38092

2,42727

0,69051

0,82745

1,20

5,46623

3,49034

3,32012

0,30119

1,50946

1,81066

0,93204

0,36236

2,57215

0,70732

0,83365

Продовження таблиці 5.1

 

x

Варіант y=f(x)

12

13

14

15

16

17

18

19

20

21

22

1,00

0,37600

1,04720

0,84147

0,70711

0,54630

1,12763

0,96403

0,70711

0,88137

0,00000

0,67767

1,02

0,38460

1,03561

0,85211

0,72111

0,55936

1,13289

0,96675

0,71407

0,89545

0,19967

0,70892

1,04

0,39303

1,02395

0,86240

0,73485

0,57256

1,13827

0,96926

0,72083

0,90938

0,28191

0,74142

1,06

0,40131

1,01220

0,87236

0,74833

0,58592

1,14377

0,97159

0,72739

0,92317

0,34470

0,77530

1,08

0,40942

1,00036

0,88196

0,76158

0,59943

1,14938

0,97375

0,73376

0,93683

0,39738

0,81074

1,10

0,41739

0,98843

0,89121

0,77460

0,61311

1,15510

0,97574

0,73994

0,95035

0,44357

0,84796

1,12

0,42522

0,97641

0,90010

0,78740

0,62695

1,16094

0,97759

0,74594

0,96373

0,48513

0,88718

1,14

0,43290

0,96429

0,90863

0,80000

0,64097

1,16690

0,97929

0,75176

0,97699

0,52316

0,92873

1,16

0,44046

0,95207

0,91680

0,81240

0,65517

1,17297

0,98087

0,75741

0,99011

0,55840

0,97296

1,18

0,44788

0,93974

0,92461

0,82462

0,66956

1,17916

0,98233

0,76290

1,00311

0,59135

1,02033

1,20

0,45518

0,92730

0,93204

0,83666

0,68414

1,18547

0,98367

0,76822

1,01597

0,62236

1,07143

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

1. Що називається лівою, правою і центральною різницевими похідними? Який порядок апроксимації забезпечують різницеві похідні?

2. Чому операцію обчислення різницевих відношень називають некоректною?

3. Чому дорівнює оптимальний крок при апроксимації першої похідної правим (лівим) різницевим відношенням?

4. Чому дорівнює оптимальний крок при апроксимації першої похідної за допомогою формули симетричної апроксимації другого порядку точності?

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

6. Чому дорівнює оптимальний крок при апроксимації другої похідної за допомогою формули симетричної апроксимації другого порядку точності?

7. Як будуються формули чисельного диференціювання, які засновані на вживанні інтерполяційного многочлена?

8. Який порядок апроксимації забезпечують ці формули чисельного диференціювання?

Додаток 5.1

/*Обчислення похідної функції по її визначенню на прикладі функції  y = cosx */

#include <stdio.h>

#include <conio.h>

#include <cmath>

float derivative(float, float);

void main()

{

float deltax,der1,der2,e,e1,x;

const int a=10;

printf ("Enter the value of x and accuracy of epsilon\n");

scanf_s("%f%f",&x,&e);

deltax = 0.1; der1 = derivative(x,deltax);

do

{

 deltax = deltax/a;

 der2 = derivative(x, deltax);

 e1 = fabs(der1-der2);

 der1 = der2;

}

while (e1>=e);

printf ("\n\nx = %f Derivative y'= %f",x,der2);

printf ("\nApproach error= %f\n",e1);

printf("\nPress any key for continuation...");

_getch();

}

//функція  

float derivative(float x, float y)

{

float f;

f = (cos(x+y) - cos(x))/y;

return f;

}

Додаток 5.2

/*Обчислення похідних першого й другого порядків з однаковою похибкою

залежно від кроку за формулами чисельного диференціювання*/

#include <stdio.h>

#include <conio.h>

#include <cmath>

void main ()

{

int i,n=15;

double a,b,h,h1,h2,x,y1,y2;

double *y=new double[n];;

printf ("Enter n \n");// n - число розбіття відрізку [a,b]

scanf_s("%i",&n);

if((n>=3)&&(n<=15))

{

 printf ("Enter the coordinates а, b\n");

//a, b - координати краєвих крапок

 scanf_s("%lf%lf",&a, &b);

 printf ("Enter the values of function y(i) in knots,");

 printf ("thus y(0) = f(a), y(n) =f(b)\n");

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

  scanf_s("%lf", &y[i]);

 printf ("Enter the value of x\n");

 scanf_s("%lf", &x);

 h=(b-a)/n;

 i=floor((x-a)/h+h/2);

 h1=2*h;

 h2=h*h;

 if(i==0)

 {

  y1=(-3*y[0]+4*y[1]-y[2])/h1;

  y2=(2*y[0]-5*y[1]+4*y[2]-y[3])/h2;

 };

 if((i>0)&&(i<n))

 {

  y1=(-y[i-1]+y[i+1])/h1;

  y2=(y[i-1]-2*y[i]+y[i+1])/h2;

 };

 if(i==n)

 {

  y1=(y[n-2]-4*y[n-1]+3*y[n])/h1;

  y2=(-y[n-3]+4*y[n-2]-5*y[n-1]+2*y[n])/h2;

 };

 printf ("x = %f derivative1 = %f",x,y1); //перша похідна

 printf ("derivative2 = %f",y2); //друга похідна

};

printf("\nPress any key for continuation...");

_getch();

delete []y;

}


6 Література

  1.  Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков. Численные методы. – М.: Наука, 1997.
  2.  Численные методы. Математический анализ и обыкновенные дифференциальные уравнения. / Вержбицкий В.М. – М.: ООО “Издательский дом “ЭОНИКС 21 век”, 2005. - 400 с.
  3.  Ракитин В.И., Первушин В.Б. Практическое руководство по методам вычислений с приложением программ для персональных компьютеров: Учеб. пособие. - М.: Высш. шк., 1998. - 383 с.
  4.  Сборник задач по математике для втузов. Специальные курсы. / Под ред. А.В.Ефимова. - М.: Наука, 1984. - 608 с.
  5.  Таблицы интегралов и другие математические формулы. / Двайт Г.Б. – М.: Наука, 1977. -224 с.
  6.  Справочник по расчетам на микрокалькуляторах. / Дьяконов В.П. - М.: Наука , 1985. - 224 с.


Навчальне  видання

МЕТОДИЧНІ ВКАЗІВКИ

ДО ЛАБОРАТОРНИХ РОБІТ З ДИСЦИПЛІНИ

“ЧИСЕЛЬНІ МЕТОДИ В ІНФОРМАТИЦІ”

для студентів напряму 6.050101 – „Комп’ютерні науки”

денної форми навчання

Укладач:  Олександр Вікторович Андріянов

PAGE   \* MERGEFORMAT 10


 

А также другие работы, которые могут Вас заинтересовать

24606. Внутрішній аудит суть, об’єкти і суб’єкти 36.5 KB
  Мета внутрішнього аудиту допомогти членам суб'єкта господарювання ефективно виконувати свої функції. Завдання внутрішнього аудиту: ♦ перевірка системи економічних регламентів і регуляторів на предмет достатності та відповідності чинним правовим актам і статуту; ♦ перевірка правильності складання та умов виконання господарських договорів; ♦ перевірка: наявності стану правильності оцінки майна; ефективності використання матеріальних фінансових і трудових ресурсів; дотримання чинного порядку встановлення та застосування цін тарифів;...
24607. Облік витрат виробництва 52 KB
  Облік витрат виробництва Витратами звітного періоду визнають або зменшення активів або збільшення зобов’язань що призводять до зменшення власного капіталу за умови що ці витрати можна достовірно оцінити. Згідно з ПсБО №16 Витрати€ – витрати визнають витратами певного періоду одночасно з визнанням доходу для отримання якого їх здійснено. Якщо витрати неможливо прямо пов’язати з доходом певного періоду їх відображають у складі витрат того звітного періоду у якому вони були здійснені. Економічна класифікація витрат: за способами...
24608. Облік готової продукції та її реалізації 27.5 KB
  Облік готової продукції та її реалізації До готової продукції належить продя обробка якої закінчена та яка пройшла випробування приймання укомплектування згідно з умовами договорів відповідає затвердженим стандартам пройшла технічний контроль та здана на склад або замовнику. продя має вартісну характеристику у гривневому еквіваленті. Супутня продя продя отримана в одному технологічному циклі одночасно з основною. Побічна продя – яка утворюється паралельно з основною і не потребує додаткових витрат.
24609. Облік фінансових інвестицій 36 KB
  Фінансова інвестиції – активи які утримуються підприємством з метою збільшення прибутку зростання вартості капіталу. первісно оцінюються за собівартістю з:ціни придбання комісійних винагород мита податків зборів та ін. за Дт придбання Кт зменшення їх вартості та вибуття.35 за варт.
24610. Облік власного капіталу 44.5 KB
  Облік власного капіталу В момент створення підпрва його страховий капітал втілюється в активах інвестованих засновниками і представляє собою варт. Власний капітал ВК – частина в активах підпрва яка залишається після вирахування всіх його зобов’язань К=АЗ. Складові: статутний капітал рах. капіт.
24611. Облік розрахунків векселями 38.5 KB
  Облік розрахунків векселями Облік розрахунків за векселями регламентується постановою Верховної Ради України Про застосування векселів в господарському обороті України. Вексель являє собою письмове боргове зобов'язання векселедавця сплатити векселедержцю власнику векселя по настанні строку суму вказану у векселі.Розрізняють векселі прості і переказні. У простому векселі беруть участь дві сторони: векселедавець І векселедержєць.
24612. Облік кредитів банку 41.5 KB
  Синтетичний облік розрахунків по банківських кредитах здійснюється на пасивних рахунках 60 Короткострокові позики 50 Довгострокові позики. На рахунку 60 Короткострокові позики ведеться облік розрахунків у національній і іноземній валюті по кредитах банків строк повернення яких не перевищує 12 місяців з дати балансу та за позиками строк погашення яких минув.По кредиту рахунка 60 Короткострокові позики відображаються суми одержаних кредитів позик по дебету сума їх погашення та переведення до довгострокових зобов'язань у разі...
24613. Облік фінансових результатів діяльності підприємства 39 KB
  Облік фінансових результатів діяльності підприємства Формування доходів і витрат за видами діяльності і функціями. Фінансові результати за видами діяльності в результаті яких вони виникають поділяються на прибуток збиток від звичайної діяльності та від надзвичайних подій.Під звичайною діяльністю розуміють будьяку діяльність підприємства а також операції які забезпечують її або які виникають внаслідок здійснення такої діяльності.Прикладом звичайної діяльності є виробництво і реалізація продукції робіт послуг розрахунки з...
24614. Склад та призначення фінансової звітності підприємства 37 KB
  Склад та призначення фінансової звітності підприємства За видами звітність поділяється на бухгалтерську статистичну та оперативну. Бухгалтерська звітність містить показники виробничофінансової діяльності підприємства. Оперативна звітність призначена для поточного контролю та управління всередині підприємства на момент здійснення господарських операцій або одразу ж після їх завершення. В ній містяться дані про виконання плану поставок матеріалів виробництва продукції а також про дотримання укладених договорів та фінансовий стан підприємства...