Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Система компьютерной математики Octave. Лабораторный практикум
.pdf
Перечислим основные методы вычисления интегралов от функций одной
переменной, которые присутствуют в пакете Octave:
trapz(x,y)
quad(f, a, b)
– метод трапеций;
– метод, основанный на квадратурах Гаусса. Узловые
точки в этом методе есть корни полиномов Лежандра степени n. В этом случае
квадратурная формула дает точные значения при интегрировании полиномов,
степень которых не превосходит 2n-1. Значение n выбирается так, чтобы обеспечить заданную точность вычислений (по умолчанию 10-6);
quadv(f, a, b)
quadl(f, a, b)
– метод Симпсона с автоматическим выбором шага;
– квадратурная формула Лобатто. Она отличается тем,
что в набор узловых точек принудительно включены пределы интегрирования,
а остальные точки выбираются из условия обеспечения максимальной алгебраической точности формулы;
quadgk(f, a, b)
– метод Гаусса – Кронрода, с помощью которого
можно вычислять и несобственные интегралы (интегралы от разрывных функций и интегралы с бесконечными пределами). Однако при вычислении расходящихся интегралов эта функция иногда возвращает неверный результат –
большое, но конечное значение вместо значения
можно использовать функцию
quadcc(f, a, b)
Inf
или
-Inf
. В этом случае
, однако в некоторых случаях
она может зациклиться. Чтобы прервать выполнение скрипта, следует нажать
комбинацию клавиш Ctrl+C.
Пример 1. Сравним методы Симпсона, Лобатто и Гаусса на примере инте-
π
грала
дов
):
∫
0
5sin xdx (
при написании программы учтем синтаксис вызова этих мето
-
f = @(x) sin(5*x);
format long;
[res,n] = quadv(f,0,pi)
[res,n] = quadl(f,0,pi)
[res,err,n] = quad(f,0,pi)
Здесь
зультат
res = 0.400000099958552 % формула Симпсона
n = 209
res = 0.400000000000001 % формула Лобатто
n = 44
res = 0.400000000000000 % формула Гаусса
err = 0
n = 63
.
err
–
код ошибки, значение
0
означает, что получен корректный ре
-
90

Пример 2. Вычислим в командном окне Octave несобственные интегралы
∞
2
−
x
∫
0
>> quadgk(@(x) exp(-x.^2),0,Inf)
ans = 0.886226925452758
>> quadcc(@(x) exp(-x.^2),0,Inf)
ans = 0.886226925452756
>> quadgk(@(x) 1./(1-x).^0.5,0,1)
ans = 1.99999999999978
>> quadcc(@(x) 1./(1-x).^0.5,0,1)
ans = 1.99999985788214
>> quadgk(@(x) 1./x,0,1)
ans = 38.5083785045585 % неверный результат
>> quadcc(@(x) 1./x,0,1)
ans = Inf % верный результат
1
dxe
dx
,
∫
−
1 x
0
и
1
dx
,
∫
0
используя функции
x
quadgk
(…) и
quadcc
(…):
Все функции численного интегрирования, кроме
trapz
(…), в
качестве пер
вого параметра принимают аналитически заданную функцию, поэтому они не
применимы к функции, заданной таблично. Для интегрирования таких функций
формально можно использовать только метод трапеций
.
Чтобы в этом случае получить более точное значение интеграла, можно ли
бо увеличивать число точек разбиения отрезка интегрирования, либо использо
вать методы интерполяции, например сплайн-интерполяцию
π
Пример
3.
Вычислим интеграл
sin xdx ,
∫
0
точное значение которого равно
Пусть нам известно значение подынтегральной функции
в точках
следующей интерполяции
0, pi/3, 2*pi/3 (мы
специально
).
Вычислим этот интеграл
А) используя функцию trapz
k = 3;
dx = pi/k;
x = [0:dx:pi];
y = sin(x);
z = trapz(x,y)
мало точек для иллюстрации по
.
:
.
y = sin(x)
2.
только
-
-
-
-
-
Результат
z = 1.8138
:
Б) используя сплайн-интерполяцию. В этом варианте мы сначала получим
структуру сплайна, а затем вычислим сумму интегралов на каждом интервале
разбиения. Запишем структуру аппроксимирующего сплайна в переменную pp
pp=spline(x,y);
В этой структуре нас будет интересовать только поле
pp.coefs
–
коэффи
циенты кубических полиномов на каждом отрезке разбиения. Заметим, что ко
91
:
-
-

))1sin(ln(
+
=
x
y
эффициенты полинома на каждом отрезке "привязаны" к его левой границе,
т. е. интерполирующий полином имеет вид
P(x-xleft)
, что упрощает вычисление первообразной. Для вычисления коэффициентов первообразной для полинома P используем функцию
мер. Пусть, например,
p = [2,0,1,1];
w = polyint(p)
polyint(P)
3
. Выполним программу:
12)(
++= xxxP
. Для иллюстрации приведем при-
Результат
w =
0.50000 0.00000 0.50000 1.00000 0.00000
Мы получили коэффициенты первообразной функции – полинома
24
(результат легко проверить дифференцированием).
5.05.0)(
xxxxW ++=
Теперь понятно, как вычислить интеграл. Для этого в цикле вычисляем первообразную для каждого отрезка разбиения и, используя формулу Ньютона – Лейбница и функцию
polyval
, получаем "вклад" этого отрезка в общую сумму.
S = 0;
for i=1:k
w=polyint(pp.coefs(i,:))
S = S + polyval(w,dx);
end
S
Изменяя параметр k (количество отрезков разбиения области интегрирования), можно оценить скорость сходимости каждого из рассмотренных методов
к теоретическому значению.
k Метод трапеций Сплайн-интерполяция
3 1.8138 2.0405
4 1.8961 2.0046
5 1.9338 2.0013
6 1.9541 2.0004
7 1.9663 2.0001
8 1.9742 2.0000
9 1.9797 2.0000
Варианты заданий к лабораторной работе № 6
Вариант 1
А) Вычислить численно первую производную функции
x,
изменяющегося от
0 до 2 с
шагом
0.1,
шагом
0.2 и
шагом
0.4.
Определить в
для
каждом случае максимальную погрешность результата, сопоставив полученные
значения со значениями, рассчитанными по аналитической формуле
92
.

))1cos(ln(
+
=
x
y
8
Б) Вычислить значение определенного интеграла
dx
∫
1
, используя:
2
3
x
1) метод Симпсона;
2) квадратурную формулу Гаусса;
3) квадратурную формулу Лобатто.
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате long.
В) Вычислить определенный интеграл от таблично заданной функции, используя:
1) метод трапеций;
2) ее интерполяцию кубическим сплайном.
x
y
0.0
-52.3
Г) Вычислить несобственный интеграл
0.5
-22.4
1.0
-5.2
1.5
4.7
2.0
4.9
∞
−
∫
0
2.5
3.0
x
dxe
. (
Д) Вычислить интеграл от неограниченной функции
3.0
2.7
3
x
dxe
∫
0
. )
x
3.5
4.1
Вариант 2
А) Вычислить численно первую производную функции
4.0
7.7
для
x, изменяющегося от
1 до 3 с
шагом
0.1,
шагом
0.2 и
шагом
0.4.
Определить в
каждом случае максимальную погрешность результата, сопоставив полученные
значения со значениями, рассчитанными по аналитической формуле
π
2
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
;
;
.
2
sin
∫
0
xdxx
.
,
используя
:
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
long.
В) Вычислить определенный интеграл от таблично заданной функции, ис
пользуя
:
1)
метод трапеций
2) ее
интерполяцию кубическим сплайном
;
.
x 0.0
y 12.3
0.5
26.4
1.0
52.0
1.5
65.1
2.0
64.9
2.5
53.0
3.0
42.7
3.5
38.7
4.0
32.5
-
93

