Студопедия

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

Разделы сайта

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






Сплайны.






Если функция имеет много локальных максимумов и точек перегиба, то часто интерполирование ее по точкам бывает неудовлетворительным. Поэтому появились методы кусочной или многоинтервальной интерполяции. Они заключаются в том, что значение функции , определяется в ряде промежуточных узлов [a, b], [b, c] и т.д. на широком интервале с помощью полиномов невысокой степени (1, 2 или 3 порядка).

Использование полиномов высокой степени на всем выбранном интервале приводит к большему объёму вычислений и не обеспечивает высокой точности.

Наиболее распространенны:

1. Применение кусочно – линейной интерполяции при равномерном расположении узлов.

Имеем: шаг и , для функции . Вычисление функции

где .

Обычно степень полинома росла вместе с ростом числа узлов, здесь она неизменна. Уменьшение монотонно снижает погрешность интерполяции, но массив растёт. Формула неизменна.

2. Квадратичная интерполяция – требует чётного числа парных интервалов (n – чётное число).

Имеем: , - шаг, и массив .

Если использовать формулу Лагранжа для трёх ординат, то получим

где и +1

В узлах i значения y(x) и совпадают.

3. Кубическая интерполяция (также локальная) - это интерполяция полиномом третьей степени.

где , - первые производные y(x).

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

Значения можно вычислить и запасти в массив.

У кубичного локального сплайна обеспечивается непрерывность нулевой и первой производных. Поэтому они не учитывают точек перегиба и не обеспечивают совпадения по кривизне в узловых точках.

Далее приведены примеры использования функций MATLAB с расчетом сплайна для таблицы и для функции (splayn_tabl.m, splayn _fun.m)

function splayn_tabl

x = -4: 4; y = [0.15 1.12 2.36 2.36 1.46.49.06 0];

cs = spline(x, [0 y 0]);

xx = linspace(-4, 4, 101);

plot(x, y, 'o', xx, ppval(cs, xx), '-')

function splayn_fun

x = 0: 10;

y = sin(x);

xx = 0:.25: 10;

yy = spline(x, y, xx);

plot(x, y, 'o', xx, yy)

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.