Экстраполяция Ричардсона, оценки по Рунге и Эйткену, вычисление интегралов с заданной точностью

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Изложение метода)
(орфография, категория)
Строка 20: Строка 20:
:<tex>\int\limits_a^b f(x)\,dx=\sum_{k=0}^n c_k f(x_k)</tex>
:<tex>\int\limits_a^b f(x)\,dx=\sum_{k=0}^n c_k f(x_k)</tex>
-
называется <i>квадратурной формулой</i>, а сумма вида {{eqref|2}} - <i>квадартурной суммой</i>. Точки <tex>x_i</tex> называются <i>узлами квадратурной формулы</i>.
+
называется <i>квадратурной формулой</i>, а сумма вида {{eqref|2}} - <i>квадратурной суммой</i>. Точки <tex>x_i</tex> называются <i>узлами квадратурной формулы</i>.
Разность
Разность
Строка 32: Строка 32:
Предположим, что для вычисления интеграла {{eqref|1}} отрезок <tex>[a, b]</tex> разбит на <tex>N</tex> равных отрезков длины
Предположим, что для вычисления интеграла {{eqref|1}} отрезок <tex>[a, b]</tex> разбит на <tex>N</tex> равных отрезков длины
-
<tex>h = \frac{b-a}N</tex> и на каждом частичном отрезке применяется одна и та жа квадратурная формула. Тогда исходный интеграл <tex>I</tex>
+
<tex>h = \frac{b-a}N</tex> и на каждом частичном отрезке применяется одна и та же квадратурная формула. Тогда исходный интеграл <tex>I</tex>
-
заменяется некоторой квадратурной суммой <tex>I_h</tex>, причем возникающая погрешность зависит от шага сетки <tex>h</tex>.
+
заменяется некоторой квадратурной суммой <tex>I_h</tex>, причём возникающая погрешность зависит от шага сетки <tex>h</tex>.
-
Для некоторых квадратурных формул удается получить разложение погрешности <tex>I_h - I</tex> по степеням <tex>h</tex>. Предположим,
+
Для некоторых квадратурных формул удаётся получить разложение погрешности <tex>I_h - I</tex> по степеням <tex>h</tex>. Предположим,
что для данной квадратурной суммы <tex>I_h</tex> существует разложение:
что для данной квадратурной суммы <tex>I_h</tex> существует разложение:
Строка 45: Строка 45:
:<tex>I(\frac{h}{r}) = I_0 + a_1\,\frac{h^{\alpha _1}}{r^{\alpha 1}} + a_2\,\frac{h^{\alpha _2}}{r^{\alpha 2}} + \ldots</tex>
:<tex>I(\frac{h}{r}) = I_0 + a_1\,\frac{h^{\alpha _1}}{r^{\alpha 1}} + a_2\,\frac{h^{\alpha _2}}{r^{\alpha 2}} + \ldots</tex>
-
Чтобы избавиться от степени <tex>h^{\alpha _1}</tex>, составляющей ошибку (ибо среди всех слагаемых, составляющих ошибку, слагамое при <tex>h^{\alpha _1}</tex> является наибольшим), вычислим величину <tex>r^{\alpha _1}\,I(\frac{h}r) - I(h)</tex>. Имеем:
+
Чтобы избавиться от степени <tex>h^{\alpha _1}</tex>, составляющей ошибку (ибо среди всех слагаемых, составляющих ошибку, слагаемое при <tex>h^{\alpha _1}</tex> является наибольшим), вычислим величину <tex>r^{\alpha _1}\,I(\frac{h}r) - I(h)</tex>. Имеем:
:<tex>r^{\alpha _1}\,I(\frac{h}{r}) - I(h) = r^{\alpha _1}\,I_0 - I_0 + a_1 h^{\alpha _1} - a_1 h^{\alpha _1} + a_2\,\frac{h^{\alpha _2}}{r^{\alpha _2 - \alpha _1}} - a_2 h^{\alpha _2} + \ldots</tex>
:<tex>r^{\alpha _1}\,I(\frac{h}{r}) - I(h) = r^{\alpha _1}\,I_0 - I_0 + a_1 h^{\alpha _1} - a_1 h^{\alpha _1} + a_2\,\frac{h^{\alpha _2}}{r^{\alpha _2 - \alpha _1}} - a_2 h^{\alpha _2} + \ldots</tex>
Строка 99: Строка 99:
{{stub}}
{{stub}}
[[Категория:Численное интегрирование]]
[[Категория:Численное интегрирование]]
 +
