12471

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

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

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

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

Украинкский

2013-04-27

86.49 KB

52 чел.

Лабораторна робота №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,’.’)


 

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

53681. Конспект урока по гандболу для 5 класса 47 KB
  Способствовать развитию координации движений точности при выполнении ведения мяча и передачи двумя руками сверху стоя на месте. Упражнения для обучения ведению мяча на месте: ведение мяча на месте правой левой рукой в положении с выставленной ногой; ведение мяча на месте с изменением высоты отскока за счет сгибания и разгибания ног; ведение мяча на месте с переводом перед собой в стойке на параллельных ногах и с выставленной вперед ногой; ведение мяча на месте кисть накладывается на мяч...
53682. Географическое положение, очертания берегов Австралии 60.5 KB
  Задачи: образовательные задачи: Закрепить знания о названии материков их изображениях и соотношениях на географических картах мира через практическую работу по составлению макета карты. Я раздам вам карточки изображающие контуры разных материков а вы определите как называются эти материки. Я порошу вас показать всему классу контур своего материка назвать его и разместить на классной доске при помощи магнита так же как на географической карте мира. А сейчас мелом напишите названия океанов омывающих берега этих материков.
53683. Конспект урока по гимнастике 67.5 KB
  Ходьба: а Руки вверх на носках; б руки на поясе перекатом с пятки на носок. вруки на пояс в полуприседе руки за голову в полном приседе г руки за голову в полном приседе. 2 руки за спину сгибая ноги назад; 3 руки на пояс высоким; 4 бег с крестным левым и правым. Руки в стороны.
53684. Кодирование 84.5 KB
  Что такое графы Как обозначаются графы Что такое круг Что такое точка Что такое стрелочки Дети называют тему. Рассказывают что такое графы. Спрашиваю детей что это такое. А что такое декодирование Декодирование это перевод символов отправителя в мысли получателя.
53685. Линейные алгоритмы 278 KB
  Развивающие: развитие алгоритмического и логического мышления, познавательный интерес обучающихся; развитие творческой активности обучающихся; формирование интереса к изучению предмета;
53686. Технология обработки баз данных. Основные понятия и возможности. Работа с готовой базой данных 75 KB
  Цели: Образовательные: Сформировать представления о назначении и области применения баз данных. Сформировать основные понятия темы База данных Информационная система Система управления базами данных СУБД.
53687. Работа с клавиатурным тренажером 39.5 KB
  Цели: Научить работать с клавиатурным тренажером Потренироваться печатать. Работа по теме урока: Сейчас мы приступим к работе с клавиатурным тренажером. Работа с клавиатурным тренажером. Работа в Блокноте 10 25 4.
53688. Информационные процессы 136 KB
  Цели урока: Ввести понятие информационных процессов познакомить учащихся с понятиями: источник и приемник информации канал связи носитель информации исполнитель. Задачи: Образовательная: изучить понятия: информационные процессы виды информационных процессов; изучить способы хранения передачи и обработки информации; научить приводить примеры получения передачи и обработки информации; научить учеников решать практические задачи на использование изученных понятий. Что такое информация для человека Назовите некоторые...