Категории

Cуществуют следующие способы оплаты за занятия:

  • Абонемент на 8 посещений (срок действия 1 месяц) - 300 грн.;
  • Абонемент на 4 посещения (срок действия 1 месяц) - 200 грн.;
  • Абонемент на 12 посещений(срок действия 1 месяц) - 400 грн.;
  • Разовое посещение - 60 грн.
(ДЛИТЕЛЬНОСТЬ ЗАНЯТИЙ ПО 1,5 ЧАСА)

НОУ ІНТУЇТ | лекція | Обробка результатів експерименту. інтерполяція функцій

  1. 12.1.3 Поліном Лагранжа Ще одне подання інтерполяційного полінома ступеня запропонував Лагранж:...

12.1.3 Поліном Лагранжа

Ще одне подання інтерполяційного полінома ступеня Ще одне подання інтерполяційного полінома ступеня   запропонував Лагранж: запропонував Лагранж:

Нагадаємо читачеві, що розглянуті три способи побудови полінома - це три різних форми запису однієї і тієї ж функції.

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

12.1.4 Реалізація інтерполяційного полінома n-го ступеня

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

  1. Засобами мови програмування реалізувати один з розглянутих алгоритмів побудови полінома: канонічний ( см. лістинг 12.1 ), Поліном Ньютона ( см. лістинг 12.2 ), Поліном Лагранжа ( см. лістинг 12.3 ), Після чого порахувати значення в потрібних точках.
  2. скористатися функцією (В цьому випадку k = length (x) -1) для обчислення коефіцієнтів полінома, після чого за допомогою функції обчислити значення полінома в необхідних точках.

% X - масив абсцис експериментальних точок, y - масив ординат% експериментальних точок, t - точка в якій потрібно знайти значення. function s = kanon (x, y, t) n = length (x); % Обчислення кількості точок в масивах x і y% Формування коефіцієнтів системи рівнянь (12.4) for i = 1: n for j = 1: n A (i, j) = x (i). ^ (J-1); end end a = A ^ (- 1) -y '; % Рішення системи рівнянь (12.4)% Обчислення значення полінома в точці t за формулою (12.3) s = 0; for i = 1: n s = s + a (i) -t ^ (i-1); end end Лістинг 12.1. Функція kanon для обчислення канонічного полінома в точці t за експериментальними значеннями (xi, yi)% x - масив абсцис експериментальних точок, y - масив ординат% експериментальних точок, t - точка в якій потрібно знайти значення. function s = newton (x, y, t) n = length (x); % Обчислення кількості точок в масивах x і y% Прийом до першого стовпець матриці розділених різниць вектора y for i = 1: n C (i, 1) = y (i); end for i = 2: n% Формування матриці розділених різниць for j = 2: n if (i <j) C (i, j) = 0; else C (i, j) = (C (i, j-1) -C (j-1, j-1)) / (x (i) -x (j-1)); end end end for i = 1: n% Формування масиву коефіцієнтів полінома Ньютона A (i) = C (i, i); end s = 0; % Розрахунок значення полінома в точці t за формулою (12.5) for i = 1: n p = 1; for j = 1: i-1 p = p- (tx (j)); end s = s + A (i) -p; end end Лістинг 12.2. Функція newton для обчислення полінома Ньютона в точці t за експериментальними значеннями (xi, yi) Таблиця 12.2. Дані наприклад 12.1 x 0.43 0.48 0.55 0.62 0.7 0.75 y 1.63597 1.73234 1.87686 2.03345 2.22846 2.35973% x - масив абсцис експериментальних точок, y - масив ординат% експериментальних точок, t - точка в якій потрібно знайти значення. function s = lagrang (x, y, t) n = length (x); % Обчислення кількості точок в масивах x і y% Розрахунок суми творів за формулою (12.6)% для обчислення значення полінома Лагранжа в точці t s = 0; for i = 1: n p = 1; for j = 1: n if (j ~ = i) p = p- (tx (j)) / (x (i) -x (j)); end end s = s + y (i) -p; end end Лістинг 12.3. Функція lagrang для обчислення полінома Лагранжа в точці t за експериментальними значеннями (xi, yi)

