package price;
public class pro {
double[] cn=new double[101];
double[] ln=new double[101];
double[] k=new double[101];
double h;
double a,beta,ms;
double[] pn=new double[101];
double[] px=new double[101];
double[] pi=new double[101];
double k1,n1,r1,l1,c1;
public static void main(String[] args) {
pro test=new pro();
}
pro(){
a=0.33;
beta=0.95;
ms=20;
simple sub=new simple();
cn=sub.cn;
ln=sub.ln;
k=sub.k;
h=sub.h;
int n;
for(n=1;n<101;n++){
pn[n]=1;
}
int time;
for(time=1;time<300;time++){
for(n=10;n<91;n++){
px[n]=search(n);
}
for(n=10;n<91;n++){
pn[n]=px[n];
}
}
for(n=10;n<91;n++){
System.out.println(pn[n]);
}
}
double search(int n){
double p1,p2,p3;
double g1,g2;
int mode;
p1=1.1*pn[n];
p2=0.9*pn[n];
mode=0;
while(mode<50){
g1=g(n,p1);
g2=g(n,p2);
p3=p2-g2*(p2-p1)/(g2-g1);
p1=p2;
p2=p3;
if(g2*g2<0.001)mode=100;
mode=mode+1;
}
return p2;
}
double g(int n,double pxs){
double pipi,g1;
k1=k[n]+f(k[n],ln[n])-cn[n];
n1=k1/h;
l1=lab(n1);
r1=a*Math.pow(k1,a-1)*Math.pow(l1,1-a);
pipi=price(n1)/pxs-1;
g1=ms*(r1+pipi)/(cn[n]*(1+r1))-pxs;
return g1;
}
double f(double k1,double l1){
double f1;
f1=Math.pow(k1,a)*Math.pow(l1,1-a);
return f1;
}
double price(double nx){
double c1;
int n1,n2;
n1=(int)nx;
n2=n1+1;
c1=pn[n1]+(nx-n1)*(pn[n2]-pn[n1]);
return c1;
}
double lab(double n1){
int n2,n3;
double c1;
n2=(int)n1;
if(n2>90)n2=90;
n3=n2+1;
c1=ln[n2]+(n1-n2)*(ln[n3]-ln[n2]);
return c1;
}
double con(double n1){
int n2,n3;
double c1;
n2=(int)n1;
if(n2>90)n2=90;
n3=n2+1;
c1=cn[n2]+(n1-n2)*(cn[n3]-cn[n2]);
return c1;
}
}
最終更新:2013年09月16日 15:29