<!DOCTYPE html>
<html>
<head>
<title>統計的方法</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="material.min.css">
<link rel="stylesheet" href="https://storage.googleapis.com/code.getmdl.io/1.0.6/material.indigo-pink.min.css">
<script src="https://storage.googleapis.com/code.getmdl.io/1.0.6/material.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<script src="sample.js"></script>
<script src="jquery.js"></script>
<script src="ols.js"></script>
</head>
<body onload="sample()">
<div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
<header class="mdl-layout__header">
<div class="mdl-layout__header-row">
<span class="mdl-layout-title">統計的方法</span>
</div>
<div class="mdl-layout__tab-bar mdl-js-ripple-effect">
<a href="#scroll-tab-1" class="mdl-layout__tab is-active">表</a>
<a href="#scroll-tab-2" class="mdl-layout__tab">解答</a>
<a href="#scroll-tab-3" class="mdl-layout__tab">出所</a>
</div>
</header>
<div class="mdl-layout__drawer">
<span class="mdl-layout-title">タイトル</span>
</div>
<main class="mdl-layout__content">
<section class="mdl-layout__tab-panel is-active" id="scroll-tab-1">
<div class="page-content" id="tab2"></div>
</section>
<section class="mdl-layout__tab-panel" id="scroll-tab-2">
<div class="page-content" id="memo"></div>
</section>
<section class="mdl-layout__tab-panel" id="scroll-tab-3">
<div class="page-content">13章2節</div>
</section>
</main>
<footer class="mdl-mini-footer">
<div class="mdl-mini-footer__left-section">
<div class="mdl-logo">リンク</div>
<ul class="mdl-mini-footer__link-list">
<li><a href="http://osomatsusan.com/">コード</a></li>
<li><a href="https://www.google.com/fusiontables/data?docid=1IN8lVhSneZMzzP4bMBG_LDmxZZFrwTik-ukJy0Pr#rows:id=1">データ</a></li>
</ul>
</div>
</footer>
</div>
</body>
</html>
var x1 = new Array();
var x2 = new Array();
var y = new Array();
var x = new Array();
var sol = new Array();
function sample() {
var query = "SELECT * FROM " +
'1aM2SHx_gjN2Ipbcac0mbqt2Gps47ceaedXMfSUUC';
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;
x2[sx] = rows[i][1] / 1;
y[sx] = rows[i][2] / 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];
x[s][3] = x2[s];
}
var sub = new ols();
sub.x = x;
sub.y = y;
sub.numberx = 3;
sub.datanumber = number;
sub.mat();
sol = sub.sol;
paint();
paintx();
}
});
}
function paint(){
str1="<table class=\"mdl-data-table mdl-js-data-table mdl-data-table--selectable mdl-shadow--2dp\">";
str2="<th class=\"mdl-data-table__cell--non-numeric\">";
str3="<td class=\"mdl-data-table__cell--non-numeric\">";
str=str1;
str=str+"<thead>";
str=str+"<tr>";
str=str+"<th>x1</th>";
str=str+"<th>x2</th>";
str=str+"<th>y</th>";
str=str+"</tr>"
str=str+"</thead>";
str=str+"<tbody>";
for(s=1;s<number+1;s++){
str=str+"<tr>";
str=str+"<td>"+x1[s]+"</td>";
str=str+"<td>"+x2[s]+"</td>";
str=str+"<td>"+y[s]+"</td>";
str=str+"</tr>";
}
str=str+"</table>";
$("#tab2").html(str);
}
function paintx(){
$("#memo").html(sol[1]+","+sol[2]+","+sol[3]);
}
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月08日 03:45