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

Зміст

Вступ 3

§ 1. Постановка задачі 4

§ 2. Подвійні різниці для функції двох змінних 7

§ 3. Інтерполяційний многочлен у формі Ньютона для

функції двох змінних 9

§ 4. Інтерполяційний многочлен Лагранжа у випадку

функції двох змінних 11

§ 5. Двовимірні інтерполяційні ланцюгові дроби 12

§ 6. Результати і висновки 19

Література 26

Додаток. Інструкція користувача та тексти програм 27

Вступ.

Однією із задач, які розвязує сучасна обчислювальна математика, є проблема наближення функції однієї змінної та багатьох дійсних змінних іншими функціями більш простої, взагалі кажучи, будови, які легко обчислюються на електронно-обчислювальних машинах. Інша назва цієї задачі – апроксимування функції. Ця задача може постати, наприклад, у випадку, коли або функція задана своїми значеннями у вигляді таблиці результатів експерименту, або коли функція має складну аналітичну будову і знаходження її значення у деяких точках викликає обчислювальні труднощі. Так, зокрема, всі широко вживані на практиці функції sin(x), cos(x), exp(x), ln(x), ch(x), sh(x) та багато інших визначаються при обчисленнях на ЕОМ за допомогою функціональних рядів або ланцюгових дробів.

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

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

§1. Постановка задачі.

Поставимо у відповідність двом дійсним змінним xі yпрямокутну декартову систему координат XY. Розглянемо в площині цієї системи прямокутну область />. І нехай у цій області визначена деяка функція двох змінних />. Розіб’ємо область на прямокутники за допомогою сукупності прямих, паралельних Xта Y.


/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>/>X

Y

Г

P


/>

D

M


/>

/>

A

B


Q


Для цього виберемо на проміжку />множину точок

/>,

та на проміжку />множину точок

/>.

Декартів добуток цих множин

/>

буде утворювати множину інтерполяційних вузлів.Відповідні прямі />та />розбивають область D на прямокутники.

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

Перейдемо до обчислення невідомого значення />. Проведемо через точку М дві прямі ABiPQ, паралельні координатним осям. Розглянемо точки перетину їх з прямими />та />, які проходять через інтерполяційні вузли. Для визначеності зупинимося на прямій AB, паралельній осі 0Х. Вона перетинається з прямими />в точках />, де у– ордината точок перетину. Тепер, зафіксувавши значення і, та використовуючи значення функції />для />, ми зможемо звичайними методами інтерполяції, розробленими для функції однієї змінної, обчислити значення />. Проробивши це на всіх прямих />, ми отримаємо значення функції />в точках перетину ABта сукупності прямих. Інтерполюючи по цих точках, ми знайдемо і />— значення функції у точці перетину пунктирних ліній.

Аналогічно можна інтерполювати по значеннях функції на горизонтальних прямих />і в такий спосіб знайти значення />в точках перетину цих прямих з прямою PQ. Інтерполюючи по них, ми знову прийдемо до />. Кінцевий результат не залежить від порядку, в якому виконується інтерполювання – чи спочатку горизонтальне, а потім вертикальне, чи навпаки – в обох випадках ми прийдемо приблизно до одного і того ж значення />, оперуючи інтерполяційними формулами Ньютона, Стірлінга, Бесселя і їм подібними, обірваними на різницях одного порядку.

--PAGE_BREAK--

До тепер задачу двовимірної інтерполяції ми розв’язували у вузькому смислі, інтерполюючи спочатку відносно однієї змінної, а потім відносно іншої для відшукання значення />в точках, не співпадаючих з вузловими. В загальному випадку задача інтерполювання функції від двох змінних може бути сформульована так: в точках />(що є перетинами сукупності паралелей координатним осям) замкненої області Dзадані значення неперервної функції />і потрібно наблизити її за допомогою неперервної функції />, яка у всіх даних точках />приймає відповідно задані значення />і зображує в інших точках Dфункцію />точно або наближено.

