Нижегородский Государственный
Технический Университет
им. Р. Е. Алексеева
Кафедра: Прикладная математика
Лабораторная работа № 4
Тема: «Определённый интеграл»
Вариант №4
Выполнил:
студент группы 18-ТМ
Белянин А.А.
Проверил:
Федосеева Т. А.
Нижний Новгород 2019г.
Задача:
Блок-схема:
Начало
f(x)
Начало
Возврат
a=0,
b=1 Int=0,
n=10, S=0
i=1
x,
f[i] x=a+i*h S=S+f(x)*h i=i+1 S S=0 i=0 x=a+i*h S=S+f(x)*h i=i+1 S=0 i=0 S
x,
f[i]
1
1
x=a+(i+0.5)*h S=S+f(x)*h i=i+1 S=0 i=0 S
x=a+i*h S=S+f(x)*h i=i+1 *h S=0 i=1 S
x=a+i*h S=S+f(x)*h i=i+2
i=2
x=a+i*h Int=Int+f(x)*h i=i+2 S
Конец
Листинг программы на C++:
#include <iostream>
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
double f(double x) {
return 1/(3*x-7);
}
int main() {
setlocale(LC_ALL, "Russian");
double a = 4, b = 5, n = 10, h, Int = 0, i, S = 0, x;
h = (b - a) / n;
cout << setw(10) << "x=" << "\t" << setw(10) << "y=" << endl;
cout << setw(10) << a << "\t" << setw(10) << f(a) << endl;
for (i = 1; i <= n; i += 1) {
x = a + i * h;
S = S + f(x)*h;
cout.precision(4);
cout << setw(10) << x << "\t" << setw(10) << f(x) << endl;
}
cout << endl << "Метод правых прямоугольников = " << S << endl;
S = 0;
for (i = 0; i < n; i += 1) {
x = a + i * h;
S = S + f(x)*h;
}
cout << "Метод левых прямоугольников = " << S << endl;
S = 0;
for (i = 0; i < n; i += 1) {
x = a + (i + 0.5)*h;
S = S + f(x)*h;
}
cout << "Метод центральных прямоугольников = " << S << endl;
S = 0;
for (i = 1; i < n; i += 1) {
x = a + i * h;
S = S + f(x);
}
S = ((f(a) + f(b)) / 2 + S)*h;
cout << "Метод трапеция = " << S << endl;
S = 0;
for (i = 1; i < n; i += 2) {
x = a + i * h;
S = S + f(x);
}
for (i = 2; i < (n - 1); i += 2) {
x = a + i * h;
Int = Int + f(x);
}
S = (h / 3)*(f(a) + f(b) + 4 * S + 2 * Int);
cout << "Метод Симпсона = " << S << endl;
return 0;
}
Вывод результата:
Программа в Mathcad:
Программа в Excel: