Лабы / ЧМ 12 вариант / ЛР4.Численное Интегрирование 12 вариант
.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) = 5*x*sin(x+1) + 2*cos(x)– подынтегральная функция;
a=1, b=2–пределы интегрирования;
методы интегрирования – средних прямоугольников, трапеций,
начальный шаг интегрирования 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 = 1, b = 2, h = 0.25, n = (b – a) / h + 1 = 5
xi = [1, 1.25, 1.5, 1.75, 2]
f(xi) = [5.627, 5.493, 4.630, 2.983, 0.578]
I0.25 = 0.25 * ( 5.627+5.493+4.630+ 2.983+0.578) = 4.827
2) a = 1, b = 2, h = h/2 = 0.125, n = (b – a) / h + 1 = 9
xi = [1, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 1.875, 2]
f(xi) = [5.627, 5.645, 5.493, 5.158, 4.630, 3.904, 2.983, 1.870, 0.578]
I0.125 = 0.125 * ( 5.627+5.645+5.493+5.158+4.630+3.904+2.983+1.870+0.578) = 4.486
3) Ra = |I0.125 - I0.25 | = 0.459, R = |I0.125 - I0.25 | / 3 = 0.459/3 = 0.153
Ra <= R
4.5 Вычисление определенных интегралов программой
from math import *
def f(x): return 5*x*sin(x+1) + 2*cos(x) a = 1 b = 2 I = f(a) + f(b) def trapecia(a, I): n = 8192 h = (b - a) / n for i in range(1, n): x = a + i*h I = I + f(x) I = h*I return I, n+1, h trap = trapecia(a, I) print(trap) a = 1 b = 2 I = f(a) + f(b) def trapecia1(a, I): n = 16394 h = (b - a) / n for i in range(1, n): x = a + i*h I = I + f(x) I = h*I return I, n+1, h trap1 = trapecia1(a, I) print(trap1) def R(I0, e=0.0001): I = trap[0] if abs(I - I0)/3 < e: I0 = I n = 2*n I = trap1[0] return abs(I - I0) R = R(I, e) print(float(R))
И его результат
(4.8281643529957785, 5, 0.25)
(4.4864658256902485, 9, 0.125)
0.00018949656860112185, n1 = 8192, n2 = 16384
Вывод:
В данной работе я сделал операцию численное интегрирование. На компьютере и на бумаге
