Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Интерполяция функций с помощью Scilab

Автор:   •  Май 15, 2021  •  Реферат  •  1,630 Слов (7 Страниц)  •  507 Просмотры

Страница 1 из 7

 1. Интерполяция функций с помощью Scilab

Интерполяция – частный случай аппроксимации, когда аппроксимирущая кривая " Q(x,c_j)" проходит через все точки таблицы, то есть

[pic 1]

Здесь f(xi) – значения функции в заданных точках (узлах) xi, сj – коэффициенты аппроксимирующей кривой.

Задача интерполяции может быть сформулирована следующим образом: функция y=f(x) задана в виде таблицы:

x

x0

x1

xn

y

y0

y1

yn

Требуется вычислить значение функции в точке x*, не совпадающей ни с одним из узлов таблицы. Если эта точка лежит между узлами таблицы (то есть xi<x*<xi+1), то такая задача называется интерполяцией. Если точка x* лежит за пределами таблицы (т. е.  x*<x0 или x*>xn) , то говорят о задаче экстраполяции. Всюду в дальнейшем будем предполагать, что значения аргумента х расположены в строго возрастающем порядке: x0<x1<x2<…<xn.

Задача интерполяции решается в два этапа. Сначала строится интерполяционная кривая (в нашем случае – интерполяционный полином), а затем в уравнение кривой подставляется точка (или вектор) x*, в которой требуется вычислить значение функции, то есть решение задачи интерполяции есть число (или вектор) [pic 2]

Далее рассмотрим, как можно решить задачу интерполяции в среде Scilab с помощью функций  interpln, linear_interpn, datafit, interp и smooth. Во всех примерах будет построен график интерполяционного полинома.

1.1. Линейная интерполяция

1.1.1. Функция interpln

Если заданы значения функции в двух точках (xi, yi) и (xi+1,yi+1), то используя линейную интерполяцию значение функции в точке х вычисляют по формуле [pic 3] Для линейной интерполяции в Scilab применяются функции interpln и linear_interpn.

Синтаксис функции interpln:

[y1]=interpln(xyd,x1)

Аргументами функции являются:

xyd – матрица, состоящая из двух строк – координат векторов одинаковой размерности х и y. x – значения аргумента, y -  значения функции. Координаты вектора х должны идти в возрастающем порядке.

 x1 – вектор, содержащий точки, в которых нужно вычислить значения функции. Значения функции y1 вычисляют при помощи линейной интерполяции. Значения функции за пределами таблицы, то есть при x<xmin и x>xmax (задача экстраполяции), вычисляют по двум первым и двум последним точкам заданной таблицы соответственно.

Пример 1.1. Функция задана в виде таблицы из пяти точек:

x

1

10

20

30

40

y

1

30

-10

20

40

Нанести на график исходные данные и ломаную, полученную линейной интерполяцией. С помощью линейной интерполяции вычислить значения функции в точках -1.2, 23.5 и 41.4.

clf();clear;x=[1 10 20 30 40];y=[1 30 -10 20 40];

plot2d(x',y',[-3],"011"," ",[-10,-30,50,50]);

xx=[-1.2 23.5 41.4];y1=interpln([x;y],-4:45);y2=interpln([x;y],xx);

disp("    х       y");disp([xx;y2]')

plot2d((-4:45)',y1',[5],"000");gca.children.children.thickness=3

legend("Точки интерполяции","Интерполяционная кривая",2)

gca.thickness=3

Результат работы программы:

      х        y2

  -1.2   -6.0888889

   23.5   0.5      

   41.4   42.8    

[pic 4]

Рис. 1.1. Линейная интерполяция с помощью функции interpln

В приведенной программе установлены границы рамки графика: х (от ‒10 до 50) и y (от ‒30 до 50). Сам график функции построен на отрезке от ‒4 до 45. Значения функции в промежуточных точках вычислялись линейной интерполяцией/экстраполяцией.

...

Скачать:   txt (18.1 Kb)   pdf (382.3 Kb)   docx (787.9 Kb)  
Продолжить читать еще 6 страниц(ы) »
Доступно только на Essays.club