package var;
import tool.*;
public class pro {
double[] y=new double[1000];
double[][] x=new double[1000][10];
int s,datanumber,number;
double[] sol=new double[100];
String file;
String[] data=new String[100];
double[] c1=new double[200];
double[] c2=new double[200];
public static void main(String[] args) {
pro test=new pro();
}
pro(){
readfile sub2=new readfile();
sub2.makedata("data.csv", "UTF-8");
data=sub2.data;
datanumber=sub2.datanumber;
for(s=1;s<datanumber+1;s++){
String[] x1=data[s].split(",");
c1[s]=Double.parseDouble(x1[0]);
c2[s]=Double.parseDouble(x1[1]);
System.out.println(c1[s]);
}
datanumber=datanumber-2;
number=5;
for(s=1;s<datanumber+1;s++){
x[s][2]=c2[s+1];
x[s][1]=1;
x[s][3]=c1[s+1];
x[s][4]=c2[s];
x[s][5]=c1[s];
y[s]=c2[s+2];
}
ols sub=new ols();
sub.x=x;
sub.y=y;
sub.number=number;
sub.datanumber=datanumber;
sub.makedata();
sol=sub.sol;
System.out.println(sol[1]+","+sol[2]+","+sol[3]+","+sol[4]+","+sol[5]);
}
}
package var;
public class ols {
int s,s1,s2;
int datanumber,number;
double x1;
double[][] a=new double[100][100];
double[] b=new double[100];
double[] y=new double[1000];
double[][] x=new double[1000][10];
double[] sol=new double[100];
void makedata(){
for(s1=1;s1<number+1;s1++){
for(s2=1;s2<number+1;s2++){
x1=0;
for(s=1;s<datanumber+1;s++){
x1=x1+x[s][s1]*x[s][s2];
}
a[s1][s2]=x1;
}
}
for(s1=1;s1<number+1;s1++){
x1=0;
for(s=1;s<datanumber+1;s++){
x1=x1+x[s][s1]*y[s];
}
b[s1]=x1;
}
double z;
for(s1=1;s1<number+1;s1++){
for(s2=1;s2<number+1;s2++){
z=a[s2][s1]/a[s1][s1];
if(s1==s2)z=0;
for(s=1;s<number+1;s++){
a[s2][s]=a[s2][s]-z*a[s1][s];
}
b[s2]=b[s2]-z*b[s1];
}
}
for(s1=1;s1<number+1;s1++){
sol[s1]=b[s1]/a[s1][s1];
}
}
}
最終更新:2014年03月01日 11:42