10.4   Вычисление ИНТЕГРАЛОВ простейшим методом жнн'е kawio

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

Поясним подробнее суть этого метода. Представим себе прямоугольник высотой Н и длиной Ь - а такой, что функция f(x) лежит внутри

него (рис. 10.3). Генерируем п пар случайных чисел х. и yf удовлетворяющих условиям а ^ х$ b и 0 £ у. £ Н. Доля точек (х^у.), которые удовлетворяют условию у. ^ f(x.), представляет собой оценку отношения интеграла от функции f(x) к площади прямоугольника. Отсюда оценка Fn в методе «проб и ошибок» определяется выражением

где ns~число «всплесков» или точек, лежащих под кривой, п — общее количество точек, а А — площадь прямоугольника. Заметим, что не следует путать величину п в формуле (10.11) с числом интервалов п, которое фигурировало в рассмотренных выше численных методах.

Другая разновидность метода Монте-Карло основывается на теореме анализа, гласящей, что интеграл (10.1) определяется средним значением подынтегральной функции {(х) на отрезке а £ х £ Ь. Для вычисления этого среднего возьмем х. не с постоянным шагом, а случайным образом и произведем выборку значений f(x). Оценка Fn одномерного интеграла (10.1) методом «выборочного среднего» выражается формулой

где х— случайные числа, равномерно распределенные на отрезке а £ ^ х. £ Ь, а п — количество испытаний. Обратите внимание иа то, что формулы (10.3) и (10.12) различаются только тем, что в первой формуле п точек выбираются с постоянным шагом, а во второй—случайным образом.   Мы   обнаружим,   что  для   интегралов   невысокой размерности

формула (10.3) оказывается точнее, но для многомерных интегралов все же предпочтительнее формула (10.12).

Может показаться странным, что с помошью детерминироваииого компьютера удается генерировать последовательности «случайных» чисел. Пока нас вполне устроит использование «псевдослучайных» последовательностей, генераторы которых предусмотрены в различных языках программирования. В приведенной ниже программе иллюстрируется употребление функций rnd и randomize, имеющихся в языке True BASIC, для получения случайных чисел, равномерно распределенных иа отрезке [0, 1]. Свойства этих функций будут рассмотрены в гл. 11.

Если мы хотим получить случайные числа, равномерно распределенные на отрезке [а, Ь], то используем соотношение х = а + (Ь - а) г, где г —равномерно распределенные числа на отрезке [0, 1]. Это соотношение реализовано в следующей подпрограмме.

Следующая подпрограмма генерирует случайные целые числа на отрезке [1. ATJ.