русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Интерполирование сплайнами


Дата добавления: 2014-12-02; просмотров: 4372; Нарушение авторских прав


Интерполяционные формулы Лагранжа, Ньютона и Стирлинга и др. при использовании большого числа узлов интерполяции на всем отрезке [a, b] часто приводят к плохому приближению из-за накопления погрешностей в процессе вычислений [2]. Кроме того, из-за расходимости процесса интерполяции увеличение числа узлов не обязательно приводит к повышению точности. Для снижения погрешностей весь отрезок [a, b] разбивается на частичные отрезки и на каждом из них функцию f(x) заменяют приближенно полиномом невысокой степени. Это называется кусочно-полиномиальной интерполяцией.

Один из способов интерполирования на всем отрезке [a, b] является интерполирование сплайнами.

Сплайном называется кусочно-полиномиальная функция, определенная на отрезке [a, b] и имеющая на этом отрезке некоторое количество непрерывных производных. Преимущества интерполяции сплайнами по сравнению с обычными методами интерполяции – в сходимости и устойчивости вычислительного процесса.

На практике предпочитают для получения сходящегося интерполяционного процесса использовать кусочно-полиноминальную интерполяцию. Для этого отрезок [а,b] разделяют на части точками и интерполируют не при помощи одного многочлена на всем отрезке [а,b] а для каждого частичного отрезка избирают свои узлы и строят свой интерполирующий многочлен невысокой степени. Однако этот способ приближения имеет недостаток: в точках «стыка» двух соседних многочленов производная, как правило, имеет разрыв. Часто это обстоятельство не играет большой роли. Вместе с тем нередко требуется, чтобы аппроксимирующая функция была гладкой и тогда простейшая кусочно-гладкая интерполяция становиться неприемлемой. Естественна потребность в наличии аппроксимирующих функций, которые сочетали бы в себе локальную простоту многочлена невысокой степени и глобальную на всем отрезке [а,b] гладкость, привела к появлению так называемых гладких сплайн-функций или сплайнов – специальным образом построенных гладких кусочно-многочленных функций.



Дадим строгое определение сплайна. Пусть отрезок [а,b] разбит точками a=x0<x1<xn=b на n частичных отрезков [xi-1,xi]. Сплайном Sm(x) степени m называется определенная на [a,b] функция, принадлежащая классу Cp[a,b] p

раз непрерывно дифференцируемых функций, такая, что на каждом частичном промежутке [xi-1,xi] i=1,…, n – это многочлен m-ой степени.

Разность d=m-p между степенью сплайна и наивысшим порядком непрерывной на отрезке [а,b] производной называется дефектом сплайна.

Пусть функция y=f(x) задана таблицей своих значений (1). Сплайн Sm(x) называется интерполяционным, если Sm(xi)= y(xi) для всех i= 0, 1,…, n. Значение si= S¢m(xi) называется наклоном сплайна в точке xi.

Простейший пример сплайна дает непрерывная кусочно-линейная функция, являющаяся сплайном первой степени (линейным сплайном) с дефектом, равным единице. Действительно на отрезке [а,b] сама функция (нулевая производная) непрерывна. В то же время на каждом частичном отрезке S1(x) совпадает с некоторым многочленом первой степени.

Наиболее широкое распространение на практике получили сплайны S3(x) третьей степени (кубические сплайны) с дефектом, равным 1 или 2. Такие сплайны на каждом из частичных отрезков [xi-1,xi] совпадают с кубическим многочленом. Дадим определение кубического сплайна.

Кубическим сплайном дефекта 1, интерполирующим на отрезке [а,b] данную функцию f(x), называется функция

g(x)={gi(x)=ai+bi(x-xi-1)+ci(x-xi-1)2+d i(x-xi-1)3 при xÎ[xi-1,xi] и i=1, …, n},

удовлетворяющая следующим условиям:

1. условиям интерполяции - g(xi)=fi, i=0, …, n;

2. двойной непрерывной дифференцируемостью - g(x)ÎC2[a,b];

3. краевым условиям.

Краевые условия могут быть весьма разнообразными. Можно задавать в граничных точках конкретные наклоны графика сплайна:

g¢(x0) = f ¢(a), g¢(xn) = f ¢(b)

или конкретную кривизну:

g¢¢(x0) = f ¢¢(a), g¢¢(xn) = f ¢¢(b).

Часто задают условия “свободного провисания”:

g¢¢(x0) = 0, g¢¢(xn) = 0.

Эти условия определяют так называемый естественный кубический сплайн (или чертежный сплайн).

Рассмотрим построение естественного кубического сплайна. Для этого надо найти 4n его коэффициентов { ai, bi, ci, di; i=1,…, n}. Для нахождения этих коэффициентов имеем следующие соотношения:

1. из условий интерполяции g1(x0)=f0, gi(xi)=fi, i=1,2,…, n; (уравнений (n+1))

2. непрерывность сплайна gi-1(xi-1)=gi(xi-1), i= 2, 3, …,n; (уравнений (n-1))

3. непрерывность производной g¢i-1(xi-1)=g¢i(xi-1), i= 2, …,n; (уравнений (n-1))

4. непрерывность второй производной g¢¢i-1(xi-1)=g¢¢i(xi-1), i= 2,…,n; (n-1)

5. краевые условия g¢¢1(x0)=0, g¢¢n(xn)=0. (два уравнения)

Для i-ой составляющей сплайна имеем:

gi(x)=ai+bi(x-xi)+ci(x-xi)2+d i(x-xi)3,

