Участник:Валентин Голодов/Песочница

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

Перейти к: навигация, поиск

Содержание

Введение

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

Пусть требуется вычислить интеграл

( 1 )

I=\int_a^b{f(x)exp{\{\imath*\omega x\}}dx},

где \omega(b-a)\gg 1, f(x) - гладкая на отрезке [a,b] функция.
Вычисление интегралов такого рода является типичной задачей, встречающейся при разложении функций в ряды Фурье, при построении диаграмм направленности антенн и т.д.

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

Общий случай

Будем рассматривать функцию \textstyle exp{\{\imath*\omega x\}} как весовую.

Подобно интегрированию без этого весового множителя, зададимся некоторыми d_1,\ldots,d_n  \in [-1,1] и построим

интерполяционный многочлен ЛагранжаL_n(x) степени n-1, совпадающий с f(x) в точках x_j=\frac{b+a}{2}+\frac{b-a}{2}d_j, j=1,\ldots,n
и заменим исходный интеграл на
( 2 )
\int_a^b{L_n(x)exp{\{\imath*\omega x\}}dx}.
Последний интеграл vожет быть вычислен в явном виде
\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), где

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}.
Получилась квадратурная формула

\int_a^b{f(x)exp{\{\imath*\omega x\}}dx}\approx S_n^\omega(f)

с остаточным членом

R_n(f)=\int_a^b{(f(x)-L_n(x)exp{\{\imath*\omega x\}}dx}\approx S_n^\omega(f)

Как и в общей формуле Ньютона-Котеса справедлива оценка

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}, где
D(d_1,\ldots,d_n)=\int_{-1}^{+1}{\frac{ \left | \omega_n^0p^0(t)\right | } {n!}dt},
\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)

Частные случаи для некоторых значений параметров

Обычно в программах вычисления интегралов от быстро осциллирующих функций используются формулы (1) и (2), соответствующие случаям: n=3,\ d_1=-1,\ d_2=0,\ d_3=1(Формула Филона) или n=5,\ d_1=-1,\ d_2=-0.5,\ d_3=0,\ d_4=0.5,\ d_5=1 Рассчетные коэффициенты в формуле (2) для формулы Филона:

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]
D_2(z)=z^{-3}\left[4\sin(z)-4z\cos(z)\right]
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]

Недостатки метода

Если формулы (1) и (2) использовать для вычисления интергалов от функций, не являющихся сильно осциллирующими, то может возникнуть следующая ситуация. Проиллюстрируем её для n=2,\ d_1=-1,\ d_2=1. В этом случае

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,
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.

При p\rightarrow 0 имеем

\frac{p\cos p - \sin p}{p^2}= - \frac{p}{3}+O(p^3) \rightarrow 0,\  \frac{\sin p}{p} \rightarrow 1.

Таким образом, D_1(p),D_2(p)\rightarrow 1 при p\rightarrow 0.
Пусть p - малое число. Функции \sin p и p\cos p вычисляются в машине с погрешностями O(2^{-t}) и O(p2^{-t}) соответственно. Вследствие этого коэффициенты D_1(p),\ D_2(p) приобритают погрешность O(2^{-t}/p))<\tex>. При <tex>n\g 2 оказывается, что погрешность коэффициентов D_j(p), вычисляемых по формулам (1), может оказаться величиной порядка 2^{-t}/p^{n-1})). При t=30, \ n=5,\ p=0,01 такая погрешность уже недопустима.

Пример программы

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

  • Н.С.Бахвалов, Н.П.Жидков, Г.М.Кобельков.  Численные методы

М.