Файл: Лабораторная работа 4 Численное интегрирование по дисциплине Численные методы студент гр. Бик2106 Михеева Е. В.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 30.11.2023

Просмотров: 74

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИОрдена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования«Московский технический университет связи и информатики»Кафедра «Информатика»Лабораторная работа №4«Численное интегрирование»по дисциплине«Численные методы»Выполнил: студент гр. БИК2106 Михеева Е. В.Проверил: ст. преподаватель Юсков И. О.Москва, 2023 г.

  1. Индивидуальный вариант задания
– подынтегральная функцияa=−2.5, b=-1.5 – пределы интегрированияВычислить интеграл методом средних прямоугольников, написать программу для вычисления интеграла методом Симпсона.h0=0,25 – начальный шаг интегрированияметоды интегрирования – средних прямоугольников, трапеций, Симпсона

  1. Метод средних прямоугольников
Правило РунгеЕго применяют для вычисления погрешности путём двойного просчёта интеграла с шагами , при этом погрешность вычисляется по формуле .Полагают, что интеграл вычислен с точностью E, если ; тогда , где I – уточнённое значение интеграла, P – порядок метода (для метода средних прямоугольников и трапеций – 2, для метода Симпсона – 4).Итак, перейдем к методу средних прямоугольников и оценим погрешность интегрирования методом двойного просчёта:
Из расчетов можем сделать вывод, что погрешность не превышает 10-3, так как модуль R меньше, чем 10-3.

  1. Метод Симпсона
Теперь вычисляю интеграл по формуле Симпсона используя программу, написанную мной на языке Python. По заданию надо вычислить точностями 10-2, 10-3, 10-4.Программа представлена на следующем рисунке:import numpy as npimport math as mdef f(x):  return -2*m.sin(4*x)*m.log(-x)+5def Simpson(func,a,b,h):  n = (b-a)/h  f0 = func(a)  ev = 0  for i in range(1,int(n)):    f0 += 2*func(a+i*h) if ev else 4*func(a+i*h)    ev = not ev  f0 += func(b)  return f0*(h/3)def Solve(func,a,b,h,eps):  I1 = Simpson(func,a,b,h)  I2 = Simpson(func,a,b,h/2)  R = (I2-I1)/((2**4)-1)  print(R)  if np.abs(R) > eps:    return Solve(func,a,b,h/2,eps)  return I2+Rprint(Solve(f,-2.5,-1.5,0.25,10**-4))-0.00026182170223876255-1.4517635460660946e-05 5.590374499495849Исходя из результатов работы, можно сделать вывод что по формуле Симпсона интеграл вычисляется гораздо точнее, нежели по формуле прямоугольников. Чтобы увеличить точность расчётов, достаточно уменьшить шаг интегрирования h.