19
- 1 - Лабораторная работа №1 ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ (КВАДРАТУРНЫЕ ФОРМУЛЫ) Здесь использован термин численное интегрирование вместо термина «Приближенное вычисление определенных интегралов» с целью расширительного использования термина интегрирование, включающего вычисление площади методом Монте-Карло (классические квадратуры), и интегрирование функций, заданных табличными значениями. Цель работы: 1. Изучить и научиться использовать на практике наиболее эффективные алгоритмы численного интегрирования. 2. Изучить приемы контроля точности вычисляемых интегралов и оптимизации быстродействия используемых алгоритмов. 3. Написать программу, реализующую два метода численного интегрирования в следующих комбинациях: первый метод – или центральных прямоугольников (со средней точкой), или трапеций, второй метод - Симпсона, вторая комбинация - первый метод – Симпсона, второй метод – Гаусса (или Чебышева). Пример взять из таблицы к лаб. работе №1, в соответствии со своим списочным номером. 4. Указание: метод прямоугольников, трапеций и метод Симпсона должны быть реализованы по схеме удвоения числа разбиений с контролируемой точностью. Дополнительные задания (бонусы): 1) Реализовать программу адаптивного интегрирования с плавающим числом разбиений в зависимости от скорости изменения значений функции. 2) Реализовать вычисление площади замкнутой фигуры методом Монте- Карло. Вычислить этим методом площадь Черного моря, взяв его изображение на Google maps. Оценить погрешность метода. Содержание отчета : 1. Постановка задачи. 2. Определение значений подынтегральной функции в точках деления отрезка.

Лаб раб 1 - Численное интегрирование 2013-09-09

Embed Size (px)

Citation preview

Page 1: Лаб раб 1 - Численное интегрирование 2013-09-09

- 1 -

Лабораторная работа №1

ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ (КВАДРАТУРНЫЕ ФОРМУЛЫ)

Здесь использован термин численное интегрирование вместо термина

«Приближенное вычисление определенных интегралов» с целью

расширительного использования термина интегрирование, включающего

вычисление площади методом Монте-Карло (классические квадратуры), и

интегрирование функций, заданных табличными значениями.

Цель работы: 1. Изучить и научиться использовать на практике наиболее эффективные

алгоритмы численного интегрирования.

2. Изучить приемы контроля точности вычисляемых интегралов и оптимизации

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

3. Написать программу, реализующую два метода численного интегрирования

в следующих комбинациях: первый метод – или центральных

прямоугольников (со средней точкой), или трапеций, второй метод -

Симпсона, вторая комбинация - первый метод – Симпсона, второй метод –

Гаусса (или Чебышева). Пример взять из таблицы к лаб. работе №1, в

соответствии со своим списочным номером.

4. Указание: метод прямоугольников, трапеций и метод Симпсона должны

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

точностью.

Дополнительные задания (бонусы):

1) Реализовать программу адаптивного интегрирования с плавающим

числом разбиений в зависимости от скорости изменения значений функции.

2) Реализовать вычисление площади замкнутой фигуры методом Монте-

Карло. Вычислить этим методом площадь Черного моря, взяв его

изображение на Google maps. Оценить погрешность метода.

Содержание отчета:

1. Постановка задачи.

2. Определение значений подынтегральной функции в точках деления отрезка.

Page 2: Лаб раб 1 - Численное интегрирование 2013-09-09

- 2 -

3. Нахождение приближѐнного значения определѐнного интеграла по

квадратурным формулам и оценка погрешности.

4. Сравнение значений определѐнного интеграла по двум формулам и оценка

погрешности.

5. Все вычисления представить в виде таблицы, аналогично приведенному

ниже примеру.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

1. Формула центральных прямоугольников (со средней точкой)

Пусть требуется вычислить определенный интеграл b

a

dxxfJ )( .

Разбиваем отрезок ba, на n равных частей с границами: ax 0 , hax 1 ,

…, bxn , где nabh /)( .

На каждом частичном отрезке 1, kk xx , ),...,1( nk подынтегральную

функцию )(xf заменяем ее значением в середине элементарного отрезка

)(2

h kk xfy , ),...,1( nk , рис.1.

Таким образом, получаем приближѐнное

равенство

h)h

