Глава 6. аппроксимация функций с помощью сплайнов

При большом количестве узлов интерполяции приходится использовать интерполяционные полиномы высокой степени, что создает определенные неудобства при вычислениях. Можно избежать высокой степени интерполяционного многочлена, разбив отрезок интерполяции на несколько частей с построением на каждой части самостоятельного интерполяционного многочлена. Однако такое интерполирование обладает существенным недостатком: в точках сшивки разных интерполяционных полиномов будет разрывной их первая производная, поэтому для решения задачи кусочно-линейной интерполяции используют особый вид кусочно-полиномиальной интерполяции — сплайн-интерполяцию. Сплайн — это функция, которая на каждом частичном отрезке интерполяции является алгебраическим многочленом, а на всем заданном отрезке непрерывна вместе с несколькими своими производными.

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

Основные характеристики сплайнов:

- количество и расположение узлов;

- наибольший порядок m многочлена, из которого склеен сплайн;

- гладкость сплайна в узлах.

Пусть на отрезке глава 6. аппроксимация функций с помощью сплайнов - student2.ru задана функция аналитически (в виде глава 6. аппроксимация функций с помощью сплайнов - student2.ru ), таблично или графически. Для замены этой функции сплайном разобьем отрезок глава 6. аппроксимация функций с помощью сплайнов - student2.ru на n частей и составим таблицу:

Функция глава 6. аппроксимация функций с помощью сплайнов - student2.ru

глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru
глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru

Здесь глава 6. аппроксимация функций с помощью сплайнов - student2.ru , глава 6. аппроксимация функций с помощью сплайнов - student2.ru , а глава 6. аппроксимация функций с помощью сплайнов - student2.ru - значения функции глава 6. аппроксимация функций с помощью сплайнов - student2.ru при глава 6. аппроксимация функций с помощью сплайнов - student2.ru .

Дадим математическое определение сплайна. Сплайном степени m называется функция глава 6. аппроксимация функций с помощью сплайнов - student2.ru удовлетворяющая следующим свойствам:

глава 6. аппроксимация функций с помощью сплайнов - student2.ru непрерывна на глава 6. аппроксимация функций с помощью сплайнов - student2.ru вместе со всеми производными до некоторого порядка р;

На каждом отрезке глава 6. аппроксимация функций с помощью сплайнов - student2.ru совпадает с некоторым многочленом Pm,k(x) степени m

Пусть в каждой точке глава 6. аппроксимация функций с помощью сплайнов - student2.ru существует непрерывная производная глава 6. аппроксимация функций с помощью сплайнов - student2.ru . А следующая производная глава 6. аппроксимация функций с помощью сплайнов - student2.ru может быть уже разрывная. Дефектом в сплайне называется число глава 6. аппроксимация функций с помощью сплайнов - student2.ru в точке глава 6. аппроксимация функций с помощью сплайнов - student2.ru . Если мы возьмем глава 6. аппроксимация функций с помощью сплайнов - student2.ru , то это тоже дефект сплайна.

Интерполяция ломаными это самый простой сплайн первой степени с дефектом, равным единице. В этом случае сама функция непрерывна, а уже первая производная разрывная. Если функция задана таблично, то значения глава 6. аппроксимация функций с помощью сплайнов - student2.ru выбираем из таблицы; при этом, чем больше n, тем лучше аппроксимация. На каждом из элементарных отрезков глава 6. аппроксимация функций с помощью сплайнов - student2.ru заменяем функцию глава 6. аппроксимация функций с помощью сплайнов - student2.ru отрезком прямой: глава 6. аппроксимация функций с помощью сплайнов - student2.ru .

Кубические сплайны

При рассмотрении изгиба изогнутость приходится представлять кривой более высоких порядков. В этом случае часто применяют кубические сплайн функции, когда функция глава 6. аппроксимация функций с помощью сплайнов - student2.ru интерполируется на каждом элементарном отрезке кубическим многочленом. На отрезке глава 6. аппроксимация функций с помощью сплайнов - student2.ru оси Ox зададим равномерную сетку с шагом глава 6. аппроксимация функций с помощью сплайнов - student2.ru , в узлах глава 6. аппроксимация функций с помощью сплайнов - student2.ru зададим значения глава 6. аппроксимация функций с помощью сплайнов - student2.ru функции глава 6. аппроксимация функций с помощью сплайнов - student2.ru , определенной на отрезке глава 6. аппроксимация функций с помощью сплайнов - student2.ru .

