Участник:Валентин Голодов/Песочница
Материал из MachineLearning.
(6 промежуточных версий не показаны.) | |||
Строка 6: | Строка 6: | ||
<p align="center"><tex>I=\int_a^b{f(x)exp{\{\imath*\omega x\}}dx},</tex></p> | <p align="center"><tex>I=\int_a^b{f(x)exp{\{\imath*\omega x\}}dx},</tex></p> | ||
где <tex>\omega(b-a)\gg 1,</tex> <tex>f(x)</tex> - гладкая на отрезке <tex>[a,b]</tex> функция.<br /> | где <tex>\omega(b-a)\gg 1,</tex> <tex>f(x)</tex> - гладкая на отрезке <tex>[a,b]</tex> функция.<br /> | ||
- | + | Вычисление интегралов такого рода является типичной задачей, встречающейся при разложении функций в [[ряды Фурье]], при построении диаграмм направленности антенн и т.д. | |
== Изложение метода == | == Изложение метода == | ||
=== Общий случай === | === Общий случай === | ||
Строка 12: | Строка 12: | ||
Подобно интегрированию без этого весового множителя, зададимся некоторыми <tex>d_1,\ldots,d_n \in [-1,1]</tex> и построим | Подобно интегрированию без этого весового множителя, зададимся некоторыми <tex>d_1,\ldots,d_n \in [-1,1]</tex> и построим | ||
- | [[интерполяционный многочлен Лагранжа]]<tex>L_n(x)</tex> степени <tex>n-1,</tex> совпадающий с <tex>f(x)</tex> в точках <tex>x_j=\frac{b+a}{2}+\frac{b-a}{2}d_j,</tex> <tex>j=1,\ldots,n</tex> и заменим исходный интеграл на {{ eqno | 2 }}<tex>\int_a^b{L_n(x)exp{\{\imath*\omega x\}}dx}.</tex> <br /> Последний интеграл vожет быть вычислен в явном виде | + | [[интерполяционный многочлен Лагранжа]]<tex>L_n(x)</tex> степени <tex>n-1,</tex> совпадающий с <tex>f(x)</tex> в точках <tex>x_j=\frac{b+a}{2}+\frac{b-a}{2}d_j,</tex> <tex>j=1,\ldots,n</tex> <br /> и заменим исходный интеграл на {{ eqno | 2 }}<tex>\int_a^b{L_n(x)exp{\{\imath*\omega x\}}dx}.</tex> <br /> Последний интеграл vожет быть вычислен в явном виде |
::<tex>\int_a^b{L_n(x)exp{\{\imath*\omega x\}}dx}=S_n^\omega(f)=\frac{b-a}{2}exp{\left\{\imath\omega \frac{b+a}{2}\right\}}\sum_{j=0}^{n}D_j\left(\omega \frac{b-a}{2}\right)f(x_j),</tex> где | ::<tex>\int_a^b{L_n(x)exp{\{\imath*\omega x\}}dx}=S_n^\omega(f)=\frac{b-a}{2}exp{\left\{\imath\omega \frac{b+a}{2}\right\}}\sum_{j=0}^{n}D_j\left(\omega \frac{b-a}{2}\right)f(x_j),</tex> где | ||
<tex>D_j=\int_{-1}^{+1}{\left(\prod_{k\neq j}{\frac{\xi-d_k}{d_j-d_k}} \right)exp{\left\{\imath p\xi \right\}}d\xi}.</tex> <br /> | <tex>D_j=\int_{-1}^{+1}{\left(\prod_{k\neq j}{\frac{\xi-d_k}{d_j-d_k}} \right)exp{\left\{\imath p\xi \right\}}d\xi}.</tex> <br /> | ||
Строка 20: | Строка 20: | ||
::<tex>R_n(f)=\int_a^b{(f(x)-L_n(x)exp{\{\imath*\omega x\}}dx}\approx S_n^\omega(f)</tex> | ::<tex>R_n(f)=\int_a^b{(f(x)-L_n(x)exp{\{\imath*\omega x\}}dx}\approx S_n^\omega(f)</tex> | ||
Как и в общей формуле [[Ньютона-Котеса]] справедлива оценка | Как и в общей формуле [[Ньютона-Котеса]] справедлива оценка | ||
- | ::<tex>R_n(f)\leq\int_a^b{\left | (f(x)-L_n(x))\right | dx}\leq D(d_1,\ldots,d_n)\left(\max_{[a,b]}{ \left|{f^{(n)}(x)\right | | + | ::<tex>R_n(f)\leq\int_a^b{\left | (f(x)-L_n(x))\right | dx}\leq D(d_1,\ldots,d_n)\left(\max_{[a,b]}{ \left|{f^{(n)}(x)\right | \right){\left(\frac{b-a}{2}\right)}^{n+1},</tex> где |
- | ::<tex>D(d_1,\ldots,d_n)=\int_-1^+1{\frac{ \left | \omega_n^0p^0(t)\right | } {n!}dt},</tex> | + | ::<tex>D(d_1,\ldots,d_n)=\int_{-1}^{+1}{\frac{ \left | \omega_n^0p^0(t)\right | } {n!}dt},</tex> |
- | ::<tex>\omega_n^0p^0(t)=(t-d_1)\ldots(t-d_n), | + | ::<tex>\omega_n^0p^0(t)=(t-d_1)\ldots(t-d_n),\ p^0(t)=p\left(\frac{b+a}{2}+\frac{b-a}{2}t \right)</tex> |
+ | |||
=== Частные случаи для некоторых значений параметров === | === Частные случаи для некоторых значений параметров === | ||
- | Обычно в программах вычисления интегралов от быстро осциллирующих функций используются формулы {{eqref|1}} и {{eqref|2}}, соответствующие случаям: <tex>n=3,d_1=-1,d_2=0,d_3=1 | + | Обычно в программах вычисления интегралов от быстро осциллирующих функций используются формулы {{eqref|1}} и {{eqref|2}}, соответствующие случаям: <tex>n=3,\ d_1=-1,\ d_2=0,\ d_3=1</tex>''(Формула Филона)'' или <tex>n=5,\ d_1=-1,\ d_2=-0.5,\ d_3=0,\ d_4=0.5,\ d_5=1</tex> |
Рассчетные коэффициенты в формуле {{eqref|2}} для ''формулы Филона'': | Рассчетные коэффициенты в формуле {{eqref|2}} для ''формулы Филона'': | ||
- | ::<tex>D_1(z)=z^-3\left[2z\cos(z)-\sin(z)\left(2- | + | ::<tex>D_1(z)=z^{-3}\left[2z\cos(z)-\sin(z)\left(2-z^2\right)+\imath \left(z^2\cos(z)-z sin(z) \right) \right]</tex> |
- | ::<tex>D_2(z)=z^-3\left[4\sin(z)-4z | + | ::<tex>D_2(z)=z^{-3}\left[4\sin(z)-4z\cos(z)\right]</tex> |
- | ::<tex>D_3(z)=z^-3\left[2z\cos(z)+sin(z) \left(z^2-2 \right )+\imath \left(z sin(z) - z^2 cos( | + | ::<tex>D_3(z)=z^{-3}\left[2z\cos(z)+sin(z) \left(z^2-2 \right )+\imath \left(z sin(z) - z^2 cos(z) \right) \right]</tex> |
- | + | == Недостатки метода == | |
+ | Если формулы {{eqref|1}} и {{eqref|2}} использовать для вычисления интергалов от функций, не являющихся сильно осциллирующими, то может возникнуть следующая ситуация. Проиллюстрируем её для <tex>n=2,\ d_1=-1,\ d_2=1.</tex> В этом случае | ||
+ | ::<tex>D_1(p)=\int_{-1}^{+1}{ \frac{1-\xi}{2} exp{\{\imath*p \xi\}} d\xi}=\frac{\sin p}{p}+\frac{p\cos p - \sin p}{p^2} \imath,</tex> | ||
+ | ::<tex>D_2(p)=\int_{-1}^{+1}{ \frac{1+\xi}{2} exp{\{\imath*p \xi\}} d\xi}=\frac{\sin p}{p}-\frac{p\cos p - \sin p}{p^2} \imath.</tex> <br /> | ||
+ | При <tex>p\rightarrow 0</tex> имеем | ||
+ | ::<tex>\frac{p\cos p - \sin p}{p^2}= - \frac{p}{3}+O(p^3) \rightarrow 0,\ \frac{\sin p}{p} \rightarrow 1.</tex> <br /> | ||
+ | Таким образом, <tex>D_1(p),D_2(p)\rightarrow 1 при p\rightarrow 0.</tex> <br /> | ||
+ | Пусть <tex>p</tex> - малое число. Функции <tex>\sin p</tex> и <tex>p\cos p</tex> вычисляются в машине с погрешностями <tex>O(2^{-t}) и O(p2^{-t})</tex> соответственно. Вследствие этого коэффициенты <tex>D_1(p),\ D_2(p)</tex> приобритают погрешность <tex>O(2^{-t}/p))<\tex>. При <tex>n\g 2</tex> оказывается, что погрешность коэффициентов <tex>D_j(p)</tex>, вычисляемых по формулам {{eqref|1}}, может оказаться величиной порядка <tex>2^{-t}/p^{n-1}))</tex>. При <tex>t=30, \ n=5,\ p=0,01</tex> такая погрешность уже недопустима. | ||
+ | == Пример программы == | ||
+ | |||
== Список литературы == | == Список литературы == | ||
* ''Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков.'' Численные методы | * ''Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков.'' Численные методы | ||
Строка 36: | Строка 46: | ||
{{stub}} | {{stub}} | ||
- | |||
- |
Текущая версия
Содержание |
Введение
Постановка задачи
Пусть требуется вычислить интеграл
где - гладкая на отрезке функция.
Вычисление интегралов такого рода является типичной задачей, встречающейся при разложении функций в ряды Фурье, при построении диаграмм направленности антенн и т.д.
Изложение метода
Общий случай
Будем рассматривать функцию как весовую.
Подобно интегрированию без этого весового множителя, зададимся некоторыми и построим
интерполяционный многочлен Лагранжа степени совпадающий с в точкахи заменим исходный интеграл на
Последний интеграл vожет быть вычислен в явном виде
- где
Получилась квадратурная формула
с остаточным членом
Как и в общей формуле Ньютона-Котеса справедлива оценка
- где
Частные случаи для некоторых значений параметров
Обычно в программах вычисления интегралов от быстро осциллирующих функций используются формулы (1) и (2), соответствующие случаям: (Формула Филона) или Рассчетные коэффициенты в формуле (2) для формулы Филона:
Недостатки метода
Если формулы (1) и (2) использовать для вычисления интергалов от функций, не являющихся сильно осциллирующими, то может возникнуть следующая ситуация. Проиллюстрируем её для В этом случае
При имеем
Таким образом,
Пусть - малое число. Функции и вычисляются в машине с погрешностями соответственно. Вследствие этого коэффициенты приобритают погрешность оказывается, что погрешность коэффициентов , вычисляемых по формулам (1), может оказаться величиной порядка . При такая погрешность уже недопустима.
Пример программы
Список литературы
- Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков. Численные методы
М.