Auch wenn ich Klammern setze:
Ich hab's rausgekriegt: Es lag an den Klammern, deshalb schreibe ich jetzt v * v ...
Danke für eure Hilfe, das fertige Skript teile ich sobald es online ist!
Auch wenn ich Klammern setze:
Ich hab's rausgekriegt: Es lag an den Klammern, deshalb schreibe ich jetzt v * v ...
Danke für eure Hilfe, das fertige Skript teile ich sobald es online ist!
Bohr ey.Ihr könnt nicht nur gut Scripten,sondern auch Rechnen.
Scripten kann ich auch nicht gut, deshalb bitte ich ja um Hilfe.
Die Fallbeschleunigung ist insofern interessant, als der Unterschied zwischen "mit Luftwiderstand" und "ohne Luftwiderstand" beim Fallschirmspringen enorm ist. (Teilweise fällt man ohne mehr als doppelt so schnell)
Okay, ich habe das Ganze mal nach Sempervivums Quelle umgeschrieben.
Die Arrays sehen in der Konsole gut aus, allerdings sind die Werte immer noch nicht realistisch.
F_arr [ 637.65, 595.4625, 595.4625, 574.3687500000001, 637.65, 616.5562500000001, 511.0875, 489.99375000000003, 553.275, 532.1812500000001, … ]
v_arr [ 0, 0.916096153846154, 1.832192307692308, 2.715836538461539, 3.6968365384615387, 4.645384615384616, 5.431673076923078, 6.185509615384616, 7.036701923076924, 7.855442307692309, … ]
a_arr [ 9.81, 9.160961538461539, 9.160961538461539, 8.836442307692309, 9.81, 9.48548076923077, 7.8628846153846155, 7.5383653846153855, 8.511923076923077, 8.187403846153847, … ]
y_arr [ "1000", 999.9083903846154, 999.7251711538461, 999.4535874999999, 999.0839038461537, 998.6193653846152, 998.0761980769229, 997.4576471153844, 996.7539769230767, 995.9684326923075, … ]
t_arr [ 0, "00.1", "00.10.1", "00.10.10.1", "00.10.10.10.1", "00.10.10.10.10.1", "00.10.10.10.10.10.1", "00.10.10.10.10.10.10.1", "00.10.10.10.10.10.10.10.1", "00.10.10.10.10.10.10.10.10.1", … ]
Hat keiner eine Idee weshalb?
function calcTime() {
var dt = 0.1
var F_arr = [65 * 9.81];
var a_arr = [9.81];
var v_arr = [0];
var y_arr = [1000];
var t_arr = [0];
F = 65 * 9.81;
a = 9.81;
v = 0;
y = 1000;
t = 0;
while (y >= 0){
F = 65 * (9.81 - 27 / 65 * ((v)^2));
a = F / 65;
v = v + a * dt;
y = y - v * dt;
t = t + dt;
F_arr.push(F);
a_arr.push(a);
v_arr.push(v);
y_arr.push(y);
t_arr.push(t);
}
console.log(F_arr, v_arr, a_arr, y_arr, t_arr)
}
Alles anzeigen
Alles anzeigen
Rechne ich aber weiter die zweite Zeile in der for-Schleife:a[i] = 9.81 - k / m * ((v[i])^2);
= 9,81 - 21,77 / 65 * 9,812
= 9,81 - 0,3349... * 96,2361
= 9,81 - 32,231...
a[i] = -22,421690723076923076923076923077
Für die ersten acht Zeitschritte (delta t = 0.1 s) sollte in etwa Folgendes rauskommen:
v = [0, 0.981, 1.929, 2.785, 3.506, 4.075, 4.4998, 4.803]
a = [9.81, 9.488, 8.563, 7.212, 5.693, 4.248, 3.028, 2.084]
y = [1000, 999.902, 999.709, 999.431, 999.080, 998.673, 998.223, 997.743]
Auf der Suche nach der richtigen Formel bin ich auf dieses gestoßen
Guter Tipp! Das habe ich auch schon entdeckt.
Notfalls baue ich darauf auf, aber erst wenn ich weiß, warum mein Weg (noch) nicht funktioniert
Ideen?
v = Geschwindigkeit
a = Beschleunigung
y = Höhe
Ausserdem wird in der Funktion die Variable h verwendet, die nirgends definiert ist. Anzunehmen ist, dass es die Höhe sein soll;
Ups, mein Fehler. In meiner HTML-Datei ist die Höhe h natürlich definiert (1000 m).
Für y würde ich annehmen, dass es ein "Höhen-Array" sein soll ? Dann wird von dem die Geschwindigkeit abgezogen ?
Genau, von der Höhe des vorherigen Moments y[i-1] wird die momentane Geschwindigkeit v[i] abgezogen (die eigentlich noch mit einem Zeitschritt delta t multipliziert wird, delta t ist vorerst aber 1).
Ok, das war jetzt auch nur der freie Fall mit einer Fallbeschleunigung von 9,81 Meter pro Quadratsekunde ..
Ah verstehe!
Ich wollte mit Luftwiderstand rechnen, weshalb bei meinen Werten (m = 65 kg, k = 21.77 kg/m) keine höheren Geschwindigkeiten als 6 m/s rauskommen sollten.
Leider weiß ich nicht, was mein Script dazu verleitet für v Werte wie 26 m/s rauszuhauen.
Die Daten sind mit PHP erstellt; falls das Ergebnis plausibel ist, wäre das auch leicht in JavaScript umzusetzen.
Leider sind die Werte nicht plausibel.
Allerdings kriege ich die Formel nicht so hin, dass die Ergebnisse plausibel sind.
Ich auch nicht...
Bei mir sind die ersten gerundeten Ergebnisse
v = [0, 9.81, 15.94, 21.39, 23.5]
a = [9.81, 6.14, 5.46, 2.11, 2.78]
y = [1000, 990.19, 974.25, 952.86, 929.36]
mit diesem Code:
Guten Abend,
ich (Mathematiker) verzweifle an einer Rechenschleife in JavaScript, die Beschleunigung, Geschwindigkeit und Höhe eines fallenden Objektes für jeden Moment (i) aus dem vorherigen Moment (i-1) berechnet. Wie kann das klappen? Schön wäre es, wenn man die Ergebnisse für alle v(i), a(i) und y(i) mit zugehörigem i-Wert als Vektoren bzw. Arrays speichern könnte... VG
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.