Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы (пособие).pdf
Скачиваний:
84
Добавлен:
16.05.2015
Размер:
965.85 Кб
Скачать

34

вычисленного по этой формуле приближенного значения интеграла

для случая, когда

f (x) =

 

1

 

, a = 0, b =1.

 

 

 

 

 

1

+ x

 

 

 

 

 

 

Решение:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запишем формулу Гаусса с 3-мя узлами. При n=3 формула

Гаусса на [−1,1]

 

имеет

3 узла ξ1 = −

3 , ξ2 = 0

,

ξ3 =

3

, и три

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 , γ 2

= 8 .

5

 

 

5

 

коэффициента γ1 = γ 3

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

9

равны

 

 

 

 

 

Узлы формулы Гаусса на [a;b] =[0;1]

 

 

 

 

x1

=

 

a + b

 

+

 

b a

ξ1 =

1

1 3 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

2

 

 

2

 

 

 

 

2

5

 

 

 

 

 

 

 

 

x2

=

 

a + b

 

+

b a

 

ξ2 =

1

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x3

=

a + b

 

+

b a

 

ξ3 =

1

+

1

3

.

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

2

 

 

2

 

 

 

 

2

5

 

 

 

 

 

 

 

 

 

Коэффициенты формулы Гаусса на [a;b] =[0;1] равны

c1

= γ1 b a

=

 

5

, c2 = γ 2 b a

= 4

, c3 = γ3 b a =

 

 

5

.

 

 

 

18

 

 

 

 

 

2

 

 

 

2

 

9

 

 

 

 

 

2

 

 

18

 

 

 

 

 

Формула Гаусса в нашем случае примет вид

 

 

 

 

 

 

b

 

 

 

3

 

f ( xi ) =

 

 

 

 

 

 

 

 

 

 

 

 

 

ò f ( x)dx » Q

= åci

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

æ

 

 

 

 

 

ö

 

 

 

 

 

 

 

æ

 

 

ö

 

 

 

 

 

 

5

1

- 1 3

 

4 f

æ 1

ö

 

5

1 + 1 3

 

 

 

 

 

=

f ç

 

÷ +

+

f ç

÷.

 

 

 

 

 

 

 

ç

÷

 

 

 

 

 

 

 

 

18

ç

2 2 5

 

÷

9

 

18

ç

2 2 5

÷

 

 

 

 

 

è

 

ø

è 2

ø

 

è

ø

При вычислении по этой формуле получается приближенное значение интеграла Q. Найдем оценку его абсолютной погрешности

 

 

 

 

 

b f ( x)dx -

3 c f ( x )

 

£

(b -a)7 (3!)4 M

6

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ò

å i i

 

 

( )3

 

 

 

 

 

 

 

 

 

 

a

i =1

 

 

7 6!

 

 

 

 

 

 

 

 

на

где M 6 - мажорантная оценка модуля производной

 

f (6) ( x)

[a;b] =[0;1] (

 

f (6) (x)

 

M 6 ).

 

 

 

 

 

 

 

 

 

 

 

 

720

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Найдем M 6 . Для этого найдем производную f (6) (x) =

 

. На

(1

7

 

 

 

 

 

 

 

 

 

 

 

 

 

720

 

 

+ x)

 

 

f (6) ( x)

 

=

 

 

 

 

[a;b] =[0;1], очевидно, выполняется:

 

 

≤ 720 . Отсюда

M 6

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