Співставимо поверхню />з прямокутною системою координат. Щоб уявити собі геометричний зміст інтерполювання, достатньо побудувати поверхню />, яка проходить через точки />. Оскільки значення апроксимуючої функції />в точках />співпадають із значеннями />, а в інших, взагалі кажучи, відмінні, точки />ми і назвали вузловими точками. Геометричний зміст інтерполювання виражається в тому очевидному факті, що поверхня />замінюється апроксимуючою поверхнею />. Щоб оцінити точність інтерполяції, необхідно оцінити різницю аплікат цих поверхонь в точках />, не співпадаючих з вузловими.

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

§2. Подвійні різниці для функції двох змінних.

Нехай задана функція />і, крім того, задані такі значення аргументів />і />:

/>і />.

Введемо поняття подвійних поділених різниць цієї функції. Поділені різниці функції />ми можемо обчислити або по якій-небудь одній змінній, наприклад />, або по обох змінних />і />.

Якщо послідовні поділені різниці функції />утворюються по />, то символом />будемо позначати n-ту частинну різницю функції/>по змінній />; якщо ж різниці утворюються по y, то через />будемо позначати m-ту частинну різницю функції/>по змінній />. Так, наприклад, перша поділена різниця функції />по змінній х має вигляд (увважається сталою):

/>

а різниця (хвважається сталою)

/>

являє собою першу поділену різницю функції />по у. Зробимо важливе зауваження щодо символів />, />, />і />. Якщо розглянути, наприклад, символ />, то можемо відмітити, що цим символом позначається значення функції />в точці />площини Х0У, а не перша поділена різниця функції />, як це прийнято позначати у випадку одновимірної інтерполяції. Такий же зміст мають і інші символи. Для поділеної різниці (n+m)-го порядку відносно обох змінних х(для значень х, рівних />) та у(для значень у, рівних />) ми будемо використовувати позначення:

/>

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

/>

/>

тоді

/>

/>

Тут />— значення />в точці />. Із цих формул видно, що поділені різниці функції />по змінних х та у є симетричними функціями параметрів />таким чином, що вони не змінюються при яких завгодно їх перестановках. Наприклад:

/>.

§3. Інтерполяційний многочлен у формі Ньютона для функції двох змінних.

Згідно загальної інтерполяційної формули Ньютона для функції однієї змінної маємо:

/>

Але по тій самій формулі Ньютона ми можемо записати:

/>

/>

Таким чином отримуємо інтерполяційну формулу для />, яка залежить від поділених різниць:

/>(1)

де

/>

/>

Але так як

/>

/>,

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

/>

/>(2)

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

    продолжение
--PAGE_BREAK--

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

/>,

де />знаходиться між найбільшим та найменшим з чисел />і

/>

де />знаходиться між найбільшим та найменшим з чисел />. Символами />та />позначені частинні похідні.

Тепер звернемо увагу ще на таке співвідношення:

/>,

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

/>

/>

§4. Інтерполяційний многочлен

Лагранжа у випадку функції двох змінних.

Розглянемо ще одну формулу інтерполювання без різниць – формулу Лагранжа. Вона пов’язана із значеннями функції />в дискретних точках />області Dі часто є більш вигідною ніж попередньо розглянуті формули.

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

Розглянемо многочлен степеня />:

/>

де

/>, />.

Так як

/>

/>

то многочлен />приймає значення />у вузлах інтерполяції.

Тому має місце формула

/>

Це і є інтерполяційна формула Лагранжа для функцій двох змінних. Вона є точною для многочленів, степінь яких по />не перевищує />, а по y— не перевищує />.

§5. Двовимірні інтерполяційні

ланцюгові дроби.

Розглянемо ще один спосіб двовимірного інтерполювання функцій – двовимірні інтерполяційні ланцюгові дроби. Нехай маємо дві послідовності дійсних чисел />і />. Ланцюговим дробомназивається вираз вигляду

