2014 dxdy logo

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

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




 
 Генерация случайных величин с фиксированной суммой
Сообщение14.11.2012, 20:00 
Нужно сгенерировать $n$ неотрицательных случайных величин, чтобы их сумма равнялась заданному числу $s$. Предполагается, что каждая величина должна удовлетворять ограничению $a_i\leq x_i\leq b_i$ и кончик вектора, компоненты которого равны этим величинам, равномерно распределен на поверхности полученного многогранника.

Здесь (http://www.mathworks.com/matlabcentral/ ... hange/9700) есть решение для $a\leq x_i\leq b$.

На его основании можно сгенерировать числа c ограничениями вида $x_i\geq b_i$. Например, если задача задана так $x_1\geq0.1; x_2\geq 0.2; x_3\geq 0.3; x_1+x_2+x_3=1$, то ее можно решить, сгенерив три числа при ограничениях $0\leq x_i'\leq 0.4, x_1'+x_2'+x_3'=0.4$, а затем приняв $x_1=x_1'+0.1, x_2=x_2'+0.2, x_3=x_3'+0.3.$

Ну вот как сделать, когда у каждой переменной есть еще и верхняя граница, никак не соображу :-( . Может быть Вы догадаетесь.

 
 
 
 Re: Генерация случайных величин с фиксированной суммой
Сообщение14.11.2012, 20:09 
Аватара пользователя
Чем описанная там задача отличается от Вашей? Там у каждой переменной есть нижняя граница. И верхняя есть. И условие фиксированной суммы.

 
 
 
 Re: Генерация случайных величин с фиксированной суммой
Сообщение14.11.2012, 20:13 
В моей задаче границы свои для каждой переменной: там $a\leq x_i\leq b$, а у меня $a_i\leq x_i\leq b_i$.

 
 
 
 Re: Генерация случайных величин с фиксированной суммой
Сообщение14.11.2012, 20:26 
Аватара пользователя
Ну дак кто мешает полученную величину потом линейно преобр
Чёрт. Вот чёрт, а.

-- Ср, 2012-11-14, 21:27 --

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

 
 
 
 Re: Генерация случайных величин с фиксированной суммой
Сообщение14.11.2012, 20:40 
Аватара пользователя
pierrevanstulov в сообщении #644669 писал(а):
В моей задаче границы свои для каждой переменной: там $a\leq x_i\leq b$, а у меня $a_i\leq x_i\leq b_i$.

Значит, отличие только в том, что усложнится поиск координат вершин "треугольников" (симплексов), на которые разбивается область.

 
 
 
 Re: Генерация случайных величин с фиксированной суммой
Сообщение14.11.2012, 20:45 
О грубом методе я уже думал, но если интервал варьирования некоторой величины достаточно мал, то он будет давать очень много "холостых" ходов. А мне генерить точки нужно очень быстро (в районе $1000$ точек не более чем за секунду). Хотяяяяяя. Надо потестить.

Главное удивительно, что для нижних границ (пусть они и разные) решение получается так легко, а вот если будет задано $x_i\leq b_i$ (пусть даже и без нижних), ничего не удается придумать.

-- Ср ноя 14, 2012 20:56:26 --

TOTAL в сообщении #644687 писал(а):
pierrevanstulov в сообщении #644669 писал(а):
В моей задаче границы свои для каждой переменной: там $a\leq x_i\leq b$, а у меня $a_i\leq x_i\leq b_i$.

Значит, отличие только в том, что усложнится поиск координат вершин "треугольников" (симплексов), на которые разбивается область.


Просто очень не хочется пилить метод внутри. Неужели не получится обойтись внешними "костылями"? :-(

 
 
 [ Сообщений: 6 ] 


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