НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. Р.Е.АЛЕКСЕЕВА
Кафедра «Численное решение определенного интеграла»
Дисциплина «Информатика»
Лабораторная работа№4
Вариант№23
Выполнил: Федоров К.Р. Группа 19-Э-5 Проверил: Лапшин И.В.
Нижний Новгород
2019
Постановка задачи:
Численно решить определенный интеграл … с числом разбиений n и определить разницу вычислений методами:
метод левых прямоугольников,
метод правых прямоугольников,
метод центральных прямоугольников,
метод трапеций,
метод Симпсона
Выполнить работу в C++ ; Exel ; Mathcad ; Ручной счет
Блок схема:
С++ код:
#include <iostream> #include<math.h> double f(double (x))
{return (x*sqrt(5*x*x+1));
}
using namespace std; int main()
{setlocale(LC_ALL, "Russian");
double a=1, b=2,h,S1=0,S2=0, I,Ia,Ib,Itoch,Summ=0,OPINION; int TOLKA;
int k = 0, n=10; h = (b - a) / n;
//Вычисление точного значения интеграла
Ia =(1/15.)*sqrt(pow((5*a*a+1),3)) ;
Ib = (1 / 15.)*sqrt(pow((5 * b*b + 1), 3)); Itoch = Ib - Ia;
cout << "Точное значение Integral =" << Itoch<<endl;
//Вычисление методом правых прямоугольников k = 1;
while (k <= n)
{OPINION = a + h * k;
Summ = Summ + f(OPINION);
k = k + 1;
}
I = Summ * h;
cout << "Методом правых Integral =" << I << " Ошибка= " << I - Itoch << endl; k = 0;
Summ = 0;
//Вычисление методом левых прямоугольников while (k < n)
{OPINION = a + h * k;
Summ = Summ + f(OPINION); k = k + 1;
}
I = Summ * h;
cout << "Методом левых Integral =" << I<<" Ошибка= "<<I-Itoch<<endl; k = 0;
Summ = 0;
//Вычисление методом центральных прямоугольников while (k < n)
{OPINION = a + h * k + 0.5*h; Summ = Summ + f(OPINION);
k = k + 1;
}
I = Summ * h;
cout << "Методом центральных Integral =" << I << " Ошибка= " << I - Itoch << endl; k = 0;
Summ = 0;
//Вычисление методом трапеций while (k <= n)
{OPINION = a + h * k;
if (k >= 1 && k < n) { Summ = Summ + f(OPINION); } else { Summ = Summ + 0.5 * f(OPINION); }
k = k + 1;
}
I = Summ * h;
cout << "Методом трапеций Integral =" << I << " Ошибка= " << I - Itoch << endl; k = 0;
//Вычисление методом Симпсона
for (k = 1; k <= (n - 1); k = k + 2)//вычисление нечетных
{OPINION = a + k * h;
S1 = S1 + f(OPINION);
}
for (k = 2; k < n; k = k + 2)//вычисление четных {OPINION = a + k * h;
S2 = S2 + f(OPINION);
}
I = (h / 3)*(f(a) + f(b) + 4 * S1 + 2 * S2); TOLKA = I - Itoch ;
cout << "Методом Симпсона Integral =" << I << " Ошибка= " << TOLKA << endl;
}
Exel:
Численное интегрирование |
f(x) x |
5 x x 1 |
|
|
a |
b |
n |
1 |
2 |
10 |
|
|
|
i |
x |
f(x) |
0 |
1 |
2,449489743 |
1 |
1,1 |
2,92070197 |
2 |
1,2 |
3,436277055 |
3 |
1,3 |
3,996310799 |
4 |
1,4 |
4,600869483 |
5 |
1,5 |
5,25 |
6 |
1,6 |
5,943736199 |
7 |
1,7 |
6,682102962 |
8 |
1,8 |
7,465118887 |
9 |
1,9 |
8,29279808 |
10 |
2 |
9,16515139 |
h
0,1
x+h/2 |
f(x+h/2) |
1,05 |
2,679558 |
1,15 |
3,1729373 |
1,25 |
3,7107319 |
1,35 |
4,2930212 |
1,45 |
4,9198609 |
1,55 |
5,5912907 |
1,65 |
6,3073395 |
1,75 |
7,0680288 |
1,85 |
7,8733748 |
1,95 |
8,7233899 |
|
|
|
Метод |
|
|
|
|
|
Интеграл |
Ошибка |
|
|
Метод правых прямоугольников |
5,775307 |
0,3394966 |
||||||||
|
Метод левых прямоугольников |
5,103741 |
-0,33207 |
||||||||
|
Метод центральных прямоугольников |
5,433953 |
-0,001857 |
||||||||
|
|
|
Метод трапеций |
|
|
|
|
5,439524 |
0,0037135 |
||
|
|
|
Метод парабол |
|
|
|
|
5,43581 |
0,0000 |
||
|
|
|
|
|
|
|
|
|
Нечет= |
27,14191 |
|
|
|
|
|
|
|
3 |
|
|
|
||
|
|
|
2 |
|
2 |
|
|
Четн= |
21,446 |
|
|
|
f(x) dx 5 x |
1 |
|
|
|
|
|
|
|||
|
int_f(x) |
|
|
|
|
|
|
||||
|
|
|
15 |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
||
Точное значение |
|
|
|
|
|
|
|
|
|||
int(a) |
|
int(b) |
int(b)-int(a) |
|
|
|
|||||
0,979796 |
|
6,415606 |
5,435810076 |
|
|
|
Matchad: |
|
|
|
|
|
|
|
|
|
|
|
a 1 |
b 2 |
f (x) x |
5 x x 1 |
|
|
|
|
|
|
||
n 10 |
h (b |
a) |
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
i 0 n |
xi a i h |
|
|
|
|
|
|
|
|
|
|
xi |
f xi |
|
|
|
|
|
|
|
|
|
|
1 |
2.449 |
|
|
10 |
|
|
|
|
|
|
|
1.1 |
2.921 |
|
|
|
|
|
|
|
|
|
|
1.2 |
3.436 |
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.3 |
3.996 |
|
|
|
|
|
|
|
|
|
|
1.4 |
4.601 |
|
f xi |
6 |
|
|
|
|
|
|
|
1.5 |
5.25 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||
1.6 |
5.944 |
|
|
|
|
|
|
|
|
|
|
1.7 |
6.682 |
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
1.8 |
7.465 |
|
|
|
|
|
|
|
|
|
|
1.9 |
8.293 |
|
|
21 |
1.2 |
1.4 |
|
1.6 |
1.8 |
2 |
|
2 |
9.165 |
|
|
|
|
|
|
xi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Т о ч н о е з н а ч е н и е о п р е д е л е н н о г о и н т е г р а л а |
|
|
|||||||||
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
2 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
п е р в ы й с п о с о б |
|
f (x) dx 5 x |
1 |
|
|
|
|
||||
int_f (x) |
|
Int int_f (b) int_f (a) 5.436 |
|||||||||
|
|
|
|
|
|
15 |
|
|
|||
в т о р о й с п о с о б |
2 |
|
|
|
|
|
|
|
|
||
I |
x x x 5 |
1 dx 5.436 |
|
|
|
|
|
||||
|
|
|
1 |
|
|
|
|
|
|
|
|
М е т о д п р а в ы х п р я м о у г о л ь н и к о в |
|
|
|
|
|
||||||
n |
|
|
|
|
|
|
|
|
t a a |
0.01 b |
|
|
|
|
|
|
|
|
|
|
|
|
|
prav f xi h |
prav |
5.775 |
|
10 |
|
|
|
|
|||
i |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f xi |
8 |
|
|
|
|
O_prav prav I 0.339 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
f xi |
6 |
|
|
|
|
|
|
|
|
|
|
f (t) |
4 |
|
|
|
|
|
|
|
|
|
|
|
21 |
1.5 |
2 |
2.5 |
|
|
|
|
|
|
|
|
|
|
xi 1 xi t |
|