1   2   3   4   5
Ім'я файлу: курсач.docx
Розширення: docx
Розмір: 367кб.
Дата: 03.05.2023
скачати
Пов'язані файли:
Лікарські чаї.docx
interaktyvni_formy_roboty.docx
стрельченко 26.docx
Додатки запоріжавтоматика.docx
ВР1715 доповідь.doc
Синтаксична організація ( доповідь).docx
Лабораторне заняття 4 (12 год).doc
Курсова робота Виктория.docx


Міністерство освіти і науки України Вінницький національний технічний університет



Факультет інформаційних технологій та комп'ютерної інженерії Кафедра комп'ютерних наук

КУРСОВА РОБОТА



з дисципліни «Чисельні методи»

на тему: «Програмна реалізація алгоритму обчислення значення функції за другою інтерполяційною формулою Ньютона»


08-22.КР.ЧМ.13.19.147 ПЗ

Студента2 курсу, групи 2КН-19б спеціальності 122 «Комп’ютерні науки»

МолдавановаВ.В.

(прізвище та ініціали)

Керівник: к.т.н., доцент Крилик Л.В.
Національна шкала Кількість балів: Оцінка: ECTS Члени комісії:


(підпис)


(прізвище та ініціали)

(підпис)

(прізвище та ініціали)


м.Вінниця, 2021 рік

Факультет інформаційних технологій та комп’ютерної інженерії

ЗАТВЕРДЖУЮ

Зав. кафедри КН, проф., д.т.н.

А. А. Яровий

(підпис)

«»2021 р.

ІНДИВІДУАЛЬНЕ ЗАВДАННЯ

на курсову роботу з дисципліни «Чисельні методи» студентаМолдавановаВ.В факультету ІТКІ, групи 2КН-19б

Тема: «Програмна реалізація алгоритму обчислення значення функції за другою інтерполяційною формулою Ньютона»




Вихідні дані:

  • Кількість вузлів інтерполювання не більше 20.

  • Кількість значущих цифр m=5.



Зміст до курсової роботиІндивідуальне завдання Анотація

Вступ

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

  2. Розробка алгоритмів та вибір оптимального алгоритму

  3. Приклад програми обчислення значення функції за другою інтерполяційною формулою Ньютона

Висновки

Перелік джерел посилань


Дата видачі «»2021 р. Керівник

(підпис)
Завдання отримав

(підпис)

АНОТАЦІЯ



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

ЗМІСТ


ВСТУП 5

  1. АНАЛІЗ ТЕОРЕТИЧНОЇ БАЗИ МЕТОДІВ ІНТЕРПОЛЮВАННЯ ФУНКЦІЙ 6

    1. Інтерполяція. Аналіз методів інтерполювання функцій 6

    2. Скінченні різниці та їх властивості 8

    3. Другий інтерполяційний многочлен Ньютона 10

  2. РОЗРОБКА АЛГОРИТМІВ ТА ВИБІР ОПТИМАЛЬНОГО АЛГОРИТМУ 17

  3. ПРИКЛАД ПРОГРАМИ ОБЧИСЛЕННЯ ЗНАЧЕННЯ ФУНКЦІЇ ЗА ДРУГОЮ ІНТЕРПОЛЯЦІЙНОЮ ФОРМУЛОЮ НЬЮТОНА 21

    1. Інструкція користувача 21

    2. Лістинг програми 21

    3. Опис програми 24

    4. Тестування програми 25

ВИСНОВКИ 26

ПЕРЕЛІК ДЖЕРЕЛ ПОСИЛАНЬ 27

ВСТУП




Актуальність теми


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

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

Мета дослідження


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

Задачі дослідження:


  • проаналізувати існуючі методи інтерполювання функції та обґрунтувати переваги другої інтерполяційної формули Ньютона відносно існуючих;

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

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


Об'єкт дослідження. Об'єктом дослідження є друга інтерполяційна формула Ньютона.

Структура курсової роботи


