Предположим, что мы хотим аппроксимировать функцию f на заданном отрезке [a, b] посредством кусочных полиномов, т.е. функций g, являющихся полиномами на заданных подотрезках отрезка [a, b]. Такая непрерывная функция g называется кусочно-полиномиальной на [a, b].
Приведем пример кусочно-квадратичной функции. Предположим, что функция f(x) на отрезке [0, 1] задана значениями
x | 1/6 | 1/3 | 1/2 | 2/3 | 5/6 | ||
f(x) |
Определим вид функции на каждой из частей [0, 1/3], [1/3, 2/3], [2/3, 1]; для этого используем формулу Лагранжа:
Тогда функция g, определенная равенствами
является кусочно-квадратичной на [0, 1] и совпадающей с f в заданных узлах; функция g непрерывна на всем отрезке и квадратична на каждой из частей [0, 1/3], [1/3, 2/3], [2/3, 1]. График этой функции представлен на рисунке 3.2.
Рисунок 3.2 – Аппроксимация с помощью кусочных полиномов
Рассмотрим ошибку аппроксимации функции f функцией g. Пусть М – оценка сверху абсолютной величины третьей производной от f(x) на всем отрезке [0, 1]. Тогда на каждой из его частей [0, 1/3], [1/3, 2/3] и [2/3, 1] можно применить оценку ошибки (|f(x)-g(x)| £ M× hn+1), где h = 1/6 и n = 2. Поэтому
.
Без дальнейшей информации относительно М эта оценка мало что дает в количественном отношении. Но она, тем не менее, показывает, как влияет на оценку погрешности шаг h между узлами интерполяции. Действительно, если уменьшить шаг в 2 раза, то , т.е. величина оценки уменьшится в раз по сравнению с оценкой в первом случае.
Предположим теперь, что мы хотим аппроксимировать функцию кусочно-квадратичными полиномами, но требуем при этом, чтобы аппроксимирующая функция была дифференцирована всюду. В этом случае нам потребуется иной подход. Для иллюстрации положим n = 4, Ii = [xi, xi+1] - интервал(i = 1,2,3)
Рисунок 3.3 – Аппроксимация с помощью кусочно-квадратичных полиномов
Аппроксимацию проводим квадратичными полиномами
i = 1, 2, 3.
Чтобы функция q была непрерывна и принимала в узлах сетки заданные значения {yi}, необходимо потребовать выполнение условий
q1(x1) = y1, q1(x2) = y2
q2(x2) = y2, q2(x3) = y3
q3(x3) = y3, q3(x4) = y4
Если мы, кроме того, хотим, чтобы функция g была дифференцирована в узлах, то должно выполняться
Функция q определяется девятью коэффициентами полиномов q1, q2, q3. Имеется только 8 уравнений. В качестве дополнительного условия обычно указывается значение q, в некотором узле, например
где d1 – некоторое заданное значение.
Девять соотношений представляют собой систему девяти линейных уравнений относительно коэффициентов полиномов qi, которая может быть решена, например, методом Гаусса.
Аппроксимация сплайнами
При аппроксимации решений дифференциальных уравнений, а также во многих ситуациях, оказывается желательным, чтобы аппроксимирующие функции были, по крайней мере, дважды непрерывно дифференцируемы. Этого нельзя добиться за счет кусочно-квадратичных полиномов. Поэтому используется кусочно-кубический полином С(x), обладающий следующими свойствами:
1. С(x) – дважды непрерывно дифференцируемая функция;
2. С(x) – существует на каждом отрезке Ii = [xi, xi+1], i = 1, 2, ¼, n-1;
3. функция С(x) является кубическим полиномом.
Такая функция называется кубическим сплайном. Это название происходит от упругой гибкой линейки, используемой чертежником для проведения кривых.
На каждом отрезке Ii функция С(x) представляется в виде
Сi(x) = ai3x3 + ai2x2+ ai1x + ai0, xÎ Ii.
Так как надо "сшить" n – 1 кубических полиномов, а для каждого необходимо определить 4 коэффициента, то всего надо определить 4n - 4 коэффициента аij.
Первое условие влечет за собой непрерывность функций С и на всем отрезке I. Эти условия выполняются во всех внутренних точках, (т.е. в n – 2 точках).
Следовательно, должно выполняться 3(n - 2) = 3n - 6 условий:
, i = 2, ¼, n - 1.
Таким образом, требуется еще (4n – 4) – 3(n-2) = n+2 дополнительных условий.
В случае задачи интерполяции или аппроксимации мы потребуем, чтобы функция С(x) принимала в узлах заданные значения
С(xi) = yi, i = 1, ¼, n,
что дает n дополнительных соотношений.
Еще два условия можно выбрать из самых разных соображений. Считается, что естественный сплайн имеет нулевую кривизну на концах, то есть
Таким образом, число уравнений равно числу неизвестных, и система уравнений имеет решение.
Необходимо обратить внимание на то, что при рассмотрении вопросов приближения функций f(x) функциями j(x) приближаемая функция f(x) задана лишь таблицей ее значений, полученной из эксперимента. Поэтому эти значения несут в себе случайные погрешности. Если в процессе решения задачи требуется находить значения f(x) для промежуточных значений или иметь аналитическое представление функции f(x), то не всегда надо прибегать к интерполированию, то есть требовать совпадения приближающей и приближаемой функций в некоторых точках, т.к. значения самой приближаемой функции неточны. Поэтому за меру близости принимается величина
или
где p(x) – заданная неотрицательная функция, называемая весом. Чаще всего весу p(x) придают смысл точности экспериментального измерения значений, из которых составлена таблица.
Практика показывает, что приближающие функции, построенные по методу среднеквадратичного приближения, значительно лучше представляют реальную функцию f(x), чем интерполяционные многочлены.