Курсовая работа: Інтерполювання функцій за формулою Лагранжа

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

функцію задано графічно, а треба знайти її наближений аналітичний вираз.

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

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

Інтерполяційний многочлен Лагранжа має такий вираз:

Ln (x)=

Многочлен Лагранжа зручно будувати у випадку рівновіддалених вузлів.

Використовувані методи і алгоритми

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


Вхідні та вихідні дані

Задане табличне представлення функції:

x 3 7 11 15 19
y 4 10 22 26 23

Методом інтерполяції Лагранжа знайти значення функції при x=13.

Щоб перевірити коректність роботи програми, яку потрібно створити, розв’яжемо цю задачу методами математичного пакету MathCad.

2. Практична частина

2.1 Архітектура програми

Розроблена програма складається з двох частин, кожна з яких записана у окремому файлі: модуль користувача bibl.tpu та прикладна програма lagr.pas. Прикладна програма використовує модуль користувача через механізм uses.

В бібліотеці підпрограм в розділі INTERFACE описані тип poli, що відповідає означенню многочлена (степеня не більше 100), тип mpoli - масиву многочленів, глобальні змінні zero та od, які відіграють роль відповідно нуля та одиниці кільця многочленів.

Там же описані наступні процедури і функції

* function stepin(a:poli):integer; (знаходження степеня многочлена)

* procedure riv(a:poli;var b:poli); (присвоєння одному многочлену значення іншого)

* procedure vvid(n:integer;var a:poli);( ввід многочлена)

* function poper(a:poli;m:integer):integer; (знаходження коефіцієнта многочлена, попереднього по відношенню до заданого)

* procedure vyvid(a:poli); (вивід многочлена згідно із загальноприйнятими стандартами)

* function maxi(n,m:integer):integer; (знаходження числа, більшого з двох)

* function mini(n,m:integer):integer; (знаходження числа, меншого з двох)

* procedure suma(a,b:poli;var c:poli); (знаходження суми двох многочленів)

* procedure nsuma(a:maspoli;n:integer;var c:poli); (знаходження суми n многочленів)

* procedure dobchy(a:poli;r:real;var c:poli); (добуток многочлена на скаляр)

* procedure pidvst(a:poli;n:integer;var c:poli);(підвищення степеня многочлена на n одиниць)

* procedure dobutok(a,b:poli;var c:poli);(знаходження добутку двох многочленів)

* procedure ndobutok(a:maspoli;n:integer;var c:poli);(знаходження добутку n многочленів)

* procedure mpoli(a:poli;m:integer;var c:poli); (знаходження m-го степеня многочлена)

К-во Просмотров: 385
Бесплатно скачать Курсовая работа: Інтерполювання функцій за формулою Лагранжа