1
x
+
∞
Г) Вычислить несобственный интеграл
∫
1 x
0
dx
+
.
2
Д) Вычислить интеграл от неограниченной функции
Вариант 3
А) Вычислить численно первую производную функции
2/
dx
∫
0
.
sinπx
x
y
=
для x, из
2
-
меняющегося от
-1 до 1 с
шагом
0.1,
шагом
0.2 и
шагом
0.4.
Определить
в каждом случае максимальную погрешность результата, сопоставив получен
ные значения со значениями, рассчитанными по аналитической формуле
π
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
;
;
.
cos
xdxx
,
∫
0
используя
.
:
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
long.
В) Вычислить определенный интеграл от таблично заданной функции, ис
пользуя
x 0.0
y 12.3
:
1)
метод трапеций
2) ее
интерполяцию кубическим сплайном
26.4
Г) Вычислить несобственный интеграл
0.5
;
1.0
52.0
1.5
65.1
2.0
64.9
∞
∫
0
.
2.5
53.0
dx
++
xx
Д) Вычислить интеграл от неограниченной функции
3.0
42.7
. )
2
)1)(1(
1
ln
xdx
∫
0
.
3.5
38.7
4.0
32.5
Вариант 4
А) Вычислить численно первую производную функции
2
1xy+=
для x
-
-
,
изменяющегося от
в каждом случае максимальную погрешность результата, сопоставив получен
ные значения со значениями, рассчитанными по аналитической формуле
Б) Вычислить значение определенного интеграла
метод Симпсона
1)
0 до 2 с
;
шагом
0.1,
94
шагом
0.2 и
3
∫
0
шагом
dx
+
1
x
0.4.
,
используя
Определить
-
.
:

