Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа №2

.doc
Скачиваний:
10
Добавлен:
02.05.2014
Размер:
179.2 Кб
Скачать

Московский Государственный университет путей сообщения (МИИТ)

Отчет

Лабораторная работа №2

Пространственное интегрирование

Вариант №

Выполнил:

МОСКВА 2008

1.Решение в MathCad 14

2. Код программы

#include<iostream.h>

#include<conio.h>

#include<math.h>

const double a=6;

const double b=9;

static int k1=0;

static int k2=0;

static int k3=0;

double meth1(double h); //реализует метод прямоугольников

double meth2(double h); //реализует метод трапеций

double meth3(double h); //реализует метод Симпсона

double getV(double Value); //возвращает значение функции в точке

int main(void)

{

clrscr();

double S=0;

double E=pow(10,-6);

double n1,n2,n3,h1,h2,h3;

n1=pow(0.333*pow((b-a),3)/24/E,0.5); //длинна отрека ∆х для метода 1

n2=pow(0.333*pow((b-a),3)/12/E,0.5); // длинна отрека ∆х для метода 2

n3=pow(((pow((b-a),5)*0.0017)/(E*2880)),0.25); // длинна отрека ∆х для метода 3

h1=(b-a)/n1; //количество шагов для метода 1

h2=(b-a)/n2; //количество шагов для метода 2

h3=(b-a)/n3; //количество шагов для метода 3

cout<<"\n[Method Priamoyg]\n";

S=meth1(h1);

cout<<"H = "<<h1<<endl;

cout<<"Znachenie untegrala : "<<S<<endl;

cout<<"Numbers of step : "<<k1<<endl;

cout<<"\n[Method Trapetsii]\n";

S=meth2(h2);

cout<<"H = "<<h2<<endl;

cout<<"Znachenie untegrala : "<<S<<endl;

cout<<"Numbers of step : "<<k2<<endl;

cout<<"\n[Method Simsona]\n";

S=meth3(h3);

cout<<"H = "<<h3<<endl;

cout<<"Znachenie untegrala : "<<S<<endl;

cout<<"Numbers of step : "<<k3<<endl;

getch();

return 0;

}

//=======================

double getV(double Value)

{

return cos(logl(Value));

}

double meth1(double h)

{

double i1=a;

double i2=a+h;

double S=0;

while(i2<b)

{

S=S+getV((i2+i1)/2);

i1=i2;

i2+=h;

k1++;

}

S=S*h;

S=S+getV(b/2+i1/2)*(b-i1);

k1+=1;

return S;

}

double meth2(double h)

{

double i1=a;

double i2=a+h;

double Val1=getV(i1);

double Val2=getV(i2);

double S=0;

while(i2<b)

{

S=S+(Val1+Val2);

i1=i2;

i2+=h;

Val1=Val2;

Val2=getV(i2);

k2++;

}

S=S*h/2;

S=S+(getV(i1)+getV(b))*(b-i1)/2;

k2+=3;

return S;

}

double meth3(double h)

{

double i1=a;

double i2=a+h;

double Val1=getV(i1);

double Val2=getV(i2);

double S=0;

while(i2<b)

{

S+=(i2-i1)/6*(4*getV((i1+i2)/2)+Val1+Val2);

i1=i2;

i2+=h;

Val1=Val2;

Val2=getV(i2);

k3++;

}

S+=(b-i1)/6*(4*getV((i1+b)/2)+getV(i1)+getV(b));

k3=3*k3+5;

return S;

}

2.1. Листинг программы