Español
Fuente/ Codesnippets

Geheimnis vieler Physik-Engines: Velocity Verlet Integrator

 

p.specht

Das große Dilemma en numerischen Solución de Feldgleichungen (z.B. Magnetfeldern) es folgendes: Man muss entweder zuerst 2 Orte y el verstrichene Tiempo kennen, una Durchschnittsgeschwindigkeit berechnen a puede (de el entonces aber z.B. el Induktion y en el Weg zurückwirkende magnetische Kräfte abhängen). Oder uno muss, en Kenntnis des Ausgangsortes, el Richtung y Geschwindigkeit, el nächsten Bahnpunkt berechnen - el wirkenden nichtlinearen Reibungskräfte son aber z.B. vom Weg ZWISCHEN Ausgangs- y nächstem Bahnpunkt abhängig ... el uno aber todavía no sabe! Problema erkannt?
Fehler-Minimierung allein hilft como wenig, lo va nämlich todavía en weitere Características, el una guter Simulationsalgorithmus erfüllen muss:

Das Geheimnis vieler Physik-Simulationen es Velocity Verlet Integration, una schnelles Integrationsverfahren para Newton'sche Bewegungsgleichungen, el incluso el hochgenaue 'Runge-Kutta-4./5.Orden (RKF45)'-Verfahren übertrifft, - allerdings NICHT a Genauigkeit, pero a Energie-Konstanz! Runge-Kutta neigt nämlich en el Laufe el Tiempo dazu, por systematische Fehler y Rundungsfehler siempre mehr Energie en el simulierte Sistema (etwa una Pendel) a pumpen.

Das kann beim aquí como DEMO OHNE GEWÄHR vorgestellten VELOCITY VERLET-Verfahren (muy ähnlich el 'Leapfrog'-Verfahren, a Alemán etwa 'Bockspringen') no passieren, como lo una ZEITUMKEHRBARES, SYMPLEKTISCHES Verfahren es, dessen Fehler se salvo una pequeña Anteil gegenseitig weitestgehend aufheben. Zeitumkehrbar heißt: Durch Vorzeichenänderung en el Zeitschritt gelangt uno otra vez a el Ausgangsposition! Symplektisch bedeutet, daß physikalische Erhaltungsgrößen como Impuls, Energie, Entropie esta (weitestgehend) obtener bleiben.

Anbei una bewusst äußerst simplemente gehaltenes Verfahrensbeispiel (In Physik-Engines geht's entonces igual en allen 3 Freiheitsgraden el Translation y 3 el Rotation a Sache):
Título de la ventana "VELOCITY VERLET DEMO al Ejemplo Lineares Feder-Masse-Dämpfungssystem"
'(CL) CopyLeft 2014-08 by P.Pájaro carpintero, Wien
'Q: https://en.wikipedia.org/wiki/Verlet_integration#Velocity_Verlet
Ventana de Estilo 24:Ventana 0,0-%maxx,%maxy
var xh&=width(%hwnd)\2:var yh&=height(%hwnd)\2
Declarar m!,dt!,x1!,x2!,v1!,v15!,v2!,a1!,a2!

proc A :parámetros 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
    volver (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 (con Cls, sin 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 para nächsten Schritt

until %key=27

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



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.960 Views

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

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie