Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Chislennye_metody_obedin.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

2.4. Метод Симпсона.

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

2.4.1. Расчётная схема.

Суммирование таких интегралов (площадей, ограниченных параболами) приводит к более точной, чем в предыдущем случае, составной формуле:

Пример. Вычислить .

а) Метод Ньютона-Лейбница.

б) Разобьём отрезок [0;1] на 4 части. Шаг разбиения . Вычисляем в каждой точке разбиения значение подынтегральной функции .

0

1

2

3

4

X

0

0.25

0.5

0.75

1

Y

1

0.941

0.8

0.64

0.5

По методу трапеций:

По методу Симпсона:

Расчеты показывают хорошее совпадение результатов, полученных численным интегрированием, с результатом непосредственного интегрирования (по методу Ньютона-Лейбница). Увеличение числа разбиений приведет к более точным результатам.

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

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

Данный алгоритм позволяет вычислить значение интеграла c автоматическим выбором шага. Для удобства программирования используется измененная формула Симпсона:

.

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

Данная схема решения носит название метода парабол.

2.4.2. Блок-схема.

2.4.3. Программа.

function msimpson(a,b,e: real): real;

var

x,s,h,r,i,i1: real;

begin

h:=(b-a)/2;

i1:=0;

r:=1;

while r>e do

begin

s:=(f(a)+f(b))/2;

x:=a+h;

repeat

s:=s+2*f(x)+f(x+h);

x:=x+2*h;

until x>(b-h);

i:=2*h*s/3;

r:=abs(i-i1)/15;

h:=h/2;

i1:=i;

end;

msimpson:=i;

end;

2.5. Дополнения к разделу.

2.5.1. Комментарии.

В разделе, представленном выше, описаны алгоритмы и программы, которые работают на заранее определенном отрезке с заданной точностью или с заданным разбиением .

Методы, представленные в этой главе, дают разную точность. Точность до (в лучшем случае) достигается при максимально большом разбиении , минимальном , смене типа real на тип double (или Extended). Для достижения точности используют интегрирование интерполяционных формул (раздел 1.8.1), или перевод всех арифметических действий на длинную математику.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]