Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Краткие сведения. Интерполяция – это нахождение по ряду данных значений функции промежуточных её значений






Интерполяция – это нахождение по ряду данных значений функции промежуточных её значений. Экстраполяция позволяет найти значения функции вне интервала интерполяции. Исходными данными для решения задач интерполяции и экстраполяции являются значения таблично заданной функции:

…. ….
…. ….

Узлы интерполяции могут быть неравноотстоящими и равноотстоящими , где - шаг интерполяции.

Решением задачи интерполяции (экстраполяции) является интерполирующая (экстраполирующая) функция , удовлетворяющая условиям

 

1. Алгебраическая интерполяция

При алгебраической интерполяции интерполирующая функция может быть написана непосредственно по таблице значений в виде интерполяционного полинома Лагранжа -ой степени

Узлы интерполяции при этом могут быть как равноотстоящими, так и неравноотстоящими. Представленный полином позволяет выполнять прямую интерполяцию. По таблице можно написать также полином Лагранжа для обратной интерполяции

Для разработки алгоритмов полиномы удобнее представить в виде

Алгоритмы прямой и обратной интерполяций по полиномам Лагранжа представлены на рис.2.1 и 2.2.

 


 

 

Рис.2.1 – алгоритм прямой интерполяции по Лагранжу


 

Рис.2.2 – алгоритм обратной интерполяции по Лагранжу

 

2. Кусочно-линейная интерполяция

При кусочно-линейной интерполяции вычисление дополнительных точек выполняется по линейной зависимости. Графически это означает соединение узловых точек отрезками прямых (рис.2.3). При экстраполяции используются отрезки прямых, проведенных через две крайние точки.

 

Рис.2.3 – кусочно-линейная интерполяция и экстраполяция

 

При небольшом числе узлов (< 10) кусочно-линейная интерполяция оказывается довольно грубой. При ней даже первая производная интерполирующей функции испытывает резкие скачки в узловых точках.

 

3. Сплайн-интерполяция

Гораздо лучшие результаты, по сравнению с кусочно-линейной, дает сплайн-интерполяция (splinе – гибкая линейка). Здесь исходная функция заменяется отрезками кубических полиномов, проходящих через три смежные узловые точки. Коэффициенты полиномов , т.е. , рассчитываются так, чтобы первая и вторая производные были непрерывными. Линия, которую описывает сплайн-функция, напоминает по форме гибкую линейку, закрепленную в узловых точках.

 

4. Тригонометрическая интерполяция

Пусть функция задана на отрезке таблицей значений в равноотстоящих узлах

Тригонометрическим многочленом степени называют многочлен

Задача тригонометрической интерполяции состоит в построении тригонометрического интерполяционного многочлена наименьшей степени, удовлетворяющего условиям

Решением этой задачи является тригонометрический многочлен

 

Рис.2.4 – алгоритм тригонометрической интерполяции

 

 

коэффициенты которого вычисляются по следующим формулам:

 

Широкие возможности тригонометрической интерполяции следуют из того факта, что с возрастанием многочлен аппроксимирует с возрастающей точностью. Это справедливо для достаточно широкого класса функций. Этим тригонометрическая интерполяция существенно отличается от алгебраической интерполяции на системе равноотстоящих узлов. При алгебраическом интерполировании разность между функцией и интерполяционным многочленом может быть как угодно большой всюду, кроме узлов интерполяции. Тригонометрическое интерполирование свободно от этого недостатка.

Алгоритм тригонометрической интерполяции представлен на рис.2.4.

 

Интерполирование в системе Mathcad

Система Mathcad позволяет интерполировать двумя практически важными типами функций: кусочно-линейной и сплайновой.

При кусочно-линейной интерполяции используется функция linterp(VX, VY, x). Для заданных векторов VX и VY узловых точек и заданного аргумента x функция linterp(VX, VY, x) возвращает значение функции при ее линейной интерполяции. Для экстраполяции функция linterp(VX, VY, x) не предназначена и за пределами области определения может вести себя непредсказуемо.

Для сплайн-интерполяции используется четыре встроенные функции. Три из них служат для получения векторов вторых производных сплайн-функций при различном виде интерполяции: cspline(VX, VY) – возвращает вектор VS вторых производных при приближении в краевых точках к кубическому полиному; pspline(VX, VY) – возвращает вектор VS вторых производных при приближении в краевых точках к параболической кривой; lspline(VX, VY) – возвращает вектор VS вторых производных при приближении в краевых точках к прямой. Четвертая функция interp(VS, VX, VY, x) возвращает значение y(x) для заданных векторов VS, VX, VY и заданного значения x.

Таким образом, сплайн-интерполяция проводится в два этапа. Сначала с помощью функций cspline(VX, VY), pspline(VX, VY) или lspline(VX, VY) отыскивается вектор вторых производных функции y(x), заданной векторами VX и VY ее значений (абсцисс и ординат). Затем для каждой искомой точки вычисляется значение y(x) с помощью функции interp(VS, VX, VY, x).

