アットウィキロゴ

dsげ0314

class dsge0314{

double a,beta;
double ks;
double h;
double k[]=new double[101];
double cx[]=new double[101];
double data[]=new double[200];
double cxs[]=new double[101];
double alpha[]=new double[101];
double alphas[]=new double[101];

double k1;
double n1;
int n2,n3;
int n;
double c1,r1;
double ep;
int t;
int num,qx;

public static void main(String [] args) {
        dsge0314 f=new dsge0314();
      
    }

dsge0314(){

a=0.33;
beta=0.95;
ks=Math.pow((1 / beta - 1) / a , 1 / (a - 1));
h=2*(double)ks/100;
for (n=1;n<101;n++){
k[n]=n*h;
cx[n]=Math.pow(k[n],a);
}

for (n=0;n<100;n++){
data[n]=cx[n];
data[199-n]=cx[n];
}

num=100;

for (qx=0;qx<100;qx++){
alpha[qx]=seekalpha(qx,num,data);
}


t=0;
while(t<100){
for (n=10;n<91;n++){
c1=seekfou(alpha,num,n);
k1=k[n]+Math.pow(k[n],a)-c1;
n1=(double)k1/h;
c1=seekfou(alpha,num,n1);
r1=a*Math.pow(k1,a-1);
cx[n]=c1/(beta*(1+r1));
}

for (n=0;n<100;n++){
data[n]=cx[n];
data[199-n]=cx[n];
}

for (qx=0;qx<100;qx++){
alphas[qx]=seekalpha(qx,num,data);
}

ep=0;
for (qx=0;qx<100;qx++){
ep=ep+(alphas[qx]-alpha[qx])*(alphas[qx]-alpha[qx]);
}

for (qx=0;qx<100;qx++){
alpha[qx]=alphas[qx];
}

if(ep<0.0001)t=1000;

System.out.println(ep);
t=t+1;
}










}


double seekfou(double[] alpha,int num,double x){
double z;
double x1;
int qx;
double delta;
delta=(double)Math.PI/num;
x1=x*delta;
z=alpha[0]/2;
for (qx=1;qx<100;qx++){
z=z+alpha[qx]*Math.cos(qx*x1);
}
return z;
}

double seekalpha(int qx,int num,double[] data){
int s;
double x1,y1,z;
double delta;
delta=(double)Math.PI/num;
z=0;
for (s=0;s<2*num;s++){
x1=s*delta;  
y1=data[s]*Math.cos(qx*x1);  
z=z+delta*y1;
}
z=z/Math.PI;
return z;
}






}
最終更新:2011年03月13日 22:15