Лабы / ЧМ. 11 вариант / ЛР 4. 11 варик
.odtМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ
КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский технический университет связи и информатики»
Кафедра «Информатика»
Лабораторная работа №4
«Численное интегрирование»
по дисциплине
«Численные методы»
Выполнил: студент гр. БИК2107 Мальцев В.В.
Проверил:
Москва, 2022 г.
4.1. Вопросы, подлежащие изучению
Постановка задачи численного интегрирования.
Методы прямоугольников, трапеций, Симпсона.
Оценка погрешности численного интегрирования. Правило Рунге.
Графическая иллюстрация методов прямоугольников, трапеций и Симпсона.
4.2. Задание
Выбрать индивидуальное задание из табл.3-1 для численного интегрирования:
f(x) – подынтегральную функцию;
a, b– пределы интегрирования;
методы интегрирования для выполнения п.2 – значение в столбце tиm;
начальный шаг интегрирования h0.
При этом значения в столбцах t и m означают: 1 –интегрирование методом средних прямоугольников, 2 – методом трапеций, 3 – методом Симпсона.
В сценарии пакета Scilab создать функцию для вычисления интеграла по 1-му заданному методу, определяя значения (столбец m)из табл. 3-1, с шагом и h0 и h0 / 2 (I и I).
Провести оценку погрешностей полученных результатов по правилу Рунге.
Провести оценку погрешностей полученных результатов по правилу Рунге.
Написать и выполнить программу вычисляется интеграла по 2-му заданному методу (столбец t из табл. 3-1) с точностью 10-4.
Вычислить заданный интеграл с использованием функции intg пакета Scilab.
4.3. Варианты задания
Таблица 3-1
-
№
Подынтегральная функция
a
b
t
m
1
f(x) = 8 e-x sin(-2x)
2
3
1
3
0.25
2
f(x) = e-x sin(2x)
0
2
2
1
0.5
3
f(x) = x3/2 – 2 x sin(x)
3
4
3
2
0.25
4
f(x) = e-xcos(-2x)
2
4
1
3
0.5
5
f(x) = cos(2x) + 2 sin(x)
1
3
2
1
0.5
6
f(x) = 8 sin(2x) – x
0.2
1.2
3
2
0.25
7
f(x) = 5 cos(-2x) e-x
-0.5
0.5
2
3
0.25
8
f(x) = x sin(x + 1) – cos(x – 5)
1
2
1
2
0.25
9
f(x) = 0,25 x3 + cos(x/4)
1
3
1
3
0,5
10
f(x) = sin(2x) – 2 sin(x)
3.5
5
1
3
0.5
11
f(x) = sin(ex) – e-x +1
0
1
2
1
0.25
12
f(x) = 5 x sin(x + 1) + 2 cos(x)
1
2
1
2
0.25
13
f(x) = 5 e-x + 4 x + x3/3
-1
1
1
2
0.5
14
f(x) = -2 sin(4x) ln(-x) + 5
-2.5
-1.5
1
3
0.25
15
f(x) = sin(x – 1) – x cos(x + 3)
-4
-2
3
1
0.5
16
f(x) = 4 sin (x) – x1/2
1
2
2
3
0.25
17
f(x) = 5 sin3(x) + cos3(x)
1
2
2
1
0.25
18
f(x) = cos(2x + 1) ln (2 / x) + 3
1
3
3
2
0.5
19
f(x) = 3 cos(x2) / ln(x + 5)
-1
1
1
3
0.5
20
f(x) = sin(x2) + 1 / (2 – x)
-1.5
0.5
2
1
0.5
21
f(x) = x sin(x) + cos(x) + 5
0
2
1
2
0.5
22
f(x) = – cos(x) – cos(2x) – x + 5
1
3
3
1
0.5
23
f(x) = 1 + sin(4x) / ln(x)
1.5
2.5
1
3
0.25
24
f(x) = (1 + x2)1/2 + e-x
-1
2
2
1
0.75
25
f(x) = sin(x + 1) e2 / x
1
2
3
2
0.25
26
f(x) = 2 (1 + x) e-x – 2 cos(x)
1
4
2
3
0.75
27
f(x) = – 8 sin(– x3) e-x
0.4
1.4
1
3
0.25
28
f(x) = – 10 sin(x3) cos(– x)
-1.4
-0.4
2
1
0.25
29
f(x) = x2cos(x + 3) – 4
3
4
3
1
0.25
30
f(x) = – cos(x – 5) e2x / 3
1
3
1
3
0.5
4.4. Содержание отчета
Индивидуальное задание.
Сценарий пакета Scilab для проведения расчета двумя заданными методами интегралов с шагом h0 и h0/2 (IH0 и IH0/2 ) и значения погрешностей по правилу Рунге.
Программа вычисления интеграла по 2-му заданному методу с точностью 10-4.
Результаты программы
Ход работы
Задания для численного интегрирования:
f(x) = sin(ex) – e-x +1– подынтегральная функция;
a=0, b=1–пределы интегрирования;
методы интегрирования – средних прямоугольников, трапеций,
начальный шаг интегрирования h0=0.25.
Вычисление интегралов с шагом h0 и h0/2 (IH0 и IH0/2 ) и оценка его погрешности по правилу Рунге
Правило Рунге применяют для вычисления погрешности путём двойного просчёта интеграла с шагами h/2 и h,при этом погрешность вычисляется по формуле R = |Ih - Ih/2| / (2p - 1) .
Полагают, что интеграл вычислен с точностьюЕ, если |R|<=E тогда I = Ih/2 + R , где I – уточненное значение интеграла, p – порядок метода.
Вычислим интеграл по формуле
трапеций и оценим погрешность интегрирования методом двойного просчета:
1) a = 0, b = 1, h = 0.25, n = (b – a) / h + 1 = 5
xi = [0, 0.25, 0.5, 0.75, 1]
f(xi) = [0.841, 1.1803, 1.3904, 1.3821, 1.0429]
I0.25 = 0.25 * (0.841+1.0429 + 2*(1.1803+1.3904+1.3821)) = 1.447
2) a = 0, b = 1, h = h/2 = 0.125, n = (b – a) / h + 1 = 9
xi = [0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1]
f(xi) = [0.841, 1.0232, 1.1803, 1.3060, 1.3904, 1.420, 1.3821, 1.259, 1.0429 ]
I0.125 = 0.125 * ( 0.841+1.0429 +2*(1.0232+1.1803+1.3060+1.3904+1.420+ 1.3821+1.259)) = 1.475
3) Ra = |I0.125 - I0.25 | =0.0283, R = |I0.125 - I0.25 | / 3 = 0.0283/3 = 0.00945
Ra <= R
4.5 Вычисление определенных интегралов программой
print('priamoygolnik') def priamoygolnik(f, a, b, n): h = (b - a) / n result = 0 for i in range(n): xi = a + h/2 + i*h result += f(xi)*h return result, n+1, h # Пример использования функции: def f(x): return sin(exp(x)) - exp(-x) +1 a = 0 b = 1 n = 100 pr = priamoygolnik(f, a, b, n) print("Значение интеграла:", pr) def priamoygolnik1(f, a, b, n): h = (b - a) / n result = 0 for i in range(n): xi = a + h/2 + i*h result += f(xi)*h return result, n+1, h def f(x): return sin(exp(x)) - exp(-x) +1 a = 0 b = 1 n = 2*n pr1 = priamoygolnik1(f, a, b, n) print("Значение интеграла:", pr1) def R(I0, e=0.0001): I = pr[0] if abs(I - I0)/3 < e: I0 = I I = pr1[0] return abs(I - I0) R = R(I, e) print(float(R), n/2, n)
И его результат
priamoygolnik
Значение интеграла: (1.2428518516090663, 101, 0.01)
Значение интеграла: (1.2428404428464968, 201, 0.005)
1.1408762569553588e-05 100.0 200
Вывод:
В данной работе я сделал операцию численное интегрирование. На компьютере и на бумаге
