д) Метод парабол (Симпсона)




Нижегородский государственный технический университет им. Р.Е. Алексеева

Кафедра «Прикладная Математика»

Отчет по лабораторной работе №4

Тема: Численные методы интегрирования

5 вариант.

 

Выполнила: студентка

Группы С11-ЛА-1

Кокушева Ю.В.

Проверил преподаватель:

Осипенко Н.Н.

Нижний Новгород 2012г.

Оглавление:

1) Постановка задачи………………………………………………………….3

2) Microsoft Excel …………………………………………..…………………3

3) Microsoft Excel(формулы)………………………………………………….4

4) MathCAD………………………………………………………….………...5а) Численное интегрирование..……………………………………………5

б) Метод правых прямоугольников………………………………….........5

в) Метод левых прямоугольников.………………………………………..5

г) Метод центральных прямоугольников………………………………...6

д) Метод трапеций…………………………………………………………6

е) Метод парабол(Симпсона)……………………………………………...7

5) Microsoft Visual C++………………………………………………………..7

а) Метод правых прямоугольников………………………………….........7

б) Метод левых прямоугольников.………………………………………..8

в) Метод центральных прямоугольников………………………………...9

г) Метод трапеций………………………………………………………….9

д) Метод парабол(Симпсона)…………………………………………….10

Ручной счет………………………………………………………………………11


 

Постановка задачи

Найти определенный интеграл , с шагом 0.1, точностью 0.001 на интервале .Для этого воспользуемся численными методами:

1. Метод левых прямоугольников

2. Метод правых прямоугольников

3. Метод центральных прямоугольников

4. Метод трапеции

5. Метод парабол (Симпсона)

Проведем расчеты в программах Microsoft Excel, MathCAD, Microsoft Visual C++ и выполним ручной счет.

2. Microsoft Excel

Microsoft Excel(Формулы)

номер x f(x)  
  =D1 =1/(1-B2)  
  =B2+$D$3 =1/(1-B3) =(D2-D1)/10
  =B3+$D$3 =1/(1-B4)  
  =B4+$D$3 =1/(1-B5)  
  =B5+$D$3 =1/(1-B6)  
  =B6+$D$3 =1/(1-B7)  
  =B7+$D$3 =1/(1-B8)  
  =B8+$D$3 =1/(1-B9)  
  =B9+$D$3 =1/(1-B10)  
  =B10+$D$3 =1/(1-B11)  
  =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)  

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;

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: