1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
#include "yhead.h"
int main()
{
ofstream out1("t_t.dat");
int npoints = 2940000;
int i, trns,x=0;
double h,t;
double gamma;
double B, A, a;
double I,s_1,s_2,s_3,s_4;
double g,r_1,r_2,r_3,r_4;
double q,t_1,t_2,t_3,t_4;
vector<double> intensity;
h = 0.005;
//trns = 1960000;
gamma = 0.04;
B = 5.8;
A = 7;
a = 1.8;
for(i=1;i < npoints;i++)
{
s_1 = (g - q - 1)*I; // I
r_1 = gamma*(A - g - g*I); // G
t_1 = gamma*(B - q - a*q*I); // Q
s_2 = ((g + 0.5*h*r_1) - ( q + 0.5*h*t_1 ) -1)*(I + 0.5*h*s_1);
r_2 = gamma*(A - (g + 0.5*h*r_1 ) - (g + 0.5*h*r_1 )*(I + 0.5*h*s_1 ));
t_2 = gamma*(B - (q + 0.5*h*t_1 )- a*(q +0.5*h*t_1 )*(I + 0.5*h*s_1 ));
s_3 = ((g + 0.5*h*r_2 ) - (q + 0.5*h*t_2) - 1)*(I + 0.5*h*s_2);
r_3 = gamma*(A-(g + 0.5*h*r_2)- (g +0.5*h*r_2 )*(I + 0.5*h*s_2));
t_3 = gamma*(B-(q + 0.5*h*t_2)- a*(q +0.5*h*t_2 )*(I + 0.5*h*s_2));
s_4 = ((g+ h*r_3 ) - (q+ h*t_3 ) - 1 )*(I + h*s_3 );
r_4 = gamma*(A - (g + h*r_3 ) - (g + 0.5*h*r_3 )*(I + 0.5*h*s_3 ));
t_4 = gamma*(B - (q + h*t_3 ) - a*(q + h*t_3 )*(I + h*s_3 ));
I = I + (h/6.0)*(s_1 + 2.0*s_2 + 2.0*s_3 + s_4);
g = g + (h/6.0)*(r_1 + 2.0*r_2 + 2.0*r_3 + r_4);
q = q + (h/6.0)*(t_1 + 2.0*t_2 + 2.0*t_3 + t_4);
x = x + 1;
if(x >=20)
{
t = h*i;
//intensity.push_back(I);
out1<< t << " "<< I <<"\n";
x = 0;
}
}
return 0;
}
|