hif(ahydxf(x)n

i

n

i

k

b

a

11 2

,

или более удобную окончательную формулу

)...( 21 nn yyyn

abJ

(1)

Отметим, что формула центральных прямоугольников обеспечивает такую же

погрешность, как и метод трапеций, )(12

)(2

3

fn

abRn

, где ba , (точно

интегрируется полином первой степени). Эта погрешность значительно

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

Рис.1

Page 3: Лаб раб 1 - Численное интегрирование 2013-09-09

- 3 -

2. Формула трапеций

Пусть требуется вычислить приближѐнно b

a

dxxfJ )( .

Разбиваем отрезок ba, на n равных частей с границами: ax 0 , hax 1 ,

…, bxn , где nabh /)( .

Обозначим )( kk xfy ),...,1,0( nk .

На каждом частичном отрезке 1, kk xx )1,...,1,0( nk подынтегральную

функцию )(xf заменяем интерполяционным многочленом первой степени,

построенным по двум узлам интерполяции

( kx и 1kx ), т.е. дугу графика подынтегральной

функции )(xfy заменяем стягивающей еѐ

хордой.

Отсюда получаем приближѐнное равенство

)(2

)( 1

1

kk

x

x

yyn

abdxxf

k

k

. (2)

Сумма интегралов по всем отрезкам дает общую (составную) квадратурную

формулу трапеций )2...22(2

1210 nnn yyyyyn

abJ

. (3)

Погрешность этой формулы такая же, как и формулы центральных

прямоугольников: )(12

)(2

3

fn

abRn

, где ba .

4. Формула Симпсона.

Правило Симпсона впервые было получено Кавальери в 1639 г., позже

Джеймсом Грегори в 1668 г. и Томасом Симпсоном в 1743 г [1].

Его же называют правилом парабол.

В методе Симпсона приближѐнное значение определѐнного интеграла J

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

ba, на n равных частей (n - чѐтное). Рассмотрим отрезки 20 ,xx , 42 ,xx , …,

Рис.2

Page 4: Лаб раб 1 - Численное интегрирование 2013-09-09

- 4 -

nn xx ,2 . На каждом сдвоенном отрезке

2, kk xx функцию )(xf заменяем

интерполяционным многочленом второй

степени, построенным по трѐм узлам

интерполяции ( kx , 1kx , 2kx ), т.е. дугу

графика подынтегральной функции )(xfy

на каждом сдвоенном отрезке заменяем

параболой, проходящей через точки ),( kk yx ,

),( 11 kk yx , ),( 22 kk yx , Рис3.

Интерполирующий полином имеет вид [1]:

.

Отсюда получаем приближѐнное значение интеграла

, , .

Или окончательно: )4(3

)( 21

2

kkk

x

x

yyyn

abdxxf

k

k

. (4)

Сумма интегралов по всем сдвоенным частичным отрезкам дает общую

(составную) формулу Симпсона:

nnn yyyyyyyyn

abJ

)...(2)...(4

32421310 . (5)

Погрешность этой формулы выражается через четвертую производную

интегрируемой функции )(180

)( )4(

4

5

fn

abRn

, где ba , то есть формула

Симпсона точно интегрирует полиномы до третьей степени включительно.

Рис.3

Page 5: Лаб раб 1 - Численное интегрирование 2013-09-09

- 5 -

5. Оценка погрешности квадратурных формул

Таблица 1. Сравнение методов

№ Название метода Квадратурная формула k

3 Левых

прямоугольников

1

0

n

i

iyn

abJ

1

3 Правых

прямоугольников

n

i

iyn

abJ

1

1

3 Центральных

прямоугольников

n

i

iyn

abJ

1

~

2

4 Трапеций )2...22(

21210 nn yyyyy

n

abJ

2

5 Симпсона

(парабол) nnn yyyyyyyyn

abJ

)...(2)...(4

32421310

4

Одним из способов практической оценки погрешности дискретизации, которая

возникает при применении численного интегрирования, является правило

Рунге, заключающееся в последовательном увеличении (например, удвоении)

числа узловых точек n и соответствующем уменьшении шага дискретизации h.

Оценка по правилу Рунге основана на предположении, что искомую величину J

можно представить в виде hchJJ k

h , (6)

где J – точное значение,

Jh – приближенный результат, полученный при шаге дискретизации равном h,

c – коэффициент, который предполагается независящим от h,

k – порядок точности метода,

(h) - составляющая погрешности, которая считается пренебрежимо малой по

сравнению с chk.

В этом случае, уменьшив шаг дискретизации в два раза и отбросив (h),

нетрудно найти c и оценку погрешности

J JJ J

h

h h

k

2

2

2 1, (7)

где J - точное, а Jh, Jh/2 - приближенные значения интегралов, полученные,

соответственно, с шагом h и h/2, k - порядок точности метода.

Page 6: Лаб раб 1 - Численное интегрирование 2013-09-09

- 6 -

Тогда при заданной точности величина h должна выбираться так, чтобы

выполнялось условие

12

2

k

h

Рунге

JJ h

. (8)

Критерием допустимости отбрасывания малых величин можно считать

стабильность величины K

KJ J

J J

J J

J J

h h

h h

h h

h h

k

2

4 2

4 2

8 4

2 ,

полученной при уменьшении h в 4, 8 и т.д. раз.

Например, за приближѐнное значение J интеграла, вычисленного по

формуле Симпсона с поправкой по Рунге, можно принять

15

22

nnn

JJJJ

. (9)

Численные эксперименты показывают, что это решение для большинства

функций является лучшим приближением, чем nJ2 .

Погрешность этого результата приближѐнно оценивают величиной

152 nn JJ . Для формул центральных прямоугольников и трапеций

имеет место 3

22

nnn

JJJJ

, 32 nn JJ

.

6. Квадратурная формула Гаусса.

Рассмотрим функцию )(tf , заданную на интервале 1,1 .

Квадратурная формула Гаусса в этом случае имеет вид:

1

1 1

)()(

n

k

kk tfAdttf . (10)

Коэффициенты kA и точки kt выбираем так, чтобы формула была точной

для всех многочленов наивысшей возможной степени N . Доказано, что такие

числа kA , kt определяются однозначно при 12 nN . Точки kt , используемые

в квадратурной формуле, являются корнями полинома Лежандра степени n :

Page 7: Лаб раб 1 - Численное интегрирование 2013-09-09

- 7 -

n

nn

nndt

td

ntP

)1(

!2

1)(

2 .

Доказано, что )(tPn имеет на интервале 1,1 n действительных различных

корней. Значения kA и kt ( nk ,...,2,1 ) для различных n табулированы [2].

При вычислении интеграла c произвольными пределами ba, делаем замену

переменной tabab

x22

.

В этом случае квадратурная формула Гаусса принимает вид:

b

a

n

k

kk xfAab

dxxf

1

)(2

)( . (11)

где kk tabab

x22

, ( nk ,...,2,1 ); kA и kt ( nk ,...,2,1 ) - табулированные

значения. Приводим эти значения для 6n :

6,1t 0.932470; 5,2t 0.661209; 4,3t 0.238619

61 AA 0.171324; 52 AA 0.360762; 43 AA 0.467914.

В приложении 2 приведен текст программы, реализующий 16 точечную

формулу Гаусса, позволяющую точно вычислять интегралы от полиномов до

31степени. Близок по идеологии к методу Гаусса и метод Чебышева, численные

эксперименты показывают, что он не имеет преимуществ перед методом

Гаусса. В настоящее время одним из наиболее эффективных методов

численного интегрирования считается комбинированный метод Гаусса-

Кронрода, например (G7,K15), семиточечная формула Гаусса и

пятнадцатиточечная формула Кронрода [1]. Проведенные нами численные

эксперименты не показали преимуществ (G7,K15) перед парой (G8,G16).

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

алгоритмом позволяет получить надежные и эффективные программы общего

назначения. Познакомиться с программами адаптивного интегрирования можно

в [3]. Вопрос интегрирования функции, заданной своими табличными

значениями рассмотрен в разделе интерполяция.

Page 8: Лаб раб 1 - Численное интегрирование 2013-09-09

- 8 -

7. Квадратурный метод Монте-Карло [4]

Каким образом можно с помощью кучи камней измерить площадь пруда?

Предположим, что пруд расположен в центре поля известной площади S.

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

точках в пределах поля, и считайте количество всплесков при попадании

камней в пруд. Площадь пруда приблизительно равна площади поля,

умноженной на долю камней, попавших в пруд. Эта простая процедура

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

Термин «метод Монте-Карло» был введен во время второй мировой войны фон

Нейманом и Уламом в Лос-Аламосе в связи с моделированием нейтронной

диффузии в расщепляемом материале. Окончательно название утвердилось

благодаря Нику Метрополису [1].

В начале 30-х годов в Римском университете Энрико Ферми,

воспользовавшись этой идеей и проведя расчеты вручную, предсказал

результаты экспериментов, чем изумил своих коллег.

Метод «Монте-Карло » - общее название группы методов, основанных на

получении большого числа реализаций стохастического процесса, так, что

вероятностные характеристики совпадают со свойствами модели.

На рис. 4 представлен пример вычисления площади Симферопольского

водохранилища методом Монте-Карло.

При числе бросков n=1000000 в двух сериях испытаний получен результат

Рис.4

Page 9: Лаб раб 1 - Численное интегрирование 2013-09-09

- 9 -

S=1473,5 тыс.кв.м. ±600 кв.м.

Погрешность метода вычислялась в виде стандартного отклонения средних:

Замечание 1. При программировании метода Монте-Карло для вычисления

одномерного интеграла

следует быть аккуратным в

случае, когда минимальное и

максимальное значения

функции имеют разные знаки.

При случайных бросках и

попаданиях под график

функции следует учитывать

знаки (при отрицательных значениях функции нужно не суммировать число

попаданий, а вычитать, общее число попаданий может быть отрицательным

числом).

Замечание 2. Метод Монте-Карло обладает медленной сходимостью в

зависимости от числа бросков, погрешность обратно пропорциональна корню

из N, однако этот метод незаменим при вычислении многомерных интегралов,

часто возникающих при компьютерном моделировании в теоретической

физике. Дело в том, что обычные квадратурные формулы в этом случае не

работают из-за катастрофически быстрого нарастания числа разбиений.

k

mk

k

mkkk SSSSSS11

2222 ,k

1 ,

k

1

Рис.5

Page 10: Лаб раб 1 - Численное интегрирование 2013-09-09

- 10 -

ПРИМЕР:

Использование квадратурных формул(трапеций и Симпсона)

Вычислить приближѐнно

2,1

0

4 1x

dxxI по формулам трапеций и

Симпсона.Оценить погрешность полученных результатов.

Начнем вычисления с 2n . Отсюда 6,02

02,1

n

abh . Дальнейшие

вычисления оформляем в виде таблицы.

k kx 14

k

kk

x

xy

Формула трапеций Формула Симпсона

kc kc ka ka

0 6

12

0 0.6

1.2

0 0.531161

0.390421

1 2

1

1 2

1

1 2

1

1 4

1

9,612189 4,767205 14,457172 7,228887

I hI

0,480609

hI2

0,476720

hI

0,481905

hI2

0,481925

R 0,001297

<0,002

0,0000015

<0,000002

Ответ : 002,0481,0 I (по формуле трапеций);

000002,0481905,0 I (по формуле Симпсона).

Рассмотрим порядок заполнения таблицы.

1. Определяем значения khaxk ( 12,...,1,0k ). В данном случае 0a , 1,0h

2. Находим значения подынтегральной функции в точках kx , т.е. 14

k

kk

x

xy .

3. Вычисляем приближѐнное значение определенного интеграла по формуле (3)

Формула (3) имеет вид

Page 11: Лаб раб 1 - Численное интегрирование 2013-09-09

- 11 -

12

0

121121024

2,1)2...22(

2k

kkh ycyyyyyn

abI . (10)

В столбце kc проставлены коэффициенты суммы, в строке - значение

12

0k

kk yc , в cтроке I – ответ hI .

5. Для оценки погрешности вычисляем приближѐнное значение определенного

интеграла по формуле

n

k

kkh ycyyyyyn

abI

0

1210420212

2,1)2...22(

2.

Так как точки ,...,, 531 xxx пропускаются, полагаем для них 0kc .

5. Оцениваем погрешность вычисления по формуле (3) с шагом h с помощью

неравенства 3

2hhтр

IIR

.

6. Находим приближѐнное значение определенного интеграла

n

k

kkh yayyyyyyyyn

abI

0

1210421131036

2,1)...(2)...(4

3.

7. Вычисляем приближѐнное значение определенного интеграла

n

k

kkh yayyyyyyyn

abI

0

121086420218

2,142424

3.

8. Оцениваем погрешность вычисления по (4) с шагом h с учетом неравенства

15

2hhc

IIR

.

Приложение 1. Алгоритм адаптивного интегрирования

Предлагаем вашему вниманию алгоритм адаптивного интегрирования,

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

пополам, (или удвоении, в зависимости от ситуации). Алгоритм может быть

основан на паре Симпсона, например (S2S,4), или на комбинированном методе

Гаусса-Кронрода, например (G7,K15), или на паре Гаусса, например (G8,G16), (в

скобках указано число разбиений отрезка интегрирования для каждой пары).

Page 12: Лаб раб 1 - Численное интегрирование 2013-09-09

- 12 -

Описание программы адаптивного интегрирования:

Входные параметры:

a,b-пределы интегрирования,

x1, x2 – плавающие пределы, при первом запуске x1=a, x2=b, при рекурсии это

уже другие значения,

eps – требуемая абсолютная погрешность (можно задавать относительную по-

грешность, но могут возникнуть проблемы при интегрировании знакоперемен-

ных функций),

выходной параметр S-значение интеграла, должно быть глобальным парамет-

ром и занулено перед первым запуском.

1 шаг: вычисляем два значения интеграла, например пару Симпсона (S2S,4).

2 шаг: проверяем значение погрешности (для метода Симсона если

, если при этом достигли правого края, x2=b, то считаем, что ин-

теграл вычислен, выходим из программы,

3 шаг: если правый край не достигнут, но точность достигнута, накапливаем ре-

зультат и переносим отрезок интегрирования вправо, удваиваем шаг и проверя-

ем, чтобы не выйти за пределы (a,b), после этого рекурсия к программе,

4 шаг: если квадратурная пара не достигает точности на отрезке, то делим отре-

зок пополам и исследуем левую половину

отрезка, затем снова рекурсия!

На рис. 6 приведен пример интегрирова-

ния функции .

Использован классический метод Симп-

сона, который для достижения реальной

погрешности использовал 2048

разбиений и уточняющую формулу (9).

Время вычисления интеграла 0,12 мс. Адаптивный метод Симпсона достиг по-

грешности , используя 77 отрезков (учитывая 4-точечную схему, 308

Рис.6

Page 13: Лаб раб 1 - Численное интегрирование 2013-09-09

- 13 -

отрезков). Время вычисления интеграла 0,06 мс. Выигрыш по времени не такой

внушительный из-за «ложных» ходов, которые есть в адаптивном методе.

Адаптивный метод Гаусса, пара (G8,G16) для достижения меньшей погрешно-

сти использовал всего лишь 12 разбиений, рис.7, (учитывая 16-

точечную схему, 192 точки). Время вы-

числения интеграла 0,02 мс.

Численные эксперименты показывают,

что адаптивный метод Гаусса (G8,G16)

почти всегда имеет заметное преимущест-

во перед методом Симпсона, а адаптив-

ный метод Симпсона дает выигрыш перед

классическим методом только при интег-

рировании функций с острыми пиками.

Кроме того, выявлено, что адаптивный метод Симпсона плохо пригоден для

интегрирования периодических функций. Иногда он останавливается, прежде-

временно решив, что точность достигнута. С адаптивным методом Гаусса этого

не происходит из-за сложного расположения узлов.

Рис.7

Page 14: Лаб раб 1 - Численное интегрирование 2013-09-09

- 14 -

Приложение 1. Фрагмент программного кода, реализующего метод Симпсона:

Function FixSimpson(a,b:real;N:integer):real; // a,b-пределы интегрирования, N- число разбиений интервала var i:integer; xi,h,h2,s,p,v:real; begin N:=N div 2 *2; // N - должно быть четным, число точек N+1 h:=(b-a)/N; //размер отрезка h2:=h*2; // двойной интервал v:=0; p:=0; //обнуляем сумматоры s:=f(a)+f(b); // отдельно суммируем для крайних точек xi:=a+h; while xi<b do begin //первый цикл для точек с коэфф. 4 p:=p+f(xi); xi:=xi+h2; end; xi:=a+h2; while xi<b-h do begin //второй цикл для точек с коэфф. 2 v:=v+f(xi); xi:=xi+h2; end; FixSimpson:=h/3*(s+4*p+2*v); end; Замечание. В приведенном фрагменте программы погрешность метода никак не контролируется, поэтому программу следует доработать.

Если стремиться к созданию эффективной и быстро работающей программы

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

он анализировал и контролировал погрешность, а также наращивал число

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

процедуры.

В общем случае список параметров функции вычисления интеграла может

выглядеть так: (a , b , errRel , N0 , Nmax , flagR , errRez , flagERR , N)

где: входные параметры:

a , b – пределы интеграла,

errRel – заданный порог относительной погрешности,

N0- начальное число отрезков в методе Симпсона (2, 4, 8 и т.д.)

Nmax – максимально разрешенное число отрезков, Nmax >=N0,

flagR – (Булево) – позволяет вкл./откл. анализ погрешности по формуле Рунге и

удвоение числа разбиений,

Page 15: Лаб раб 1 - Численное интегрирование 2013-09-09

- 15 -

выходные параметры:

errRez – достигнутое значение относительной погрешности,

flagERR – (Булево) – достигнута ли погрешность?

N – использованное число разбиений,

Алгоритм включения «флагов»:

Если flagR=false, то программа считает методом Симпсона один раз при N=N0

без учета погрешности, если flagR=true, то программа считает до тех пор, пока

не будет удовлетворено правило Рунге либо не будет достигнуто Nmax.

Приложение 2. Фрагмент программного кода, реализующего квадратурную

формулу Гаусса (16 точечную)

function GS_int ( a,b,err_re l:real;var ierr:integer) :real ; { вычисление опр. инте грала с помощ ью квадратур Гаусса,(16 точек) a,b - преде лы интегрирования (a>b) , err_rel - допу стимая относительная погре шность (верных знако в примерно 1/err_rel),

ierr - критерий ошибки на выходе, ( 0 - точность достигнута, 1 - нет ), f(x) - фу нкция одной переменной }

var N,n1,N2, k : integer; var h,x,x0,dx,ds,ba,Fab,Sold, S,gs :real;

const t:array[1..30] of real = ( -0.577350269189626,0.577350269189626, { 2 } -0.861136311594053,-0.339981043584856, 0.339981043584856, 0. 861136311594053, { 4 } -0.960289856497536,-0.796666477413627, -0.525532409916329,-0.183434642495650, 0.183434642495650, 0. 525532409916329, 0.796666477413627, 0. 960289856497536, { 8 } -0.989400934991650,-0.944575023073233, -0.865631202387832,-0.755404408355003, -0.617876244402644,-0.458016777657227, -0.281603550779259,-0.095012509837637, 0.095012509837637, 0. 281603550779259, 0.458016777657227, 0. 617876244402644, 0.755404408355003, 0. 865631202387832, 0.944575023073233, 0. 989400934991650); { 16} w:array[1..30] of real = ( 1.0 ,1.0, { 2 } 0.347854845137454, 0.652145154862546,

Page 16: Лаб раб 1 - Численное интегрирование 2013-09-09

- 16 -

0.652145154862546, 0.347854845137454, { 4 } 0.101228536290376, 0.222381034453374, 0.313706645877887, 0.362683783378362, 0.362683783378362, 0.313706645877887, 0.222381034453374, 0.101228536290376, { 8 } 0.027152459411754, 0.062253523938648, 0.095158511682493, 0.124628971255534, 0.149595988816577, 0.169156519395003, 0.182603415044924, 0.189450610455069, 0.189450610455069, 0.182603415044924, 0.169156519395003, 0.149595988816577, 0.124628971255534, 0.095158511682493, 0.062253523938648, 0.027152459411754); { 16 } begin; ba:=b-a; x0:=(a+b)/2; dx:=(b-a)/2; Sold :=f(x0)*ba; N:=1; N1:=1; repeat N:=N*2; N 2:=N1+N-1; S:=0;{ зану лить сумматор } for k:=N1 to N2 do begin x:=x0+dx*t[k]; s:=s+f(x)*w[k]; end; { цикл по к } gs:=s*dx; { вре м. знач. интеграла } ds:=abs(1-Sold/gs); { отн. измен. результата } if ds < err_rel/2 then begin ierr:=0;{ точность достигнута } GS_int:=gs; exit; end; { if - про верки на погрешно сть } Sold:=gs; N 1:=N1*2+1; unti l N>=16;{ делать, пока N<16} ierr:=1; GS_int:=gs; end;{GS_int}

Page 17: Лаб раб 1 - Численное интегрирование 2013-09-09

- 17 -

Приложение 3. Выбор вариантов для численного интегрирования

N

варианта

F(x) пределы - a b

1 x3cosxcos3 0 1,6 10-4

2 x4,0sinxsin 4,0 0 1,6 10-4

3 x5,0cosxsin 0 1,6 10-4

4 xcos7,01/x3cos 0 1,6 10-4

5 2xcos3xsin5,01 0 1,6 10-4

6 xsin49,011 2 0 1,6 10-4

7 excos1exsinx 2 0 3 10-3

8 xcos3,09xsin 2 0 3 10-3

9 exsin6101 0 1,6 10-4

10 xxsin451 0 1,6 10-4

11 xcos1213sin 2 0 3 10-3

12 36,0xxlnx 24 1,25 2,45 410

13 22 x225,0xxln 0,5 1,7 410

14 2x

1xsinln

0,32 1,52 410

15 3x

1xlncos

1,16 2,72 410

16 2x x1ex 0,3 1,1 410

17 2x4,0 x4,01ex 0,3 1,5 410

18 x3,1e73,028,31 0,3 1,5 410

19

73,2

xarctg

x

14

1,7 2,5 410

20

2

2

x

44,1

2,1

xcosarc

0,2 1,0 410

21 22 xx9 1,7 2,9 410

22 x3,193,0x7,01,1 0,7 1,9 410

23 323 x5,2x 1,3 2,9 410

24 525 x36,0x 0,05 1,65 410

25 3,1xx3,1ln 0,1 1,7 410

26 3,1xx3,1ln 01 1,7 410

Page 18: Лаб раб 1 - Численное интегрирование 2013-09-09

- 18 -

27 x7,0lnx 2,0 2/3 3/5 410

28 32 x21,1xxln 2,3 3,5 410

29 22 x25,2xxln 2,3 3,1 410

30

9

xarcsin

x

12

1,5 3,1 410

31

7,1

xarcsin

x

13

0,3 1,5 410

32 xsin64,01xcos 2 1,35 2,95 410

33 xcos1xcosxsin 0,45 1.25 410

34 xsin4xcos91 22 0 1,6 410

35 xsin4xcos91 22 0 1,6 410

36 xsin1xsinxcos 0,45 1,65 410

37 xcos1xsinxcos 0,25 1,45 410

38 x2xlg 1,2 2 410 39 1xxtg 22 0,2 1 410

40 22 x215,0xtg 0,18 0,98 410

41 2xcos1x 0,2 1,8 410

42 1x2xlg 2 1,4 2,2 410

43 5,0xsin1x2 0,8 1,6 410

44 xcosx2 0,6 1,4 410

45 x23xlg 2 1,2 2 410

46 1x8,0xlg 2 2,5 3,3 410

47 1xxtg 2 0,5 1,2 410

48 x21xsin 2 1,3 2,1 410

49 2xcos1x 0,2 1,0 410

50 2x4,0xsin 2 0,8 1,2 410

51 3xlg1x 0,15 0,63 410

52 1x2x1lg 2 1,2 2,8 410

53 x2tg1x 0,6 0,72 410

54 1xxcos 2 0,8 1,2 410

Литература:

1. Каханер Д., Моулер К., Нэш С. Численные методы и математическое обеспечение: Пер. с англ.- М.: Мир, 1998.- 575 с.

Page 19: Лаб раб 1 - Численное интегрирование 2013-09-09

- 19 -

2. Справочник по специальным функциям/Под ред. М.Абрамовица и И.Стиган .- М.: Наука .- 1979, 830с.

3. Дж. Форсайт, М.Малькольм, К. Моулер. Машинные методы математических «вычислений» –М.: Мир,1980.

4. Х.Гулд, Я.Тобочник. Компьютерное моделирование в физике, в 2ух томах.-М.:Мир.-1990г.