ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.11.2023
Просмотров: 24
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство цифрового развития, связи и массовых коммуникаций
Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное
бюджетное образовательное учреждение высшего образования
Московский технический университет связи и информатики
_________________________________________________________________
Кафедра «Информатика»
Лабораторная работа № 4 по дисциплине Численные методы
«Численное интегрирование»
Выполнил студент группы БИН2109: Зубков М.В.
Проверил: Мацкевич А.Г.
Москва 2023
Цель работы:
В этой лабораторной работе решается задача численного интегрирования.
Индивидуальное задание:
Для решения задачи численного интегрирования выберем функцию подынтегральную функцию, пределы интегрирования и метод интегрирования, согласно варианту №5:
-
f(x) = cos(2x) + 2 sin(x) – подынтегральная функция; -
a = 1, b = 3 – пределы интегрирования; -
m = 2, т.е. метод интегрирования – метод трапеций; -
t = 1, т.е. метод интегрирования – метод средних прямоугольников; -
h0 = 0.5 – шаг интегрирования.
Вычисление интегралов с шагом h0 и ( и ) методом трапеций и оценка его погрешности по правилу Рунге
Правило Рунге применяют для вычисления погрешности путём двойного просчёта интеграла с шагами и h, при этом погрешность вычисляется по формуле
Полагают, что интеграл вычислен с точностью Е, если |R| < E, тогда , где I – уточненное значение интеграла, p – порядок метода.
Вычислим интеграл по формуле трапеций и оценим погрешность интегрирования методом двойного просчета:
, где yi = f(xi)
Расчет производился с помощью математического пакета Mathcad и представлен на рисунке 1.
Рисунок 1 – вычисление интеграла методом трапеций
Оценка погрешности:
Вычисление интегралов с шагом h0 и ( и ) методом средних прямоугольников при помощи программы
Ниже представлен программный код, вычисляющий интеграл с заданной точностью.
import math
a = float(input("Введите нижний предел интегрирования: "))
b = float(input("Введите верхний предел интегрирования: "))
eps = float(input("Введите точность: "))
n = 1
I = 0
iterations = 0
while True:
h = (b - a) / n
summa = 0
for i in range(n):
xi = a + i * h + h / 2
fxi = math.cos(2 * xi) + 2 * math.sin(xi)
summa += fxi
I_new = h * summa
iterations += 1
R = (I_new - I) / 3
if abs(R) < eps:
break
else:
I = I_new
n *= 2
print(f"При точности {eps} интеграл равен {I_new}")
print(f"Количество итераций: {iterations}")
print(f"Оценка погрешности: {R}")
На рисунке 2 представлен результат вычисления интеграла программой для точности 10-2.
Рисунок 2 – вычисление интеграла с точностью 10-2
Результаты вычислений интеграла с другими точностями представлены в таблице 1.
Таблица 1 – результаты вычислений интеграла при помози программы
Точность приближения | Значение интеграла | Оценка погрешности | Количество итераций |
10-2 | 2.47284 | -0.00425 | 3 |
10-3 | 2.46667 | -0.00043 | 5 |
10-4 | 2.46626 | -2.77606·10-5 | 7 |
10-5 | 2.46624 | -6.94716·10-6 | 8 |
График зависимости количества итераций от точности приближения представлен на рисунке 3.
Рисунок 3 – зависимость количества итераций от точности приближения