Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика.-7

.pdf
Скачиваний:
5
Добавлен:
05.02.2023
Размер:
762.87 Кб
Скачать

Набросаем в этот прямоугольник N точек, координаты которых выбираются случайно. Определим количество точек, которые попали под график функции f (x). Обозначим это количество

M . Тогда площадь области, ограниченной функцией f (x) и осью координат, находится по формуле

S SПР MN .

Полученная формула определяет геометрический алгоритм вычисления интеграла методом Монте-Карло.

Геометрический метод следует применять с осторожностью. Значения функции могут быть не только положительными, но и отрицательными. Следовательно, и значения интеграла могут быть меньше нуля.

Рассмотрим вышесказанное на конкретном примере. Требу-

2

ется вычислить I sin x dx .

0

График подынтегральной функции приведен на рис. 4.9. Минимальное значение функции f (x) sin x на интервале [0; 2 ]

равно –1, а максимальное +1. Абсциссы случайных точек лежат на интервале [0; 2 ], а ординаты – на интервале [ 1;1].

y

1

y = sin x

 

 

 

 

 

0

π

x

–1

Рис. 4.9. Численное интегрирование функции y sin x методом Монте-Карло

Расчет значения M должен вестись по следующему алгоритму.

– 81 –

1. Начальное значение M равно нулю.

2. Рассматриваются координаты всех N случайных точек

(xi ; yi ) :

если ордината случайной точки больше нуля ( yi 0 ) и эта точка лежит под графиком функции f (x) ( yi f (xi )), то

значение M увеличивается на 1;

если ордината случайной точки меньше нуля ( yi 0 ) и эта точка лежит над графиком функции f (x) ( yi f (xi ) ), то

значение M уменьшается на 1;

в остальных случаях значение M не меняется.

Если сравнивать между собой стандартный и геометрический алгоритмы, то следует заметить, что стандартный метод всегда точнее геометрического.

Спомощью такого метода можно определить значение числа

. Найдем точное значение следующего интеграла:

 

 

 

 

 

 

S sin(x)dx cos(x)

 

1 1 2 .

0

 

0

 

Площадь прямоугольника, который ограничивает функцию sin x , составит SПР . Получается соотношение 2 MN . Тогда

значение числа находится по формуле

2MN .

Погрешность метода E определяется объемом выборки случайных величин: чем больше случайных точек, тем точнее получается результат. Зависимость погрешности вычисления от объема выборки имеет вид

E 1N .

Метод Монте-Карло имеет свои достоинства и недостатки.

Кдостоинствам метода можно отнести:

простую структуру вычислительного алгоритма;

прекращение вычисления интеграла в любой момент;

определение погрешности вычислений при любой размер-

ности задачи;

– 82 –

при вычислении многомерных интегралов метод МонтеКарло остается единственным, способным выдать приближенное значение за конечное время.

Недостатками метода можно считать:

плохая сходимость при вычислении одномерных интегралов по сравнению с регулярным методом;

для уменьшения на порядок погрешности необходимо увеличение количества испытаний на два порядка.

4.9.Вопросы и упражнения

1.В чем состоит геометрический смысл вычисления определенного интеграла?

2.Какой из методов прямоугольников обладает более высокой точностью?

3.Равно ли значение интеграла, вычисленное методом центральных прямоугольников, среднеарифметической величине значений, полученных методами левых и правых прямоугольников?

4.Равно ли значение интеграла, вычисленное методом трапеций, среднеарифметической величине значений, полученных методами левых и правых прямоугольников?

5. Вычислите значение определенного интеграла 3 x 1 dx

1 x 1

методом левых прямоугольников. Число интервалов разбиения 4. Определите абсолютную и относительную погрешности вычисления.

2

6. Найдите значение определенного интеграла (x3 2x 2)dx

2

методом правых прямоугольников. Число интервалов разбиения 4. Определите абсолютную и относительную погрешности

вычисления.

 

 

 

7. Вычислите

значение

определенного

интеграла

8

(x5 9x 1)dx методом центральных прямоугольников. Число

0

– 83 –

интервалов разбиения 4. Определите абсолютную и относитель-

ную погрешности вычисления.

 

 

8. Вычислите

значение

определенного

интеграла

1

 

 

 

(x4 6x 1)dx методом трапеций. Число интервалов разбие-