xxy
sin
=
2) квадратурную формулу Гаусса;
3) квадратурную формулу Лобатто.
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате long.
В) Вычислить определенный интеграл от таблично заданной функции, ис-
пользуя:
1) метод трапеций;
2) ее интерполяцию кубическим сплайном.
x
y
0.0
29.4
Г) Вычислить несобственный интеграл
0.5
31.5
1.0
33.0
1.5
34.0
2.0
34.5
∞
∫
1
lnxxdx
2
2.5
34.7
. )
Д) Вычислить интеграл от неограниченной функции
3.0
34.4
2/
dx
∫
cosπx
0
3.5
33.8
.
Вариант 5
А) Вычислить численно первую производную функции
для x, из
4.0
32.9
-
меняющегося от
-2 до 0 с
шагом
0.1,
шагом
0.2 и
шагом
0.4.
Определить
в каждом случае максимальную погрешность результата, сопоставив получен
ные значения со значениями, рассчитанными по аналитической формуле
2
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
;
;
.
2
ln
xdxx
,
∫
1
используя
.
:
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
long.
В) Вычислить определенный интеграл от таблично заданной функции, ис
пользуя
:
1)
метод трапеций
2) ее
интерполяцию кубическим сплайном
;
.
x
y
0.0
1.0
Г) Вычислить несобственный интеграл
0.5
0.2
1.0
0.0
1.5
0.1
2.0
0.4
∞
∫
0
xdx
+
2.5
0.6
. )
3
)1(
x
Д) Вычислить интеграл от неограниченной функции
3.0
0.9
1
dx
∫
−
1
0
x
3.5
1.1
.
2
4.0
1.2
-
-
95

x
1
Вариант 6
А) Вычислить численно первую производную функции
2
=
для x,
xxy cos
изменяющегося от 0 до 2 с шагом 0.1, шагом 0.2 и шагом 0.4. Определить
в каждом случае максимальную погрешность результата, сопоставив полученные значения со значениями, рассчитанными по аналитической формуле.
9
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
;
;
.
3
−
1dxx ,
∫
2
используя
:
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
long.
В) Вычислить определенный интеграл от таблично заданной функции, ис
пользуя
:
1)
метод трапеций
2) ее
интерполяцию кубическим сплайном
;
.
-
x
y
0.0
0.0
0.5
0.2
1.0
0.8
1.5
1.5
2.0
1.8
2.5
1.5
3.0
0.4
3.5
-1.2
4.0
-3.0
0
Г) Вычислить несобственный интеграл
Д) Вычислить интеграл от неограниченной функции
x
dxxe
∫
∞−
. )
1
xdxx ln)1(
+ .
∫
0
Вариант
А) Вычислить численно первую производную функции
7
y+=
2
x
для
x, из-
меняющегося от
в каждом случае максимальную погрешность результата, сопоставив получен
ные значения со значениями, рассчитанными по аналитической формуле
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
1 до 3 с
;
шагом
long.
0.1,
;
.
шагом
0.2 и
16
∫
шагом
dx
+
1 x
0
0.4.
,
используя
Определить
-
.
:
96