/>,

а n-м підхідним дробом ланцюгового дробу називається вираз вигляду

/>

Нехай маємо функцію />задану своїми значеннями у вузлах сітки />(див. § 1). Позначимо

/>

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

/>, (3)

де />,

/>

Твердження 1.Двовимірний інтерполяційний ланцюговий дріб (3) має />коефіцієнтів, тобто кількість коефіцієнтів рівна кількості інтерполяційних вузлів />.

Доведення. Випадок, коли />доведено в [2]. Припустимо тепер, що />. Введемо позначення />. Всі коефіцієнти дробу (3) містяться в конструкціях />, причому кожна така конструкція />містить 1+(n-p)+(m-p)коефіцієнтів. Тоді весь двовимірний ланцюговий дріб містить таку кількість коефіцієнтів:

/>

/>. Твердження доведено.

Згідно з [2], значення двовимірного інтерполяційного ланцюгового дробу (3) можна знайти за допомогою оберненого рекурентного алгoритму, який у цьому випадку формулюється так: спочатку вибираємо початкове значення />, а всі наступні значення />знаходяться за рекурентним співвідношенням

/>,

де

/>при />,

/>при />.

Тоді значення дробу (3) буде дорівнювати

/>.

Скориставшись оберненим рекурентним алгоритмом, отримаємо дріб (3) у вигляді відношення двох многочленів від двох незалежних змінних хта у:

/>.

Згідно з [3] має місце наступне твердження.

Твердження 2.Двовимірний інтерполяційний ланцюговий дріб (3) є дробово-раціональною функцією двох незалежних змінних. Степені многочленів чисельника />та знаменника />по змінним х та у задовольняють нерівності:

    продолжение
--PAGE_BREAK--

/>, />,

/>, />,

де />.

Доведення. Доведемо за аналогією з [1], де подібне твердження було доведено для випадку />. Перепишемо підхідний дріб />у такому вигляді:

/>,

де, як і раніше, />. В [4] доведено, що />є многочлен степені />, а />степені />. Виходячи з цього маємо, що r(k)та />задовольняють наступні рекурентні співвідношення:

/>,

/>(4)

Припустимо, що />. Вкладаючи співвідношення (4) одне в друге, отримуємо, що

/>,

так як />. Оскільки />, />та />при всіх s=1,2,…,k, то маємо

/>,/>,

отже />.

Розглянемо випадок, коли />. Тоді, користуючись формулою попереднього випадку, з (4) маємо:

/>

/>

отже />. Тепер можемо об’єднати ці два випадки в одній формулі:

/>.

Ми довели твердження для степенів відносно х. Для степенів відносно утвердження доводиться повністю аналогічно.

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

/>

Для цього розглянемо квадратні матриці

/>де />

та

/>де />

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

/>

де

/>

Твердження 3.Коефіцієнти двовимірного інтерполяційного ланцюгового дробу (3) задовольняють співвідношення

/>(5)

Доведення. Легко бачити, що формула (5) має місце для коефіцієнтів конструкції />при довільному значенні />і />. Але коли один з індексів />або />рівен нулю (тобто розбиття по відповідній змінній має лише одну точку) а інший має довільне значення (назвемо такі розбиття лінійними), то />і формула (5) має місце для всіх коефіцієнтів двовимірного інтерполяційного ланцюгового дробу. За допомогою методу математичної індукції доведемо, що формула (5) має місце для довільного розбиття, а не тільки для лінійного. Для цього спочатку покажемо, що навіть коли />, ми маємо право на кожному кроці методу математичної індукції одночасно збільшувати розбиття по обох змінних на 1. Це так, оскільки довільне розбиття прямокутника, яке містить />точок, може бути отримано з деякого лінійного розбиття />додаванням однакової кількості точок nдо розбиття по кожній координаті. А оскільки у випадку лінійного розбиття справедливість формули доведено, то ми маємо можливість одночасно збільшувати розбиття по обох змінних на кожному кроці на 1.

