Методы парабол (Симпсона) и более высоких степеней (Ньютона - Котеса)
Материал из MachineLearning.
м (категория) |
|||
Строка 4: | Строка 4: | ||
:Задача численного интегрирования состоит в нахождении приближенного значения интеграла | :Задача численного интегрирования состоит в нахождении приближенного значения интеграла | ||
- | {{ | + | {{ eqno | 1 }} |
- | + | ::<tex>J[f]=\int_a^b{f(x)dx}, </tex> | |
- | + | ||
- | + | ||
где <tex>f(x)</tex> - заданная и интегрируемая на отрезке <tex>[a,b]</tex> функция. На отрезке вводится сетка <tex>\omega=\{x_i:x_0=a<x_1<\ldots<x_i<\ldots<x_N=b\}</tex> и в качестве приближенного значения интеграла рассматривается число | где <tex>f(x)</tex> - заданная и интегрируемая на отрезке <tex>[a,b]</tex> функция. На отрезке вводится сетка <tex>\omega=\{x_i:x_0=a<x_1<\ldots<x_i<\ldots<x_N=b\}</tex> и в качестве приближенного значения интеграла рассматривается число | ||
- | {{ | + | {{ eqno | 2 }} |
- | + | ::<tex>J_N[f]=\sum_{i=0}^N {c_i f(x_i)},</tex> | |
- | + | ||
- | + | ||
- | где <tex>f(x_i)</tex> - значения функции <tex>f(x)</tex> в узлах <tex>x=x_i</tex> , где <tex>c_i</tex> - ''весовые множители'', зависящие только от узлов, но не зависящие от выбора <tex>f(x)</tex>. Формула | + | где <tex>f(x_i)</tex> - значения функции <tex>f(x)</tex> в узлах <tex>x=x_i</tex> , где <tex>c_i</tex> - ''весовые множители'', зависящие только от узлов, но не зависящие от выбора <tex>f(x)</tex>. Формула {{eqref|2}} называется ''квадратурной формулой''. |
:Задача численного интегрирования при помощи квадратур состоит в отыскании таких узлов <tex>\{x_i\}</tex> и таких весов <tex>\{c_i\}</tex>, чтобы ''погрешность квадратурной формулы'' | :Задача численного интегрирования при помощи квадратур состоит в отыскании таких узлов <tex>\{x_i\}</tex> и таких весов <tex>\{c_i\}</tex>, чтобы ''погрешность квадратурной формулы'' | ||
- | + | ::<tex>D[f]=\sum_{i=0}^N{c_i f(x_i)} - \int_a^b{f(x)dx} = J_N[f] - J[f]</tex> | |
- | + | ||
- | + | ||
- | + | ||
была минимальной по модулю для функции из заданного класса (величина <tex>D[f]</tex> зависит от гладкости <tex>f(x)</tex>). Погрешность зависит как от расположения узлов, так и от выбора весовых коэффициентов. | была минимальной по модулю для функции из заданного класса (величина <tex>D[f]</tex> зависит от гладкости <tex>f(x)</tex>). Погрешность зависит как от расположения узлов, так и от выбора весовых коэффициентов. | ||
- | Введем на <tex>[a,b]</tex> ''равномерную сетку с шагом <tex>h</tex>'', т.е. множество точек <tex>\omega_h=\{x_i=a+ih, i=0,1,\ldots,N,hN=b-a}</tex>, и представим интеграл | + | Введем на <tex>[a,b]</tex> ''равномерную сетку с шагом <tex>h</tex>'', т.е. множество точек <tex>\omega_h=\{x_i=a+ih, i=0,1,\ldots,N,hN=b-a}</tex>, и представим интеграл {{eqref|1}} в виде суммы интегралов по частичным отрезкам: |
- | {{ | + | {{ eqno | 3 }} |
- | | | + | ::<tex>\int_a^b{f(x)dx}=\sum_{i=1}^N{\int_{x_{i-1}}^{x_i}{f(x)dx}}.</tex> |
- | + | ||
- | + | ||
Для построения формулы численного интегрирования на всм отрезке <tex>[a,b]</tex> достаточно построить квадратурную формулу для интеграла | Для построения формулы численного интегрирования на всм отрезке <tex>[a,b]</tex> достаточно построить квадратурную формулу для интеграла | ||
- | {{ | + | {{ eqno | 4 }} |
- | + | ::<tex>\int_{x_{i-1}}^{x_i}{f(x)dx}</tex> | |
- | + | ||
- | + | ||
- | на частичном отрезке <tex>[x_{i-1},x_i]</tex> и воспользоваться свойством | + | на частичном отрезке <tex>[x_{i-1},x_i]</tex> и воспользоваться свойством {{eqref|3}}. |
=== Построение квадратурных формул === | === Построение квадратурных формул === | ||
Строка 45: | Строка 34: | ||
:В силу вышеизложенного выше, вычисление приближенного значения интеграла производится при помощи квадратурной формулы | :В силу вышеизложенного выше, вычисление приближенного значения интеграла производится при помощи квадратурной формулы | ||
- | + | ::<tex>\int_a^b{f(s)ds}\approx\sum_{k=0}^m{c_kf(s_k)}.</tex> | |
Данную формулу при помощи замены <tex>x=a+(b-a)s, f(x)=f(a+(b-a)s)</tex> можно привести к стандартному виду | Данную формулу при помощи замены <tex>x=a+(b-a)s, f(x)=f(a+(b-a)s)</tex> можно привести к стандартному виду | ||
- | {{ | + | {{ eqno | 5 }} |
- | | | + | ::<tex>\int_0^1{f(s)ds}\approx\sum_{k=0}^m{c_kf(s_k)}.</tex> |
- | + | ||
- | + | ||
В общем случае узлы и веса неизвестны и подлежат определению. | В общем случае узлы и веса неизвестны и подлежат определению. | ||
- | Рассмотрим случай, когда узлы заданы и требуется найти веса квадратурной формулы <tex>\{c_k\}</tex>. Будем пользоваться требованием: формула | + | Рассмотрим случай, когда узлы заданы и требуется найти веса квадратурной формулы <tex>\{c_k\}</tex>. Будем пользоваться требованием: формула {{eqref|5}} должна быть точной для любого полинома <tex>P_r(s)</tex> степени <tex>r\le m</tex>. Для того чтобы полином степени <tex>r</tex> удовлетворял данному требованию, достаточно потребовать, чтобы квадратурная формула была точной для любого одночлена <tex>s^\sigma</tex> степени <tex>\sigma (\sigma=0,1,\ldots,r)</tex>. Учитывая, что <tex>J[s^\sigma]=\frac{1}{\sigma+1}</tex>, получаем <tex>m+1</tex> уравнение |
- | + | ::<tex>c_0+c_1+\ldots+c_m=1,</tex> | |
- | + | ::<tex>c_0 s_0+c_1 s_1+\ldots+c_m s_m=\frac{1}{2},</tex> | |
- | + | ::<tex>.........................................</tex> | |
- | + | ::<tex>c_0 s_0^\sigma + c_1 s_1^\sigma + \ldots + c_m s_m^\sigma=\frac{1}{\sigma+1},</tex> | |
- | + | ::<tex>.........................................</tex> | |
- | + | ::<tex>c_0 s_0^m + c_1 s_1^m + \ldots + c_m s_m^m=\frac{1}{m+1}.</tex> | |
Эта система имеет единственное решение, так как ее определителем является определитель Вандермонда, отличный от нуля если нет совпадающих узлов, <tex>s_0<s_q<\ldots<s_m</tex>. | Эта система имеет единственное решение, так как ее определителем является определитель Вандермонда, отличный от нуля если нет совпадающих узлов, <tex>s_0<s_q<\ldots<s_m</tex>. | ||
Строка 77: | Строка 64: | ||
Так, полагая <tex>m=2,s_0=0,s_1=\frac{1}{2},s_2=1</tex>, имеем систему <tex>c_0+c_1+c_2=1, \frac{c_1}{2}+c_2=\frac{1}{2}, \frac{c_1}{4}+c_2=\frac{1}{3}</tex>, решением которой являются веса '''формулы Симпсона''': <tex>c_0=c_2=\frac{1}{6},c_1=\frac{4}{6}</tex>. Таким образом, формула Симпсона является точной для полинома второй степени. Однако, в силу симметрии, она является точной и для всех полиномов третьей степени: | Так, полагая <tex>m=2,s_0=0,s_1=\frac{1}{2},s_2=1</tex>, имеем систему <tex>c_0+c_1+c_2=1, \frac{c_1}{2}+c_2=\frac{1}{2}, \frac{c_1}{4}+c_2=\frac{1}{3}</tex>, решением которой являются веса '''формулы Симпсона''': <tex>c_0=c_2=\frac{1}{6},c_1=\frac{4}{6}</tex>. Таким образом, формула Симпсона является точной для полинома второй степени. Однако, в силу симметрии, она является точной и для всех полиномов третьей степени: | ||
- | + | ::<tex>P_3(s)=1+\alpha_1 (s-\frac{1}{2})+\alpha_2 (s-\frac{1}{2})^2 +\alpha_3 (s-\frac{1}{2})^3,</tex> | |
так как она точна для <tex>f(s)=(s-\frac{1}{2})^3</tex>: | так как она точна для <tex>f(s)=(s-\frac{1}{2})^3</tex>: | ||
- | + | ::<tex>J_2[(s-\frac{1}{2})^3]=\frac{1}{6}((-\frac{1}{2})^3+4\cdot 0+(\frac{1}{2})^3)=0,</tex> | |
- | + | ::<tex>L[(s-\frac{1}{2})^3]=\int_0^1{(s-\frac{1}{2})^3ds}=0.</tex> | |
Формулы [[Методы прямоугольников и трапеций|треугольника и трапеции]] точны для линейной функции,т.е. для полинома первой степени, в чем легко убедиться непосредственно. В общем случае в качестве <tex>P_m(s)</tex> можно выбрать интерполяционный полином Лагранжа | Формулы [[Методы прямоугольников и трапеций|треугольника и трапеции]] точны для линейной функции,т.е. для полинома первой степени, в чем легко убедиться непосредственно. В общем случае в качестве <tex>P_m(s)</tex> можно выбрать интерполяционный полином Лагранжа | ||
- | + | ::<tex>P_m(s)=\sum_{k=0}^m{l_k^{(m)}(s)f(s_k)},</tex> | |
где <tex>l_k^{(m)}(s)</tex> - интерполяционный коэффициент Лагранжа. Из равенства | где <tex>l_k^{(m)}(s)</tex> - интерполяционный коэффициент Лагранжа. Из равенства | ||
- | + | ::<tex>L[P_m]=\int_0^1{P_m(s)ds}=\sum_{k=0}^m{f(s_k)\int_0^1{l_k^{(m)}(s)ds}}=\sum_{k=0}^m{c_k f(s_k)}</tex> | |
- | видно, что формула | + | видно, что формула {{eqref|5}} верна для полинома степени <tex>m</tex>, если весовые коэффициенты <tex>c_k</tex> определяются по формуле |
- | {{ | + | {{ eqno | 6 }} |
- | + | ::<tex>c_k=\int_0^1{l_k^{(m)}(s)ds}.</tex> | |
- | + | ||
- | + | ||
Формулы такого типа называют квадратурными '''формулами Котеса'''. | Формулы такого типа называют квадратурными '''формулами Котеса'''. | ||
Строка 106: | Строка 91: | ||
*для 3 точек(метод Симпсона), <tex>m=2:</tex> | *для 3 точек(метод Симпсона), <tex>m=2:</tex> | ||
- | + | ::<tex>J_2[f]=\frac{1}{3}h(f_0+4f_1+f_2),</tex> | |
- | + | ::<tex>c_0=c_2=\frac{1}{6},c_1=\frac{4}{6}.</tex> | |
*для 4 точек, <tex>m=3:</tex> | *для 4 точек, <tex>m=3:</tex> | ||
- | + | ::<tex>J_3[f]=\frac{3}{8}h(f_0+3f_1+3f_2+f_3),</tex> | |
- | + | ::<tex>c_0=c_3=\frac{1}{8},c_1=c_2=\frac{3}{8}.</tex> | |
*для 5 точек, <tex>m=4:</tex> | *для 5 точек, <tex>m=4:</tex> | ||
- | + | ::<tex>J_4[f]=\frac{2}{45}h(7f_0+32f_1+12f_2+32f_3+7f_4),</tex> | |
- | + | ::<tex>c_0=c_4=\frac{7}{90},c_1=c_3=\frac{32}{90},c_2=\frac{12}{90}.</tex> | |
*для 6 точек, <tex>m=5:</tex> | *для 6 точек, <tex>m=5:</tex> | ||
- | + | ::<tex>J_5[f]=\frac{5}{288}h(19f_0+75f_1+50f_2+50f_3+75f_4+19f_5),</tex> | |
*для 7 точек, <tex>m=6:</tex> | *для 7 точек, <tex>m=6:</tex> | ||
- | + | ::<tex>J_6[f]=\frac{1}{140}h(41f_0+216f_1+27f_2+272f_3+27f_4+216f_5+41f_6),</tex> | |
*для 8 точек, <tex>m=7:</tex> | *для 8 точек, <tex>m=7:</tex> | ||
- | + | ::<tex>J_7[f]=\frac{7}{17280}h(751f_0+3577f_1+1323f_2+2989f_3+2989f_4+1323f_5+3577f_6+751f_7),</tex> | |
*для 9 точек, <tex>m=8:</tex> | *для 9 точек, <tex>m=8:</tex> | ||
- | + | ::<tex>J_8[f]=\frac{4}{14175}h(989f_0+5888f_1-928f_2+10496f_3-4540f_4+10496f_5-928f_6+5888f_7+989f_8),</tex> | |
*для 10 точек, <tex>m=9:</tex> | *для 10 точек, <tex>m=9:</tex> | ||
- | + | ::<tex>J_9[f]=\frac{9}{89600}h(2857f_0+15741f_1+1080f_2+19344f_3+5778f_4+5778f_5+19344f_6+1080f_7+15741f_8+2857f_9).</tex> | |
- | + | ||
- | + | ||
- | + | ||
== Изложение метода == | == Изложение метода == |
Версия 14:25, 2 октября 2008
Содержание |
Введение
Постановка математической задачи
- Задача численного интегрирования состоит в нахождении приближенного значения интеграла
где - заданная и интегрируемая на отрезке функция. На отрезке вводится сетка и в качестве приближенного значения интеграла рассматривается число
где - значения функции в узлах , где - весовые множители, зависящие только от узлов, но не зависящие от выбора . Формула (2) называется квадратурной формулой.
- Задача численного интегрирования при помощи квадратур состоит в отыскании таких узлов и таких весов , чтобы погрешность квадратурной формулы
была минимальной по модулю для функции из заданного класса (величина зависит от гладкости ). Погрешность зависит как от расположения узлов, так и от выбора весовых коэффициентов. Введем на равномерную сетку с шагом , т.е. множество точек , и представим интеграл (1) в виде суммы интегралов по частичным отрезкам:
Для построения формулы численного интегрирования на всм отрезке достаточно построить квадратурную формулу для интеграла
на частичном отрезке и воспользоваться свойством (3).
Построение квадратурных формул
- В силу вышеизложенного выше, вычисление приближенного значения интеграла производится при помощи квадратурной формулы
Данную формулу при помощи замены можно привести к стандартному виду
В общем случае узлы и веса неизвестны и подлежат определению.
Рассмотрим случай, когда узлы заданы и требуется найти веса квадратурной формулы . Будем пользоваться требованием: формула (5) должна быть точной для любого полинома степени . Для того чтобы полином степени удовлетворял данному требованию, достаточно потребовать, чтобы квадратурная формула была точной для любого одночлена степени . Учитывая, что , получаем уравнение
Эта система имеет единственное решение, так как ее определителем является определитель Вандермонда, отличный от нуля если нет совпадающих узлов, .
Так, полагая , имеем систему , решением которой являются веса формулы Симпсона: . Таким образом, формула Симпсона является точной для полинома второй степени. Однако, в силу симметрии, она является точной и для всех полиномов третьей степени:
так как она точна для :
Формулы треугольника и трапеции точны для линейной функции,т.е. для полинома первой степени, в чем легко убедиться непосредственно. В общем случае в качестве можно выбрать интерполяционный полином Лагранжа
где - интерполяционный коэффициент Лагранжа. Из равенства
видно, что формула (5) верна для полинома степени , если весовые коэффициенты определяются по формуле
Формулы такого типа называют квадратурными формулами Котеса.
Примеры квадратурных формул
- Приведем примеры квадратурных формул Котеса на равнемерной сетке с шагом , где обозначим :
- для 3 точек(метод Симпсона),
- для 4 точек,
- для 5 точек,
- для 6 точек,
- для 7 точек,
- для 8 точек,
- для 9 точек,
- для 10 точек,
Изложение метода
Анализ метода
Числовой пример
Рекомендации программисту
Заключение
Список литературы
- А.А.Самарский, А.В.Гулин. Численные методы М.: Наука, 1989.
- А.А.Самарский. Введение в численные методы М.: Наука, 1982.
- http://mathworld.wolfram.com/Newton-CotesFormulas.html