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,’.’)


 

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

23719. Метод весов 52.5 KB
  – Решите уравнение: а методом проб и ошибок; б методом перебора: 3. Решите уравнение: 3а 33 = 8а 8 3. – Чем отличается это уравнение от уравнений которые решали раньше В этом уравнении переменная стоит в обеих частях уравнения. – Как же быть Надо найти способ который позволит решить такое уравнение.
23720. Метод перебора 76.5 KB
  – Установите закономерность и продолжите ряд на три числа. – Что вы можете сказать о множителях в произведении Они являются делителями числа 252 252 делится на x и на y. x – 1y 6 = 252 – Что вы можете сказать о втором уравнении Множители во втором уравнении являются делителями числа 252. – Что вы можете сказать о корнях первого и второго уравнения Одни и те же числа.
23721. Метод весов 45.5 KB
  – Что интересного вы можете рассказать о полученном ряде чисел – Назовите самое большое число из данного ряда. 109 – Назовите самое маленькое число из этого ряда. – Замените число 25 суммой разрядных слагаемых разными способами. Вспомните как была построена математическая модель 10х y = xy 52 для задачи 5: Задумано двузначное число которое на 52 больше суммы своих цифр.
23722. Метод проб и ошибок 61 KB
  – Какие уравнения мы учились решать на прошлом уроке Уравнения вида x аx = b – Что мы использовали при решении уравнений Свойства чисел. – Какие уравнения мы ещё получали при переводе текста задачи на математический язык Уравнения вида: x x а = b. – Подберите корень уравнения: – Объясните способ решения который вы использовали. – А есть ли у этого уравнения другие корни 3.
23723. Метод проб и ошибок 69.5 KB
  Основная цель: 1 Тренировать способность к использованию метода проб и ошибок для решения уравнений. – Какие уравнения мы учились решать на прошлом уроке Уравнения вида x x а = b – Что мы использовали при решении уравнений Метод проб и ошибок. – Сегодня мы на уроке проанализируем на сколько хорошо вы усвоили метод проб и ошибок.
23724. Перевод условия задачи на математический язык 55 KB
  Обозначим за x – площадь третьей комнаты. Вторая на 3 м2 больше третьей значит её площадь равна x 3 м2. Первая комната в 2 раза меньше второй чтобы найти её площадь надо площадь второй комнаты разделить на 2 т. Общая площадь трёх комнат 42 м2.
23725. Перевод условия задачи на математический язык 53 KB
  Длина в м Ширина в м Площадь в м2 В классе даются разные ответы возможно кто – то из учащихся совсем не сможет выполнить задание. – Почему в классе разные результаты – Что общего и чем отличается данная задача от тех которые мы решали на прошлом уроке Общее то что в этой задаче неизвестна ни длина ни ширина прямоугольника а только известно что длина на 3 м больше ширины а отличаются эти задачи схемой для данной задачи схемой будет таблица. Возможны варианты: Длина в м Ширина в м Площадь в м2 x 3 x xx 3 или 70...
23726. Перевод условия задачи на математический язык 58.5 KB
  Количество детей в одном автобусе Количество автобусов Общее количество детей Большие автобусы Маленькие автобусы 3. – Какую формулу нужно использовать для выполнения задания Чтобы найти сколько всего человек поехало на экскурсию надо количество людей в одном автобусе умножить на количество автобусов т. Количество детей в одном автобусе Количество автобусов Общее количество детей Большие автобусы x 6 y 1 x 6y 1 или 252 Маленькие автобусы x y xy или 252 Работу можно организовать в группах или используя подводящий диалог. –...
23727. Перевод условия задачи на математический язык 46.5 KB
  – Какими математическими выражениями может быть их перевод Числовое или буквенное выражение уравнение вида ax x = b уравнение вида xx a = b двумя уравнениями с двумя переменными xy = c x ay b = с – В каком ещё виде может быть перевод условия задачи на математический язык Возможны разные ответы в том числе и ответ: одно уравнение с двумя неизвестными. – Уменьшите число 640 на 76. Запишите на математическом языке сколько всего единиц содержит трехзначное число...