Зробимо припущення, що (5) виконується і для інших значень />, при />і покажемо, що тоді (5) має місце і при />. Для цього розглянемо інтерполяційний дріб виду:

/>(6)

Зробимо позначення

/>. (7)

Тоді (6) набуває вигляду

/>.

А оскільки />, то

/>

Та як />, то в кінцевому результаті маємо:

/>. (8)

З іншого боку (7) є двовимірним інтерполяційним ланцюговим дробом. Він має nповерхів і його коефіцієнти, за припущенням, визначаються згідно з формулами />.

Тут

/>

при />.

З останньої формули та з формули (8) випливає, що />, а тоді і />. Отже формула (5) має місце і при />.

Твердження доведено.

§6. Результати і висновки.

В цій роботі були розглянуті деякі цікаві властивості двовимірних інтерполяційних агрегатів. Зокрема були доведені твердження 1 – 3 (див. § 5), що дають відповіді на питання про кількість коефіцієнтів двовимірного інтерполяційного ланцюгового дробу, про степінь многочленів чисельника та знаменника цього дробу по змінним х та у а також вказують зручний спосіб обчислення його (дробу) коефіцієнтів.

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

    продолжение
--PAGE_BREAK--

В ході обчислювальних експериментів було відмічено цікаві результати стосовно точності двовимірних інтерполяційних агрегатів, а саме: якщо при одновимірній інтерполяції із зростанням кількості точок розбиття проміжку похибка наближаючого агрегату прямує до нуля, то у випадку двох змінних можна спостерігати своєрідне “коливання” точності то в кращу, то в гіршу сторону. Найбільш яскраво це проявлялося при інтерполяції дробами і многочленами з вибором рівномірно розташованих на проміжках вузлах, але коли за вузли бралися корені многочлена Чебишева, то у многочленів збіжність значно покращувалася. Хоч такий вибір вузлів і не мав такого ж позитивного впливу на збіжність двовимірних інтерполяційних ланцюгових дробів.

Нижче подано добірку результатів найбільш характерних обчислювальних експериментів. Вузли рівномірно розподілені по проміжках.

/>


 

Дроби

Многочлени

Nx

Ny

Абсолютна похибка

Відносна похибка

Абсолютна похибка

Відносна похибка

1

1

0.03359589352

0.17112619041

0.03359589352

0.17112619041

1

3

0.07979407980

0.55855855856

0.02794673681

0.12772351615

1

5

0.10256410257

0.71794871796

0.02794673681

0.12772351615

1

7

0.11327134404

0.79289940829

0.02794673681

0.12772351615

1

9

0.11948690916

0.83640836410

0.02794673681

0.12772351615

2

1

0.05513784461

0.38596491228

0.02794673681

0.12772351615

2

3

0.00149588631

0.01047120418

0.00286056709

0.01053077454

2

5

0.00367084735

0.02569593147

0.00286056709

0.01053077454

2

7

0.00496606522

0.03476245655

0.00286056709

0.01053077454

2

9

0.00580130529

0.04060913705

0.00286056709

0.01053077454

3

1

0.07979407980

0.55855855856

0.02794673681

0.12772351615

3

3

0.00010955319

0.00038036785

0.00039529924

0.00141131629

3

    продолжение
--PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK--

0.00000001584

0.00000016133

0.00000008002

13

9

0.00000965096

0.00000276242

0.00000000021

0.00000000009

13

13

0.00000005734

0.00000001721

0.00000000024

0.00000000011

13

17

0.00000037016

0.00000010067

0.00000000029

0.00000000009

16

11

0.00000016703

0.00000005423

0.00000000023

0.00000000007

16

16

0.00000007523

0.00000002108

