Skip to content

Instantly share code, notes, and snippets.

@peace098beat
Created July 17, 2016 09:50
Show Gist options
  • Save peace098beat/3a102245656f3c150bffb61360378d95 to your computer and use it in GitHub Desktop.
Save peace098beat/3a102245656f3c150bffb61360378d95 to your computer and use it in GitHub Desktop.
るんげくった
document.getElementById('helloWorld').innerHTML = 'Hello, World!';
var g = 9.8;
var L = 9.8;
var w = 100;
var PI = 3.14159265;
function dprint(s){
document.getElementById('helloWorld').innerHTML += "<p>" +s+"</p>\n";
}
function Eta(t){ return Math.sin(2*PI*w*t);}
function dEta(t){return 2*PI*w * Math.cos(2*PI*w*t);}
function ddEta(t){
return -1* (2*PI*w)^2 * Eta(t);
}
function defEq1(t,y,v){
return v;
}
function defEq2(t,y,v){
return -1*(g + ddEta(t))/L * Math.sin(y);
}
var N = 1000;
var h = 0.001; //[s]
var g = 9.8;
var t0=0;
var y0=0; //theta[rad]
var v0=0; //dtheta/dt[rad/t]
dprint(t0+":"+y0+":"+v0);
//var k0=0, k1=0, k2=0, k3=0;
//var l0=0, l1=0, l2=0, l3=0;
for(var i=0; i<N; i++){
dprint(t0+":"+y0+":"+v0);
//dprint(y0);
k0 = h * defEq1(t0,y0,v0);
l0 = h * defEq2(t0,y0,v0);
k1 = h * defEq1(t0+h/2, y0+k0/2, v0+l0/2);
l1 = h * defEq2(t0+h/2, y0+k0/2, v0+l0/2);
k2 = h * defEq1(t0+h/2, y0+k1/2, v0+l1/2);
l2 = h * defEq2(t0+h/2, y0+k1/2, v0+l1/2);
k3 = h * defEq1(t0+h, y0+k2, v0+l2);
l3 = h * defEq2(t0+h, y0+k2, v0+l2);
t0 = t0 + h;
y0 = y0 + (k0 + 2*k1 + 2*k2 * k3)/6;
v0 = v0 + (l0 + 2*l1 + 2*l2 * l3)/6;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment