var y = new Array();
var x1 = new Array();
var x = new Array();
var sol = new Array();
function sample() {
var query = "SELECT * FROM " +
'1Zls1F-Y8BIs8yXmo465hf7v3GonkYIJdgrs5rdyR';
var encodedQuery = encodeURIComponent(query);
var url = ['https://www.googleapis.com/fusiontables/v1/query'];
url.push('?sql=' + encodedQuery);
url.push('&key=AIzaSyAH0WCAXRIdHdbI-6bnMSN4kVDDZZmGyqY');
url.push('&callback=?');
$.ajax({
url: url.join(''),
dataType: 'jsonp',
success: function (data) {
var rows = data['rows'];
sx = 0;
for (var i in rows) {
sx = sx + 1;
x1[sx] = rows[i][0] / 1;
y[sx] = rows[i][1] / 1;
}
number = sx;
for (s = 1; s < number + 1; s++) {
x[s] = new Array();
}
for (s = 1; s < number + 1; s++) {
x[s][1] = 1;
x[s][2] = x1[s];
}
var sub = new ols();
sub.x = x;
sub.y = y;
sub.numberx = 2;
sub.datanumber = number;
sub.mat();
sol = sub.sol;
maxx = 0;
for (s = 1; s < number + 1; s++) {
if (x1[s] > maxx) maxx = x1[s];
}
minx = maxx;
for (s = 1; s < number + 1; s++) {
if (x1[s] < minx) minx = x1[s];
}
maxy = 0;
for (s = 1; s < number + 1; s++) {
if (y[s] > maxy) maxy = y[s];
}
miny = maxy;
for (s = 1; s < number + 1; s++) {
if (y[s] < miny) miny = y[s];
}
$("#memo").html(sol[2]);
}
});
}
function paint(){
var sub=new svgpaint();
str="<svg width=\"500\" height=\"500\">";
for(s=1;s<number+1;s++){
x2 = 500*(x1[s] - minx) / (maxx - minx);
y2 = 500*(y[s] - miny) / (maxy - miny);
str = str + sub.rect(x2,500-y2, 10,10,"red");
}
str=str+"</svg>";
$("#memo").html(str);
}
class ols{
x:any=new Array();
y:number[]=new Array();
datanumber:number;
numberx:number;
sol:number[]=new Array();
a:any[]=new Array();
b:number[]=new Array();
mat():void{
var s:number;
for(s=1;s<this.numberx+1;s++){
this.a[s]=new Array();
}
var s1:number;
var s2:number;
var d1:number;
for(s1=1;s1<this.numberx+1;s1++){
for(s2=1;s2<this.numberx+1;s2++){
d1=0;
for(s=1;s<this.datanumber+1;s++){
d1=d1+this.x[s][s1]*this.x[s][s2];
}
this.a[s1][s2]=d1;
}}
for(s1=1;s1<this.numberx+1;s1++){
d1=0;
for(s=1;s<this.datanumber+1;s++){
d1=d1+this.x[s][s1]*this.y[s];
}
this.b[s1]=d1;
}
var z:number;
for(s1=1;s1<this.numberx+1;s1++){
for(s2=1;s2<this.numberx+1;s2++){
z=this.a[s2][s1]/this.a[s1][s1];
if(s1==s2)z=0;
for(s=1;s<this.numberx+1;s++){
this.a[s2][s]=this.a[s2][s]-z*this.a[s1][s];
}
this.b[s2]=this.b[s2]-z*this.b[s1]
}
}
for(s=1;s<this.numberx+1;s++){
this.sol[s]=this.b[s]/this.a[s][s];
}
}
}
最終更新:2016年03月06日 00:38