Курсова робота містить три розділи. В першому розділі наведено аналіз теоретичної бази методів інтерполювання функції та приклад застосування за другим інтерполяційним многочленом Ньоютона. У другому розділі розроблено оптимальний алгоритм за критерієм комплексної ефективності, що враховує затрати часу та пам’яті для його виконання за цим методом. Третій розділ містить інструкцію користувача, опис програми, лістинг та результати тестування програми.

      1. АНАЛІЗ ТЕОРЕТИЧНОЇ БАЗИ МЕТОДІВ ІНТЕРПОЛЮВАННЯ ФУНКЦІЙ




        1. Інтерполяція. Аналіз методів інтерполювання функцій



До обчислювальних задач аналізу звичайно відносять методи інтерполяції і наближення функцій, які використовуються, зокрема, в чисельних процедурах для локальної апроксимації експериментальних даних. Як відомо, інтерполяцію використовують для наближеного обчислення значень різних функцій. В даному розділі розглядаються найпростіші інтерполяційні формули: многочлен Лагранжа, схема Горнера, схема Ейткіна, формули Ньютона тощо. Формула Лагранжа дає можливість знайти вираз інтерполяційного многочлена у явному вигляді. Якщо треба обчислити лише значення функції у певній точці, доцільно застосувати схему Ейткіна. Особливістю цієї схеми є однотипність обчислень. Інтерполяційну схему Ейткіна використовують тоді, коли вузли інтерполювання не є рівновіддаленими, а також при оберненому інтерполюванні та екстраполюванні функції. Інтерполяційні формули Ньютона також мають певні переваги. Адже якщо до заданої системи рівновіддалених вузлів інтерполювання додати ще один, то відповідний многочлен Лагранжа треба будувати заново, а в многочлені Ньютона додається лише один новий доданок, а вже обчислені залишаються без змін.

Нехай на відрізку [𝑎; 𝑏] визначено певний клас функцій {𝑃(𝑥)}, наприклад клас алгебраїчних многочленів, а в точках 𝑥0, 𝑥1, … , 𝑥𝑛 цього проміжку задано значення деякої функції 𝑦 = 𝑓(𝑥1), , 𝑦𝑛 = 𝑓(𝑥𝑛) . Наближену заміну функції

𝑓 на відрізку [𝑎; 𝑏] однією з функцій 𝑃(𝑥) цього класу так, щоб функція 𝑃(𝑥) в

точках 𝑥0, 𝑥1, , 𝑥𝑛 набувала тих самих значень, що й функція 𝑓 , тобто щоб

𝑃(𝑥𝑖) = 𝑦𝑖 (𝑖 = 0,1, , 𝑛), називають інтерполюванням або інтерполяцією. Точки

𝑥0, 𝑥1, … , 𝑥𝑛 називають вузлами інтерполювання, функцію 𝑃(𝑥) інтерполюючою функцією, а формулу 𝑓(𝑥) ≈ 𝑃(𝑥), за допомогою якої обчислюють значення функції 𝑓 у проміжку [𝑎; 𝑏]– інтерполяційною формулою.

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

𝑦 = 𝑃(𝑥) певного класу, яка проходить через точки площини з координатами

(𝑥𝑖, 𝑦𝑖) (𝑖 = 0,1, , 𝑛).

Якщо функція P(x)належить класу алгебраїчних многочленів, то інтерполювання називається параболічним. Параболічне інтерполювання найзручніше, оскільки многочлени, які прості за формою і не мають особливих точок, можуть набувати довільних значень, їх легко обчислювати, диференціювати й інтегрувати [1-12].

Розглянемо задачу параболічного інтерполювання, яку сформулюємо так: в n1 різних точках x0 , x1 ,..., xn задано значення функції f : y 0 + f ( x0 ), y1 + f ( x1),..., yn+ f( xn) треба побудувати многочлен степеня n, який задовольняв би умови:
𝑃𝑛(𝑥) = 𝑎0𝑥𝑛 + 𝑎1𝑥𝑛−1 + + 𝑎𝑛−1𝑥 + 𝑎𝑛 , (1.1)

𝑃𝑛(𝑥𝑖) = 𝑦𝑖 (𝑖 = 0,1, , 𝑛). (1.2)

Для визначення n1коефіцієнтів многочлена (1.1), який задовольняє умови (1.2), запишемо систему (n+1) -го лінійних рівнянь вигляду
𝑎0𝑥𝑛 + 𝑎1𝑥𝑛−1 + + 𝑎𝑛−1𝑥0 + 𝑎𝑛 = 𝑦0,

