package kaiki;
import tool.*;
public class pro {
String[] code=new String[50000];
String[] codex=new String[50000];
int[] point=new int[5000];
String[] v=new String[50000];
String[] v2=new String[50000];
String[] data=new String[50000];
int s,sx,datanumber;
String[] t=new String[5000];
int[] number_dic=new int[5000];
int[] y=new int[5000];
int[] v1=new int[5000];
double[] p=new double[5000];
double[] sol=new double[50];
int number;
double[][] x=new double[700][60];
public static void main(String[] args) {
pro te=new pro();
}
pro(){
readfile sub=new readfile();
sub.makedata("point.txt","SJIS");
datanumber=sub.datanumber;
data=sub.data;
int sx=0;
for(s=1;s<datanumber+1;s++){
String[] x=data[s].split(",");
if(x[0].indexOf("△")<0)sx=sx+1;
if(x[0].indexOf("△")<0)point[sx]=numx(x[1]);
if(x[0].indexOf("△")<0)p[sx]=num(x[2]);
if(x[0].indexOf("△")<0)t[sx]=x[0];
}
datanumber=sx;
number=2;
for(s=1;s<datanumber+1;s++){
x[s][1]=1;
x[s][2]=point[s];
}
ols sub3=new ols();
sub3.datanumber=datanumber;
sub3.number=number;
sub3.x=x;
sub3.y=p;
sub3.makedata();
sol=sub3.sol;
for(s=1;s<datanumber+1;s++){
System.out.println(t[s]+","+(sol[1]+sol[2]*point[s])+","+p[s]);
}
System.out.println(sol[2]);
}
double num(String str){
double nx;
nx=0;
try{
nx=Double.parseDouble(str);
}catch (Exception e) {}
return nx;
}
int numx(String str){
int nx;
nx=0;
try{
nx=Integer.parseInt(str);
}catch (Exception e) {}
return nx;
}
}
package kaiki;
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];
}
}
}
最終更新:2016年08月25日 21:04