русс | укр

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

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

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

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


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

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


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


Пусть задана таблица значений функции yi в узлах х0 < х1 < ... < хп.Обозначим hi = xi – xi-1, i = 1, 2, ... , п.

Сплайн– гладкая кривая, проходящая через задан­ные точки (хi, yi), i = 0, 1, ... , п. Интерполяция сплай­нами заключается в том, что на каждом отрезке [хi-1, xi]используется многочлен определенной степени. Наиболее часто применяется многочлен третьей степени, реже – второй или четвертой. При этом для определения коэффициентов многочленов используются условия непре­рывности производных в узлах интерполяции.

Интерполяция кубическими сплайнамипредставляет собой локальную интерполяцию, когда на каждом отрез­ке [хi-1, xi], i = 1, 2, ... , п применяется кубическая кри­вая, удовлетворяющая некоторым условиям гладкости, а именно, непрерывности самой функции и ее первой и вто­рой производных в узловых точках. Использование куби­ческой функции вызвано следующими соображениями. Если предположить, что интерполяционная кривая соот­ветствует упругой линейке, закрепленной в точках (хi, yi),то из курса сопротивления материалов известно, что эта кривая определяется как решение дифференциального уравнения f(IV)(x) = 0 на отрезке [хi-1, xi](для простоты из­ложения мы не рассматриваем вопросы, связанные с физи­ческими размерностями). Общим решением такого уравне­ния является многочлен 3-й степени с произвольными коэффициентами, который удобно записать в виде
Si(x) = аi + bi(х - xi-1) + сi(x - xi-1)2+ di(x - xi-1)3,
хi-1 £ х £ хi, i = 1, 2, ... , п.(4.32)

Коэффициенты функций Si(x)определяются из усло­вий непрерывности функции и ее первой и второй произ­водных во внутренних узлах xi, i = 1, 2,..., п - 1.

Из формул (4.32) при х = хi-1 получим

Si(xi-1) = yi-1 = ai, i = 1, 2,..., п,(4.33)

а при х = хi

Si(xi) = аi + bihi + сihi2+ dihi3,(4.34)

i = 1, 2,..., n.



Условия непрерывности интерполяционной функции записываются в виде Si(xi) = Si-1(xi), i = 1, 2, ... , n - 1 и из условий (4.33) и (4.34) следует, что они выполнимы.

Найдем производные функции Si(x):

S'i(x) = bi + 2сi(х - xi-1) + 3di(хxi-1)2,

S"i(x) = 2ci + 6di(x - xi-1).

При x = xi-1, имеем S'i(xi-1) = bi, S" (xi-1) = 2сi, а при х = хi получим

S'i(xi) = bi + 2сihi + 3dihi2, S" (xi) = 2сi + 6dihi.

Условия непрерывности производных приводят к уравнениям

S'i(xi) = S'i+1(xi) Þ bi + 2сihi + 3dihi2 = bi+1,

i = l, 2,... , п - 1. (4.35)

S"i (xi) = S"i+1(xi) Þ 2сi + 6dihi = 2ci+1,

i = l, 2,..., n - 1. (4.36)

Всего имеем 4n – 2 уравнений для определения 4n не­известных. Чтобы получить еще два уравнения, исполь­зуют дополнительные краевые условия, например, требо­вание нулевой кривизны интерполяционной кривой в концевых точках, т. е. равенства нулю второй производ­ной на концах отрезка [а, b] а = х0, b = хn:

S"1(x0) = 2c1 = 0 Þ с1 = 0,

S"n(xn) = 2сn + 6dnhn = 0 Þ сn + 3dnhn = 0. (4.37)

Систему уравнений (4.33)–(4.37) можно упростить и получить рекуррентные формулы для вычисления коэф­фициентов сплайна.

Из условия (4.33) имеем явные формулы для вычисле­ния коэффициентов ai:

ai = yi-1, i= 1,..., n. (4.38)

Выразим di через ci с помощью (4.36), (4.37):

; i = 1, 2,...,n; .

Положим сn+1= 0, тогда для di получим одну формулу:

, i = 1, 2,...,n. (4.39)

Подставим выражения для аi и di в равенство (4.34):

, i = 1, 2,..., n.

и выразим bi, через сi:

, i = 1, 2,..., n. (4.40)

Исключим из уравнений (4.35) коэффициенты bi и di с помощью (4.39) и (4.40):

,

i = 1, 2,..., n -1.

Отсюда получим систему уравнений для определения сi:

(4.41)

Система уравнений (4.41) может быть переписана в виде

(4.42)

Здесь введено обозначение

, i =1, 2,..., n - 1.

Решим систему уравнений (4.42) методом прогонки. Из первого уравнения выразим с2через с3:

c2 = a2c3 + b2, , . (4.43)

Подставим (4.43) во второе уравнение (4.42):

h2(a2c3 + b2) + 2(h2 + h3)c3 + h3c4 = g2,

и выразим с3 через с4:

с3 = a3с4 + b3, (4.44)

Предполагая, что сi-1= ai-1ci + bi-1 из i-го уравне­ния (4.42) получим

ci = aiсi+1 + bi

, i = 3,..., n – 1, an = 0, (4.45)

, i = 3,..., n.

Сформулируем алгоритм интерполяции с помощью кубического сплайна.

Исходные данные: значения функции у0, у1,..., уп в узлах х0, х1,..., хп (х0 < х1< ... < хn).

0. Вычислим значения hi и gi:

hi = xi – xi-1 i = 1, 2,..., n,

, i =1, 2,..., n - 1. (4.46)

1. Прямой ход прогонки для вычисления коэффици­ентов ci. Вычислим коэффициенты прогонки ai и bi:

, ,

, i = 3,..., n – 1, an = 0, (4.47)

, i = 3,..., n.

2. Обратный ход прогонки для вычисления коэффици­ентов сi. Вычислим коэффициенты ci:

cn+1 = 0,

ci = aiсi+1 + bi, i = n, n -1,..., 2, (4.48)

c1 = 0.

3. Вычисление коэффициентов аi, bi, di:

ai = yi-1,

, (4.49)

i = 1, 2,..., n.



4. Вычисление значения функции с помощью сплай­на. Для этого найти такое значение i,что данное значе­ние переменной х принадлежит отрезку [xi-1, xi] и вы­числить

Si(x) = аi + bi(х - xi-1) + сi(x - xi-1)2+ di(x - xi-1)3. (4.50)



<== предыдущая лекция | следующая лекция ==>
Остаточный член интерполяционной формулы Лагранжа | Аппроксимация. Метод наименьших квадратов


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


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

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

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


 


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

 
 

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

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