Скачиваний:
21
Добавлен:
01.06.2020
Размер:
261.79 Кб
Скачать

ГУО «БГУИР»

Факультет радиотехники и электроники

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

Отчет по

Лабораторной работе №6

Алгоритмы вычисления производных и интегралов

Подготовил:

Студент гр.943201

Королюк Н.В

Проверила:

Семижон Е.А.

Минск 2020

Цель: изучить численные алгоритмы нахождения значений производных и интегралоv

Вариант №11

Код: #include <cmath>

#include <fstream>

#include <iostream>

using namespace std;

double F(double x)

{

return pow(x, 3) + 6 * pow(x, 2) - 0.02 * exp(x);

}

double D1F(double x1, double h)

{

return (F(x1 + h) - F(x1 - h)) / 2 * h;

}

double D2F(double x2, double h2)

{

return (F(x2 + h2) - 2 * F(x2) + F(x2 - h2)) / pow(h2, 2);

}

double Gauss2(double a1, double b1, double m1)

{

double s = 0, sm = 0, h4 = 0, xi0, xi1, xi2;

int im;

h4 = (b1 - a1) / m1;

xi0 = a1 + h4 / 2;

xi1 = xi0 - (h4 / 2) * 0.5773502692;

xi2 = xi0 + (h4 / 2) * 0.5773502692;

for (im = 1; im <= m1; im++)

{

sm = sm + F(xi1) + F(xi2);

xi0 = xi0 + h4;

xi1 = xi0 - (h4 / 2) * 0.5773502692;

xi2 = xi0 + (h4 / 2) * 0.5773502692;

}

s = (h4 / 2) * sm;

return s;

}

int main()

{

int a = -5, b = 3,m=20;

double x, y, d1, d2, d1t, d2t, del1, del2, t,h=0.1,eps=0.001;

cout << "x\t" << "y\t" << "D1T\t" << "D1\t" << "D2T\t"

<< "D2\t" << "del1\t" << "del2\t" << endl;

for (int j = 1; j <= 21; j++)

{

x = a + (j - 1) * (b - a) / 20;

y = F(x);

d1 = D1F(x, h);

d2 = D2F(x, h);

d1t = 3 * pow(x, 2) + 12 * x - 0.02 * exp(x);

del1 = fabs(d1t - d1);

d2t = 6 * x - 0.02 * exp(x) + 12;

del2 = fabs(d2t - d2);

cout << x << "\t" << fixed << y << "\t" << d1t << "\t" <<

d1 << "\t" << d2t << "\t" << d2 << "\t" << del1 << "\t" << del2 << endl;

}

t = Gauss2(a, b, m);

eps = fabs(167.6 - t);

cout << "Integral: " << t << endl << "Error: " << eps << endl;

return 0;

}

Соседние файлы в папке 1курс,2семестр лабы для зачета