Вопрос 38.doc

  • doc
  • 13.05.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Вопрос 38.doc

Построение кубического интерполяционного сплайна Шонберга.

При большом количестве узлов интерполяции сильно возрастает степень интерполяционных многочленов, и они не удобны для вычисления. Высокой степени можно избежать, разбив отрезок интерполяции на несколько частей и на каждой части построить интерполяционный многочлен некоторой степени. Но есть недостаток: в точках стыка разных интерполяционных многочленов будет разрывной их первая производная. В этом случае удобно использовать особым видом кусочно-полиномиальной интерполяции – интерполяции сплайнами.

Сплайн – это функция, которая на каждом частичном отрезке интерполяции является алгебраическим многочленом, а на всем заданном отрезке непрерывна вместе с несколькими своими производными. Рассмотрим способ построения кубических сплайнов (сплайны третьей степени), которые наиболее распространены на практике.

хi

х0

х1

хn

f(xi)

f0

f1

fn

Пусть интерполируемая функция f задана значениями fi в узлах xi, i=. Длину частичного отрезка [xi–1, xi] обозначим hi=xi xi–1, i=. Будем искать кубический сплайн на каждом из отрезков в виде: S(x)=ai + bi (xxi–1) + ci (xxi–1)2+di (xxi–1)3, где ai, bi, ci, di  4 неизвестных коэффициента (всего коэффициентов 4n). Можно доказать, что задача на нахождение кубического сплайна имеет единственное решение. Потребуем совпадений значений S(x) в узлах с табличными значениями функции fi.

S(xi–1)=fi–1=ai  (1), S(xi)=fi=ai+bihi+cihi2+dihi3  (2)

Число этих уравнений 2n – это в 2 раза меньше числа неизвестных коэффициентов. Для получения дополнительных условий потребуем непрерывности  и  во всех точках, включая узлы. Для этого приравняем левые и правые производные: S’(xi+0), S’(xi–0), S’’(xi+0), S’’(xi–0) во внутреннем узле xi. Сначала продифференцируем производные по х:    S’(x)=bi+2ci(xxi–1)+3di(xxi–1)2 ;    S’’(x)=2ci+6di(xxi–1)

       S’(xi–0)=bi+2ci hi+3di hi2 ;    S’(xi+0)=bi+1     (для b, c, d, xi–1 увеличиваем индекс i на 1, тогда  xxi–1~ xxi=0;    S’’(xi–0)=2ci+6dihiS’’(xi+0)=2ci+1                       

Приравниваем левые и правые части производных: bi+1=bi+2ci hi+3di hi2(3), ci+1=ci+3di hi (4), i=. Эти уравнения дают 2(n–1) условий => не хватает ещё 2-х. Их берут из требования поведения сплайна в граничных точках x0 и xn. Потребуем нулевой кривизны сплайна на концах, т.е. равенство нулю второй производной: c1=0, cn+3dn hn=0.(5)

Перепишем уравнения (2)-(5), исключив n неизвестных ai согласно (1).

bi hi–ci h2–di hi3=fi–fi–1 (i=)

    bi+1–bi–2ci hi–3di hi2=0  (i=)

   ci+1–ci–3di hi=0 (i=)

c1=0, cn+3dn hn=0

Система состоит из n+2(n-1)+2 уравнений. Решив её, получим значения неизвестных ci, bi, di  Получим   Si(x)=fi–1+bi(xxi–1)+ci(xxi–1)2+di(xxi–1)3        (i=)