- •Численное интегрирование
- •Формула трапеций
- •Введите число точек - 100
- •Формула Симпсона
- •Приближенное вычисление несобственных интегралов с бесконечными пределами
- •Аппроксимация некоторых несобственных интегралов определенными интегралами с точностью ε.
- •Упрощение подынтегральных функций
- •Приближенное вычисление несобственных интегралов от функции с бесконечным разрывом
- •Численное решение дифференциальных уравнений Основные определения и постановка задачи
- •Метод Эйлера
- •Методы Рунге-Кутта
- •Классический метод Рунге-Кутта
- •Метод наименьших квадратов Постановка задачи
- •Нахождение приближающей функции в виде линейной функции
- •Нахождение приближающей функции в виде других элементарных функций
- •Нахождение приближающей функции в виде квадратичной функции
Численное интегрирование
Для вычисления определенного интеграла используется формула Ньютона-Лейбница: ,
где 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|, то , где .
Программа численного интегрирования методом трапеций:
program lab_4_1a;
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.
Блок-схема численного интегрирования методом трапеций: |
Результаты работы программы: |
n:=round(abs(b-a)/h) s:=0
x
:= a+h*i s
:= s+f(x)
s
:= h*(s-(f(a)+f(b))/2)
|
Введите левую и правую границы отрезка - 0 3 Введите шаг - 0.1 Искомый определенный интеграл равен 1.988334
Введите левую и правую границы отрезка - 0 3 Введите шаг - 0.05 Искомый определенный интеграл равен 1.989578
|
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(n);
h:=abs((b-a)/n);
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.
Введите левую и правую границы отрезка - 0 3.1415
Введите число точек - 100
Искомый определенный интеграл равен 1.999836
Введите левую и правую границы отрезка - 0 3.1415
Введите число точек - 1000
Искомый определенный интеграл равен 1.999998
Введите левую и правую границы отрезка - 0 3.1415
Введите число точек - 10000
Искомый определенный интеграл равен 2.000000