2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Приближенное вычисление интеграла от P(t)*exp(Q(t))
Сообщение20.05.2008, 22:59 


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

 Профиль  
                  
 
 
Сообщение20.05.2008, 23:10 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
В показателе экспоненты выделить полный квадрат и сделать замену переменной, чтобы в экспоненте стояла интегрируемая переменная в квадрате. После этого интеграл сведется к функции интеграла ошибки, которую можно затабуировать с заданной точностью.

 Профиль  
                  
 
 
Сообщение21.05.2008, 00:21 
Заслуженный участник


22/01/07
605
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 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Несмотря на страшный вид, видно, что в этом выражении очень много повторяющихся элементов, которые можно вычислить один раз, так что запрограммировать это не должно быть очень сложно.

 Профиль  
                  
 
 
Сообщение21.05.2008, 10:10 
Заслуженный участник


22/01/07
605
Ага, скобка с Erfi одна и та же, только надо аккуратно разобраться со случаями $b_2>0,\ =0,\ <0$. Или посчитать по отдельности эти случаи в Mathematica.

 Профиль  
                  
 
 
Сообщение21.05.2008, 10:48 


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

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

 Профиль  
                  
 
 
Сообщение21.05.2008, 11:59 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Свойства функции
$$
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 
Заслуженный участник


22/01/07
605
А в чем программировать? В Delphi или С нет разе интеграла ошибок? Я не помню, но вроде там много математических функций реализовано. А если и нет, то, возможно, есть в какой-нибудь библиотеке, уж больно функция популярная.

 Профиль  
                  
 
 
Сообщение21.05.2008, 14:07 


16/10/06
23
PAV, гран мерси! :D Это действительно конструктивно. И этот хэндбук реально рулит. Попробую его качнуть.

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


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

 Профиль  
                  
 
 
Сообщение28.05.2008, 23:13 


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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group