5

ния 4. Определите абсолютную и относительную погрешности

вычисления.

 

 

 

9. Вычислите

значение

определенного

интеграла

6

 

 

 

(x6 5x 3)dx

методом парабол. Число интервалов разбие-

2

 

 

 

ния 4. Определите абсолютную и относительную погрешности вычисления.

10. Вычислите

значение

определенного

интеграла

5

 

 

 

(x6 11x 5)dx методом Гаусса –

Лежандра по двум точкам.

3

 

 

 

Найдите абсолютную и относительную погрешности вычисления. 11. Вычислите значение определенного интеграла

5

(x6 11x 5)dx методом Гаусса – Лежандра по трем точкам.

3

Определите абсолютную и относительную погрешности вычисления.

12. Вычислите значение определенного интеграла 3 x 1 dx

1 x 1

методом Монте-Карло с помощью геометрического алгоритма. Количество случайных точек равно 20 (табл. 4.3). Определите абсолютную и относительную погрешности вычисления.

Таблица 4.3. Координаты случайных точек

 

 

 

 

 

 

 

 

 

Номер точки

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

X

2,4

2,6

2,1

2,2

2,2

1,5

2,0

1,8

2,8

1,1

3,0

2,7

3,0

2,4

2,1

1,6

2,4

1,3

2,5

2,9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

0,1

0,4

0,0

0,2

0,1

0,2

0,1

0,5

0,3

0,4

0,1

0,0

0,1

0,5

0,0

0,3

0,5

0,4

0,0

0,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

– 84 –

13. Вычислите значение определенного интеграла 3 x 1 dx

1 x 1

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

3

 

 

14. Вычислите

значение

определенного

интеграла

 

 

x 1

 

 

 

 

 

 

 

2

 

 

0,5

dx методом Монте-Карло с помощью геометриче-

x 1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

ского алгоритма. Количество случайных точек равно 20. Их координаты приведены в таблице 4.4. Определите абсолютную и относительную погрешности вычисления.

Таблица 4.4. Координаты случайных точек

 

 

 

 

 

 

 

 

 

Номер точки

 

 

 

 

 

 

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

X

2,4

2,6

2,1

2,2

2,2

1,5

2,0

1,8

2,8

1,1

3,0

2,7

3,0

2,4

2,1

1,6

2,4

1,3

2,5

2,9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y

–0,1

0,4

0,1

–0,2

–0,1

0,2

0,1

–0,5

0,3

–0,4

0,1

–0,1

0,1

0,5

0,1

–0,3

0,5

–0,4

–0,1

–0,2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

15. Найдите

значение

определенного

интеграла

 

 

x 1

 

 

 

 

 

 

 

2

 

 

0,5

dx методом Монте-Карло с помощью основного

x 1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

алгоритма. Количество случайных точек равно 20. Их абсциссы приведены в таблице 4.4. Определите абсолютную и относительную погрешности вычисления.

– 85 –

5.Интерполяция

иприближение полиномами

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

В первоначальном понимании интерполяция – это восстановление функции по известным ее значениям или значениям ее производных в заданных точках.

Экстраполяция – продолжение функции за пределами ее области определения.

Постановка задачи. Предположим, что функция y f (x) известна в N 1 точке (x0 , y0 ), (x1, y1) ,…, (xN , yN ) , где значения

xk принадлежат интервалу

[a; b] и удовлетворяют условиям

a x0 x1 ... xN b и yk

f (xk ) . Требуется найти функцию,

которая проходила бы через данные точки.

Точки (x0 , y0 ), (x1, y1) ,…, (xN , yN ) называются узловыми.

Условие прохождения интерполяционной функции через узловые точки называется условием Лагранжа.

Все интерполяционные методы можно разделить на две группы. В первую группу входят методы, для которых условие Лагранжа выполняется. Во вторую группу входят методы, которые не требуют выполнения этого условия.

5.1. Интерполяция алгебраическим полиномом

Интерполирующая функция (x) имеет вид многочлена:

(x) c0 c1x c2 x2 c3x3 ... cN xN .

Для интерполяционного построения требуется предварительно найти значения коэффициентов многочлена c0 ,c1,c2 ,...,cN .

Степень многочлена соответствует числу узловых точек (x0 , y0 ), (x1, y1) ,…, (xN , yN ) . Поскольку интерполяционная функция (x)

