12471

Інтерполяційні поліноми Лагранжа. Сплайн-інтерполяція

Лабораторная работа

Математика и математический анализ

Лабораторна робота №5 Інтерполяційні поліноми Лагранжа. Сплайнінтерполяція. Мета роботи: познайомитися з методами інтерполяції складних функцій реалізувати заданий за варіантом метод інтерполяції у середовищі МatLAB. Завдання до виконання роботи: Доповнити сис...

Украинкский

2013-04-27

86.49 KB

51 чел.

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

Інтерполяційні поліноми Лагранжа. Сплайн-інтерполяція.

Мета роботи: познайомитися з методами інтерполяції складних функцій, реалізувати заданий за варіантом метод інтерполяції у середовищі МatLAB.

Завдання до виконання роботи: Доповнити систему МatLAB файлом, що реалізує заданий метод інтерполяції (відповідно до варіанту).

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

На практиці часто приходиться розв‘язувати задачі, в яких складні функції простіше обчислити по їх наближеним аналогам. Наприклад, для обчислення стандартних функцій sin(x), cos(x), ex в пакетах прикладних програм використовуються обчислювальні процедури, що реалізують задані функції наближенними функціями, побудованими на основі поліномів n–го порядку.

Ще одним прикладом застосування поліномів є випадок, коли функція задана у вигляді таблиці вузлових точок. Для відображення поданих значень функцією і подальшому застосуванні цієї функції у розрахунках, будують поліноміальну криву y = P(x), що проходить через вузлові точки (для обчислення поліноміальної кривої повинен бути визначений проміжок, на якому будується наближення). За допомогою такої функції можливо знайти наближені значення в точках, що не є вузловими. Якщо така точка знаходиться у межах інтервалу наближення , її значення називають інтерполяційним, якщо за межами інтервалу чи екстраполяційними. Так побудова поліному для знаходження проміжних точок називається інтерполяцією, для знаходження значень за межами заданого інтервалу – екстраполяцією. Широке застосування наближуючі поліноми знаходять також у чисельному диференціюванні, чисельному інтегруванні та створенні зображень графічних об‘єктів, що проходять через задані точки. Наближення реальної функції наближеною називається апроксимацією.

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

Рис.1. Кусково-лінійна інтерполяція.

Тангенс  кута нахилу між цими точками  0, у0),  (х1, у1) дорівнює . Для точки у , що належить проміжку [у0, у1], можемо записати:

        (1)

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

Інтерполяційний поліном Лагранжа. Французький математик Жозеф Луї Лагранж (1736-1813 р.р.) запропонував для побудови інтерполяційних поліномів наступний метод. Для двох вузлових точок 0, у0),  (х1, у1) він записав:

      (2)

Відношення при уі називаються коефіцієнтами Лагранжа. Побудуємо коефіцієнти Лагранжа для n точок. Особливість їх побудови полягає у виключенні з ряду різниць, що перемножуються у чисельнику і знаменнику, різниці зі значенням хі після знаку “–”. Для n точок коефіцієнт Лагранжа запишемо у загальному вигляді так:

          (3)

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

       (4)

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

Наприклад – задана функція:

n

0

1

2

х

1

3

4

у

12

4

6

Ступінь поліному n = 2. Складемо інтерполяційний поліном Лагранжа для функції з трьох вузлових точок:

Графік, що відображає результати опису функції, поданий на рис.2.

Рис.2. Результати апроксимації поліномом Лагранжа функції,

що задана таблично.

При апроксимації складних функцій одним поліномом, такий поліном описує функціцю з великими помилками:  = Fj) – Р(хj) де j – номери точок, які не є вузловими. У вузлових точках функція помилки по визначенню має значення нуль    = Fj) – Р(хj)=0.

F(xi)

P(xi)

Рис.3. Функція помилки апроксимації функції F(х) поліномом Р(х).

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

При сплайн-інтерполяції зберігається умова проходження наближуючої функції через вузлові точки. Сплайн (spline) переводиться з англійської, як глучка лінійка. Сплайн-функції різняться ступенем поліному, що зображає функцію. Сутністю сплайн-інтерполяції є моделювання фрагментів заданої функції рядом поліномів низького ступеню. Прикладом такого інтерполювання є кусково-лінійне інтерполювання (рис.1), де кожна з функцій будується по двом сусіднім вузловим точкам. Такий же принцип побудови зберігається і для формування поліномів вищих порядків, тільки кількість точок, на основі яких будується кожен з поліномів може бути більшою. Так, наприклад, для кусково-квадратичного  поліному  на проміжку  [x0, xN]  береться  кожен  інтервал [x2k, x2k+2] для побудови на ньому квадратичного поліному. Але при побудові такого сплайну кривизна в парних вузлах різко змінюється, що відбивається на якості аппроксимації.

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

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

