Добавил:
ищу тиммейта в R6siege Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3 вар23 / Работа3_Отчет

.docx
Скачиваний:
2
Добавлен:
01.06.2024
Размер:
104.72 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникация Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное бюджетное

образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра Информатики

Лабораторная работа №4

По дисциплине «Численные методы»

На тему «Численное интегрирование»

Вариант 23

Выполнил: студент группы

Проверил: преподаватель

Москва, 2024

Цель работы

1. Выбрать индивидуальное задание из табл. 3-1 для численного интегрирования:

  • f(x) – подынтегральную функцию;

  • a,b – пределы интегрирования;

  • методы интегрирования для выполнения п.2 – значение в столбце t и m;

  • начальный шаг интегрирования h0

При этом значения в столбцах t и m означают: 1 – интегрирование методом средних прямоугольников, 2 – методом трапеций, 3 – методом Симпсона.

2. В сценарии пакета Scilab создать функцию для вычисления интеграла по 1-му заданному методу, определяя значения (столбец m) из табл. 3-1, с шагом h0 и h0/2 (Iho и Ih0/2)

3. Провести оценку погрешности полученных результатов по правилу Рунге.

4. Написать и выполнить программу вычисления интеграла по 2-му заданному методу (столбец t из табл. 3-1) с точностью 10-4:

5. Вычислить заданный интеграл с использованием функции intg пакета Scilab.

Индивидуальное задание

a = 1.5

b = 2.5

t = 1 (метод средних прямоугольников)

m = 3 (метод Симпсона)

h0 = 0.25

Выполнение задания

Часть 1 - ручной расчет, метод Симпсона

Часть 2 - расчет на ПК, метод средних прямоугольников

import math

def f(x):

    return 1 + math.sin(4 * x) / math.log(x)

def integra(n, a, b):

    h = (b - a) / n

    res = 0

    for i in range(n - 1):

        x = a + (h / 2) + i * h

        res += f(x)

    res *= h

    return res

a = 1.5

b = 2.5

n = 4

eps = 0.0001

Ih = 0

Ih1 = 0

d = 1

while d > eps:

    Ih = integra(n, a, b)

    n *= 2

    Ih1 = integra(n, a, b)

    d = abs(Ih - Ih1) / 3

I = Ih + d

print("Значение интеграла:", I)

print("Погрешность вычисления:", d)

Схема алгоритма

Вывод

В данной работе мною было изучено численное интегрирование. Было проведено интегрирование в математическом пакете и сделан код на ПК.

Соседние файлы в папке 3 вар23