проходит через узловые точки, то можно записать систему уравнений

– 86 –

(x0 ) y0 ,(x1) y1 ,(xN ) yN

c0 c1x0 c2 x02 c3x03 ... cN x0N

c0 c1x1 c2 x12 c3x13 ... cN x1N

c c x c x3 ... c xN

0 1 N 3 N N Nc2 xN2

y0 ,

y1 ,

yN .

Запишем данную систему в матричном виде X C Y, где

 

 

1

x

x2

xN

 

 

c0

y0

 

 

 

0

0

0

 

 

c

 

 

y

 

 

 

1

x

x

2

x

N

 

 

 

 

 

 

 

 

 

1

 

 

 

1

 

 

 

 

1

1

1

 

 

c

, Y

y

 

.

X

1

x

x

2

x

N

, C

2

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

2

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

xN

2

 

N

 

 

 

 

 

 

 

 

 

 

 

xN

xN

 

 

cN

yN

Тогда коэффициенты многочлена определяются по формуле

C X 1 Y , где X 1 – матрица, обратная матрице X .

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

жащей интервалу [a; b]. Использование для этой цели схемы

Горнера позволит резко повысить быстродействие программы. При обычном способе вычисления значения многочлена степе-

ни N требуется выполнить N операций

сложения и

N (N 1) (N 2)

... 2 1 0

 

N (N 1)

операций

умножения.

 

 

 

2

 

 

Метод Горнера, или искусственное разделение, задуман как вложенное умножение:

(x) c0 c1x c2 x2 c3x3 ... cN xNc0 x c1 x c2 x c3 x (... cN x)... .

При таком способе вычисления значения многочлена требуется выполнить N операций сложения и N операций умножения. Ниже приведен фрагмент программы, вычисляющей значение многочлена по схеме Горнера (метод вложенных умножений).

– 87 –

Фрагмент программы на языке Си

Фрагмент программы на языке

 

Паскаль

p=c[n];

p:=c[n];

for(i=n-1; i>=0; i--)

for i:=n-1 downto 0 do

p=c[i]+p*x;

p:=c[i]+p*x;

При аппроксимации алгебраическим полиномом следует помнить, что в случае большого количества узловых точек коэффициенты полинома могут быть найдены со значительными ошибками, как это было показано в подразделе 3.2.

5.2. Интерполяционный полином Лагранжа

Интерполяционный полином Лагранжа имеет вид

 

 

P(x) y

x x1

 

x x2

 

 

x xN

y

x x0

 

x x2

 

x xN

 

 

 

 

 

 

 

 

 

x x

 

 

 

 

0 x x x x

 

 

 

x x

N

1 x x

 

x x

N

 

 

 

 

 

0

1 0

2

 

 

 

 

0

 

 

1

0 1 2

1

 

 

x x

 

x x

 

x x

N 1

 

 

N

N x x j

 

 

 

 

yN

 

 

 

0

 

 

1

 

 

 

 

 

 

yi

 

 

 

 

.

 

 

 

 

x

N

x

 

x x

x

N

x

N 1

x x

 

 

 

 

 

 

 

 

0 0

1

 

 

 

 

 

 

i 0

j 0

i

 

j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j i

 

 

 

 

 

 

 

 

 

Видно, что интерполяционный полином Лагранжа проходит через узловые точки, то есть выполняется условие Лагранжа:

P(x

) y

x0 x1

 

x0 x2

 

x0 xN

y

x0 x0

 

x0 x2

 

x0 xN

 

 

 

 

 

 

 

 

 

 

 

0

 

 

0 x x x x

 

x x

N

 

1 x x

x x

 

x x

N

 

 

 

 

 

0

 

1 0

 

2

 

 

0

 

 

1 0 1

2

1

 

 

y

 

x0

x0

 

 

x0

x1

 

x0

xN 1

y

0 ... 0

y

f (x

) .

 

 

 

 

x

 

 

 

 

 

 

 

N x

N

x x

x

N

x

N 1

 

 

0

 

 

 

 

0

 

0

 

 

 

 

 

 

0

 

 

0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Достоинством полинома Лагранжа является отсутствие предварительных вычислений. Можно сразу приступать к определению значения полинома P(x) вне узловых точек. Недостатком