[[Категория:Учебные задачи]]

Версия 19:53, 19 октября 2008

Содержание

Введение

Постановка математической задачи

Задача численного интегрирования состоит в приближенном нахождении значения интеграла

( 1)
I = \int\limits_a^b f(x)\,dx,

где 
f(x) 
- заданная и интегрируемая на   [a, b] функция. В качестве приближенного значения рассматривается число

( 2)
I_n=\sum_{i=0}^n c_k f(x_k),

где c_k - числовые коэффициенты и x_k - точки отрезка [a,b],  k = 0, 1, \ldots, n . Приближенное равенство

\int\limits_a^b f(x)\,dx=\sum_{k=0}^n c_k f(x_k)

называется квадратурной формулой, а сумма вида (2) - квадратурной суммой. Точки x_i называются узлами квадратурной формулы. Разность

\Psi _n = \int\limits_a^b f(x)\,dx-\sum_{k=0}^n c_k f(x_k)

называется погрешностью квадратурной формулы. Погрешность зависит как от расположения узлов, так и от выбора коэффициентов.

Изложение метода

Общие сведения

Предположим, что для вычисления интеграла (1) отрезок [a, b] разбит на N равных отрезков длины h = \frac{b-a}N и на каждом частичном отрезке применяется одна и та же квадратурная формула. Тогда исходный интеграл I заменяется некоторой квадратурной суммой I_h, причём возникающая погрешность зависит от шага сетки h. Для некоторых квадратурных формул удаётся получить разложение погрешности I_h - I по степеням h. Предположим, что для данной квадратурной суммы I_h существует разложение:

( 3)
I_h = I_0 + a_1 h^{\alpha _1} + a_2 h^{\alpha _2} + \ldots + a_m h^{\alpha _m} + O(h^{\alpha _{m+1}}),

где 0 < \alpha _1 < \alpha _2 < \ldots < \alpha _m < \alpha _{m+1} и коэффициенты \{ a_i \} \subset \mathbb{R} не зависят от h. При этом величины \{ \alpha _i \} \subset \mathbb{R} предполагаются известными. Теперь предположим:

I(\frac{h}{r}) = I_0 + a_1\,\frac{h^{\alpha _1}}{r^{\alpha 1}} + a_2\,\frac{h^{\alpha _2}}{r^{\alpha 2}} + \ldots

Чтобы избавиться от степени h^{\alpha _1}, составляющей ошибку (ибо среди всех слагаемых, составляющих ошибку, слагаемое при h^{\alpha _1} является наибольшим), вычислим величину r^{\alpha _1}\,I(\frac{h}r) - I(h). Имеем:

r^{\alpha _1}\,I(\frac{h}{r}) - I(h) = r^{\alpha _1}\,I_0 - I_0 + a_1 h^{\alpha _1} - a_1 h^{\alpha _1} + a_2\,\frac{h^{\alpha _2}}{r^{\alpha _2 - \alpha _1}} - a_2 h^{\alpha _2} + \ldots

Отсюда

I_1(h) = \frac{r^{\alpha _1}I(\frac{h}r) - I(h)}{r^{\alpha _1} - 1} = I_0 + a_2\,\frac{r^{\alpha _1 - \alpha _2} - 1}{r^{\alpha _1} - 1}\,h^{\alpha _2} + \ldots

то есть имеем более точное приближение к интегралу I.

Таким образом, рекуррентную формулу можно записать в виде:

I_{i+1}(h) = I_i(\frac{h}r) + \frac{I_i(\frac{h}r) - I_i(h)}{r^{\alpha _1} - 1}

Заметим, что r - величина, на которую мы делим размер шага при каждом новом вычислении I. Разумно положить s = 2, т.к. большие значения s могут вызвать резкое увеличение количества вычислений.

Для наглядности представим процесс экстраполирования следующей таблицей:


\line(1, 0){200}

I_0^{0}(h)
I_0^{1}(\frac{h}r) I_1^{0}(h)
I_0^{2}(\frac{h}{r^2}) I_1^{1}(\frac{h}r) I_2^{0}(h)
\vdots \vdots \vdots \ddots

\line(1,0){200}

Анализ метода

Числовой пример

Рекомендации программисту

Заключение

Список литературы

Личные инструменты