Внутри каждого элементарного отрезка глава 6. аппроксимация функций с помощью сплайнов - student2.ru заменим функцию глава 6. аппроксимация функций с помощью сплайнов - student2.ru функцией глава 6. аппроксимация функций с помощью сплайнов - student2.ru , удовлетворяющей следующим условиям:

1. глава 6. аппроксимация функций с помощью сплайнов - student2.ru непрерывна на глава 6. аппроксимация функций с помощью сплайнов - student2.ru вместе со своими производными первого и второго порядка;

2. глава 6. аппроксимация функций с помощью сплайнов - student2.ru на каждом отрезке глава 6. аппроксимация функций с помощью сплайнов - student2.ru является кубическим многочленом:

глава 6. аппроксимация функций с помощью сплайнов - student2.ru (6.1) ;.

3. в узлах сетки глава 6. аппроксимация функций с помощью сплайнов - student2.ru выполняется равенство глава 6. аппроксимация функций с помощью сплайнов - student2.ru ;

4. глава 6. аппроксимация функций с помощью сплайнов - student2.ru удовлетворяет граничным условиям глава 6. аппроксимация функций с помощью сплайнов - student2.ru .

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

Потребуем выполнения третьего условия, совпадения значений функции глава 6. аппроксимация функций с помощью сплайнов - student2.ru в узлах с табличными значениями;

глава 6. аппроксимация функций с помощью сплайнов - student2.ru (6.2)

глава 6. аппроксимация функций с помощью сплайнов - student2.ru (6.3)

Число полученных уравнений 2n в два раза меньше числа неизвестных коэффициентов. Для составления оставшихся уравнений воспользуемся первым условием о непрерывности производных сплайна во всех точках. Приравняем левые и правые производные во внутреннем узле xk глава 6. аппроксимация функций с помощью сплайнов - student2.ru , вычислив предварительно выражение для производных глава 6. аппроксимация функций с помощью сплайнов - student2.ru последовательным дифференцированием (6.1)

глава 6. аппроксимация функций с помощью сплайнов - student2.ru (6.4)

глава 6. аппроксимация функций с помощью сплайнов - student2.ru (6.5)

Найдем правые и левые производные в узле:

глава 6. аппроксимация функций с помощью сплайнов - student2.ru

глава 6. аппроксимация функций с помощью сплайнов - student2.ru

Приравняв левые и правые производные, получим для:

глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru (6.6)

Уравнения (6.6) дают еще 2(n-1) условий. Для получения недостающих уравнений накладывают требования к поведению сплайна на концах отрезка глава 6. аппроксимация функций с помощью сплайнов - student2.ru . При нулевой кривизне, когда вторая производная равна нулю, например, получим:

глава 6. аппроксимация функций с помощью сплайнов - student2.ru (6.7)

Исключив из уравнений (6.2)- (6.6) неизвестные ak, получим систему из 3n уравнений:

глава 6. аппроксимация функций с помощью сплайнов - student2.ru (6.8)

Решив эту систему, мы найдем значения неизвестных ak,bk,ck определяющих совокупность формул для искомого интерполяционного сплайна

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

cspline(x,y)-кубического сплайна;

pspline(x,y)-квадратичного сплайна;

lcspline(x,y)-линейного сплайна;

Во всех этих функциях х-массив абсцисс , а y- массив ординат экспериментальных точек. После вычисления коэффициентов сплайнов можно вычислить значение интерполяционного полинома в конкретной точке t, обратившись к функции interp(x,U,P,t), где х- массив коэффициентов сплайнов

Пример 6.1 В результате опыта холостого хода определена таблица зависимости потребляемой из сети мощности P от выходного напряжения U для асинхронного двигателя. Построить график интерполяционной зависимости. При решении воспользуемся встроенными функциями сплайновой аппроксимации в Mathcad

Экспериментальные точки

глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru

глава 6. аппроксимация функций с помощью сплайнов - student2.ru

глава 6. аппроксимация функций с помощью сплайнов - student2.ru

глава 6. аппроксимация функций с помощью сплайнов - student2.ru

глава 6. аппроксимация функций с помощью сплайнов - student2.ru

глава 6. аппроксимация функций с помощью сплайнов - student2.ru

глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru глава 6. аппроксимация функций с помощью сплайнов - student2.ru

Построим графики этих функций.

глава 6. аппроксимация функций с помощью сплайнов - student2.ru

Рис 6.1. Решение примера 6.1 в Mathcad


Наши рекомендации