Пример кусочно-линейной и сплайн-интерполяций

 

Примечания. 1. Функция переставляет строки матрицы таким образом, чтобы отсортированным оказался -й столбец. 2. Функция max(X) возвращает максимальный, а min(X) - минимальный по значению элемент вектора (или матрицы). 3. Операция.. (две точки) вводится как; (точка с запятой), а шаблон дроби – символом / (арифметическая операция деления).

 

ЛАБОРАТОРНАЯ РАБОТА 2

МЕТОДЫ ИНТЕРПОЛЯЦИИ И ЭКСТРАПОЛЯЦИИ

 

ЗАДАНИЕ

1. В Mathcad’ е по заданному из таблицы варианту выполнить кусочно-линейную и сплайн-интерполяции для функции, заданной таблицей значений в точках где .

2. По заданному варианту составить алгоритм и написать код для определения параметров и построения графика интерполяционного тригонометрического многочлена. Нанести на график значения функции из таблицы.

Таблица

Значения функций
  1.00; 1.803; 3.085; 4.776; 6.434; 7.347; 7.027; 5.652; 3.897; 2.381; 1.347; 0.722; 0.419; 0.256; 0.176; 0.142; 0.136; 0.155; 0.209; 0.324; 0.554
  7.38; 6.76; 5.22; 3.47; 2.07; 1.16; 0.64; 0.36; 0.23; 0.16; 0.13; 0.13; 0.16; 0.23; 0.37; 0.64; 1.16; 2.08; 3.48; 5.22; 6.76
  -1.24; -1.17; -1.08; -0.96; -0.84; -0.79; -0.8; -0.9; -1.1; -1.21; -1.02; -1.28; -1.32; -1.34; -1.36; -1.37; -1.37; -1.36; -1.35; -1.33; -1.30
  -3.0; -3.58; -4.12; -4.56; -4.86; -4.99; -4.94; -4.73; -4.36; -3.86; -3.30; -2.7; -2.13; -1.64; -1.26; -1.05; -1.00; -1.13; -1.43; -1.87; -2.43
  1.0; 1.05; 90.6; 520.4; 1714.7; 2915.0; 2439.2; 1020.6; 230.7; 32.17; 3.29; 0.3; 0.03; 0.004; 0.001; 0.0003; 0.0006; 0.002; 0.01; 0.09; 0.9
  2980.1; 2089.3; 742.4; 146.6; 18.6; 1.8; 0.16; 0.02; 0.003; 0.001; 0.001; 0.001; 0.002; 0.003; 0.018; 0.9; 1.22; 18.6; 146.6; 742.5; 2089.7
  1.0; 1.34; 1.75; 2.18; 2.53; 2.71; 2.65; 2.37; 1.97; 1.54; 1.16; 0.86; 0.64; 0.5; 0.42; 0.37; 0.36; 0.39; 0.45; 0.56; 0.74
  2.71; 2.6; 2.28; 1.86; 1.44; 1.07; 0.8; 0.46; 0.42; 0.4; 0.37; 0.37; 0.4; 0.48; 0.6; 0.8; 1.07; 1.44; 1.86; 2.28; 2.6
  -1.32; -1.28; -1.26; -1.24; -1.25; -1.25; -1.25; -1.26; -1.27; -1.29; -1.29; -1.33; -1.34; -1.37; -1.37; -1.37; -1.37; -1.36; -1.36; -1.35; -1.34
  -4.0; -4.2; -4.5; -4.7; -4.9; -5.0; -4.9; -4.8; -4.6; -4.4; -4.1; -3.8; -3.5; -3.1; -3.0; -3.0; -3.0; -3.1; -3.2; -3.4; -3.7
  1.0; 2.4; 5.4; 10.4; 16.3; 19.9; 18.6; 13.4; 7.7; 3.6; 1.6; 0.64; 0.27; 0.13; 0.07; 0.05; 0.05; 0.06; 0.09; 0.18; 0.4
  20.0; 17.5; 11.9; 6.4; 2.9; 1.2; 0.5; 0.2; 0.1; 0.06; 0.05; 0.05; 0.06; 0.1; 0.5; 1.0; 1.2; 2.9; 6.4; 11.9; 17.5
  -1.1; -0.8; -0.3; 0.3; 0.7; 0.8; 0.7; 0.5; 0.04; -0.6; -0.9; -1.1; -1.27; -1.32; -1.35; -1.37; -1.37; -1.36; -1.34; -1.3; -1.2
  -2.0; -2.8; -3.7; -4.3; -4.7; -4.9; -4.9; -4.5; -4.1; -3.3; -2.4; -1.5; -0.6; -0.04; 0.6; 0.92; 0.99; 0.79; 0.34; -0.3; -1.1
  1.1; 3.2; 9.5; 22.8; 41.4; 53.9; 49.4; 31.9; 15.2; 5.7; 1.8; 0.55; 0.17; 0.06; 0.03; 0.02; 0.01; 0.02; 0.04; 0.1; 0.3
  -0.78; -1.22; -1.34; -1.39; -1.42; -1.43; -1.42; -1.41; -1.37; -1.3; -1.1; -0.1; 1.1; 1.2; 1.33; 1.36; 1.37; 1.35; 1.3; 1.17; 0.65
  54.5; 45.7; 27.2; 12.1; 4.3; 1.3; 0.4; 0.13; 0.05; 0.03; 0.02; 0.02; 0.03; 0.05; 0.13; 0.41; 1.3; 4.3; 12.1; 21.2; 45.7
  -0.78; 0.18; 0.89; 1.13; 1.21; 1.24; 1.23; 1.18; 1.04; 0.63; -0.38; -1.01; -1.22; -1.3; -1.35; -1.36; -1.37; -1.36; -1.33; -1.27; -1.1
  -1.0; -2.1; -3.2; -4.1; -4.7; -4.9; -4.8; -4.4; -3.7; -2.7; -1.6; -0.4; 0.7; 1.7; 2.4; 2.9; 3.0; 2.7; 2.1; 1.2; 0.2
  1.0; 4.36; 16.7; 49.8; 105.0; 146.3; 130.9; 75.9; 30.0; 8.75; 2.1; 0.47; 0.11; 0.03; 0.01; 0.007; 0.006; 0.009; 0.02; 0.05; 0.2
  148.4; 118.8; 62.6; 22.5; 6.21; 1.45; 0.33; 0.08; 0.02; 0.01; 0.007; 0.007; 0.01; 0.02; 0.08; 0.32; 1.45; 6.2; 22.6; 62.2; 119.0
  0.0; 0.97; 1.23; 1.32; 1.36; 1.37; 1.36; 1.34; 1.28; 1.13; 0.64; -0.64; -1.13; -1.28; -1.34; -1.37; -1.36; -1.32; -1.23; -0.9; -0.2
  -0.0001; -1.47; -2.8; -3.9; -4.65; -4.98; -4.87; -4.33; -3.4; -2.16; -0.74; 0.74; 2.17; 3.14; 4.33; 4.87; 4.98; 4.65; 3.9; 2.8; 1.4
  1.0; 5.8; 29.3; 108.9; 266.4; 396.7; 347.1; 180.5; 59.2; 13.5; 2.4; 0.4; 0.07; 0.01; 0.005; 0.003; 0.002; 0.004; 0.009; 0.03; 0.1
  403.4; 309.0; 142.2; 42.1; 8.9; 1.56; 0.26; 0.05; 0.01; 0.0044; 0.0026; 0.0026; 0.0044; 0.01; 0.05; 0.263; 1.56; 8.95; 42.1; 142.2; 309.9
  0.78; 1.22; 1.34; 1.39; 1.42; 1.43; 1.42; 1.41; 1.37; 1.3; 1.1; 0.1; -1.1; -1.2; -1.33; -1.36; -1.37; -1.35; -1.3; -1.17; -0.65
  1.0; -0.77; -2.3; -3.6; -4.6; -4.9; -4.8; -4.1; -3.1; -1.6; 0.1; 1.9; 3.6; 5.1; 6.2; 6.84; 6.98; 6.58; 5.69; 4.4; 2.7
  1.0; 7.8; 51.5; 238.1; 675.9; 1075.4; 920.1; 429.3; 110.8; 20.8; 2.83; 0.35; 0.04; 0.01; 0.002; 0.001; 0.001; 0.001; 0.004; 0.02; 0.12
  1.10; 1.32; 1.40; 1.43; 1.45; 1.46; 1.46; 1.44; 1.42; 1.37; 1.25; 0.76; -0.8; -1.22; -1.33; -1.36; -1.37; -1.35; -1.29; -1.1; -0.1
  2.0; -0.06; -1.9; -3.4; -4.9; -4.8; -4.0; -2.7; -1.1; 0.95; 3.0; 5.0; 6.7; 8.1; 8.8; 8.9; 8.5; 7.47; 5.94; 4.06; 2.43

 

В качестве примера возьмем функцию, которая задана в точках , где , значениями: 2.0; -0.06; -1.9; -3.4; -4.9;

-4.8; -4.0; -2.7; -1.1; 0.95; 3.0; 5.0; 6.7; 8.1; 8.8; 8.9; 8.5; 7.47; 5.94; 4.06; 2.43.

 

1. Создайте новый проект командой Файл/Новый/Приложение.

2. Сохраните файлы модуля и проекта командой Файл / Сохранить все под именами LR2 и PR_LR2. Для этого удобно использовать соответствующую быструю кнопку (Сохранить все). В последующих сеансах работы сохраненный проект можно открыть командой Файл/Открыть проект (или Повторно открыть). Теперь перейдем к проектированию приложения - переносам на форму необходимых компонентов и заданию их свойствам значений, а в обработчиках событий – размещению кодов соответствующих алгоритмов. (Рекомендуется нажимать кнопку Сохранить все по окончании работы с каждым компонентом.) В результате проектирования получим форму, представленную на рис.2.5.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.01 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал