Разблокировка МТС 1078
Разблокировка МТС 1078


Разблокировка Билайн Смарт 5
Разблокировка Билайн Смарт 5


iTunes Gift Card (РОССИЯ) - 600 руб
iTunes Gift Card (РОССИЯ) - 600 руб


В начало

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

 

Смысл сплайн-интерполяции заключается в том, что в промежутках между точками осуществляется аппроксимация в виде зависимости A(t) = at3 + bt2 + ct + d. Коэффициенты a, b, c, d рассчитывают независимо для каждого промежутка, исходя из значений yi в соседних точках.

Функция, аппроксимирующая данные векторов х и у кубическими сплайнами в MathCAD, interp(s, x, y, t), где  s вектор вторых производных, созданный одной из сопутствующих функций: cspline, pspline или lspline; х вектор действительных данных аргумента, элементы которого расположены в порядке возрастания; у вектор действительных данных значений того же размера; t значение аргумента, при котором вычисляется интерполирующая функция.

Для осуществления сплайн-интерполяции с помощью  MathCAD,  надо выполнить следующие действия:

В главном меню необходимо выбрать «Вид Панели инструментов Матрица», после чего в появившейся панели «Matrix» выбрать «Создать матрицу» на 1 строку и 7 столбцов и ввести координаты по оси x. Далее с помощью элемента «Транспонирование матрицы» той же панели транспонировать матрицу данных

х := (0  1  2  3  4  5  6)Т.

(1)

Аналогичную операцию проводим с координатами по оси у

у := (4,7  2,6  3,5  4,4  3,3  5,2  5,1)Т.

(2)

Сплайн-интерполяция в MathCAD реализована чуть сложнее линейной. Перед применением функции interp необходимо предварительно определить первый из её аргументов – векторную переменную s при помощи одной из трёх встроенных функций тех же аргументов (х, у):

lspline(x, y) – вектор значений коэффициентов линейного сплайна (англ. linear spline  –линейный);

pspline(x, y) – вектор значений коэффициентов квадратичного сплайна (англ. parabolic spline);

cspline(x, y) – вектор значений коэффициентов кубического сплайна (англ. cubic spline).

Затем проводится интерполяция с помощью функции interp(s, x, y, t), где s – вектор вторых производных, созданный одной из сопутствующих функций cspline, pspline или lspline; х – вектор действительных данных аргумента, элементы которого расположены в порядке возрастания; у – вектор действительных данных значений того же размера; t – значение аргумента, при котором вычисляется интерполирующая функция. Далее записываем функцию сплайн-интерполяции в виде

A(t) := linterp(s, x, y, t).

(3)

Чтобы построить график, необходимо выбрать в главном меню «Вид Панели инструментов График», затем на появившейся панели «Graph» выбрать элемент «Декартов график», после чего в рабочем окне программы MathCAD отобразится область построения графика. По оси ординат области построения графика необходимо ввести «A(t), y», а по оси абсцисс – «t, x». Далее двойным щелчком левой кнопки мыши по области построения графика необходимо вызвать панель его форматирования, на которой выбрать закладку «Трассировки», выделить мышью «trace и в поле «Символ» выбрать «dmnd». Кроме того, для удобства можно установить диапазон значений по оси абсцисс путём ввода соответствующих значений в области на оси x графика. Поскольку значения по оси х изменяются от 0 до 6, их и введём.

Рис. 1. Сплайн-интерполяция

 

Встроенная функция interp позволяет вычислить значения в требуемых точках, например для точки с аргументом  x = 1,5 расчёт значения функции интерполяции A(t) будет выглядеть следующим образом: interp(s, x, y, 1,5) = 2,837.

Ниже приведена программа кубической сплайн интерполяции

                         х := (0  1  2  3  4  5  6)Т

                         у := (4,7  2,6  3,5  4,4  3,3  5,2  5,1)Т                 

                         s := cspline(x, y)

                         A(t) := interp(x, y).

(4)