0 0

𝑎0𝑥𝑛 + 𝑎1𝑥𝑛−1 + + 𝑎𝑛−1𝑥1 + 𝑎𝑛 = 𝑦1,

1 1

. ,

𝗅𝑎 𝑥𝑛 + 𝑎 𝑥𝑛1 + + 𝑎 𝑥 + 𝑎 = 𝑦 .

0 𝑛

1 𝑛

𝑛−1 𝑛 𝑛 𝑛


Ця система має єдиний розв’язок, бо її визначник є визначником Вандермонда, який не дорівнює нулю, бо вузли 𝑥𝑖 (𝑖 = 0,1,2, … , 𝑛) різні. А тому й задача параболічного інтерполювання має єдиний розв’язок, тобто існує єдиний алгебраїчний многочлен вигляду (1.1), що задовольняє умови (1.2). Многочлен

𝑃𝑛(𝑥), який задовольняє умови (1.2) називають інтерполяційним многочленом, наближену рівність 𝑓(𝑥) 𝑃𝑛(𝑥) інтерполяційною формулою, а різницю

𝑅𝑛(𝑓, 𝑥) 𝑓(𝑥) 𝑃𝑛(𝑥) – залишковим членом інтерполяційної формули. Хоч

інтерполяційний многочлен, що задовольняє умови (1.2), і єдиний, проте можливі

різні форми його запису.

Визначимо класичні методи інтерполяції:

  • інтерполяція Лагранжа;

  • інтерполяція за формулами Ньютона;

  • інтерполяція за схемою Ейткіна;

  • інтерполяція за формулами центральних різниць (Гаусса, Стірлінга, Бесселя);

  • обернене інтерполювання.

Розглянемо дані методи детальніше. Інтерполяцій́ ний многочле́н Лагранжа — многочлен мінімального степеня, що приймає дані значення у даному наборі точок. Для (n+1) пар чисел (𝑥0; 𝑦0), (𝑥1; 𝑦1), … , (𝑥𝑛; 𝑦𝑛) де всі 𝑥𝑖 різні, існує єдиний многочлен L(x) степеня не більшого від n, для якого L(𝑥𝑖 )= 𝑦𝑖 . У найпростішому випадку 𝑛 = 1 - це лінійний многочлен, графік якого — пряма, що проходить через дві задані точки. Загальний вигляд многочлена Лагранжа:
𝑛

𝐿 (𝑥) = (𝑥 𝑥0)(𝑥 𝑥1) (𝑥 𝑥𝑖−1)(𝑥 𝑥𝑖+1) (𝑥 𝑥𝑛) 𝑦 ,



𝑛

𝑖=0

(𝑥𝑖 𝑥0)(𝑥𝑖 𝑥1) (𝑥𝑖 𝑥𝑖−1)(𝑥𝑖 𝑥𝑖+1)(𝑥𝑖 𝑥𝑛) 𝑖


а наближена рівність
𝑓(𝑥) 𝐿𝑛(𝑥)


називається інтерполяційною формулою Лагранжа [3-6].

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

Якщо функцію fзадано в двох точках 𝑥0, 𝑥1, то її значення в точці 𝑥 ∈ (𝑥0, 𝑥1) можна обчислити за формулою лінійного інтерполювання вигляду:


𝑃 (𝑥) = 1

𝑦0 𝑥0 𝑥|.

0,1

𝑥1−𝑥0 |𝑦1 𝑥1 𝑥


