Добавил:
19-КСУ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
16.09.2022
Размер:
253.25 Кб
Скачать

ТЕКСТ ПРОГРАММЫ ЛАБ1:

#include "stdafx.h"

#include <iostream>

#include <math.h>

using namespace std;

double f(double x)

{

double Y;

Y = 2 * pow(x, 2) - 4 * x;

return Y;

}

void main()

{

setlocale(LC_ALL, "Russian");

double h, a, b, x[10], y[10], S, ILP, IPP, ITR, C1, C2, IPR, xzr[10], yzr[10], IZR, IT, D, O;

int i, n;

cout << "Введи n, a, b\n";

cin >> n >> a >> b;

cout << "Введи точное значение интеграла\n";

cin >> IT;

h = (b - a) / n;

cout << "шаг" << h << endl;

cout << "Таблица значений подынтегральной функции\n";

cout << "\tx\tf(x)\n";

for (i = 0; i <= n; i++)

{

x[i] = a + i*h;

y[i] = f(x[i]);

printf("%9.3f\t%6.3f\n", x[i], y[i]);

}

cout << "Метод левых прямоугольников\n";

S = 0;

for (i = 0; i<n; i++)

S = S + f(x[i]);

ILP = h*S;

printf("ILP = %6.3f\n", ILP);

cout << "Абсолютная и относительная погрешность метода левых прямоугольников\n";

D = fabs(ILP - IT);

O = D / fabs(IT) * 100;

printf("D = %6.3f\tO = %6.3f\n", D, O);

cout << "Метод правых прямоугольников\n";

S = 0;

for (i = 1; i <= n; i++)

S = S + f(x[i]);

IPP = h*S;

printf("IPP = %6.3f\n", IPP);

cout << "Абсолютная и относительная погрешность метода правых прямоугольников\n";

D = fabs(IPP - IT);

O = D / fabs(IT) * 100;

printf("D = %6.3f\tO = %6.3f\n", D, O);

cout << "Метод трапеций\n";

S = 0;

for (i = 1; i<n; i++)

S = S + f(x[i]);

ITR = h*((f(x[0]) + f(x[n])) / 2 + S);

printf("ITR = %6.3f\n", ITR);

cout << "Абсолютная и относительная погрешность метода трапеций \n";

D = fabs(ITR - IT);

O = D / fabs(IT) * 100;

printf("D = %6.3f\tO = %6.3f\n", D, O);

cout << "Метод парабол\n";

C1 = 0;

for (i = 1; i<n; i = i + 2)

C1 = C1 + f(x[i]);

C2 = 0;

for (i = 2; i<n; i = i + 2)

C2 = C2 + f(x[i]);

IPR = h / 3 * (f(x[0]) + 4 * C1 + 2 * C2 + f(x[n]));

printf("IPR = %6.3f\n", IPR);

cout << "Абсолютная и относительная погрешность метода парабол\n";

D = fabs(IPR - IT);

O = D / fabs(IT) * 100;

printf("D = %6.3f\tO = %6.3f\n", D, O);

cout << "Таблица значений подынтегральной функции для метода центральных прямоугольников\n";

cout << "\txzr\tf(xzr)\n";

for (i = 0; i<n; i++)

{

xzr[i] = a + (i + 0.5)*h;

yzr[i] = f(xzr[i]);

printf("%9.3f\t%6.3f\n", xzr[i], yzr[i]);

}

cout << "Метод центральных прямоугольников\n";

S = 0;

for (i = 0; i<n; i++)

S = S + f(xzr[i]);

IZR = h*S;

printf("IZR = %6.3f\n", IZR);

cout << "Абсолютная и относительная погрешность метода центральных прямоугольников\n";

D = fabs(IZR - IT);

O = D / fabs(IT) * 100;

printf("D = %6.3f\tO = %6.3f\n", D, O);

}

РЕЗУЛЬТАТ ПРОГРАММЫ:

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