f x dx
a
представляет собой площадь криволинейной трапеции. Идея методов численного
Метод трапеций.
В этом методе используется линейная аппроксимация подынтегральной функции, т. е.
график функции y f ( x) представляется в виде ломаной, соединяющей точки ( xi , yi ) . Фор-
ba
мула трапеций при постоянном шаге h имеет вид
n
y y n n1
b
f x dx h 0 yi ,
a 2 i 1
где n – число участков разбиения интервала интегрирования. При этом ошибка интегриро-
вания пропорциональна h 2 .В MATLAB данную формулу реализует команда trapz(…).
1
dx
Например, пусть требуется найти значение интеграла 1 x
0
2
.
Решение
x [0 : 0.001:1];
y 1. (1 x. ^ 2);
>> trapz(x, y)
ans =
0.7854
Для реализации команды trapz(…) необходимо:
1
1) задать значения аргумента x разбиением интервала интегрирования [0;1] на отрезки,
выбрав шаг определѐнной длины (в данном случае шаг равен 0, 001 );
2) задать значения подынтегральной функции y для каждого значения x ;
3) подставить векторы x , y в функцию trapz(x,y).
Интеграл в данном примере вычисляется точно и он равен . Сравним полученное значение
4
с точным:
ans - pi 4
ans
4.1667e 008
из приведенного видно, что интеграл вычислен достаточно точно с ошибкой в восьмом знаке
после запятой, т.е. длина шага интегрирования выбрана удачно.
Реализация метода трапеций в M-файле имеет вид
function I = trapz_method(a, b, h)
%интегрирование функции f(x) интервале [a; b] методом трапеций с шагом h
x = [a : h : b];
y = f(x);
I = trapz(x, y);
function z = f(x)
%подынтегральная функция
z = 1. / (1+ x. ^ 2);
Замечание:
Входными аргументами M-файла являются пределы интегрирования и шаг, подынте-
гральная функция задана в самом M-файле в виде функции.
Метод Симпсона
Если интервал интегрирования разбить на отрезки постоянной длины и на каждом из
них подынтегральную функцию заменить параболой, то формула Симпсона с постоянным
шагом интегрирования h будет иметь вид
b
2
a,b – пределы интегрирования;
tol – относительная погрешность вычисления интеграла, задаваемая пользователем, по
умолчанию tol 106 . При этом шаг задаѐтся автоматически для достижения требуемой
точности.
Пример
1
dx
Вычислим интеграл
0 1 x2
методом Симпсона
Решение.
>> quad('1. sqrt(1 x. ^ 2) ', 0, 1)
ans =
1.5708
В этом примере точность выбрана по умолчанию. В случае, когда подынтегральная функция
1
задана в M-файле:
1 x2
function y = F(x)
%подынтегральная функция
y = 1. / sqrt(1- x. ^ 2);
Метод Гаусса-Лобатто
Интегрирование достаточно гладких функций имеет смысл проводить командой
quadl('f(x)',a,b,tol) , основанной на более точных квадратурных формулах Гаусса-Лобатто,
это экономит время вычислений. Подробнее об этом методе численного интегрирования
можно познакомится в специальной литературе.
3
№ Подынтегральная функция f(x) Интервал интегриро- Точность вычисле-
п/п вания [a; b] ний интеграла
1 ln x / x 1 ln x [1; 3.5] 0.001
2 tg 2 x ctg 2 x [/6; [/3] 0.002
3 1 / x ln x [1.5; 3.] 0.0001
4 ln 2 x / x [1.0; 4,0] 0.003
5 ex 1 [0; ln2] 0.0015
6 xe x sin x [1.0; 4.0] 0.002
7 e x ex [0.0; 2.0] 0.001
x
2
8 1/ 9 x 3 [2.0; 5.0] 0.001
9 sin 1 / x x 4 [1.0; 2.5] 0.0005
10 x 3 arctgx [0.0; 3 ] 0.003
11 arcsin x / 1 x [0.0; 3,0] 0.001
12 x 2 1 ln x [1.5; 3.0] 0.0025
13 1 / 1 3x 2 x 2 [0,0; 5.0] 0.001
14 x 2 0.14 / x [2.3; 6.0] 0.002
15 2 3 x ln cos x [0.0; /2] 0.001
16 e 3x
1 / ex 1 [0.0; 2.0] 0.0015
17 xarctgx / 1 x 2 [0.0; 2.0] 0.002
18 sin 5 x / ln 1 x 3 [0.0; /4] 0.001
19 x2 4 x2 [0.0; 1.8] 0.0006
20 e x cos 2 x [0.0; ] 0.0016
21 1.5x 2 x/x 3 2 [0.0; 1.2] 0.002
22 sin x /x 2.7
3 2 [2.0; 4.4] 0.0014
23 3.5tgx x / x 3.7 3 [0.0; 1.2] 0.002
24 1.2 3.2x /1 sin x
2 2 [2.0; 4.4] 0.0011
25 3.17 x 4,2 / cos 2 x [1.0; 2.2] 0.0023
26 x 3.2/x 4.7
2 5 [0,0; 1.8] 0.0015
27 1.5x x/x 2
2 3 [0.0; 1.2] 0.001
28 e x ln sin x 2 [1.0; 3.0] 0.002
29 tgx 2 / e x [0.0; 1.0] 0.0013
2