Возможен ли бесконечный цикл по математическому уравнению? - PullRequest
2 голосов
/ 26 февраля 2009

У меня следующая проблема, и мне трудно понять часть уравнения:

Методы Монте-Карло для оценки интеграла, в основном, берут много случайных выборок и определяют средневзвешенное значение. Например, интеграл от f (x) может быть оценен из N независимых случайных выборок x r по

альтернативный текст http://www.goftam.com/images/area.gif

для равномерного распределения вероятности xr в диапазоне [x1, x2]. Так как каждый Функция оценки f (xr) независима, эту работу легко распространить над множеством процессов.

Что я не понимаю, так это то, что f (x r ) должен делать? Это обратно в то же уравнение? Разве это не бесконечный цикл?

Ответы [ 5 ]

11 голосов
/ 26 февраля 2009

Должно быть сказано f (x i )

f () - это функция, которую мы пытаемся интегрировать с помощью численного метода Монте-Карло, который оценивает интеграл (и его ошибку), оценивая случайно выбранные точки из области интеграции.

Ref .

7 голосов
/ 26 февраля 2009

Ваша цель - вычислить интеграл от f от x1 до x2. Например, вы можете вычислить интеграл от sin(x) от 0 до pi.

Используя интеграцию Монте-Карло, вы можете аппроксимировать это путем выборки случайных точек в интервале [x1,x2] и оценки f в этих точках. Возможно, вы хотели бы назвать это MonteCarloIntegrate( f, x1, x2 ).

Так что нет, MonteCarloIntegrate не "отзывается" на себя. Он вызывает функцию f, функцию, которую вы пытаетесь интегрировать численно, например, sin.

1 голос
/ 26 февраля 2009

Заменить f(x_r) на f(x_r_i) (читай: f оценивается как x sub r sub i). r_i выбираются случайным образом равномерно из интервала [x_1, x_2].

Дело в том, что область под f на [x_1, x_2] равна (x_2 - x_1), умноженной на среднее значение f на интервале [x_1, x_2]. Это

A = (x_2 - x_1) * [(1 / (x_2 - x_1)) * int_{x_1}^{x_2} f(x)\, dx]

Часть в квадратных скобках - это среднее значение f на [x_1, x_2], которое мы будем обозначать avg(f). Как мы можем оценить среднее значение f? Выбрав его в N случайных точках и взяв среднее значение f, оцененное в этих случайных точках. Для остроумия:

avg(f) ~ (1 / N) * sum_{i=1}^{N} f(x_r_i)

, где x_r_1, x_r_2, ..., x_r_N - точки, выбранные случайным образом из [x_1, x_2].

Тогда

A = (x_2 - x_1) * avg(f) ~ (x_2 - x_1) * (1 / N) * sum_{i=1}^{N} f(x_r_i).

Вот еще один способ подумать об этом уравнении: область под f на интервале [x_1, x_2] совпадает с площадью прямоугольника с длиной (x_2 - x_1) и высотой, равной средней высоте f , Средняя высота f составляет приблизительно

(1 / N) * sum_{i=1}^{N} f(x_r_i)

- это значение, которое мы произвели ранее.

0 голосов
/ 26 февраля 2009

x_r - случайное значение из диапазона интеграла.

Подстановка Random (x_1, x_2) для x_r даст эквивалентное уравнение.

0 голосов
/ 26 февраля 2009

Будь то x i или x r не имеет значения - это случайное число, которое мы вводим в функцию f ().

Я с большей вероятностью напишу функцию (кроме форматирования) следующим образом:

(x 2 -x 1 ) * сумма (f (x i )) / N

Таким образом, мы можем видеть, что мы берем среднее из N выборок f (x), чтобы получить среднюю высоту функции, затем умножаем на ширину (x2-x1).

Потому что, в конце концов, интеграция - это просто вычисление площади под кривой. (Хорошие фотографии на http://hyperphysics.phy -astr.gsu.edu / Hbase / integra.html # c4 .

...