Применение сплайнов для численного интегрирования
Материал из MachineLearning.
(Новая: == Введение == === Постановка математической задачи === == Изложение метода == == Анализ метода и ошибок == == Ч...) |
(Добавил основную часть теории) |
||
Строка 1: | Строка 1: | ||
== Введение == | == Введение == | ||
- | === | + | |
+ | Ставится задача вычислить интеграл вида | ||
+ | {{eqno |1}} | ||
+ | ::<tex>J=\int_a^bf(t)dt,</tex> | ||
+ | где <tex>a</tex> и <tex>b</tex> - нижний и верхний пределы интегрирования; <tex>f(t)</tex> - непрерывная функция на отрезке <tex>[a,b]</tex>. | ||
+ | |||
+ | Введем на отрезке интегрирования равномерную сетку, определим значения функции в узлах сетки. Пусть имеется совокупность узлов | ||
+ | <tex>\left\{{t_i}\right\}_{i = 0}^{N},\; t_i = a + i{\tau},\; {\tau}= (b - a)/{N}, \;t \in \left[{a, b}\right].</tex> | ||
+ | Пусть также задана таблица | ||
+ | <tex>f_i = \left\{{f(t_i)}\right\}_{i = 0}^{N}.</tex> | ||
+ | Представим интеграл {{eqref|1}} в виде суммы интегралов по частичным отрезкам: | ||
+ | {{eqno|2}} | ||
+ | ::<tex>\int_a^bf(t)dt=\sum_{i=1}^N\;\int_{t_{i-1}}^{t_i}f(t)dt.</tex> | ||
+ | |||
+ | Сущность большинства методов вычисления определенных интегралов состоит в замене подынтегральной функции <tex>f(t)</tex> на отрезке <tex>[t_{i-1},\;t_i]</tex> аппроксимирующей функцией <tex>\varphi(t)</tex>, для которой можно легко записать первообразную в элементарных функциях, т.е. | ||
+ | {{eqno |3}} | ||
+ | ::<tex>\int_{t_{i-1}}^{t_i}f(t)dt=\int_{t_{i-1}}^{t_i}\varphi(t)dt+R=S+R,</tex> | ||
+ | где S - приближеное значение интеграла; R - погрешность вычисления интеграла. Лучше всего изучена замена <tex>f(t)</tex> алгебраическим многочленом. | ||
+ | |||
== Изложение метода == | == Изложение метода == | ||
+ | |||
+ | Возьмем в {{eqref|3}} в качестве аппроксимирующей функции кубический сплайн: | ||
+ | {{eqno |4}} | ||
+ | ::<tex>\int_a^bf(t)dt \approx \sum_{i=1}^N\;\int_{t_{i-1}}^{t_i}\varphi_i(t)dt,</tex> где | ||
+ | |||
+ | <tex>\varphi_i(t) = a_i+b_i(t-t_{i-1})+c_i(t - t_{i-1})^2 + d_i(t - t_{i-1})^3, \; t \in [t_{i-1},\;t_i]. </tex> | ||
+ | |||
+ | Коэффициенты вычисляются по следующим формулам: | ||
+ | {{eqno|5}} | ||
+ | <tex> a_i=f_{i-1}</tex> | ||
+ | |||
+ | <tex>b_i=\frac{f_i-f_{i-1}}{\tau}\;-\;\frac{\tau(2c_i+c_{i+1})}{3}</tex> | ||
+ | |||
+ | <tex>c_{i-1}+4c_i+c_{i+1}=3\left(\frac{f_i-2f_{i-1}+f_{i-2}}{\tau^2}\right); \;\;c_1=0</tex> | ||
+ | |||
+ | <tex>d_i=\frac{c_{i+1}-c_i}{3\tau}</tex> | ||
+ | |||
+ | Тогда интеграл {{eqref|4}} запишется как сумма интегралов от сплайнов: | ||
+ | |||
+ | ::<tex>J=\int_a^bf(t)dt \approx \sum_{i=1}^N\;\int_{t_{i-1}}^{t_i}\varphi_i(t)dt=\sum_{i=1}^N\left(a_i\tau+{b_i\over2}\tau^2+{c_i\over3}\tau^3+{d_i\over4}\tau^4\right).</tex> | ||
+ | |||
+ | Последняя формула упрощается при подстановке в неё выражений {{eqref|5}} для коэффициентов <tex>a_i,\;b_i, \; d_i:</tex> | ||
+ | |||
+ | <tex>J \;\approx \;\sum_{i=1}^n\;\frac{f_i+f_{i-1}}{2}\tau\;-\;\sum_{i=1}^n\;\frac{\tau^3(c_{i+1}+c_i)}{12}</tex> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
== Анализ метода и ошибок == | == Анализ метода и ошибок == | ||
+ | <!--у Буслова про поправочный член в трапециях--> | ||
== Числовой пример == | == Числовой пример == | ||
== Рекомендации программисту == | == Рекомендации программисту == | ||
+ | <!-- У Богдана интересная хрень про заданную точность --> | ||
== Заключение == | == Заключение == | ||
+ | <!-- В Мудрове есть че-то на 158 стр --> | ||
+ | == Ссылки == | ||
+ | * [[Практикум ММП ВМК, 4й курс, осень 2008|Практикум ММП ВМК, 4й курс, осень 2008]] | ||
== Список литературы == | == Список литературы == | ||
+ | * http://www.intuit.ru/department/calculate/calcmathbase/7/1.html | ||
+ | * http://mathalgo.blogspot.com/2007/11/blog-post.html | ||
+ | * ''Бабенко К.И'' Основы численного анализа М.: Наука, 1986. | ||
+ | * Мудров | ||
+ | * Буслов | ||
- | + | <!--не забыть про ссылки и норм. лит-ру --> | |
{{stub}} | {{stub}} | ||
[[Категория:Численное интегрирование]] | [[Категория:Численное интегрирование]] |
Версия 15:11, 16 октября 2008
Содержание |
Введение
Ставится задача вычислить интеграл вида
где и - нижний и верхний пределы интегрирования; - непрерывная функция на отрезке .
Введем на отрезке интегрирования равномерную сетку, определим значения функции в узлах сетки. Пусть имеется совокупность узлов Пусть также задана таблица Представим интеграл (1) в виде суммы интегралов по частичным отрезкам:
Сущность большинства методов вычисления определенных интегралов состоит в замене подынтегральной функции на отрезке аппроксимирующей функцией , для которой можно легко записать первообразную в элементарных функциях, т.е.
где S - приближеное значение интеграла; R - погрешность вычисления интеграла. Лучше всего изучена замена алгебраическим многочленом.
Изложение метода
Возьмем в (3) в качестве аппроксимирующей функции кубический сплайн:
- где
Коэффициенты вычисляются по следующим формулам:
Тогда интеграл (4) запишется как сумма интегралов от сплайнов:
Последняя формула упрощается при подстановке в неё выражений (5) для коэффициентов
Анализ метода и ошибок
Числовой пример
Рекомендации программисту
Заключение
Ссылки
Список литературы
- http://www.intuit.ru/department/calculate/calcmathbase/7/1.html
- http://mathalgo.blogspot.com/2007/11/blog-post.html
- Бабенко К.И Основы численного анализа М.: Наука, 1986.
- Мудров
- Буслов