2014 dxdy logo

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

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




На страницу Пред.  1, 2
 
 Re: Аппроксимация неполной гамма функции
Сообщение31.01.2012, 21:35 
Аватара пользователя
Вот что удивительно. При конкретном S легко сделать аппроксимацию. Но хорошо аппроксимировать поверхность Г(s,x) никак не удается.
С другой стороны Maple с легкостью выдает Г(s,x) с любой точностью. По какому алгоритму это делается? Может, есть уже готовая точная формула? Об этом я подумал, прежде чем изобретать велосипед.

Чем, например, плоха такая вещь:

$\Gamma(s,x)=\Gamma  \left( s \right) -{x}^{s}\sum \limits_{k=0}^{\infty }{\frac { \left( 
-x \right) ^{k}}{ \left( s+k \right) k!}}
$

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение06.02.2012, 19:54 
Аватара пользователя
А Вы уверены, что данная формула не имеет ограничений для параметров, скажем, что $s $ должен быть строго положителен?
В любом случае эта формула имеет следующие недостатки:
содержит гамма-функцию, которая также должна быть аппроксимирована, а значит выражение будет достаточно длинным. Если даже вычислять гамма-функцию с помощью пакета и брать $k=6$ формула не всегда дает удовлетворительный результат:
$\Gamma[-1.191394,4.032505]=0.000568$ и формула дает -0.077377
$\Gamma[-0.005043,5.138971]=0.000967$ и формула дает -1.679543
$\Gamma[-2.116027,10]=0.002694$ и формула дает -1.489709
$\Gamma[-1.085248,4,850975]=0.000211$ и формула дает -0.248359
Я думаю, пакеты используют формулу, на которую указал Taus в предыдущих ответах. Она годится для любых параметров. Ее недостаток-содержит обобщенные полиномы Лягерра и символ Похгаммера, то есть в общем выражение довольно громоздкое.
Я ищу формулу попроще, которая аппроксимировала бы до одной-второй цифры после запятой и имела бы простое выражение для указанного диапазона параметров $s$ и $x$
Не могли бы Вы мне написать, какая у Вас получилась аппроксимация для $s=-0.3$ и $s=-0.6$? Спасибо.

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение06.02.2012, 20:19 
Аватара пользователя
Primavera в сообщении #535823 писал(а):
Не могли бы Вы мне написать, какая у Вас получилась аппроксимация для $s=-0.3$ и $s=-0.6$? Спасибо.


Не сможет. Он заблокирован за нарушения правил форума.

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение08.02.2012, 18:46 
Возможно поможет Ю. Люк "Специальные математические функции и их аппроксимации".

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение08.02.2012, 19:55 
Нашёл представление в виде $\Gamma(\nu,x) = x^\nu e^{-x} \mathrm{U}(1,1+\nu,x)$, где $\mathrm{U}(a,b,x)$ - конфлюэнтная гипергеометрическая функция 2-го рода. Потом можно использовать разложение $$\mathrm{U}(1,1+a,x) = \left(-\dfrac{1}{a}-\dfrac{x}{a^2+a}-\dfrac{x^2}{a (a^2+3 a+2)}+O\left(x^3\right)\right)+x^{-a}\left(\Gamma(a)+\Gamma(a) x+\frac{\Gamma(a) x^2}{2}+O\left(x^3\right)\right)$$
Разложение не работает для целых отрицательных индексов.

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение08.02.2012, 22:53 
Могу попробовать генетическое программирование - для этого нужен массив значений (x, s, Г) в интересующем диапазоне аппроксимации. Критерий поиска - минимальная невязка и "кратчайшая длина формулы".

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение15.02.2012, 14:13 
Аватара пользователя
Taus, вполне подходит формула, которую я нашла по Вашей ссылке, указанной ранее, при $k=0$, она дает вполне сносный результат (большая точность, мне, собственно, и не нужна). Привожу ее здесь, может кому-нибудь тоже может быть полезной:
$\Gamma[s,x]=\dfrac{e^{-x} x^s}{1-s+x}$
Еще раз повторюсь, формула дает аппроксимацию только на диапазоне указанным при постановке задачи, и если нужна большая точность она не подходит.

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение16.02.2012, 23:42 
Более тонкая аппроксимация (при отрицательных s ) такая:

$\Gamma[s,x]=\frac{\exp(a\cdot x^b)\cdot x^{c|s|^d}}{a_0+a_1\cdot |s|^{b_1}+c_1\cdot x^{d_1}}$

$a=-1.1980462709$

$b=0.9581074929  $

$c=-0.9730070945 $

$ d=1.0084918156 $

$ a_0=0.1302703631$

$a_1=0.6569489073$

$ b_1= 1.0610897491 $

$ c_1=1.2621543763 $

$ d_1=0.5452286202$

Чтобы не было разночтений, привожу в машинных кодах:

(exp(a*x^b)*x^(c*abs(s)^d))/(a0+a1*abs(s)^b1+c1*x^d1)

Проверить аппроксимацию, увы, не было времени. Попробуйте, затем скажите.

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение17.02.2012, 11:17 
Еще на 20% удалось улучшить, но формула совсем уж сложная:

(exp(-a*x^b)*x^(-c*abs(s)^d))/(a3*(x+s)+a1*abs(s)^b1+a4*x^(c1*x^d1))

Параметры последовательно такие:

a := 1.0796113115; b := .979053228; c := .9855534807; d := 1.005113393; a3 := .4128783906; a1 := .3142317806; b1 := 1.1753905723; a4 := 1.1340149985; c1 := .4755052902; d1 := 0.728662048e-1

 
 
 
 Re: Аппроксимация неполной гамма функции
Сообщение17.02.2012, 18:15 
Аватара пользователя
 !  reg81 заблокирован как очередной клон Klad33, продолжающий те же нарушения правил форума

 
 
 [ Сообщений: 25 ]  На страницу Пред.  1, 2


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