Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Постановка задачи интерполирования
Простейшая задача интерполирования заключается в следующем. На отрезке [a, b] заданы n+1 точки x0, x1, …, xn, которые называются узлами интерполяции, и значения некоторой функции f(x) в этих узлах: f(x0)=y0, f(x1)=y1, …, f(xn)=yn. Требуется построить функцию F(x) (интерполирующую функцию), принадлежащую известному классу и принимающую в узлах интерполяции те же значения, что и f(x): F(x0)=y0, F(x1)=y1, …, F(xn)=yn. Геометрически это означает, что нужно найти кривую y=F(x)некоторого определенного типа, проходящую через заданную систему точек Mi(xi, yi)(i=0, 1, 2, …, n)(см. рис. 2.1). Функцию F(x) будем искать в виде полинома Pn(x) степени не выше n. Полученную интерполяционную формулу y=F(x)обычно используют для приближенного вычисления значений данной функции f(x) в точках x, отличных от узлов интерполирования, при этом, если xÎ [x0, xn], то речь идет о задаче интерполирования, если xÏ [x0, xn] - экстраполирования.
Интерполяционный многочлен Лагранжа Интерполяционный многочлен Лагранжа степени n имеет вид f(x) = L n (x) = +R n (x), где R n (x) = f(x) – L n (x)– остаточный член, вычисляемый по формуле R n (x) = , где x Î [x1, x2], x1=min(x1, x2, …, xn), x2=max(x1, x2, …, xn). Оценка погрешности остаточного члена представлена в виде неравенства |R n (x)| , где M n+1 = |f (n+1)(x)|. Интерполяционная формула Гаусса В случае квадратичной интерполяции (n=2) вычисление значения функции в некоторой точке x, с заданной точностью ε, предполагает использование трех ближайших к x узлов. Пусть h = x j – x j-1 - шаг сетки узлов интерполирования, - значения функции в узлах сетки. Обозначим за xj ближайший узел к данной точке x. Обозначим и конечные разности первого и второго порядка: ; . Тогда интерполяционная формула Гаусса запишется в виде: f(x)=L2(x)= , где R2(x)=f(x)-L2(x) – остаточный член, вычисляемый по формуле: R2 (x) = , где x Î [xj-1, xj+1]. Шаг h выбирается из условия | R2 (x) | ≤ ε Сплайн- интерполяция Сплайном соответствующей функции f(x), построенным по данным узлам сетки {x i}, i=0,..., n, называется функция Sm(x), удовлетворяющая следующим условиям: a) условие кусочно-полиномиальной функции: на каждом отрезке [xi-1, xi] (i=1, …, n) функция является многочленом степени m; б) условие непрерывности: сплайн-функция и ее (m-1) производная непрерывны в заданной области; в) условие интерполирования: в узлах сетки значение сплайна и значение функции совпадают: (i=0, …, n). Линейный сплайн Построим на отрезке [a, b] функцию Si(x) так, чтобы на каждом отрезке [x i-1, x i ] (i=1,..., n) эта функция являлась бы линейным многочленом вида: Si(x)=ai+(xi-x)bi. Поскольку Si(xi)=f(xi); Si(xi-1)=Si-1(xi-1)=f(xi-1), то, обозначив yi=f(xi) и hi=xi-xi-1, получим формулы для вычисления коэффициентов: ai=yi, bi= (i=1, …, n). Таким образом, линейный сплайн имеет вид Si(x)= yi +(xi - x) . Параболический сплайн Параболические сплайны представляются в виде полинома второй степени: Si(x)=ai+(x-xi)bi+(x-xi)2ci с граничными условиями: b1=A1 либо bn=An, где A1 - значение первой производной в точке x=x1; An - значение первой производной в точке x=xn. Si(x) Si+1(x)
xi xi+1 xi+2 Для определения коэффициентов сплайна ai, bi, ci используются условия: Si(xi)=f(xi) i=1, …, n; Si(xi+1)=Si+1(xi+1)=f(xi+1) и условие непрерывности первой производной (xi+1)= (xi+1). Из граничных условий находим: ai=yi, i=1, …, n; ci= (i=1, …, n-1). Коэффициенты bi вычисляются по одной из следующих рекуррентных формул: при b1=A1; bi+1 = zi - bi ; i=1, …, n-1; при bn=An; bn-i = zn-i - bn-i+1 ; i=1, …, n-1; zi=2(yi+1 - yi) / hi, hi=xi+1-xi. Кубический сплайн Построим на отрезке [a, b] функцию Si(x) так, чтобы на каждом отрезке [x i-1, x i ] (i=1,..., n) функция Si(x)представляла собой полином третьей степени Si(x)=ai+ bi (xi-x) + ci(xi-x)2+ di(xi-x)3 и в узлах xi имела первую и вторую непрерывные производные: (x)= -bi -ci(xi-x) - di(xi-x)2, (x)=ci+di(xi-x), (a) = =0. Используя условие интерполирования и непрерывности, имеем: Si(xi)= f(xi), Si(xi)= Si+1(xi), (xi)= (xi), (xi)= (xi), далее, обозначив yi=f(xi) и hi+1=xi+1-xi, получим, что ai=yi, (2.1) ai=ai+1+bi+1hi+1+ ci+1 + di+1 , (2.2) bi=bi+1+ci+1hi+1 + di+1 , (2.3) ci=ci+1+di+1hi+1. (2.4) Из (2.4) следует: di+1= (i=0, 1,..n-1).(2.5) Подставим (2.5) в (2.2) и выразим bi+1: bi+1= (i=0, 1, …n-1).(2.6) Подставим (2.6) и (2.5) в (2.3) и получим систему из (n-1) трехточечного уравнения относительно переменной c: α i ci-1 +β i ci+ γ i ci+1 = φ i, (i=1, …, n-1), (2.7) где α i = hi, β i = 2(hi+1+hi), γ i = hi+1, φ i = 6 . Уравнение (2.7) при краевых условиях ( (a) = =0) c0=0, cn=0 решается методом прогонки: ci = pi+1 ci+1 + qi+1 (i=n-1, …, 1).(2.8) Запишем формулу (2.8) для ci-1 и подставим в уравнение (2.7): α i (pi ci + qi ) +β i ci + γ ici+1 =φ i. Выразим отсюда ci: ci= ci+1+ . Сравнивая с формулой (2.8), выпишем формулы для прогоночных коэффициентов pi+1 и qi+1: pi+1= , qi+1= (i=1, …, n-1). Для вычисления p1, q1 запишем краевое условие c0=0 в виде (2.8): с0=p1c1+q1=0. Отсюда следует, что p1=0, q1=0. Определим все pi+1, qi+1 для i=1, …n-1 и, зная граничное условие cn=0 по (2.8) для i=n-1, …, 1, найдем все ci.. Затемиз формул (2.5) и (2.6) получим оставшиеся коэффициенты для кубического сплайна. Задания 1. Используя интерполяционный многочлен Лагранжа степени n, построить на отрезке [a, b] графики заданной функции y=f(x) и полинома Лагранжа y=Ln(x). Вывести величину теоретической и практической погрешностей: e теор. = | R n (x) |, e практ. = | f(x) – L n (x) |. 2. Используя полином Гаусса при n=2, найти значение функции y = f(x) в точке x = x0 с заданной точностью e. 3. Используя интерполирование функции сплайнами, построить графики заданной функции y = f(x), линейного сплайна y = S1(x) и кубического сплайна y = S3(x). Вывести практическую погрешность для сплайнов. Варианты функций Популярное:
|
Последнее изменение этой страницы: 2016-04-10; Просмотров: 1307; Нарушение авторского права страницы