/* 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)); }