2014 dxdy logo

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

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



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


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Численное нахождение верхнего предела интеграла
Сообщение02.12.2014, 03:53 


27/05/13
6
Всем привет !

Известна функция плотности распределения $p(t)$. Необходимо моделировать СВ распределенные по этому закону.
В арсенале имеется только генератор случайных чисел языка программирования, который выдает равномерно распределенные на (0,1) числа.
Идея следующая :
1) разбить отрезок [a,b], на котором определена функция распределения, на n частей так, чтобы вероятности "попадания" в каждую часть были постоянными.
2) дальше с помощью равномерно распределенных СВ генерировать величины с распределением $p(t)$.

Задача в том, чтобы отыскать $a = a_0 < a_1 < ... < a_n = b$$.
Так как вероятность попадания в каждый из интервалов $(a_k, a_{k+1})$ одинаковая, то все сводится к решению следующей задачи (отысканию $a_{k+1}$) :

$\frac{1}{n} = \int\limits_{a_k}^{x}p(t)dt$

ВОПРОС : как отыскать верхний предел интеграла ЧИСЛЕННО ?

Буду благодарен за идеи, названия методов или литературу по теме.

 Профиль  
                  
 
 Re: Численное нахождение верхнего предела интеграла
Сообщение02.12.2014, 10:47 
Заслуженный участник
Аватара пользователя


11/03/08
5252
Москва
Ну, например, решать дифур $y'=p(x)$ любым численным методом, запоминая моменты (вернее, значения x) достижения y значений $\frac i n$ (при необходимости интерполируя между соседними точками)

 Профиль  
                  
 
 Re: Численное нахождение верхнего предела интеграла
Сообщение03.12.2014, 11:24 
Заслуженный участник


11/05/08
31004
Стандартно (причём формально точно) это генерируется безо всяких разбиений, методом "приём-отклонение". Генерируется пара равномерно распределённых чисел $x\in[a;b]$ и $y\in[0;m]$, где $m$ -- максимальное значение плотности. Затем проверяется, будет ли $y<p(x)$. Если да, то $x$ принимается в качестве очередного сгенерированного; в противном случае генерируется очередная пара. В типичной ситуации доля брака -- порядка 50%, что в высшей степени эффективно; если же у плотности есть острый пик, то можно подумать об оптимизации этого процесса.

 Профиль  
                  
 
 Re: Численное нахождение верхнего предела интеграла
Сообщение04.12.2014, 14:27 
Заслуженный участник
Аватара пользователя


11/03/08
5252
Москва
Вы правы, но вообще ТС стоило бы ознакомиться с техникой выработки таких чисел. Скажем, в пределах соответствующей главы Кнута.

 Профиль  
                  
 
 Re: Численное нахождение верхнего предела интеграла
Сообщение04.12.2014, 15:29 
Заслуженный участник


05/08/14
924
Постройте кумулятивную функцию распределерия $F$ (интеграл от $p$). Найдите значения этой функции в точке $a_k$, найдите $F(a_k)+ \frac{1}{n}$ .

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

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



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

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


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

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