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 ] 

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



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

Сейчас этот форум просматривают: confabulez


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

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