/* Variablendeklaration */
var ODE_BDF; // BDF-ODE-Solver 2. Ordnung für einfache DGl
function setup ()
{
...
/* Instanzierung von Klassen zu Objekten */
ODE_BDF = new BDF_secondOrder(6, 16, 1e-10); // N = 6, Anzahl Rückweisungen R = 16, epsilon = 1e-10
...
}
function draw() // Hauptprogramm
{
...
//****************************************** Darstellung ************************************************
feder.drawSpring(0, 0, 0, -y);
fill('#0000ff');
ellipse(kXi(0), kYi((-y-r)*M), 2*r*M, 2*r*M);
...
//****************************************** Berechnung ************************************************
if (START)
{
...
dt = 1/(I*frmRate); // Schritteite
...
if (INIT)
{
ODE_BDF.BDFsO(f, true, y, vy, dt); // Initialisierung
t = 0;
}
}
else
{
for (var i = 0; i < I; i++)
{ // I-fache Wiederholung infolge Schrittweitensteuerung
result = ODE_BDF.BDFsO(f, false, y, vy, dt); // BDF 6-stufig
y = result[0];
vy = result[1];
}
}
...
}
/***************************************** simple DGl 2. Ordnung ************************************************/
/* generalisierte grad-Funktion */
function f(y, vy)
{
return(g - 2*d*vy - sq(omega0)*(y-l0));
}