2014 dxdy logo

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

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


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


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 оценить сложность алгоритма
Сообщение08.02.2017, 18:53 


08/02/17
6
N[Integrate[
PDF[BetaDistribution[\alpha1, \beta1], x] \cdot 
CDF[BetaDistribution[\alpha2, \beta2], x], {x, 0, 1}]]
Выражение решает задачу сравнения двух рекламных объявлений со стороны Байесовской статистики и вероятностного вывода.
Это формула записана в терминах Mathematica.
N[expr] — численно вычислить выражение expr.
Integrate[f, {x, xmin, xmax}] — интеграл функции f по х в интервале от xmin до xmax.
PDF[dist, x] — функция плотности вероятности для распределения dist в точке x.
CDF[dist,x] — функция распределения случайной величины для распределения dist в точке x.
BetaDistribution[alfa, beta] — непрерывное бета-распределение с параметрами alfa, beta.
При больших параметрах alfa, beta (>1000) расчет занимает очень большое время(>часа), в связи с чем появилась необходимость оценки сложности алгоритма. с какой стороны подойти - не знаю :facepalm:

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение08.02.2017, 19:16 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
nattasha, пожалуйста, перепишите выражения Wolfram Language, обрамляя их в тег [tt].

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение09.02.2017, 08:41 


08/02/17
6
N[Integrate[
PDF[BetaDistribution[alpha1, beta1], x]
CDF[BetaDistribution[alpha2, beta2], x], {x, 0, 1}]]

Выражение решает задачу сравнения двух рекламных объявлений со стороны Байесовской статистики и вероятностного вывода.
Это формула записана в терминах Mathematica.
N[expr] — численно вычислить выражение expr.
Integrate[f, {x, xmin, xmax}] — интеграл функции f по х в интервале от xmin до xmax.
PDF[dist, x] — функция плотности вероятности для распределения dist в точке x.
CDF[dist,x] — функция распределения случайной величины для распределения dist в точке x.
BetaDistribution[alfa, beta] — непрерывное бета-распределение с параметрами alfa, beta.
При больших параметрах alpha, beta (>1000) расчет занимает очень большое время(>часа), в связи с чем появилась необходимость оценки сложности алгоритма. с какой стороны подойти - не знаю :facepalm:

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение09.02.2017, 11:23 
Заслуженный участник


25/02/11
1786
Причем тут оценка сложности алгоритма? Видимо, математика не может применять стандартные быстрые процедуры вычисления для таких больших значений параметров, а в интеграле этих значений надо много. Вот и все. Однако можно получить точный ответ:
$$
\frac{\Gamma \left(\alpha _2\right) \Gamma \left(\alpha _1+\alpha _2\right)
   \Gamma \left(\beta _1\right) \, _3\tilde{F}_2\left(\alpha _2,\alpha _1+\alpha_2,1-\beta _2;\alpha _2+1,\alpha _1+\alpha_2+\beta _1;1\right)}{B\left(\alpha_1,\beta _1\right) B\left(\alpha _2,\beta _2\right)},
$$
(Gamma[Subscript[\[Alpha], 2]]* Gamma[Subscript[\[Alpha], 1] + Subscript[\[Alpha], 2]]*
Gamma[Subscript[\[Beta], 1]]*HypergeometricPFQRegularized[{Subscript[\[Alpha], 2],
Subscript[\[Alpha], 1] + Subscript[\[Alpha], 2], 1 - Subscript[\[Beta], 2]}, {Subscript[\[Alpha], 2] + 1,
Subscript[\[Alpha], 1] + Subscript[\[Alpha], 2] + Subscript[\[Beta], 1]}, 1])/
(Beta[Subscript[\[Alpha], 1], Subscript[\[Beta], 1]]* Beta[Subscript[\[Alpha], 2], Subscript[\[Beta], 2]])

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение23.02.2017, 14:40 


08/02/17
6
Возможно ли это реализовать на javascript? Данное вычисление должно использоваться в калькуляторе на сайте

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение23.02.2017, 15:16 
Заслуженный участник


27/04/09
28128
Нет, нельзя. Формулы для вычисления гамма-, бета- и гипергеометрических функций с любой точностью до сих пор неизвестны математике. Пример кода для вычисления можете посмотреть в любой математической библиотеке с открытым исходным кодом. Например, бета и гамма есть в Math.NET Numerics. Гипергеометрические функции вообще по определению являются рядами, хотя об их сходимости я ничего не знаю, и, возможно, для каких-то аргументов их надо вычислять по-другому.

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение23.02.2017, 15:23 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
В библиотеке SciPy всё это, кажись, есть.

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение23.02.2017, 15:38 


08/02/17
6
Спасибо большое, буду разбираться!

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение25.03.2017, 16:37 


08/02/17
6
Как это вычислить, не понимаю совсем:( может быть кто-то подскажет, хотя бы на псевдокоде?
Раньше с js и кодированием матстата не сталкивалась(((

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение25.03.2017, 17:18 
Заслуженный участник


25/02/11
1786
Если ограничиться целыми значениями параметров, то получится вроде как конечная сумма (из-за того, что $1-\beta_2<0$ - число слагаемых будет около $\beta_2$) и рациональный ответ. Если число слагаемых порядка тысячи, то факториалы большие получатся. Но, учитывая, что члены гипергеометрического ряда можно вычислять рекуррентно и сократив все факториалы по максимуму, может и выйдет с таким числом слагаемых приемлемую точность получать.

 Профиль  
                  
 
 Re: оценить сложность алгоритма
Сообщение28.03.2017, 19:52 


08/02/17
6
не совсем поняла про HypergeometricPFQRegularized. Насколько я нагуглила, гипергеометрическая функция принимает 4 параметра. hypgeom.cdf( x, N, m, n )
нашла библиотеку, которая способна вычислить PDF и CDF, но как вычислить интеграл от их произведения пока не поняла. Может посоветуете какой-то вычислительный метод?
так же в библиотеке реализованы функции hypgeom.pdf( k, N, m, n ) и hypgeom.cdf( x, N, m, n ). возможно ли через них рассчитать HypergeometricPFQRegularized ?


Vince Diesel в сообщении #1191026 писал(а):
Причем тут оценка сложности алгоритма? Видимо, математика не может применять стандартные быстрые процедуры вычисления для таких больших значений параметров, а в интеграле этих значений надо много. Вот и все. Однако можно получить точный ответ:
$$
\frac{\Gamma \left(\alpha _2\right) \Gamma \left(\alpha _1+\alpha _2\right)
   \Gamma \left(\beta _1\right) \, _3\tilde{F}_2\left(\alpha _2,\alpha _1+\alpha_2,1-\beta _2;\alpha _2+1,\alpha _1+\alpha_2+\beta _1;1\right)}{B\left(\alpha_1,\beta _1\right) B\left(\alpha _2,\beta _2\right)},
$$
(Gamma[Subscript[\[Alpha], 2]]* Gamma[Subscript[\[Alpha], 1] + Subscript[\[Alpha], 2]]*
Gamma[Subscript[\[Beta], 1]]*HypergeometricPFQRegularized[{Subscript[\[Alpha], 2],
Subscript[\[Alpha], 1] + Subscript[\[Alpha], 2], 1 - Subscript[\[Beta], 2]}, {Subscript[\[Alpha], 2] + 1,
Subscript[\[Alpha], 1] + Subscript[\[Alpha], 2] + Subscript[\[Beta], 1]}, 1])/
(Beta[Subscript[\[Alpha], 1], Subscript[\[Beta], 1]]* Beta[Subscript[\[Alpha], 2], Subscript[\[Beta], 2]])

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

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



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

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


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

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