Приклад 12.1. В результаті експерименту отримана таблична залежність Приклад 12 ( см. табл. 12.2 ). Побудувати інтерполяційний поліном. Обчислити очікуване значення в точках 0.5, 0.6 і 0.7, побудувати графік залежності.

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

на Мал. 12.1 представлено графічне рішення прикладу 12.1. Подібним чином можна підбирати коефіцієнти інтерполяційного полінома і для інших завдань.

function s = kanon (x, y, t) n = length (x); % Обчислення кількості точок в масивах x і y for i = 1: n% Формування коефіцієнтів системи рівнянь (12.4) for j = 1: n A (i, j) = x (i). ^ (J-1); end end a = A ^ (- 1) -y '; % Рішення системи рівнянь (12.4) s = 0; % Обчислення значення полінома в точці t за формулою (12.3) for i = 1: n s = s + a (i) -t ^ (i-1); end end function s = newton (x, y, t) n = length (x); % Обчислення кількості точок в масивах x і y for i = 1: n% Прийом до першого стовпець C розділених різниць y C (i, 1) = y (i); end for i = 2: n% Формування матриці розділених різниць for j = 2: n if (i <j) C (i, j) = 0; else C (i, j) = (C (i, j-1) -C (j-1, j-1)) / (x (i) -x (j-1)); end end end for i = 1: n% Формування масиву коефіцієнтів полінома Ньютона A (i) = C (i, i); end s = 0; % Розрахунок значення полінома в точці t за формулою (12.5) for i = 1: n p = 1; for j = 1: i-1 p = p- (tx (j)); end s = s + A (i) -p; end end function s = lagrang (x, y, t) n = length (x); % Обчислення кількості точок в масивах x і y s = 0; % Розрахунок значення полінома Лагранжа в точці t за формулою (12.6) for i = 1: n p = 1; for j = 1: n if (j ~ = i) p = p- (tx (j)) / (x (i) -x (j)); end end s = s + y (i) -p; end end% x і y - масиви абсцис і ординат експериментальних точок прикладу 12.1. x = [0.43 0.48 0.55 0.62 0.7 0.75]; y = [1.63597 1.73234 1.87686 2.03345 2.22846 2.35973]; r = [0.5 0.6 0.7]% точки для яких треба обчислити очікувані значення for i = 1: 3% Обчислення i-го очікуваного значення інтерполяційного полінома Ньютона rsn (i) = newton (x, y, r (i)); % Обчислення i-го значення канонічного інтерполяційного полінома rsk (i) = kanon (x, y, r (i)); % Обчислення i-го значення інтерполяційного полінома Лагранжа rsl (i) = lagrang (x, y, r (i)); end rsn rsk rsl% Обчислення очікуваних значень інтерполяційного полінома в% точках r = [0.5 0.6 0.7] за допомогою функції polyfit A = polyfit (x, y, length (x) -1) rsp = polyval (A, r)% Обчислення точок для побудови графіка інтерполяційного полінома. x1 = 0.43: 0.01: 0.75; y1 = polyval (A, x1); % Побудова графіка. plot (x, y, '* b; experment;', x1, y1, '-r; interpolation;', r, rsp, 'pb; f (r);'); grid (); % Результати обчислень r = 0.50000 0.60000 0.70000 rsn = 1.7725 1.9874 2.2285 rsk = 1.7725 1.9874 2.2285 rsl = 1.7725 1.9874 2.2285 A = 0.44180 -1.17180 1.70415 -0.18866 1.38721 0.97243 rsp = 1.7725 1.9874 2.2285 Лістинг 12.4. Рішення прикладу 12.1

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