0.00000000136

0.00000000038

16

21

0.00000440246

0.00000122513

0.00000000548

0.00000000259

19

13

0.00008957157

0.00002643672

0.00000000162

0.00000000068

19

19

0.00000620132

0.00000184373

0.00000000973

0.00000000268

19

25

0.00000299315

0.00000087872

0.00000012913

0.00000003764

22

15

0.00000113009

0.00000030635

0.00000000714

0.00000000303

22

22

0.00000101333

0.00000027537

0.00000008404

0.00000004051

22

29

0.00001163622

0.00000335189

0.00000592603

0.00000163026

25

17

0.00008138864

0.00002317129

0.00000012219

0.00000005157

25

25

0.00004025955

0.00001164612

0.00001260234

0.00000530483

25

33

0.00012087045

0.00003539497

0.00070208582

0.00020386772

/>

    продолжение
--PAGE_BREAK--


 

Дроби

Многочлени

Nx

Ny

Абсолютна похибка

Відносна похибка

Абсолютна похибка

Відносна похибка

1

1

0.33321289914

0.33653560644

0.33321289915

0.33653560644

1

3

0.73677995151

1.04635973670

0.08595077159

0.03314296132

1

5

1.33074173890

1.88989205360

0.07813929752

0.02917129136

1

7

1.62218793880

2.30379795360

0.07813929752

0.02917129136

1

9

1.79019962860

2.54240470060

0.07813929752

0.02917129136

2

1

0.38093142953

0.34088982997

0.33321289915

0.33653560644

2

3

108.52828854000

53.79528438600

0.03508293819

0.01603710670

2

5

11.83751443500

7.39333862160

0.00603397369

0.00249673379

2

7

16.45134666900

8.06771331410

0.00400187107

0.00192186007

2

9

2.05270709570

2.91521240740

0.00400067177

0.00167984100

3

1

0.39983806877

0.33697516590

0.33321289915

0.33653560644

3

3

1.14373906680

0.51796639019

0.03557770402

0.01554997138

3

5

4.67590088140

7.12118962440

0.00381000491

0.00141566619

3

    продолжение
--PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK----PAGE_BREAK--

1

9

0.07813510887

0.02916138270

0.07813510887

0.02916138270

2

1

0.33306865402

0.32307090345

0.33306865402

0.32307090345

2

3

0.03469686471

0.01566500544

0.04625034373

0.03296984444

2

5

0.00605273671

0.00247749013

0.00653615260

0.00269813699

2

7

0.00399096540

0.00184376495

0.00407962846

0.00174740469

2

9

0.00398626344

0.00164553760

0.00398495354

0.00164499687

3

1

0.33306865402

0.32307090345

0.33306865402

0.32307090345

3

3

0.03522653667

0.01572872174

0.04506746190

0.03050704547

3

5

0.00381852992

0.00142514184

0.00319438312

0.00170517385

3

7

0.00033984034

0.00012822589

0.00038038885

0.00014196774

3

9

0.00031296004

0.00011514494

0.00038038886

0.00014196774

4

1

0.33306865402

0.32307090345

0.33306865402

0.32307090345

4

3

0.03524551644

0.01573719625

0.04491754863

0.03040556625

4

5

0.00364188541

0.00136867869

0.00320086543

0.00173362839

4

7

0.00033732490

0.00012409556

0.00015669395

0.00008364383

4

9

0.00003473480

0.00001278860

0.00002247721

0.00000927864

5

1

0.33306865402

0.32307090345

0.33306865402

0.32307090345

5

3

0.03523740221

0.01573357323

0.04491484252

0.03040373443

5

5

0.00364338723

0.00136924310

0.00320059324

0.00173348097

5

7

0.00033732490

0.00012409556

0.00015669396

0.00008364383

5

9

0.00002314365

0.00000851412

0.00000534250

0.00000233505

6

1

0.33306865402