Означення. Припустимо, задані (N+1) точки, де їх абсциси хі задовільняють умові а = x0 < x1 <…< xN = b. Функція S(х) називається кубічним сплайном, якщо існують N кубічних поліномів Sk(х) з коефіцієнтами sk,0 , sk,1 , sk,2 та sk,3 , що задовільняють наступним умовам:

  1.  S(x) = Sk(x) = sk,0 + sk,1(x-xk) + sk,2(x-xk)2 + sk,3(x-xk)3  , де  х  [xk, xk+1], k = 0, 1, …, N-1;
  2.  кусочно-кубічний поліном (сплайн) заданий сукупністю точок

    S(xk) = yk , де k = 0, 1, …, N;

  1.  сплайн-функція складається з поліномів, що сполучуються у вузлових точках    Sk(xk+1) = Sk+1(xk+1), де k = 0, 1, …, N-2;
  2.  сплайн-функція буде гладкою, якщо існує і безперервна її перша похідна S’k(xk+1) = S’k+1(xk+1), де k = 0, 1, …, N-2;
  3.  радіус кривизни сплайн-функції визначений в кожній точці, якщо існує і безперервна її друга похідна S’’k(xk+1) = S’’k+1(xk+1), де k = 0, 1, …, N-2.

Загальний вираз для кубічної сплайн-функції Sk(x) має вигляд:

,      (5)

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

      (6)

де   hk = xk+1 - xk ,    mk = S’’(xk),   uk = 6(dkdk-1), де в свою чергу dk = (yk+1 – yk)/hk .

При отриманні сплайн функції будуються N-1 рівнянь з N+1змінними. Для їх розв‘язання систему треба доповнити двома додатковими рівняннями. В якості таких рівнянь вибирають обмеження в крайніх точках сплайну (див. табл.1).

Таблиця 1

Обмеження в крайніх точках кубічного сплайну.

Тип сплайну

Обмеження в крайніх точках

1

Зімкнений кубічний сплайн (найкращий, якщо відомі похідні): задається S’(x0), S’(xn)

2

Природній кубічний сплайн

(“релаксована крива”)

m0 = 0, mN = 0

3

Екстраполювання S’’(х) в крайніх обмежуючих точках

4

S’’(х) постійна біля крайніх точок

m0 = m1 , mN = mN-1

5

Задання S’’(х) в кожній крайній точці

m0 = S’’(x0) , mN = S’’(xN)

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

2(h0 + h1)m1 + h1m2 = u1h0m0        (7)

Аналогічно обчислюємо останнє рівняння:

hN-2mN-2 + 2(hN-2 + hN-1)mN-1 = uN-1hN-1mN .       (8)

Отримуємо тридіагональну лінійну систему рівнянь:

       (9)

Коефіцієнти сплайну обчислюємо за формулами:

      (10)

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

   (11)

Наприклад, обчислимо зімкнений кубічний сплайн, що проходить через точки (0;0), (1;0,5), (2;2) та (3;1,5). Перша похідна задовольняє граничним умовам S’(0) = 0,2 i S’(3) = -1. Обчислимо проміжні величини:

h0 = h1 = h2 = 1;

d0 = (y1 – y0)/h0 = (0,5 - 0)/1 = 0,5;

d1 = (y2 – y1)/h1 = (2,0 – 0,5)/1 = 1,5;

d2 = (y3 – y2)/h2 = (1,5 - 2)/1 = - 0,5;

u1 = 6(d1 – d0) = 6(1,5 – 0,5) = 6;

u2 = 6(d2 – d1) = 6(-0,5 – 1,5) = -12.

Складемо основні рівняння:

Підставимо конкретні занчення:

При спрощенні системи отримаємо:

Обчислимо значення m1 = 2,52 та m2 = -3,72. Скористаємося додатковими рівняннями з таблиці 1:

Підставимо розраховані значення у формули сплайн-функцій:

Графічний розв‘язок системи поданий на рис.4.

Рис.4. Зімкнений кубічний сплайн.

Завдання на лабораторну роботу.

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

Варіанти завдань до виконання лабораторної роботи № 5.

Таблиця 2

Варіант

Координати вузлових точок

Тип кубічного сплайну

1

(1, 3)

(3, 7)

(6, 9)

(10, 8)

(14, 11)

Зімкнений

2

(0, 0)

(3, 2)

(6, 5)

(9, 7)

(12, 4)

Природній

3

(0, 1)

(4, 3)

(7, 7)

(10, 5)

(12, 6)

Зімкнений

4

(0, 10)

(3, 6)

(5, 4)

(7, 1)

(11, 3)

Природній