Якщо в (n+1-му вузлах інтерполювання 𝑥𝑖 (𝑖 = 0,1,2, … , 𝑛) функція fнабуває значень 𝑦𝑖 (𝑖 = 0,1,2, … , 𝑛) , то значення інтерполяційного многочлена степеня n в точці 𝑥 ∈ (𝑥0, 𝑥1), що не збігається з вузлами інтерполювання, можна обчислити за формулою:


𝑃0,1,…,𝑛

(𝑥) = 1

𝑥𝑛−𝑥0

|𝑃0,1,…,𝑛−1(𝑥) 𝑥0 𝑥|.

𝑃1,2,…,𝑛(𝑥) 𝑥𝑛 𝑥



        1. Скінченні різниці та їх властивості



Темою курсової роботи є інтерполяція функції за другою формулою Ньютона. Розглянемо детально перший інтерполяційний многочлен Ньютона. Для роботи з даним методом потрібно ознайомитися з поняттям «скінченних різниць» та їх властивостями.

Нехай 𝑦𝑖(𝑖 = 0,1,2, … , 𝑛) значення функції 𝑓, обчислені для рівновіддалених значень аргументу 𝑥𝑖(𝑖 = 0,1,2, … , 𝑛), 𝑥𝑖+1 − 𝑥𝑖 = ℎ (𝑖 = 0,1,2, … , 𝑛 − 1) , де h – крок таблиці. Скінченними або табличними, різницями першого порядку, або першими різницями, називають числа, які дорівнюють приростам значень функцій:
𝑦1 𝑦0 = 𝑓(𝑥0 + ) 𝑓(𝑥0) = ∆𝑦0 = ∆𝑥0,

𝑦2 𝑦1 = 𝑓(𝑥0 + 2ℎ) 𝑓(𝑥0 + ℎ) = ∆𝑦1 = ∆𝑓(𝑥0 + ℎ),

𝑦𝑛 𝑦𝑛−1 = 𝑓(𝑥0 + 𝑛ℎ) 𝑓(𝑥0 + (𝑛 1)) = ∆𝑦𝑛−1 = ∆𝑓(𝑥0 + (𝑛 1)).

Прирости різниць першого порядку називають різницями другого порядку або другими різницями:
2𝑦0 = ∆𝑦1 ∆𝑦0, ∆2𝑦1 = ∆𝑦2 ∆𝑦1, , ∆2𝑦𝑛−2 = ∆𝑦𝑛−1 ∆𝑦𝑛−2.

Взагалі, різниці будь-якого порядку 𝑘, або 𝑘 -i різниці, утворюються з різниць (𝑘 1)-го порядку за формулами:
𝑘𝑦0 = 𝑘−1𝑦1 𝑘−1𝑦0,

𝑘𝑦1 = 𝑘−1𝑦2 𝑘−1𝑦1,


𝑘𝑦𝑚 = 𝑘−1𝑦𝑚+1 𝑘−1𝑦𝑚.

Вважають, що за означенням 0𝑦𝑘=𝑦𝑘.

Послідовні різниці зручно записувати у вигляді таблиць. Використовують

дві форми таблиць: діагональну (табл. 1.1) і горизонтальну (табл. 1.2) [4-12].
Таблиця 1.1 Діагональна таблиця скінченних різниць

𝑥𝑖

𝑦𝑖

∆𝑦𝑖

2𝑦𝑖

3𝑦𝑖

4𝑦𝑖

5𝑦𝑖

𝑥0

𝑦0






















∆𝑦0













𝑥1

𝑦1




2𝑦0
















∆𝑦1




3𝑦0







𝑥2

𝑦2




2𝑦1




4𝑦0










∆𝑦2




3𝑦1




5𝑦𝑖

𝑥3

𝑦3




2𝑦2




4𝑦1










∆𝑦3




3𝑦2







𝑥4

𝑦4




2𝑦3
















∆𝑦4













𝑥5

𝑦5

















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

𝑥𝑖

𝑦𝑖

∆𝑦𝑖

2𝑦𝑖

3𝑦𝑖

4𝑦𝑖

5𝑦𝑖

𝑥0

𝑦0

∆𝑦0

2𝑦0

3𝑦0

4𝑦0

5𝑦𝑖

𝑥1

𝑦1

∆𝑦1

2𝑦1

3𝑦1

4𝑦1




𝑥2

𝑦2

∆𝑦2

2𝑦2

3𝑦2







𝑥3

𝑦3

∆𝑦3

2𝑦3










𝑥4

𝑦4

∆𝑦4













𝑥5

𝑦5





















4

∆𝑦𝑖

𝑖=0

3

2𝑦𝑖

𝑖=0

2

3𝑦𝑖

𝑖=0

1

4𝑦𝑖

𝑖=0


5𝑦𝑖

S

𝑦5 𝑦0

∆𝑦4 ∆𝑦0

2𝑦3 2𝑦0

3𝑦2 3𝑦0

4𝑦1 4𝑦0





Як у діагональній, так і в горизонтальній таблицях скінченні різниці всіх порядків умовимось записувати в одиницях нижчого розряду значень функцій у вузлах інтерполювання. Далі дотримуватимемося цього правила. Щоб проконтролювати правильність обчислення табличних різниць, таблицю доповнюють двома додатковими рядками і S . У рядок заносять суми різниць
кожного із стовпців, а в рядок S – різниці між крайніми (останньою і першою) різницями кожного стовпця. Легко впевнитись, що сума різниць будь-якого стовпця таблиці дорівнює різниці між крайніми різницями попереднього стовпця.

Властивості скінченних різниць:





  1. Скінченні різниці сталої C дорівнюють нулю, тобто 𝑘𝐶 = 0.

  2. Сталий множник C можна виносити за знак скінченної різниці


𝑘(𝐶𝑓(𝑥)) = 𝐶∆𝑘𝑓(𝑥).


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


𝑘(𝑓(𝑥) ± 𝑔(𝑥)) = 𝑘𝑓(𝑥) ± 𝑘𝑔(𝑥).


  1. Скінченна різниця функції 𝑓(𝑥) = 𝑥𝑛 (n натуральне)


(𝑥𝑛) = 𝑛ℎ𝑥𝑛−1 + 𝑛(𝑛 1) 2𝑥𝑛−2 + + 𝑛ℎ𝑛−1𝑥 + 𝑛,

2!

справді,

(𝑥𝑛) = (𝑥 + ℎ)𝑛 𝑥𝑛.

        1. Другий інтерполяційний многочлен Ньютона



Якщо значення аргументу лежить ближче до кінця відрізка інтерполювання, то застосувати першу інтерполяційну формулу Ньютона невигідно, бо не вистачатиме скінченних різниць функції вищих порядків. Якщо, наприклад, треба обчислити значення функції в точці x(xn2,xn1), то для першого інтерполяційного многочлена Ньютона є лише перша і друга різниці, а для значення аргументу x(xn1,xn) лише перша різниця функції.

Тому в кінці відрізка інтерполювання користуються многочленом вигляду:
𝑃(𝑥) = 𝑏0 + 𝑏1(𝑥 𝑥1) + 𝑏1(𝑥 𝑥𝑛)(𝑥 𝑥𝑛−1) +

+ +𝑏𝑛(𝑥 𝑥𝑛)(𝑥 𝑥𝑛−1) (𝑥 𝑥1). (1.3)
Коефіцієнти b0, b1, b2, …, bn многочлена (1.3) визначають так, щоб його значення в рівновіддалених вузлах інтерполювання збігалося із значенням відповідної функції, тобто щоб виконувались умови Pn(xi)= yi( i= 0,1, ...,n) [5-12].
Підставивши послідовно в формулу (1.3) замість x значення xn, xn1 , ..., x0, знаходимо коефіцієнти b0 , b1 , ..., bn. Якщо в (1.3) покласти x = xn, то дістанемо

b0 yn.Аналогічно, поклавши x xn1 , маємо

𝑦𝑛−1 = 𝑏0 + 𝑏1(𝑥𝑛−1 𝑥𝑛).
Але xn1 xn hі b0 yn, тому
𝑏 = 𝑦𝑛 𝑦𝑛−1 = 𝛥𝑦𝑛−1.



1 ℎ ℎ
Поклавши в (1.3) х=xn-2 і замінивши коефіцієнти b0 і b1 їх значеннями, дістанемо




𝑏2 =

𝑦𝑛 2𝑦𝑛−1 + 𝑦𝑛−2 =

2! 2

𝛥2𝑦𝑛−2 2! 2 .



Взагалі, коли x xnk, із (1.3) знаходимо




𝑏𝐾 =

𝛥𝑘𝑦𝑛−𝑘

𝑘! 𝑘 (𝑘 = 1,2 , 𝑛).



Підставивши значення цих коефіцієнтів в (1.3), маємо






  1   2   3   4   5

скачати

© Усі права захищені
написати до нас