0.32307090345

0.33306865402

0.32307090344

6

3

0.03523746668

0.01573360202

0.04491420959

0.03040330599

6

5

0.00364316510

0.00136915961

0.00320028120

0.00173331196

6

7

0.00033732490

0.00012409556

0.00015669396

0.00008364383

6

9

0.00002314365

0.00000851412

0.00000534250

0.00000233505

7

1

0.33306865402

0.32307090345

0.33306865402

0.32307090345

7

3

0.03523746002

0.01573359904

0.04491420183

0.03040330073

7

5

0.00364313335

0.00136914768

0.00320027314

0.00173330760

7

7

0.00033732490

0.00012409556

0.00015669396

0.00008364383

7

9

0.00002314365

0.00000851412

0.00000534250

0.00000233505

9

1

0.33306865402

0.32307090345

0.33306865402

0.32307090345

9

3

0.03523746077

0.01573359938

0.04491419978

0.03040329935

9

5

0.00364313350

0.00136914774

0.00320027345

0.00173330777

9

7

0.00033732490

0.00012409556

0.00015669396

0.00008364383

9

9

0.00002314365

0.00000851412

0.00000534248

0.00000233504

10

1

0.33306865402

0.32307090345

0.33306865402

0.32307090345

10

3

0.03523746074

0.01573359936

0.04491419978

0.03040329934

10

5

0.00364313350

0.00136914774

0.00320027346

0.00173330777

10

7

0.00033732490

0.00012409556

0.00015669396

0.00008364383

10

9

0.00002314365

0.00000851412

0.00000534249

0.00000233505

13

9

0.00000208216

0.00000077835

0.00000481102

0.00000264438

13

13

0.00000000485

0.00000000187

0.00000000776

0.00000000491

13

17

0.00000000020

0.00000000008

0.00000000004

0.00000000002

16

11

0.00000007629

0.00000003166

0.00000017732

0.00000012684

16

16

0.00000000051

0.00000000021

0.00000000007

0.00000000003

16

21

0.00000000385

0.00000000513

0.00000000004

0.00000000001

19

13

0.00000000487

0.00000000188

0.00000000776

0.00000000491

19

19

0.00000000459

0.00000000169

0.00000000004

0.00000000002

19

25

0.00000018628

0.00000025101

0.00000000006

0.00000000002

22

15

0.00000000863

0.00000000319

0.00000000030

0.00000000018

22

22

0.00000010621

0.00000020835

0.00000000007

0.00000000003

22

29

0.00001172893

0.00000482399

0.00000000005

0.00000000002

25

17

0.00000005083

0.00000006537

0.00000000005

0.00000000002

25

25

0.00000642809

0.00000266219

0.00000000006

0.00000000003

25

33

0.00060708267

0.00082893024

0.00000000008

0.00000000004

    продолжение
--PAGE_BREAK--

Література.

Пагіря М. М. Інтерполяція функцій ланцюговим дробом та гіллястим ланцюговим дробом спеціального виду. // Наук. вісник Ужгород. ун-ту. Сер. мат. – 1994. Вип. 1. – с. 72–79.

Пагіря М. М. Інтерполювання функцій ланцюговим дробом та його узагальненнями у випадку функцій багатьох змінних. // Наук. вісник Ужгород. ун-ту. Сер. мат. – 1998. Вип. 3. – с. 155–164 .

Пагіря М. М. Про побудову двовимірного та трьохвимірного інтерполяційних ланцюгових дробів. // Наук. вісник Ужгород. ун-ту. Сер. мат. – 1999. Вип. 4. – с. 85–89 .

Микеладзе Ш. Е. Численные методы математического анализа. – М.: Гостехиздат, 1953. – с. 527

Скоробогатько В. Я. Теория ветвящихся цепных дробей и ее применение в вычислительной математике. – М.: Наука, 1983.–312 с.

