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

cm5

.pdf
Скачиваний:
31
Добавлен:
24.11.2021
Размер:
186 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра безопасности информационных систем (КИБЭВС)

ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ

Отчет по лабораторной работе №5 по дисциплине ¾Численные методы¿

Студент гр. 730-2 Подойницын К.В. 11.11.2021

Доцент каф.КИБЭВС Якимук А.Ю. 11.11.2021

Томск 2021

2

1 Введение

6

R

Вариант работы: sin(0; 94x) ln(0; 02x) dx

4

Задание: Необходимо рассчитать значение данного интеграла следующими методами:

1)методом левых прямоугольников;

2)методом правых прямоугольников; 3)методом трапеций; 4)методом Симпсона.

3

2 Ход работы

2.1 Решение интеграла

Для дальнейшей проверки правильности расчетов посчитаем

интеграл:

6

R

sin(0; 94x) ln(0; 02x) dx = 3,96468

4

2.2 Метод левого треугольника

xi = xi 1 + h

h = b na

где h шаг сетки.

Формула метода левых прямоугольников:

b

n 1

 

Ra

P

f(x) dx h

f(x)

 

i=0

2.3 Метод правого треугольника

Формула метода правых прямоугольников:

b

n

Ra

P

 

f(x) dx h f(xi)

 

i=1

2.4 Метод трапеций

Формула метода трапеций:

b

n 1

f(x) dx h2 (f(a) + f(b)) + h

f(xi)

Ra

P

 

i=1

4

2.5 Метод Симпсона

Формула метода Симпсона:

b

(n 1)=2

(n 2)=2

f(x) dx h3 (f(x0) + 4

f(x2i+1) + 2

f(x2i) + f(xn))

Ra

P

P

 

i=0

i=0

2.6 Результаты работы программы

На рисунке 1 представлен результат работы программы.

Рисунок 1 - Скриншот работы программы

5

Таблица 3.1 - Результаты работы

Метод

n=4

n=20

n=100

n=400

 

 

 

 

 

Левых прямоугольников

3,94

4,0986

3,9919

3,9715

 

 

 

 

 

Правых прямоугольникова

3,8437

3,9521

3,9626

3,9642

 

 

 

 

 

Трапеций

3,8918

4,0889

3,99

3,971

 

 

 

 

 

Симпсона

4,4538

4,0623

3,9842

3,9696

 

 

 

 

 

6

3Заключение

Врезультате выполнения данной лабораторной работы были полученны навыки разработки программ, использующих в своей работе методы левых, правых прямоугольников, а также метод трапеций и метод Симпсона.

7

Приложение A

(обязательное)

using System;

namespace laba5_cm

{

class Program

{

private const double a = 4; private const double b = 6; private const int n1 = 4; private const int n2 = 20; private const int n3 = 100; private const int n4 = 400;

private const double h1 = (b - a) / n1; private const double h2 = (b - a) / n2; private const double h3 = (b - a) / n3; private const double h4 = (b - a) / n4; static void Main(string[] args)

{

LTree();

RTree();

Trapeze();

Simpson();

}

static double Fn(double x)

{

return ((Math.Sin(0.94 * x) * Math.Log((0.02 * x) , Math.Exp(1))));

}

static void LTree()

8

{

Console.WriteLine("Метод левого прямоугольника"); double S = 0;

for (double x = a; x < b; x += h1) { S += Fn(x); }

S *= h1;

Console.WriteLine($"n = 4 ответ { Math.Round(S, 4)}"); S = 0;

for (double x = a; x < b; x += h2) S += Fn(x);

S *= h2;

Console.WriteLine($"n = 20 ответ { Math.Round(S, 4)}"); S = 0;

for (double x = a; x < b; x += h3) S += Fn(x);

S *= h3;

Console.WriteLine($"n = 100 ответ { Math.Round(S, 4)}"); S = 0;

for (double x = a; x < b; x += h4) S += Fn(x);

S *= h4;

Console.WriteLine($"n = 400 ответ { Math.Round(S, 4)}");

}

static void RTree()

{

Console.WriteLine();

Console.WriteLine("Метод правого прямоугольника"); double S = 0;

for (double x = a + h1; x <= b; x += h1) S += Fn(x);

S *= h1;

Console.WriteLine($"n = 4 ответ { Math.Round(S, 4)}");

9

S = 0;

for (double x = a + h2; x <= b; x += h2) S += Fn(x);

S *= h2;

Console.WriteLine($"n = 20 ответ { Math.Round(S, 4)}"); S = 0;

for (double x = a + h3; x <= b; x += h3) S += Fn(x);

S *= h3;

Console.WriteLine($"n = 100 ответ { Math.Round(S, 4)}"); S = 0;

for (double x = a + h4; x <= b; x += h4) S += Fn(x);

S *= h4;

Console.WriteLine($"n = 400 ответ { Math.Round(S, 4)}");

}

static void Trapeze()

{

Console.WriteLine(); Console.WriteLine("Метод трапеций"); double SF = 0;

double C;

for (double x = a + h1; x < b; x += h1) SF += Fn(x);

C = h1 / 2 * (Fn(a) + Fn(b)) + h1 * SF; Console.WriteLine($"n = 4 ответ { Math.Round(C, 4)}"); SF = 0;

for (double x = a + h2; x < b; x += h2) SF += Fn(x);

C = h2 / 2 * (Fn(a) + Fn(b)) + h2 * SF; Console.WriteLine($"n = 20 ответ { Math.Round(C, 4)}"); SF = 0;

10

for (double x = a + h3; x < b; x += h3) SF += Fn(x);

C = h3 / 2 * (Fn(a) + Fn(b)) + h3 * SF; Console.WriteLine($"n = 100 ответ { Math.Round(C, 4)}"); SF = 0;

for (double x = a + h4; x < b; x += h4) SF += Fn(x);

C = h4 / 2 * (Fn(a) + Fn(b)) + h4 * SF; Console.WriteLine($"n = 400 ответ { Math.Round(C, 4)}");

}

static void Simpson()

{

Console.WriteLine(); Console.WriteLine("Метод Симпсона"); double x;

double SF1 = 0; double SF2 = 0; double C;

for (int i = 0; i <= (n1 - 1) / 2; i++)

{

x = a + (2 * i + 1) * h1; SF1 += Fn(x);

}

for (int i = 0; i <= (n1 - 2) / 2; i++)

{

x = a + 2 * i * h1; SF2 += Fn(x);

}

C = h1 / 3 * (Fn(a) + 4 * SF1 + 2 * SF2 + Fn(b)); Console.WriteLine($"n = 4 ответ {Math.Round(C, 4)}"); SF1 = 0;

SF2 = 0;

Соседние файлы в предмете Численные методы