Laboratornaya_4
.docx
Нижегородский государственный технический университет им. Р.Е. Алексеева
Кафедра «Прикладная Математика»
Отчет по лабораторной работе №4
Тема: Численные методы интегрирования
5 вариант.
Выполнила: студентка
Группы С11-ЛА-1
Кокушева Ю.В.
Проверил преподаватель:
Осипенко Н.Н.
Нижний Новгород 2012г.
Оглавление:
-
Постановка задачи………………………………………………………….3
-
Microsoft Excel …………………………………………..…………………3
-
Microsoft Excel(формулы)………………………………………………….4
-
MathCAD………………………………………………………….………...5а) Численное интегрирование..……………………………………………5
б) Метод правых прямоугольников………………………………….........5
в) Метод левых прямоугольников.………………………………………..5
г) Метод центральных прямоугольников………………………………...6
д) Метод трапеций…………………………………………………………6
е) Метод парабол(Симпсона)……………………………………………...7
5) Microsoft Visual C++………………………………………………………..7
а) Метод правых прямоугольников………………………………….........7
б) Метод левых прямоугольников.………………………………………..8
в) Метод центральных прямоугольников………………………………...9
г) Метод трапеций………………………………………………………….9
д) Метод парабол(Симпсона)…………………………………………….10
Ручной счет………………………………………………………………………11
1.Постановка задачи
Найти определенный интеграл , с шагом 0.1, точностью 0.001 на интервале .Для этого воспользуемся численными методами:
1. Метод левых прямоугольников
2. Метод правых прямоугольников
3. Метод центральных прямоугольников
4. Метод трапеции
5. Метод парабол (Симпсона)
Проведем расчеты в программах Microsoft Excel, MathCAD, Microsoft Visual C++ и выполним ручной счет.
2. Microsoft Excel
3. Microsoft Excel(Формулы)
номер |
x |
f(x) |
2 |
0 |
=D1 |
=1/(1-B2) |
3 |
1 |
=B2+$D$3 |
=1/(1-B3) |
=(D2-D1)/10 |
2 |
=B3+$D$3 |
=1/(1-B4) |
|
3 |
=B4+$D$3 |
=1/(1-B5) |
|
4 |
=B5+$D$3 |
=1/(1-B6) |
|
5 |
=B6+$D$3 |
=1/(1-B7) |
|
6 |
=B7+$D$3 |
=1/(1-B8) |
|
7 |
=B8+$D$3 |
=1/(1-B9) |
|
8 |
=B9+$D$3 |
=1/(1-B10) |
|
9 |
=B10+$D$3 |
=1/(1-B11) |
|
10 |
=B11+$D$3 |
=1/(1-B12) |
|
Метод левых прямоугольников |
|||
|
=СУММ(C2:C11)*D3 |
|
|
Метод правых прямоугольников |
|||
|
=СУММ(C3:C12)*D3 |
|
|
Метод трапеций |
|||
|
=D3*((C2+C12)/2+СУММ(C3:C11)) |
|
|
Метод парабл |
|||
нечет |
|
|
чет |
=C3+C5+C7+C9+C11 |
интеграл= |
=D3/3*(C2+C12+4*A21+2*D21) |
=C4+C6+C8+C10 |
Метод центральных пямоугольников |
|||
|
x+h/2 |
f(x+h/2) |
|
|
=B2+$D$3/2 |
=1/(1-B24) |
|
|
=B3+$D$3/2 |
=1/(1-B25) |
|
|
=B4+$D$3/2 |
=1/(1-B26) |
|
|
=B5+$D$3/2 |
=1/(1-B27) |
|
|
=B6+$D$3/2 |
=1/(1-B28) |
|
|
=B7+$D$3/2 |
=1/(1-B29) |
|
|
=B8+$D$3/2 |
=1/(1-B30) |
|
|
=B9+$D$3/2 |
=1/(1-B31) |
|
|
=B10+$D$3/2 |
=1/(1-B32) |
|
|
=B11+$D$3/2 |
=1/(1-B33) |
|
|
интеграл= |
=D3*СУММ(C24:C33) |
|
4. MathCAD
Ч
и с л е н н о е и н т е г р и р о в а н и е
М
е т о д п р а в ы х п р я м о у г о л ь н и
к о в
М
е т о д л е в ы х п р я м о у г о л ь н и к
о в
М
е т о д ц е н т р а л ь н ы х п р я м о у г
о л ь н и к о в
М
е т о д т р а п е ц и й
М
е т о д п а р а б о л (м е т о д С и п с о н
а )
Н
е ч е т н ы е т о ч к и
Ч
е т н ы е т о ч к и
5. Microsoft Visual C++
а) Метод правых прямоугольников
#include "stdafx.h"
#include "iostream"
#include <math.h>
using namespace std;
double f(double x)
{
return 1/(1-x);
}
int main()
{
setlocale(LC_ALL,"Russian");
double S,h,a=2,b=3,x,I;
int n=10,i;
printf("a=%1.1f\tb=%1.1f\tn=%2d\t\n",a,b,n);
S=0;
h=(b-a)/n;
for(i=1;i<n;i++)
{
x=a+i*h;
S+=f(x);
cout<<S<<" ";
}
I=h*S;
cout<<"\nОтвет: I="<<I;
char st;
cin>>st;
}
а) Метод левых прямоугольников
#include "stdafx.h"
#include "iostream"
#include <math.h>
using namespace std;
double f(double x)
{
return 1/(1-x);
}
int main()
{
setlocale(LC_ALL,"Russian");
double S,h,a=2,b=3,x,I;
int n=10,i;
printf("a=%1.1f\tb=%1.1f\tn=%2d\t\n",a,b,n);
S=0;
h=(b-a)/n;
for(i=0;i<n-1;i++)
{
x=a+i*h;
S+=f(x);
}
I=h*S;
cout<<"\nОтвет: I="<<I;
char st;
cin>>st;
}
в) Метод центральных прямоугольников
#include "stdafx.h"
#include "iostream"
#include <math.h>
using namespace std;
double f(double x)
{
return 1/(1-x);
}
int main()
{
setlocale(LC_ALL,"Russian");
double I0,I1,h,eps=0.001,a=2,b=3,x;
int n=10,j;
printf("a=%2.2f\tb=%2.2f\teps=%3.3f\nn=%2d\t\n",a,b,eps,n);
I0=1E+10;
I1=0;
while(fabs(I1-I0)>eps)
{
I0=I1;
h=(b-a)/n;
I1=0;
for(j=0;j<n;j++)
{
x=a+(j+0.5)*h;
I1=I1+f(x)*h;
}
n=2*n;
}
cout<<"\nОтвет I="<<I1<<endl;
char st;
cin>>st;
}
г) Метод трапеций
#include "stdafx.h"
#include "iostream"
#include <math.h>
using namespace std;
double f(double x)
{
return 1/(1-x);
}
int main()
{
setlocale(LC_ALL,"Russian");
double I0,I1,h,eps=0.001,a=2,b=3,x;
int n=10,j;
printf("a=%2.2f\tb=%2.2f\teps=%3.3f\nn=%2d\t\n",a,b,eps,n);
I0=1E+10;
I1=0;
while(fabs(I1-I0)>eps)
{
I0=I1;
h=(b-a)/n;
I1=0;
for(j=1;j<n;j++)
{
x=a+j*h;
I1+=f(x)*h;
}
I1=I1+h*(f(a)+f(b))/2;
n=2*n;
}
cout<<"\nОтвет I="<<I1<<endl;
char st;
cin>>st;
}
д) Метод парабол (Симпсона)
#include "stdafx.h"
#include "iostream"
#include <math.h>
using namespace std;
double f(double x)
{
return 1/(1-x);
}
int main()
{
setlocale(LC_ALL,"Russian");
double I0,I1,S1,S2,h,eps=0.001,a=2,b=3,x;
int n=10,j;
printf("a=%2.2f\tb=%2.2f\teps=%3.3f\nn=%2d\t\n",a,b,eps,n);
I0=1E+10;
I1=0;
while(fabs(I1-I0)>eps)
{
I0=I1;
h=(b-a)/n;
S1=0;
j=1;
for(j;j<=n-1;j++)
{
x=a+j*h;
S1+=f(x);
}
j=1;
S2=0;
for(j++;j<n;j++)
{
x=a+j*h;
S2+=f(x);
}
I1=(h/3)*(f(a)+f(b)+4*S1+2*S2);
n=2*n;
}
I1=I1/2;
cout<<"\nОтвет: I="<<I1<<endl;
char st;
cin>>st;
}