2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Приближенное вычисление интеграла от P(t)*exp(Q(t))
Сообщение20.05.2008, 22:59 
Столкнулся с следующей проблемой: в приложении надо считать определенный интеграл вида
$$\int_{0}^{1}P_2(t)\exp(Q_2(t))dt,$$
где $P_2(t)$ и $Q_2(t)$ - полиномы второй степени. Понятно, что в неопределенной форме это не интегрируется. При этом считать интеграл чисто численно не хочется по некоторой причине - хочется иметь аналитическую формулу, которая даст результат с оцениваемой погрешностью.
Будут ли идеи, с какой стороны к такому вообще подступиться? У меня с ходу не получилось...

 
 
 
 
Сообщение20.05.2008, 23:10 
Аватара пользователя
В показателе экспоненты выделить полный квадрат и сделать замену переменной, чтобы в экспоненте стояла интегрируемая переменная в квадрате. После этого интеграл сведется к функции интеграла ошибки, которую можно затабуировать с заданной точностью.

 
 
 
 
Сообщение21.05.2008, 00:21 
Mathematica для интеграла $$\int_0^1e^{b_2 x^2+b_1 x+b_0} \left(a_2 x^2+a_1 x+a_0\right) dx$$ дает ответ
$$(8 b_2^{5/2})^{-1}{e^{b_0-\frac{b_1^2}{4 b_2}} \left(4 e^{\frac{b_1^2}{4 b_2}} \left(-1+e^{b_1+b_2}\right) a_1 b_2^{3/2}+2 \sqrt{\pi } \left(\text{erfi}\left(\frac{b_1}{2
   \sqrt{b_2}}\right)-\text{erfi}\left(\frac{b_1+2 b_2}{2 \sqrt{b_2}}\right)\right) \left(a_1 b_1-2 a_0 b_2\right) b_2+a_2 \left(\sqrt{\pi }
   \left(\text{erfi}\left(\frac{b_1+2 b_2}{2 \sqrt{b_2}}\right)-\text{erfi}\left(\frac{b_1}{2 \sqrt{b_2}}\right)\right) b_1^2-2 e^{\frac{b_1^2}{4 b_2}}
   \left(-1+e^{b_1+b_2}\right) \sqrt{b_2} b_1+4 e^{\frac{\left(b_1+2 b_2\right){}^2}{4 b_2}} b_2^{3/2}+2 \sqrt{\pi } \left(\text{erfi}\left(\frac{b_1}{2
   \sqrt{b_2}}\right)-\text{erfi}\left(\frac{b_1+2 b_2}{2 \sqrt{b_2}}\right)\right) b_2\right)\right)}$$ :)

 
 
 
 
Сообщение21.05.2008, 08:29 
Аватара пользователя
Несмотря на страшный вид, видно, что в этом выражении очень много повторяющихся элементов, которые можно вычислить один раз, так что запрограммировать это не должно быть очень сложно.

 
 
 
 
Сообщение21.05.2008, 10:10 
Ага, скобка с Erfi одна и та же, только надо аккуратно разобраться со случаями $b_2>0,\ =0,\ <0$. Или посчитать по отдельности эти случаи в Mathematica.

 
 
 
 
Сообщение21.05.2008, 10:48 
Ммм... Ясен пень, что все можно свести к интегралу ошибки (и, собственно, Mathematica это и сделала), но это все же табуированная функция. А мне бы какую-нибудь формулу попроще, т.к. результаты этого счета надо использовать как входные данные для еще нескольких "слоев" интегрирования.

Хотя если пойти по пути использования erfi, то надо научиться как-то оценивать интеграл от нее ($\int_a^b\text{erfi}(t)dt$). Это тоже для меня загадка...

 
 
 
 
Сообщение21.05.2008, 11:59 
Аватара пользователя
Свойства функции
$$
erf(x)=\frac{2}{\sqrt{\pi}}\int\limits_0^x e^{-t^2}\,dt
$$
описаны в "Справочнике по специальным функциям" изд. 1979 (перевод книги Abramowitz M., Stegun I.A. — Handbook of Mathematical Functions)

Там, в частности, приводятся аппроксимации рациональными функциями, например:
$$
erf(x) = 1 - (a_1t+a_2t^2+a_3t^3)e^{-x^2}+\varepsilon(x),
$$
где $t = \frac{1}{1+px}$, $p=0.47047$, $a_1=0.3480242$, $a_2=-0.0958798$, $a_3=0.7478556$, $|\varepsilon(x)|<2.5\cdot 10^{-5}$, $0\le x<\infty$.

Есть и более точные аппроксимации.

Что же касается интеграла, то там же приведена первообразная:
$$
\int erf(x)\,dx = x\cdot erf(x) + \frac{1}{\sqrt{\pi}}e^{-x^2}+C
$$
так что интегрирование этой функции выражается через нее же.

 
 
 
 
Сообщение21.05.2008, 12:28 
А в чем программировать? В Delphi или С нет разе интеграла ошибок? Я не помню, но вроде там много математических функций реализовано. А если и нет, то, возможно, есть в какой-нибудь библиотеке, уж больно функция популярная.

 
 
 
 
Сообщение21.05.2008, 14:07 
PAV, гран мерси! :D Это действительно конструктивно. И этот хэндбук реально рулит. Попробую его качнуть.

Видимо, это решение меня удовлетворит. Если нет, напишу еще. :)


Gafield, пишу пока на Матлабе - там все эти функции есть. Но в хэлпе сказано, что они считаются численно по какому-то очень продвинутому методу. Вероятно, для меня это будет и медленно, и превышением точности.

 
 
 
 
Сообщение28.05.2008, 23:13 
Дабы не плодить лишних веток, задам свой вопрос тут же (да и он сходен с предыдущим):

В общем, надо банально интегрировать полином, заданный в виде набора корней (ну, т.е. $P(t)=\prod\limits_{i=1}^{n}(t-a_i)$). Понятно, что можно раскрыть произведение, привести члены и элементарно проинтегрировать, но аналитические выражения будут получаться громоздкие и с ними будет неудобно работать (особенно если учесть, что степень полинома $n$ у меня плавает в больших пределах). Нету ли какого-то стандартного приема, позволяющего получить более компактные формулы для первообразной?

 
 
 [ Сообщений: 10 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group