g¢i(x)=bi+2ci(x-xi)+3d1(x-xi)2,

g¢¢i(x)=2ci+6di(x-xi).

Полагая для краткости узлы равноотстоящими: h=xi-xi-1, i=1,2,…, n, получим детализированную систему уравнений:

a1-b1h+c1h2-d1h3=f0 , ai=fi, i=1,2,…, n;

ai-1= ai-bih+cih2-d1h3, i= 2, 3, …,n;

bi-1=bi-2cih+3dih2, i= 2, 3, …,n;

ci-1=ci-3dih, i= 2, 3, …,n;

c1-3d1h=0, сn=0.

Всего получается 4n уравнений т.е. столько же сколько и неизвестных.

Теорема о степени приближения кубическим сплайном:

Если функция f(x) принадлежит классу четырежды дифференцируемых на отрезке [а,b] функций: f(x)ÎC4[a,b], то кубический сплайн g(x) удовлетворяет неравенствам:

max½f(m)(x)-g(m)(x)½£ Kh4-m max½f(4)(x)½ при a£x£b и m=0, 1, 2;

т.е. ½f(x)-g(x)½= O(h4), ½f ¢(x)-g¢(x)½= O(h3), ½f ¢¢(x)-g¢¢(x)½= O(h2).

Замечание: Благодаря большей простоте записи естественные сплайны получили значительное распространение. Однако искусственное наложение условий f ¢¢(a)=0 и f ¢¢(b)=0 при интерполяции функций, которые этим условиям не удовлетворяют, приводит к значительной потере точности. Вместо четвертого порядка естественный сплайн обладает лишь вторым порядком точности. Если использование естественного сплайна не вызвано какими-либо специальными причинами, то следует, по-видимому, отказаться от него в пользу кубического сплайна с граничными условиями другого типа.

 

45.Метод наименьших квадратов.

При обработке результатов измерений часто возникает необходимость построить эмпирическую формулу, дающую аналитическое выражение функциональной зависимости, заданной таблицей. Использование для этого интерполяционных полиномов не всегда целесообразно, так как зачастую результаты измерений помимо основной зависимости отражают разного рода малые случайные ошибки, и точное совпадение в узлах интерполяции построенной функции с табличными значениями может даже исказить основную зависимость. В других случаях речь может идти о построении наиболее простой формулы, достаточно хорошо отражающей указанную зависимость. Пусть результаты измерений представлены совокупностью измеренных значений функции в соответствующих точках f(xi), i=0,1,…,n. Требуется найти функцию j(x) в виде некоторой эмпирической формулы, которая аппроксимирует функцию f(x), так чтобы отклонения vi=j(xi) - f(xi), i=0,1,…, nоказались бы в каком-то смысле наименьшими. Наиболее распространенным критерием малости отклонений является следующий критерий, положенный в основу способа наименьших квадратов. Требуют, чтобы оказалась минимальной сумма квадратов отклонений Будем искать аппроксимирующую функцию в виде полинома степени m: j(x) = b0+b1x+…+bmxm (bm¹0).Задача ставится следующим образом: подобрать коэффициенты полинома: b0, b1,…, bm, так чтобы сумма квадратов отклонений S достигала минимума.Заметим, что величина S является неотрицательной функцией переменных b0, b1,…, bm и, следовательно, всегда имеет минимум. Если m>n, то существует бесконечное множество полиномов степени m, обеспечивающих S=0. Для m=n равенство S=0 обеспечивается единственным полиномом, являющимся интерполяционным полиномом для заданной функции. Обычное соотношение между степенью полинома и числом узлов: m<<n, в этом случае при любых значениях коэффициентов полинома S>0. Таким образом, задача сводится к исследованию на минимум функции многих переменных S(b0, b1,…, bm). Необходимым условием минимальности S является равенство нулю производных по всем параметрам: ¶S/¶b0=0, ¶S/¶b1=0, …, ¶S/¶bm=0.

¶S/¶b0=2åni=0(b0+b1xi+…+bmxim –f(xi)),

¶S/¶b1=2åni=0(b0+b1xi+…+bmxim- f(xi))xi,

… … …

¶S/¶bm=2åni=0(b0+b1x i …+bmxim-f(xi))xim.

Преобразование уравнений дает систему, назывемую системой нормальных уравнений:

(n+1)b0+b1åni=0xi+ b2åni=0xi²+…+bmåni=0xim = åni=0f(xi)

b0åni=0xi +b1åni=0(xi)²+…+bmåni=0(xi)m+1 = åni=0xi×f(xi)

… … …

b0åni=0xim+b1åni=0xim+¹+…+bmåni=0xi²m = åni=0xim×f(xi)

Решая эту систему уравнений с симметричной матрицей, найдем коэффициенты полинома: b0,b1,…,bm. Если среди узлов нет совпадающих, то определитель системы отличен от нуля, и так как значения функции не могут быть все одновременно нулями, то система имеет единственное решение. Если известна погрешность измерения единичного значения функции - e, то величина максимального отклонения d=maxïviï (i=0,1,…, n) может служить обоснованием правильности выбора степени аппроксимирующего полинома m. Если максимальное отклонение полинома от функции много больше погрешности измерения: d>>e, то это означает слишком грубую аппроксимацию, и степень m необходимо увеличить. В противном случае - d<<e, степень m завышена и ее следует уменьшить. Только когда d»e, можно считать, что степень аппроксимирующего полинома выбрана правильно.

 

 



<== предыдущая лекция | следующая лекция ==>
Погрешность алгебраического интерполирования. | Кафедра «Информационные технологии»


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.014 сек.