В) Вычислить определенный интеграл от таблично заданной функции, ис-
пользуя:
1) метод трапеций;
2) ее интерполяцию кубическим сплайном.
x 0.0
y 1.0
Г) Вычислить несобственный интеграл
Д) Вычислить интеграл от неограниченной функции
0.5
1.2
1.0
1.1
1.5
0.9
2.0
0.7
3
x
∫
∞−
2.5
0.5
dxe
. )
2
∫
0
3.0
0.3
dx
−
2 x
3.5
0.2
.
Вариант 8
4.0
0.2
А) Вычислить численно первую производную функции
изменяющегося от
0 до 2 с
шагом
0.1,
шагом
0.2 и
шагом
0.4.
для x
)1ln(2xy +=
Определить
в каждом случае максимальную погрешность результата, сопоставив получен
ные значения со значениями, рассчитанными по аналитической формуле
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
;
;
.
1
∫
0
2
−
4
dxx
,
используя
.
:
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
long.
В) Вычислить определенный интеграл от таблично заданной функции, ис
пользуя
:
1)
метод трапеций
2) ее
интерполяцию кубическим сплайном
;
.
x 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
y 0.0 21.9 25.0 23.3 18.4 11.1 1.7 -9.4 -22.0
∞
Г) Вычислить несобственный интеграл
Д) Вычислить интеграл от неограниченной функции
xdx
∫
1
1
. )
4
+
x
4
dx
∫
−
2
0
.
x
Вариант 9
x
А) Вычислить численно первую производную функции
изменяющегося от
1 до 3 с
шагом
0.1,
шагом
0.2 и
шагом
y+=
0.4.
8
для x
1
x
Определить
,
-
-
,
97

xxy
cos)2
(
+
=
в каждом случае максимальную погрешность результата, сопоставив полученные значения со значениями, рассчитанными по аналитической формуле.
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
;
;
.
π
π
−2/2/
∫
cos
2
xdx ,
используя
:
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
long.
В) Вычислить определенный интеграл от таблично заданной функции, ис
пользуя
:
1)
метод трапеций
2) ее
интерполяцию кубическим сплайном
;
.
x 0.0
y 4.0
Г) Вычислить несобственный интеграл
Д) Вычислить интеграл от неограниченной функции
0.5
2.0
1.0
0.5
1.5
0.0
2.0
0.0
∞
∫
2
dx
2
2.5
-0.2
−
1xx
. )
3.0
-1.0
1
dx
∫
+
−
2
3.5
-2.1
4.0
-2.6
.
2x
Вариант 10
А) Вычислить численно первую производную функции
для
-
x, изменяющегося от
-2 до 0 с
шагом
0.1,
шагом
0.2 и
шагом
0.4.
Определить в
каждом случае максимальную погрешность результата, сопоставив полученные
значения со значениями, рассчитанными по аналитической формуле
π
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
;
;
.
∫
0
2
sin
xdx, используя
.
:
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
long.
В) Вычислить определенный интеграл от таблично заданной функции, ис
пользуя
:
1)
метод трапеций
ее интерполяцию кубическим сплайном
2)
;
.
-
98

x 0.0
y -2.0
0.5
-2.2
1.0
-1.5
1.5
-0.8
2.0
-0.4
2.5
-0.1
∞
Г) Вычислить несобственный интеграл
lnxxdx
∫
1
. )
3
Д) Вычислить интеграл от неограниченной функции
Вариант 11
А) Вычислить численно первую производную функции
3.0
0.1
e
dx
∫
1
ln
xx
3.5
0.2
4.0
0.4
.
x
xey−=
для x, из
-
меняющегося от
0 до 2 с
шагом
0.1,
шагом
0.2 и
шагом
0.4.
Определить
в каждом случае максимальную погрешность результата, сопоставив получен
ные значения со значениями, рассчитанными по аналитической формуле
2/
π
Б) Вычислить значение определенного интеграла
1)
метод Симпсона
2)
квадратурную формулу Гаусса
3)
квадратурную формулу Лобатто
;
;
.
∫
0
2cossin
xdxx
.
,
используя
Результат (значение интеграла и количество вычислений подынтегральной
функции) вывести в формате
long.
В) Вычислить определенный интеграл от таблично заданной функции, ис
пользуя
:
1)
метод трапеций
2) ее
интерполяцию кубическим сплайном
;
.
x 0.0
y 1.0
0.5
1.1
1.0
0.5
1.5
0.1
2.0
-0.2
2.5
-0.4
3.0
-0.4
3.5
-0.3
4.0
-0.2
1
2
Г) Вычислить несобственный интеграл
Д) Вычислить интеграл от неограниченной функции
x
dxe
∫
∞−
. )
2
dx
∫
4
0
.
2
−
xx
Вариант 12
А) Вычислить численно первую производную функции
exy )2( −=
x
для x
-
:
-
,
изменяющегося от
в каждом случае максимальную погрешность результата, сопоставив получен
ные значения со значениями, рассчитанными по аналитической формуле
1 до 3 с
шагом
0.1,
99
шагом
0.2 и
шагом
0.4.
Определить
.
-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
