русс | укр

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

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

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

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


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

Сплайны


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


Пусть интервал [a, b] разбит узлами xi на n отрезков, 0 £ i £ n. Сплайном Sn(x) называется функция, определенная на [a, b], принадлежащая Ck[a, b] и такая, что на каждом отрезке [xi, xi+1], 0 £ i £ n – 1 – это полином n-й степени.

В частности, это могут быть построенные специальным образом многочлены 3-й степени (кубический сплайн), которые являются математической моделью гибкого тонкого стержня, закрепленного в двух точках на концах с заданными углами наклона a и b (рис. 5.6).

 

Рис. 5.6

 

В данной физической модели стержень принимает форму, минимизирующую его потенциальную энергию. Пусть форма стержня определяется какой-то функцией y = S(x). Из курса сопротивления материалов известно, что уравнение свободного равновесия имеет вид S(IV)(x) = 0. Такому состоянию соответствует многочлен третьей степени между двумя соседними узлами интерполяции. Его выбирают в виде

S(x) = ai + bi(x xi–1) + ci(x xi–1)2 + di(x xi–1)3 ; xi–1 £ х £ xi . (5.31)

Следовательно, стоит проблема нахождения ai, bi, ci, di. Для их определения на всех элементарных участках интервала [a, b] необходимо составить 4n уравнений. Часть этих уравнений получают из условия прохождения S(x) через заданные точки, т. е.

S(xi–1) = yi–1; S(xi) = yi,

используя (5.31), эти условия можно записать в виде:

(5.32)

(5.33)

Уравнения в количестве (2n – 2) получают из условия непрерывности первых и вторых производных в узлах интерполяции.

Вычислим производные многочлена (5.31):

(x) = bi + 2ci(x xi–1) + 3di(x xi–1)2,

(x) = 2ci + 6di(x xi–1) при xi–1 £ х £ xi . (5.34)

Приравнивая в каждом внутреннем узле x = xi значения этих производных, вычисленных на концах рассматриваемого отрезка, получают (2n – 2) уравнений:

bi+1 = bi + 2hici + 3hdi ; i = 1, 2, …, n – 1; (5.35)



ci+1 = ci + 3hidi; i = 1, 2, …, n – 1. (5.36)

Оставшиеся два уравнения получают из естественного предположения условия о нулевой кривизне этой функции на концах отрезка:

(5.37)

Система, составленная из (5.32) – (5.37), решается одним из методов решения СЛАУ.

Для упрощения машинных расчетов эта система уравнений приводится к более удобному виду посредством следующего алгоритма.

1. Из условия (5.32) можно сразу найти ai.

2. Из (5.36) – (5.37) находят

(5.38)

3. После подстановки (5.38) и (5.32) в (5.33) находят коэффициенты bi:

(5.39)

4. С учетом (5.38) и (5.39) из уравнения (5.35) исключаются di и bi, тогда исходная система приводится к трехдиагональной матрице, содержащей только коэффициенты ci. Получаем систему

hi–1ci–1 + 2 (hi–1 + hi)ci + hici+1 = 3×, i = 2, 3, …, n. (5.40)

При этом c1 = 0, cn+1 = 0. Система (5.40) может быть решена методом прогонки. Зная ci по (5.38) и (5.39), определяют bi и di. Тогда кубический многочлен определяется для всех интервалов.

Пример 5.3. Составим систему (5.40). Пусть функция f(x) задана таблицей

i
x 0,1 0,15 0,19 0,25 0,28 0,30
y = f(x) 1,1052 1,1618 1,2092 1,2840 1,3231 0,3499
h - 0,05 0,04 0,06 0,03 0,02

 

Известно, что с1 = 0 и c6 = 0, остальные значения сi находим следующим образом:

0,05c1 + 0,18c2 + 0,04c3 = 3×

коэффициент при c2 получен следующим образом: 2×(0,05+0,04) = 0,18;

0,04c2 + 0,2c3 + 0,06c4 = 3×

0,06c3 + 0,18c4 + 0,03c5 = 3×

0,03c4 + 0,1c5 = 3×

В результате получим систему относительно c2, …, c5:

´ = .

Вычислив ci по (5.38), найдем di и затем по (5.39) – bi.

 

 



<== предыдущая лекция | следующая лекция ==>
Глобальная интерполяция. Рассмотрим интерполяционные многочлены Лагранжа и Ньютона. | Сглаживание результатов экспериментов


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


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

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

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


 


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

 
 

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

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