Вычисление кинетической энергии

Для расчета кинетической энергии затрачиваемой на разгон судна ис­пользуется известное соотношение

Вычисление кинетической энергии - student2.ru

Такой же расчет необходимо произвести для задачи торможения. Вычисление интеграла производится одним из численных методов на ос­новании результатов, полученных в третьей модельной задаче.

Первая модельная задача

// дима.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <math.h>

using namespace std;

double m=12000;

double R(double v){

return 548.8*v;

}

double T(double v){

return -289*v+15680;

}

double fv(double v){

return 1.0/m*(T(v)-R(v));

}

double fs(double v){

return v;

}

void main(){

cout<<"Raschet puti razgona metodom Eilera"<<endl;

double eps=0.001, a=0, b=141, h,s1,v1,t1;

int i, n=200;

h=(b-a)/(double)n;

double t=0, v=0, s=0, w=10;

for(i=0; i<n; i++){

s1=s+h*fs(v+h/2*fv(v));

v1=v+h*fv(v+h/2*fv(v));

t1=t+h;

s=s1;

v=v1;

t=t1;

if(fabs(v-w)<eps){

cout<<"t razg="<<t<<endl;

cout<<"v razg="<<v<<endl;

cout<<"s razg="<<s<<endl;

break;

}

w=v;

}

//getch();

}

Вычисление кинетической энергии - student2.ru

Вторая модельная задача

// дима.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <math.h>

using namespace std;

double m=12000;

double R(double v){

if(v<11.11111) return 1429.7*v-155.48;

else if(v<16.66667) return -693*v+20193;

else return 590.94*v-1009.4;

}

double T(double v){

if(v<7.22222)

return -122.57*v+15797;

else return -677.37*v+19507;}

double fv(double v){

return 1.0/m*(T(v)-R(v));

}

double fs(double v){

return v;

}

void main(){

cout<<"Raschet puti razgona metodom Eilera"<<endl;

double eps=0.001, a=0, b=141, h,s1,v1,t1;

int i, n=200;

h=(b-a)/(double)n;

double t=0, v=0, s=0, w=10;

for(i=0; i<n; i++){

s1=s+h*fs(v+h/2*fv(v));

v1=v+h*fv(v+h/2*fv(v));

t1=t+h;

s=s1;

v=v1;

t=t1;

if(fabs(v-w)<eps){

cout<<"t razg="<<t<<endl;

cout<<"v razg="<<v<<endl;

cout<<"s razg="<<s<<endl;

break;

}

w=v;

}

//getch();

}

Вычисление кинетической энергии - student2.ru

Третья модельная задача

// дима.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <math.h>

using namespace std;

double m=12000;

double R(double v){

if(v<5) return 58.969*pow(v,3)-20.165*pow(v,2)+194.61*v;

else if(v<9.44444) return 119.07*pow(v,3)-3109.1*pow(v,2)+27011*v-64374;

else if(v<14.44444) return -5.4432*pow(v,4)+278.21*pow(v,3)-5315.5*pow(v,2)+44112*v-119825;

else return -0.6612*pow(v,3)+197.18*pow(v,2)-5987.4*v+57159;

}

double T(double v){

if(v<5.55556)

return -13.605*pow(v,2)-11.359*v+15683;

else return -56.662*pow(v,2)+306.35*v+15329;}

double fv(double v){

return 1.0/m*(T(v)-R(v));

}

double fs(double v){

return v;

}

void main(){

cout<<"Raschet puti razgona metodom Eilera"<<endl;

double eps=0.001, a=0, b=141, h,s1,v1,t1;

int i, n=200;

h=(b-a)/(double)n;

double t=0, v=0, s=0, w=10;

for(i=0; i<n; i++){

s1=s+h*fs(v+h/2*fv(v));

v1=v+h*fv(v+h/2*fv(v));

t1=t+h;

s=s1;

v=v1;

t=t1;

if(fabs(v-w)<eps){

cout<<"t razg="<<t<<endl;

cout<<"v razg="<<v<<endl;

cout<<"s razg="<<s<<endl;

break;

}

w=v;

}

//getch();

}

Вычисление кинетической энергии - student2.ru

Наши рекомендации