Бахвалов Н.С. Численные методы. – М.: Наука, 1975. – 600 с.

Таранов П.С. Введение в програмирование. – Харьков, Сталкер, 1996.

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

Гаврилюк І. П., Макаров В. Л. Методи обчислень. У 2 ч. – К.: Вища школа, 1995. – Ч. 1. – 367 с.

Григоренко Я. М., Панкратова Н. Д. Обчислювальні методи в задачах прикладної математики. – К.: Либідь, 1995. – 280 с.

Додаток.

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

тексти програм.

Для проведення обчислювальних експериментів по інтерполюванню функцій двох змінних було складено програму, яка будує двовимірний інтерполяційний многочлен (у формі Лагранжа) і двовимірний інтерполяційний ланцюговий дріб з подальшою перевіркою на точність наближення. Проміжки інтерполювання і кількість точок розбиття проміжку по хі по уа також кількість контрольних точок розбиття по кожній змінній (для оцінки похибки) задаються в програмі. На виході програма генерує текстовий файл з максимальними абсолютними і відносними похибками наближення. Функція двох дійсних змінних, яку потрібно інтерполювати, задається безпосередньо в текстах програм в функції Func(). Константи MaxXiMaxYвизначають максимальну кількість точок розбиття по відповідних змінних.

Текст програми :

{$A+,B+,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q+,R+,S+,T-,V+,X+}

{$M 65520,0,655360}

Uses Crt;

Const MaxX=50;

MaxY=50;

Type MyArr=Array[0..MaxX,0..MaxY] Of Real;

Var Nx,Ny,Cx,Cy:Integer;

X:Array[0..MaxX] Of Real;

Y:Array[0..MaxY] Of Real;

B:MyArr;

Xa,Xb,Ya,Yb:Real;

D1,D2:^MyArr;

cc,cc1:Integer;

Function Func(x,y:Real):Real;

Begin

Func:=1/(x*x+y*y+x*y);

End;

Procedure DataInput;

Var i,j:Integer;

Begin

{ Write('Input Xa: '); ReadLn(Xa);

Write('Input Xb: '); ReadLn(Xb);

Write('Input Ya: '); ReadLn(Ya);

Write('Input Yb: '); ReadLn(Yb);}

Xa:=1; Xb:=2; Ya:=1; Yb:=2;

{ Write('Input Nx: '); ReadLn(Nx);

Write('Input Ny: '); ReadLn(Ny);}

nx:=cc; ny:=cc1*2-1;

{ For i:=0 To Nx Do X[i]:=(Xa+Xb)/2+(Xb-Xa)*Cos(Pi*i/Nx)/2;

For i:=0 To Ny Do Y[i]:=(Ya+Yb)/2+(Yb-Ya)*Cos(Pi*i/Ny)/2;}

For i:=0 To Nx Do X[i]:=Xa+(Xb-Xa)*i/Nx;

For i:=0 To Ny Do Y[i]:=Ya+(Yb-Ya)*i/Ny;

End;

Procedure BuildCoefTable;

Function Xij(i,j:Integer):Real;

Begin

If i>j Then Xij:=X[i]-X[j] Else Xij:=1;

End;

Function Yij(i,j:Integer):Real;

Begin

If i>j Then Yij:=Y[i]-Y[j] Else Yij:=1;

End;

Function Teta(t,s:Integer):Integer;

Begin

If s>t Then Teta:=-1 Else Teta:=0;

End;

Function Delta(k,i,j:Integer):Real;

Begin

Delta:=Xij(i,k)*Yij(j,k)/

( D1^[i,j]+

Teta(k,j)*D1^[i,k]+

Teta(k,i)*D1^[k,j]+

Teta(k,i)*Teta(k,j)*D1^[k,k]

);

End;

Var i,j,s,k,Mx:Integer;

Begin

For i:=0 To Nx Do

For j:=0 To Ny Do

Begin

    продолжение
