LINUX.ORG.RU
ФорумTalks

Помогите проинтегрировать


0

0

Пожалуйста, помогите.

f(r) — колоколообразная функция, 
например f(r)=γ*exp(-r²/σ²) + (1-γ)/(1+r²/σ²)
xt=x1+(x2-x1)*t yt=y1+(y2-y1)*t
r=sqrt[(x-xt)²+(y-yt)²]
x1, x2, y1, y2, r0, γ, σ — константы, x и y — координаты на плоскости, t — параметр

       1                  
p(x,y)=∫f(r-r0)dt=
       0
 1
=∫f(sqrt[(x1+(x2-x1)*t-x)²+(y1+(y2-y1)*t-y)²] - r0)dt
 0

Можно ли выразить p(x,y) в более простом виде? Хотя бы для случая x1=x2, y1=-y2?

Ссылки на таблицы интегралов сгодятся. Если там такой есть.
anonymous

Во-первых, тут очень сложно чего-то понять. Попробуй сделать все константы нулями или единицами, хоть понять, какого вида интеграл. Что-то типа

\int_0^1 e^{-x^2} dx

? Тогда тебе не повезло. Такой интеграл можно вычислить в явном виде только если пределы интегрирования от минус бесконечности до бесконечности, там фокус-покус делается. А так -- только численно.

Uncle_Theodore ★★
()
Ответ на: комментарий от Uncle_Theodore

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

balodja ★★★
()
Ответ на: комментарий от Uncle_Theodore

> Попробуй сделать все константы нулями или единицами

f(r)=γ*exp(-r²/σ²) + (1-γ)/(1+r²/σ²)

       1                  
p(x,y)=∫f(r-r0)dt=
       0
 1
=∫f(sqrt[(1+t-x)²+(1+t*t-y)²] - 1)dt=
 0

 1
=∫exp(-[sqrt[(1+t-x)²+(1+t-y)²] - 1)]²)dt+
 0

 1
+∫1/(1+[[sqrt[(1+t-x)²+(1+t-y)²] - 1)]²)
 0 

> только численно.

Можно и численно, но желательно, чтобы считалось быстро. Как-то упростить можно? Или свести к быстро вычисляемым неэлементарным функциям?

anonymous
()
Ответ на: комментарий от balodja

> криволинейный интеграл вдоль отрезка прямой.

Верно, забыл сказать. Суммируются кольца с колоколообразным профилем, центры колец расположены на отрезке.

> Можно только выразить через функцию ошибок.

Можно подробнее?

anonymous
()
Ответ на: комментарий от anonymous

>+∫1/(1+[[sqrt[(1+t-x)²+(1+t-y)²] - 1)]²)
 

Правильный вариант: 


 1
+∫1/(1+[sqrt[(1+t-x)²+(1+t-y)²] - 1]²) dt
 0

anonymous
()
Ответ на: комментарий от anonymous

>=∫exp(-[sqrt[(1+t-x)²+(1+t-y)²] - 1)]²)dt+

правильнее

 1
=∫exp(-[sqrt[(1+t-x)²+(1+t-y)²] - 1]²)dt+
 0

 1
+∫1/(1+[sqrt[(1+t-x)²+(1+t-y)²] - 1]²) dt
 0

спросонья в скобках запутался.

anonymous
()
Ответ на: комментарий от stpg

> http://ru.wikipedia.org/wiki/Список_интегралов

Спасибо, но, похоже, там то же, что и в таблицах Двайта, с которых я начал.

http://integrals.wolfram.com/ первый интеграл посчитать не смог, для второго сказал "слишком долго, скачайте Mathematica".

anonymous
()
Ответ на: комментарий от anonymous

После замены lx=x2-x1 ly=y2-y1 Mathematica (студенческая версия) выдала следующее:

первый интеграл:

Integrate[γ*Exp[-((x1 + lx*t - x)^2 + (y1 + ly*t - y)^2)/σ^2], {t, 0, 1}]

γ*σ*Sqrt[π]*

*Exp[ - (( ly*(x-x1) - lx*(y-y1) )^2) / ((lx^2 + ly^2)*σ^2)]*

* ( Erf[ ( lx*(x-x1) + ly*(y-y1) ) / (σ*Sqrt[ lx^2+ly^2 ]) ] +

+ Erf[ ( lx*(lx+x1-x) + ly*(ly-y+y1) ) / ( σ*Sqrt[ lx^2+ly^2]) ] ) /

/ (2*Sqrt[lx^2+ly^2])

                       z  
где Erf[z] = 2/Sqrt[π]*∫exp[t^2]dt
                       0

второй интеграл:

Integrate[(1-γ)/(1+( (x1+lx*t-x)^2 + (y1+ly*t-y)^2 )/σ^2), {t, 0, 1}]

(-1+γ)*σ^2*
* ( ArcTan[ ( lx*(x1-x) + ly*(y1-y) )/K ] +
  + ArcTan[ ( lx*(x2-x) + ly*(y2-y) )/K ] )/K

где K=Sqrt[ -2*lx*ly*(x-x1)*(y-y1) + ly^2*(x^2-2*x*x1+x1^2+σ^2) + lx^2*(y^2-2*y*y1+y1^2+σ^2) ]

В общем, стоило потратить сутки на её скачивание.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.