Français
Source/ Codesnippets

Geheimnis vieler Physik-Engines: Velocity Verlet Integrator

 

p.specht

cela grand Dilemma chez qui numerischen Solution de Feldgleichungen (z.B. Magnetfeldern) ist folgendes: on muss entweder d'abord 2 Orte et qui verstrichene Zeit connaître, um une Durchschnittsgeschwindigkeit berechnen trop peut (de qui ensuite mais z.B. qui induction et sur den Weg zurückwirkende magnetische Kräfte dépendre). ou bien on muss, chez Kenntnis des Ausgangsortes, qui direction et Geschwindigkeit, den prochain Bahnpunkt berechnen - qui wirkenden nichtlinearen Reibungskräfte sommes mais z.B. vom Weg ZWISCHEN Ausgangs- et nächstem Bahnpunkt dépendant ... den on mais encore pas kennt! Problem erkannt?
faute-Minimierung seul hilft là wenig, und dir nämlich encore um weitere Eigenschaften, qui un bon Simulationsalgorithmus rencontrer muss:

cela Geheimnis vieler Physik-Simulationen ist Velocity Verlet intégration, un schnelles Integrationsverfahren pour Newton'sche Bewegungsgleichungen, cela sogar cela hochgenaue 'Runge-Kutta-4./5.Ordre (RKF45)'-procéder übertrifft, - allerdings NICHT à Genauigkeit, mais à Energie-Konstanz! Runge-Kutta neigt nämlich im Laufe qui Zeit en supplément, par systematische faute et Rundungsfehler toujours plus Energie dans cela simulierte System (etwa un pendule) trop pumpen.

cela peux beim ici comme DEMO OHNE GEWÄHR vorgestellten VELOCITY VERLET-procéder (très ähnlich dem 'Leapfrog'-procéder, trop allemande etwa 'Bockspringen') pas passer, là es un ZEITUMKEHRBARES, SYMPLEKTISCHES procéder ist, dessen faute sich jusqu'à sur une kleinen Anteil mutuel weitestgehend aufheben. Zeitumkehrbar est: par Vorzeichenänderung im Zeitschritt gelangt on wieder à qui Ausgangsposition! Symplektisch bedeutet, qui physikalische Erhaltungsgrößen comment impulsion, Energie, Entropie dabei (weitestgehend) conservé rester.

Anbei un bewusst äußerst simple gehaltenes Verfahrensbeispiel (dans Physik-Engines geht's ensuite juste dans allen 3 Freiheitsgraden qui Translation et 3 qui Rotation zur l'affaire):
Titre de la fenêtre "VELOCITY VERLET DEMO am Beispiel Lineares plume-Masse-Dämpfungssystem"
'(CL) CopyLeft 2014-08 by P.Specht, vienne
'Q: https://en.wikipedia.org/wiki/Verlet_integration#Velocity_Verlet
Fenêtre Style 24:Fenêtre 0,0-%maxx,%maxy
var xh&=width(%hwnd)\2:var yh&=height(%hwnd)\2
Déclarer m!,dt!,x1!,x2!,v1!,v15!,v2!,a1!,a2!

proc A :parameters x!,v!

    var l!=200' Federlänge m/1000
    var fk!=25' Federkonstante N/m 'Kraft pro Auslenkung
    var rk!=0.2' Reibungskonstante N*s/m
    return (l!-x!)*fk!/m! - v!*rk!
    'Beschleunigung = Kraft / Masse - Reibungsdämpfung

endproc

proc DRAW

    usepen 0,(xh&-x2!)/30  ,255
    cls
    line xh&-500,yh& - xh&+x2!-200,yh&
    usepen 0,37,rgb(0,0,255)
    line xh&+x2!-200,yh& - xh&+x2!-199,yh&

endproc

'Startwerte:
dt!=0.03's
m!=1'kg
'Einfachstes Zeichenmodell (avec Cls, sans MemCopy)
'Hauptschleife
Repeat :waitinput 33
'VELOCITY VERLET (aka Leapfrog)
v15!= v1!+a1!/2*dt!
x2! = x1!+v15!*dt!
a2! = A(x2!,v15!)
v2! = v15!+dt!*a2!/2
DRAW
a1!=a2!:v1!=v2!:x1!=x2!' Umgreifen pour prochain Schritt

until %clé=27

FIN
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
14.05.2021  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

1.953 Views

Untitledvor 0 min.
Jens-Arne Reumschüssel08.07.2022
p.specht01.07.2022
RudiB.07.03.2022
R.Schneider20.11.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie