Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Численные методы ИПОиИТ лекции лето 2010-11.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
314 Кб
Скачать
☆

Численное интегрирование

Для вычисления определенного интеграла используется формула Ньютона-Лейбница: ,

где F(x) – одна из первообразных функции f(x) (такая что F’(x)=f(x)).

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

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

Считая f(x)  Ln(x), на [a,b], получим

не зависит от x, обозначим через Ai

Перейдем всюду к переменной t: , откуда , .

При x = x0 t = 0;

…

x = xn .

Тогда .

Таким образом, Ai=(b-a) Hi, где , i=0,1,…,n.

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

Найдем коэффициенты формулы ,

где , i=0,1,…,n при n=1.

При i = 0

При i = 1

Формула на отрезке [x0, x1] примет вид:

Для отрезка [a, b]: (*)

Рассмотрим погрешность:

На отрезке [x0, x1] погрешность .

При (*) дает значение интеграла с избытком;

при (*) дает значение интеграла с недостатком.

На отрезке [a, b] .

Поскольку hn=|b-a|, то , где .

Блок-схема численного интегрирования методом трапеций:

n:=round(abs(b-a)/h)

s:=0

x := a+h*i

s := s+f(x)

s := h*(s-(f(a)+f(b))/2)

Программа численного интегрирования методом трапеций:

program lab_4_1;

var i,n :integer;

s,h,a,b,x :real;

function f(x: real):real;

begin {функция в виде f:=[математическое выражение]}

f:=sin(x);

end;

begin

write('Введите левую и правую границы отрезка - ');

readln(a,b);

write('Введите шаг - '); readln(h);

n:=round(abs((b-a)/h));

s:=0;

for i:=0 to n do

begin

x:=a+h*i;

s:=s+f(x);

end;

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

writeln('Искомый определенный интеграл равен ',s:10:6);

readln;

end.

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

Найдем коэффициенты формулы ,

где , i=0,1,…,n при n=2.

При i = 0

При i = 1

При i = 2

Формула на отрезке [x0, x2] примет вид:

При n=2m применив формулу к каждой паре частичных отрезков [x2i-2, x2i] (i=1,2,…,m) получим формулу Симпсона:

Рассмотрим погрешность:

На отрезке [a, b]

или , где

При вычислении по методу повторного счета можно использовать формулу: . Если при вычислении интеграла требуемая точность не достигнута (т.е. ), предусматривается повторный счет с шагом, уменьшенным вдвое.

Блок-схема вычисления по формуле Симпсона методом повторного счета

Программа вычисления по формуле Симпсона методом повторного счета:

program lab4_2;

var n: integer;

S,a,b,e,h,x,I_n,I_n2,M: real;

function f(x: real):real;

begin {записать, функцию в виде f:=[матем. выражение]}

f:=sin(x);

end;

begin write('Введите концы отрезка интегрирования: ');

readln(a,b);

write('Введите погрешность e: '); readln(e);

I_n:=0;

n:=4;

Repeat

h:=abs(b-a)/n;

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;

I_n2:=2*h*s/3;

n:=n*2;

M:=abs(I_n - I_n2);

I_n:=I_n2;

Until M<=15*e;

writeln('Интеграл I=',I_n2:12:7);

readln;

end.