метода является арифметическая сложность вычислений числителя и знаменателя. Количество операций возрастает факториально.

– 88 –

5.3. Интерполяционный полином Ньютона

Интерполяционный полином Ньютона имеет вид

PN (x) a0 a1(x x0 ) a2 (x x0 )(x x1) ...aN (x x0 )(x x1) (x xN ),

где a0 , a1, a2 , ..., aN – коэффициенты полинома.

Коэффициенты полинома Ньютона находятся исходя из выполнения условия Лагранжа: PN (xi ) yi , где i 0,1,2,..., N .

Коэффициент a0 находится из соотношения PN (x0 ) y0 :

PN (x0 ) a0 a1(x0 x0 ) a2 (x0 x0 )(x0 x1) ...aN (x0 x0 ) (x0 x1) (x0 xN ) y0.

Так как все слагаемые, кроме первого, равны нулю, то a0 y0 . Далее находим коэффициент a1 из соотношения PN (x1) y1 :

PN (x1) a0 a1(x1 x0 ) a2 (x1 x0 )(x1 x1) ...aN (x1 x0 )(x1 x1) (x1 xN ) y1.

Все слагаемые, начиная с третьего, равны нулю, а коэффициент a0 y0 , отсюда

y0 a1(x1 x0 ) y1 .

Тогда a1 y1 y0 . Аналогично находятся все коэффициенты по-

x1 x0

линома Ньютона.

Аналитическая формула, по которой находятся коэффициенты полинома, имеет сложный вид, а итерационная процедура очень проста:

f xK J , xK J 1,..., xK

f xK J 1,..., xK f xK J ,..., xK 1

,

 

 

xK xK J

она основана на разностных отношениях и приведена в табли-

це 5.1.

– 89 –

Таблица 5.1. Таблица разностных отношений для y f (x)

 

 

 

 

 

 

xK

f [xK ]

f [ , ]

f [ , , ]

f [ , , , ]

f [ , , , , ]

x0

f [x0 ]

 

 

 

 

x1

f [x1 ]

f [x0 , x1 ]

 

 

 

x2

f [x2 ]

f [x1, x2 ]

f [x0 , x1, x2 ]

 

 

x3

f [x3 ]

f [x2 , x3 ]

f [x1, x2 , x3 ]

f [x0 , x1, x2 , x3 ]

 

x4

f [x4 ]

f [x3 , x4 ]

f [x2 , x3 , x4 ]

f [x1, x2 , x3 , x4 ]

f [x0 , x1, x2 , x3 , x4 ]

Значения диагональных элементов и являются значениями коэффициентов полинома Ньютона.

Рассмотрим процесс нахождения коэффициентов полинома

Ньютона для шести точек:

x0 1,

 

x1 2 ,

x2

3, x3 4,

x4 5

,

x5 6 .

Значения y0 3 ,

y1 0

,

y2 15 ,

y3 48 , y4

105

,

y 192

получены для функции f (x) x3

4x . Процедура нахо-

5

 

 

 

 

 

 

 

 

ждения коэффициентов полинома Ньютона дана в таблице 5.2.

Таблица 5.2. Таблица разностных отношений

 

 

 

 

 

 

f [ , , , , , ]

xK

f [xK ]

f [ , ]

f [ , , ]

f [ , , , ]

f [ , , , , ]

1

–3

 

 

 

 

 

2

0

3

 

 

 

 

3

15

15

6

 

 

 

4

48

33

9

1

 

 

5

105

57

12

1

0

0

6

192

87

15

1

0

Коэффициенты полинома получили значения: a0 3, a1 3, a2 6 , a3 1, a4 a5 0 . Проведем проверку полученных результатов. Полином Ньютона имеет вид

P5 (x) a0 a1(x x0 ) a2 (x x0 )(x x1) a3 (x x0 )(x x1)(x x2 ).

Подставим вместо x0 , x1, x2 и a0 , a1, a2 , a3 их значения:

P5 (x) 3 3(x 1) 6(x 1)(x 2) (x 1)(x 2)(x 3)

3 3x 3 6x2 18x 12 x3 3x2 2x 3x2 9x 6 x3 4x.

Это соответствует приведенной ранее функции. График интерполяционного полинома Ньютона приведен на рис. 5.1.

– 90 –