5

(0, 5)

(3, 2)

(6, 0)

(8, 4)

(10, 6)

Зімкнений

6

(2, 2)

(5, 0)

(7, -1)

(9, 1)

(12, 10)

Природній

7

(1, 1)

(3, 14)

(5, 8)

(6, 12)

(9, 10)

Зімкнений

8

(1, 9)

(4, 3)

(8, 6)

(12, 8)

(14, 3)

Природній

9

(0,12)

(3, 5)

(6, 10)

(8, 7)

(11, 6)

Зімкнений

10

(1, 4)

(5, 17)

(7, 14)

(9, 8)

(12, 12)

Природній

Додаток 5.1.

Приклад: При відшуканні у середовищі MatLAB зімкненого кубічного сплайну, який проходить через точки (0;0.0), (1;0.5), (2;2.0), (3;1.5), з першою похідною у граничних точках S’(0) = 0.2; S’(3) = -1 , функція задається так:

>>X = [0 1 2 3]; Y = [0 0.5 2.0 1.5]; dx0 = 0.2; dxn = -1;

>>S = zspline(X, Y, dx0, dxn)

S  =

0.4800   -0.1800   0.2000   0

       -1.0400    1.2600   1.2800   0.5000

0.6800   -1.8600   0.6800   2.0000

Графік зімкненого кубічного сплайна будують, використовуючи команду polyval:

>>x1 = 0 : .01 : 1; y1 = polyval(S(1,:),x1-X(1));

>>x2 = 1 : .01 : 2; y2 = polyval(S(2,:),x2-X(2));

>>x3 = 2 : .01 : 3; y3 = polyval(S(3,:),x3-X(3));

>>plot (x1,y1,x2,y2,x3,y3,X,Y,’.’)


 

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

23908. Софокл Эдип в Колоне 16.43 KB
  Среди этой рощи стоял алтарь в честь героя Эдипа: считалось что этот фиванский герой здесь похоронен и охраняет эту землю. От кровосмесительного брака с матерью у Эдипа были два сына и две дочери: Этеокл и Полиник Антигона и Исмена. Когда Эдип ослепил себя за грехи и ушел от власти оба сына отшатнулись от него.
23909. ОРЕСТ МСТИТ ЗА УБИЙСТВО ОТЦА 14.38 KB
  Это был сын Агамемнона Орест спасенный в день гибели Агамемнона своей няней и воспитанный вдали от родины царем Фокиды Строфием. Только что Орест принес свою жертву отцу как в дверях дворца показались рабыни в черных одеждах. Орест и Пилад поспешно спрятались у могилы и стали смотреть что будут делать рабыни. По сходству их со своими волосами сразу догадалась она что это волосы Ореста.
23910. Эсхил Орестея 22.47 KB
  Но участь его оказалась ужасна а участь сына его Ореста еще ужаснее. Но в живых остается маленький сын Агамемнона и Клитемнестры Орест: чувство матери побеждает в Клитемнестре расчет мстительницы она отсылает его в чужой край чтобы Эгисф не погубил за отцом и сына. Орест растет в далекой Фокиде помышляя только об одном о мести за Агамемнона.
23912. Эсхил Прометей прикованный 16.62 KB
  А затем когда разозленный Зевс не хочет чтобы люди могли варить и жарить доставшееся им мясо и отказывается дать им огонь Прометей похищает этот огонь тайком и приносит людям в полом тростнике. Прометей стал величавей и возвышенней: он не хитрец и вор а мудрый провидец. Само имя Прометей значит Промыслитель.
23913. Аристофан Всадники 16.49 KB
  На сцене их четверо: двух зовут настоящими именами Никий и Демосфен третьего зовут Кожевник настоящее имя ему Клеон а четвертого зовут Колбасник этого главного героя Аристофан выдумал сам. А противник их Клеон он и вправду был ремесленникомкожевником требовал добить врага и продолжать войну до победы. Итак на сцене дом хозяина Народа а перед домом сидят и горюют два его рабаприслужника Никий и Демосфен: были они у хозяина в милости а теперь их оттер новый раб негодяй кожевник. Тот хлебает а кожевнику бросает все лакомые...
23916. Аристофан Облака 15.83 KB
  За свою философию он потом поплатился жизнью: его привлекли к суду и казнили именно за то что он слишком многое ставил под сомнение разлагал будто бы нравы и этим ослаблял государство. Почему Облака Потому что философы раньше всего стали задумываться из чего состоит все разнообразное множество предметов вокруг нас. Отцы и деды не задумывались и не рассуждали а смолоду твердо знали что такое хорошо и что такое плохо. Новые философы стали рассуждать и у них вроде бы получалось будто логикой можно доказать что хорошее не так...