Численная интеграция - PullRequest
       59

Численная интеграция

0 голосов
/ 05 октября 2011

Вообще говоря, когда вы численно оцениваете и интегрируете, скажем, в MATLAB я просто выбираю большое число для границ или есть способ сказать MATLAB "взять предел?"

Я предполагаючто вы просто используете большое число, потому что разные машины смогут обрабатывать числа разных величин.

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

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Строго говоря, невозможно вычислить числовой интеграл до бесконечности.В большинстве случаев, если рассматриваемый интеграл конечен, вы можете просто интегрировать в достаточно большой диапазон.Чтобы сходиться при стабильном значении, интеграл от нормальной ошибки должен быть меньше 10 сигма - это, к лучшему или худшему, равно равно , как вы собираетесь получить для оценки того же интегралавплоть до бесконечности.

1 голос
/ 06 сентября 2012

Это очень сильно зависит от того, какую функцию вы хотите интегрировать. Если он «плавный» (без скачков - желательно не в каких-либо производных, но это становится все менее значимым) и конечный, у вас есть два основных варианта (ограничиваясь самым простым подходом): 1. если он периодический, то здесь имеется в виду: могли бы вы соединить левый и правый концы, а также не было скачков в значении (и производных ...): распределите ваши точки равномерно по интервалу и просто выберите значения функций, чтобы получить расчетное среднее, а затем умножьте на длину интервала, чтобы получить ваш интеграл. 2. если не периодический: используйте Legendre-интеграции.

Монте-Карло почти всегда плохой метод: он очень медленно прогрессирует в направлении (машинной) точности: для любой дополнительной значащей цифры вам нужно набрать в 100 раз больше очков! Два вышеописанных метода для периодических и непериодических функций "nice" (smooth etcetera) дают хорошие результаты уже с очень небольшим количеством точек выборки, а затем очень быстро прогрессируют в направлении большей точности: 1 из 2 точек обычно добавляет несколько цифр с вашей точностью! Это намного перевешивает бремя, которое вы должны отбросить из всех частей предыдущего результата, если вы хотите применить следующее усилие с большим количеством точек отбора: вы ЗАМЕНЯЕТЕ предыдущий набор точек новым, а в Монте-Карло вы можете просто добавьте точки к существующему набору и уточните результат.

...