--PAGE_BREAK--

D1^[i,j]:=Func(X[i],Y[j]);

End;

k:=0;

D2^:=D1^;

If Nx>Ny Then Mx:=Nx Else Mx:=Ny;

While k<Mx+1 Do

Begin

For i:=0 To Nx Do

For j:=0 To Ny Do

Begin

If i>j Then s:=i Else s:=j;

If s=k Then B[i,j]:=D2^[i,j];

End;

For i:=0 To Nx Do

For j:=0 To Ny Do

Begin

D2^[i,j]:=Delta(k,i,j);

End;

D1^:=D2^;

k:=k+1;

End;

End;

Function Drib(xx,yy:Real):Real;

Var n:Integer;

Function GetH(m,k:Integer):Real;

Begin

If m=n+1 Then GetH:=0

Else

Begin

GetH:=(xx-X[m-1])/(B[m,k]+GetH(m+1,k));

End;

End;

Function GetL(m,k:Integer):Real;

Begin

If m=n+1 Then GetL:=0

Else

GetL:=(yy-Y[m-1])/(B[k,m]+GetL(m+1,k));

End;

Function GetG(k:Integer):Real;

Begin

If k=n+1 Then GetG:=0

Else

GetG:=(xx-X[k-1])*(yy-Y[k-1])/

(B[k,k]+GetH(k+1,k)+GetL(k+1,k)+GetG(k+1));

End;

Begin

If Nx<Ny Then n:=Nx Else n:=Ny;

Drib:=B[0,0]+GetH(1,0)+GetL(1,0)+GetG(1);

End;

Function Polinom(xx,yy:Real):Real;

Var p,q,s,s1,p1,q1:Real; i,j,k:Integer;

Begin

s:=0;

For i:=0 To Nx Do

For j:=0 To Ny Do

Begin

p:=1; q:=1;

For k:=0 To Nx Do If k<>i Then p:=p*(xx-X[k])/(X[i]-X[k]);

For k:=0 To Ny Do If k<>j Then q:=q*(yy-Y[k])/(Y[j]-Y[k]);

s1:=p*q*Func(X[i],Y[j]);

s:=s+s1;

End;

Polinom:=s;

End;

Procedure GetMaxError;

Var i,j:Integer; dx,dy,MaxErr1,p1,p2,p3,VidnErr1,MaxErr2,VidnErr2:Real; F:Text;

Begin

MaxErr1:=0; VidnErr1:=0; MaxErr2:=0; VidnErr2:=0;

dx:=(Xb-Xa)/Cx; dy:=(Yb-Ya)/Cy;

For i:=0 To Cx Do

For j:=0 To Cy Do

Begin

p1:=Func(Xa+i*dx,Ya+j*dy);

p2:=Drib(Xa+i*dx,Ya+j*dy);

p3:=Polinom(Xa+i*dx,Ya+j*dy);

If Abs(p1-p3)>MaxErr1 Then

Begin

MaxErr1:=Abs(p1-p3); VidnErr1:=Abs((p1-p3)/p1);

end;

If Abs(p1-p2)>MaxErr2 Then

Begin

MaxErr2:=Abs(p1-p2); VidnErr2:=Abs((p1-p2)/p1);

End;

End;

Assign(f,'mix.txt'); Append(f);

WriteLn(f,nx:4,ny:4,MaxErr2:19:12,VidnErr2:19:12,MaxErr1:19:12,VidnErr1:19:12);

Close(f);

End;

Begin

For cc:=1 To 10 Do For cc1:=1 To 5 Do

Begin

DataInput; cx:=33; cy:=33;

WriteLn('Nx=',nx,' Ny=',ny);

New(D1); New(D2); BuildCoefTable; Dispose(D1); Dispose(D2);

GetMaxError;

End;

WriteLn('Press <ENTER>'); ReadLn;

End.


еще рефераты
Еще работы по государству, праву