Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6 Численное интегрирование.doc
Скачиваний:
0
Добавлен:
28.11.2019
Размер:
784.9 Кб
Скачать

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

Применяя интерполяционную формулу Лагранжа при n = 2, получим значения коэффициентов:

.

(6.15)

Геометрический смысл формулы Симпсона (6.15) заключается в том, что кривая y = y(x) заменяется частью параболы, проходящей через три точки (x0, y0), (x1, y1) и (x2, y2).

Формула Симпсона точна не только для полинома второй степени, но и для полинома третьей степени в силу симметрии, показанной на рис. 6.4б.

Рис.6.4

Остаточный член формулы (6.15) имеет порядок O(h5).

Общая формула Симпсона строится для четного n = 2m; при этом формула (6.15) применяется для каждого из отрезков [x0, x2], [x2, x4], …, [xn–2, xn]:

. (6.16)

Поменять местами второе и третье; h/3 вынести за знак суммы

Остаточный член общей формулы Симпсона (6.16) имеет порядок O(h4).

Пример 6.2. Вычислить по формуле Симпсона (6.16) интеграл

,

используя разбиение отрезка на n = 10 частей.

Решение. Проведем вычисления в программе Excel. В столбце A и B запишем значения индекса i и переменной x. В ячейку B2 вводим формулу =sin(B2)/B2 и маркером заполнения копируем в ячейки B3:B12. В ячейках D2:D12 вводим коэффициенты при yi общей формулы Симпсона (6.16). В ячейку D13 вводим формулу =СУММПРОИЗВ(C2:C12;D2:D12)*0,1/3. Результаты вычислений приведены в таблице 6.2.

Табл. 6.2

A

B

C

D

1

i

xi

yi

Коэффициенты

2

0

1

1

1

3

1

1,1

0,909091

4

4

2

1,2

0,833333

2

5

3

1,3

0,769231

4

6

4

1,4

0,714286

2

7

5

1,5

0,666667

4

8

6

1,6

0,625

2

9

7

1,7

0,588235

4

10

8

1,8

0,555556

2

11

9

1,9

0,526316

4

12

10

2

0,5

1

13

Интеграл=

0,693150231

Найдем относительную погрешность

Как видим, формула Симпсона дает более высокую точность по сравнению с методом трапеций.

Создадим в файле программы Excel для решения примера 6.2 макрос — функцию для вычисления интеграла по формуле Симпсона (6.16).

С помощью меню «Сервис — Макроc — Редактор Visual Basic» откроем окно редактора, выполним команду «InsertModule» и введем программы

Function f(x): f = 1 / x: End Function

Function Int_Simpson(a, b, n)

s = 0: h = (b - a) / n: h2 = h * 2: x = a

For i = 0 To n - 2 Step 2

s = s + f(x) + 4 * f(x + h) + f(x + h2): x = x + h2

Next i

Int_Simpson = h * s / 3: End Function

Теперь, если в ячейку D14 введем формулу =Int_Simpson(1;2;10), получим приближенное значение 0,693150231.