Один из наиболее распространенных вариантов интерполяции интерполяция кубическими сплайнами . Кроме того существуют
квадратичные и линейные сплайны.
В Scilab для построения линейной интерполяции служит функция
y=interpln(z,x),
где z - матрица исходных данных;
x - вектор абсцисс;
y - вектор значений линейного сплайна в точка x.
Рассмотрим пример использования функции interpln().
Пример 2.2.1-2.Используя значения интерполирующей функции, заданной таблично, и выполнить сплайн-интерполяцию с использованием линейных сплайнов и получить значения функции в точке х=0.58.
x |
-1 |
0 |
1 |
2 |
y(x) |
4 |
2 |
0 |
1 |
|
Рис. 2.2.1-7. Вычисление функции в точке х=0.58
Построение кубического сплайна в Scilab состоит из двух этапов: вначале вычисляются коэффициенты сплайна с помощью функции d=splin(x,y), а затем рассчитывается значения интерполяционного полинома в точке y=interp(t,x,y,d).
Функция d=splin(x,y) имеет следующие параметры:
x - строго возрастающий вектор, состоящий минимум из двух компонент;
y- вектор того же формата, что и x;
d - результат работы функции, т.е. коэффициенты кубического сплайна.
Для функции y=interp(t,x,y,k) параметры x, y и d имеют те же значения, параметр t - это вектор абсцисс, а y - вектор ординат, являющихся значениями кубического сплайна в точках x.
Пример 2.2.1-3. Найти приближенное значение функции при заданном значении аргумента с помощью интерполяции кубическими сплайнами в точках x1 = 0,702, x2 = 0,512, x3 = 0,608.
x |
0.43 |
0.48 |
0.56 |
0.62 |
0.7 |
0.75 |
y(x) |
1.635 |
1.732 |
1.876 |
2.033 |
2.228 |
2.359 |
На рис.2.2.1-8 и рис.2.2.1-9 приведены команды, необходимые для проведения интерполяции таблично заданной функции и построение графиков интерполируемой функции и интерполирующих ее с использованием кубических сплайнов.
|
Рис. 2.2.2-8. Команды построения графиков интерполяционных функций
Рис. 2.2.2-9. График функции, полученной с использованием
кубических сплайнов
2.2.2. Лабораторная работа по теме
«Технология аппроксимации и интерполяции функций»
Вопросы, подлежащие изучению
Постановки задачи аппроксимации и интерполяции функции.
Задание векторов и матриц в пакете Scilab.
Технология аппроксимации функции, заданной таблично, с использованием функций datafit().
Технология линейной, кубической и сплайн-интерполяции таблично заданной функции с использованием функций interpln().
Получение интерполяционных многочленов в явном виде.
Построение графиков аппроксимирующих и интерполирующих функций.
Изучите материал Темы 2.2. (п. 2.2.1).
Выберите индивидуальное задание: номера узлов и номер аппроксимируемой функции из табл. 2.2.2-1; узлы аппроксимации и значения функции в узлах из табл. 2.2.2-2.
Задайте в виде векторов значения узлов и значения функции в выбранных узлах;
Вычислите коэффициенты аппроксимирующих функции для линейной, квадратичной и кубической аппроксимации с использованием функции datafit( )и получите три аппроксимирующие функции в явном виде.
Получите с использованием этих функций значение аппроксимирующей функции в произвольной точке, принадлежащей отрезку, но не совпадающей с узлами аппроксимации, и сравните полученные результаты.
Построите графики табличной и трех аппроксимирующих функций в одном шаблоне, снабдив их легендой.
Проведите линейную и кубическую интерполяцию функции с использованием функции interpln(), заданной таблично. Получите значения интерполирующей функций в точке, не совпадающей с узлами интерполяции, и проанализируйт полученные результаты.
Построите графики табличной и двух интерполирующих функций в одном шаблоне, снабдив их легендой.
Предоставьте результаты работы преподавателю, ответить на поставленные вопросы.
Оформите отчет по выполненной работе.
Таблица 2.2.2-1
Вариант № |
Номера узлов xi |
Номер функции |
1 |
1 3 5 7 9 10 13 |
|
2 |
1 2 4 5 7 10 12 |
|
3 |
1 3 6 7 10 11 13 |
|
4 |
1 2 4 7 9 11 13 |
|
5 |
3 6 7 9 10 11 12 |
|
6 |
2 3 6 8 9 10 13 |
|
7 |
1 4 5 7 9 11 12 |
|
8 |
1 2 4 7 9 12 13 |
|
9 |
2 3 5 7 8 11 12 |
|
10 |
1 3 6 7 9 10 13 |
|
11 |
1 3 7 8 10 11 13 |
|
12 |
1 2 5 6 7 10 12 |
|
13 |
1 4 5 8 10 12 13 |
|
14 |
1 3 5 7 9 10 13 |
|
15 |
1 3 6 7 8 10 13 |
|
16 |
1 4 5 7 9 11 12 |
|
17 |
2 4 5 6 8 12 13 |
|
18 |
1 4 5 7 9 11 12 |
|
19 |
1 4 5 8 10 11 12 |
|
20 |
2 4 5 6 8 12 13 |
|
21 |
1 4 5 810 12 13 |
|
22 |
2 3 6 8 9 10 13 |
|
23 |
1 3 5 8 10 12 13 |
|
24 |
1 4 5 7 9 11 12 |
|
25 |
2 4 5 6 8 12 13 |
|
26 |
3 4 5 7 8 9 12 |
|
27 |
3 5 8 10 11 12 13 |
|
28 |
2 4 7 9 10 11 13 |
|
29 |
2 4 5 7 8 10 12 |
|
30 |
1 4 5 7 9 11 13 |
|
Таблица 2.2.2-2
i |
xi |
|
|
|
1 |
-5 |
1.38 |
2.44 |
1.676 |
2 |
-4.5 |
1.221 |
2.359 |
2.025 |
3 |
-4 |
1.511 |
1.751 |
1.736 |
4 |
-3.5 |
1.501 |
2.13 |
1.203 |
5 |
-3 |
1 |
1.455 |
1.511 |
6 |
-2.5 |
0.728 |
1.482 |
1.362 |
7 |
-2 |
0.976 |
1.437 |
0.75 |
8 |
-1.5 |
1.065 |
0.803 |
0.976 |
9 |
-1 |
0.599 |
1.175 |
0.957 |
10 |
-0.5 |
0.192 |
0.49 |
0.272 |
11 |
0 |
0.3 |
0.375 |
0.3 |
12 |
0.5 |
0.319 |
-6.51*10-3 |
0.165 |
13 |
1 |
-0.405 |
-1.965 |
-1.185 |