(1

+ x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=720.

Вычислим оценку погрешности приближенного значения интеграла:

b f (x)dx -

3

c f ( x )

 

£

(3!)4

720 » 0,00036

.

 

 

 

 

ò

å i

i

 

7(6! )3

 

i 1

 

 

 

 

a

=

 

 

 

 

 

 

 

4. Составить алгоритм вычисления приближенного значения

интеграла

b

методом Монте-Карло (первая схема) с

I = ò f (x)dx

a

35

погрешностью, не превышающей заданного положительного числа ε с вероятностью 0,997. Записать алгоритм на алгоритмическом языке.

Решение:

Исходными данными для алгоритма являются значения a, b, ε

ифункция f (x) . Первая алгоритмическая схема метода

Монте-Карло состоит в последовательном вычислении значений

Qn = (b - a) n

условие

n

å f (λi ) при n =1,2,3, до тех пор, пока не будет выполнено

i=1

 

1

 

æ

1

n

 

Ln = 3(b - a)

 

ç

å f 2

(λi )

n -1

 

 

ç n

i=1

 

 

 

 

è

 

 

-

é

1

n

f (λ )ù

2

ö

£ ε

 

λ

 

å

 

÷

. Здесь

− значения

 

ê

 

i ú

 

÷

 

i

 

ën i=1

û

 

ø

 

 

 

 

случайной величины λ (равномерно распределенной на [a;b]), получаемые с помощью датчика случайных чисел. Последнее вычисленное значение Qn даст нам искомое приближенное значение интеграла.

В этих формулах содержатся суммы, число членов которых растет с ростом n. Чтобы избавиться от лишних вычислений, мы

 

 

 

(b - a)

n

 

 

 

 

 

 

n

 

будем вычислять величины Qn =

å f (λi )

 

и

Pn =

1 å f 2

(λi ) по

 

 

рекуррентным формулам:

 

 

n

 

i=1

 

 

 

 

 

 

n i=1

 

f (λn )

 

 

 

 

 

 

 

f 2

(λn )

 

 

æ

1 ö

 

 

 

æ

 

1 ö

 

 

 

Qn = Qn 1ç1-

÷ + (b - a)

 

 

,

Pn = Pn 1

ç1

-

÷

+

 

 

 

.

 

n

 

 

 

 

 

 

 

n

 

 

è

n ø

 

 

 

è

 

n ø

 

 

 

 

 

По этим формулам будут вычисляться значения этих величин в цикле при n = 2,3,4, Для того чтобы по этим формулам можно

было

начать

счет,

до

начала

цикла

необходимо

вычислить

Q1 = (b a) f (λ1) , P1 = f 2 (λ1 ) . Вычислив

 

 

Qn и

Pn , величину

Ln

удобно

выразить через них:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L = 3(b - a)

1

æ

 

 

æ Q

ö2

ö

 

 

 

 

 

 

 

 

 

 

 

 

 

ç P

- ç

 

n

 

÷

 

÷

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

ç

n

 

è b - a ø

 

÷ .

 

 

 

 

 

 

 

 

 

 

 

 

 

n -1è

 

 

 

ø

 

 

 

 

 

 

 

Поскольку на каждом шаге цикла нужно только одно значение

каждой из величин

Qn ,

Pn и

 

 

Ln , мы введем три простые

переменные без индексов: Q, P, L, которые в цикле будут

принимать соответствующие значения:

 

 

1,

 

 

 

1 ,

1 ;

2

,

2 ,

2 ;

 

 

 

 

 

 

 

 

 

 

 

 

 

Q

 

 

P

L

Q

 

P

L

Q3 ,

P3 , L3

и так далее. На каждом n-м шаге цикла эти величины

будут вычисляться по формулам:

 

 

 

 

 

 

 

 

 

 

 

 

f 2 (λn )

 

 

 

 

 

 

æ

 

1

ö

 

f (λn )

 

 

 

 

 

 

æ

 

 

1 ö

 

 

 

 

 

 

Q := Qç1

-

 

÷ + (b - a)

 

 

,

P := Pç1

-

 

÷ +

 

,

 

 

 

 

 

n

 

n

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

è

 

ø

 

 

 

 

 

 

 

 

è

 

 

n ø

 

 

 

 

a + (b a)ξ
f (λi )

36

L := 3(b -a)

 

1

 

æ

æ Q

ö2

ö

 

 

 

 

 

çP

 

÷

÷

 

 

 

n -1

 

 

 

 

ç

èb -a ø

÷.

 

 

 

 

 

è

 

 

 

ø

 

До начала цикла Q := (b a)

f (λ1) , P := f 2 (λ1 ) . На каждом n-м шаге

цикла проверяется условие

L ≤ ε .

Если

используется цикл с

предусловием, то надо еще до цикла задать также начальное значение величины L. Это может быть любое большое число, например L =1010 , чтобы условие окончания цикла не выполнилось случайно до выполнения первого шага.

Поскольку значение используется после вычисления два раза, мы введем переменную fr , воспринимающую это значение. Это необходимо сделать, поскольку при повторном обращении к датчику случайных чисел мы получим уже другое случайное значение, а нам нужно, чтобы случайные значения функции в формулах для P и Q были одинаковыми.

Будем считать, что у нас есть датчик значений случайной величины, равномерно распределенной на [0;1]. Обозначим через ξ очередное случайное значение, выдаваемое этим датчиком. Тогда будет представлять собой значение случайной величины, равномерно распределенной на [a;b]. Именно это значение мы будем использовать в качестве аргумента при вычислении случайных значений подынтегральной функции.

Запишем получившийся алгоритм на алгоритмическом языке: алг Метод Монте-Карло (первая схема) (арг вещ a, b, ε , рез

вещ Q)

нач вещ P, L, fr; цел n

fr := f (a + (b a)ξ ) | Вычисление первого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

| случайного значения функции

Q := (b a) fr ; P := fr 2 ; | Задание начальных значений

L :=1010 ; n :=1

 

 

 

 

 

 

 

 

 

 

 

 

| параметров.

нц пока

 

L>ε

 

 

 

| Начало цикла метода Монте-Карло.

n := n +1;

 

 

 

 

 

| Изменение значения параметра n.

fr := f (a + (b a)ξ )

| Вычисление очередного

Q := Qæ1- 1

ö

 

 

 

 

 

 

 

fr

 

| случайного значения функции

+ (b - a)

 

 

 

 

÷

 

 

 

 

 

 

ç

 

n

 

 

 

 

 

 

 

n

 

 

 

 

è

 

ø

 

 

fr 2

 

 

 

 

 

 

æ

 

1

ö

 

 

 

 

 

 

 

 

 

 

P := Pç1

-

 

÷

+

 

 

 

 

 

 

 

 

 

 

 

 

n

 

n

 

 

 

 

 

 

 

 

è

 

ø

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

L := 3(b -a)

 

 

 

1

 

 

æ

æ

 

Q ö2

ö

 

 

 

 

 

 

 

çP

 

 

÷

÷

 

 

n -1

 

 

 

 

 

 

 

ç

 

 

èb -a ø

÷

 

 

 

 

 

 

 

 

 

 

è

 

 

 

 

 

 

ø

37

кц | Конец цикла метода Монте-Карло.

Кон

5. Составить алгоритм вычисления приближенного значения

интеграла

b

(0 ≤ f ( x) ymax )

методом Монте-Карло (вторая

I = ò f (x)dx

 

a

 

n. Записать алгоритм на

схема),

Qn , для

заданного

алгоритмическом языке.

Решение:

Исходными данными для алгоритма являются значения a, b, n,

ymax и функция

f (x) . Приближенные значения интеграла

вычисляются по

формуле: Qn = ymax (b a)

m(n)

. Здесь n

число

 

 

 

 

 

 

n

 

 

испытаний (бросаний случайной точки M (λ, μ), равномерно

распределенной в прямоугольнике

{( x, y)

 

a x b, 0 ≤ y ymax } ),

ymax

 

мажорантная оценка функции f (x)

на [a,b] ( f ( x) ymax ) ,

m(n)

количество попаданий случайной точки M (λ, μ) в криволинейную трапецию, ограниченную сверху графиком функции при n испытаниях. Условие попадания точки M (λ, μ) в трапецию: μ ≤ f (λ) .

Будем считать, что у нас есть датчик значений случайной величины, равномерно распределенной на [0;1]. Обозначим через ξ очередное случайное значение, выдаваемое этим датчиком. Тогда a + (b a)ξ будет представлять собой значение случайной

величины, равномерно распределенной на [a;b], а ymaxξ − значение случайной величины, равномерно распределенной на [0, ymax ]. А точка M (a + (b a)ξ , ymaxξ ) − значение случайной точки, равномерно

распределенной в прямоугольнике {( x, y) a x b, 0 ≤ y ymax } . Запишем алгоритм вычисления Qn на алгоритмическом языке.

алг Метод Монте-Карло (вторая схема) (арг вещ a, b, ymax , цел n,

рез вещ Q )

нач вещ λ, μ, цел i, m

m := 0 | Задание начального значения числа попаданий нц для i от 1 до n | Начало цикла подсчета числа

| попаданий

λ := a + (b a)ξ | Вычисление случайного значения

|абсциссы

μ:= ymaxξ | Вычисление случайного значения

| ординаты. Значения ξ в этой строчке | и в предыдущей должна быть разными.