2010-05-04 17 views

Odpowiedz

2

Jeśli wszystko po prostu przebiega liniowo, nie ma znaczenia, z której metody korzystałeś, ale gdy wydarzy się coś ciekawego (, tj. nieliniowa), musisz przyjrzeć się uważniej, -linearity bezpośrednio (verlet) lub przez wykonanie mniejszych znaków czasowych (rk4).

+1

Tak! Uważam, że jest to niezwykle pożyteczna rzecz, którą wskazaliśmy i której brakuje w innych, wyczerpujących odpowiedziach. Jeśli nie masz przyspieszenia, integracja Eulera da ci dokładne wyniki, za wyjątkiem liczbowego zaokrąglenia. Ale prawie na pewno masz przyspieszenie. Twoja prędkość się zmienia. Nie zmienia się natychmiast w punkcie iteracji - zmienia się w sposób ciągły pomiędzy krokami z płynnym przyspieszeniem. dlatego bardziej wyrafinowane techniki integracyjne wspomagają realizm i być może inne właściwości, takie jak stabilność symulacji. – Benjohn

12

Euler method jest schematem integracji pierwszego rzędu, tj. Całkowity błąd jest proporcjonalny do wielkości kroku. Może być jednak niestabilna numerycznie, innymi słowy, nagromadzony błąd może przytłoczyć obliczenia dając ci nonsens. Należy pamiętać, że taka niestabilność może wystąpić niezależnie od tego, jak mały rozmiar kroku jest korygowany lub czy system jest liniowy czy nie. Nie jestem zaznajomiony z integracją verlet, więc nie mogę mówić o jego skuteczności. Ale, Runge-Kutta methods różni się od metody Eulera w więcej niż tylko wielkości kroku.

W istocie opierają się one na lepszym sposobie numerycznego przybliżenia pochodnej. Dokładne szczegóły uciekają mi w tej chwili. Ogólnie rzecz biorąc, metoda Runge-Kutta czwartego rzędu jest uważana za koń pociągowy dla schematów integracji, ale ma pewną wartość: disadvantages. Jest nieco dyssypatywny, tzn. Do twoich obliczeń dodawany jest mały, zależny od pierwszej pochodnej termin, który przypomina dodatkowe tarcie. Ma również stały rozmiar kroku, który może spowodować, że trudno będzie osiągnąć pożądaną dokładność. Alternatywnie można użyć adaptacyjnego schematu kroków, takiego jak Runge-Kutta-Fehlberg method, który zapewnia dokładność piątego rzędu dla dodatkowych 6 ocen funkcji. Może to znacznie skrócić czas niezbędny do wykonania obliczeń przy jednoczesnej poprawie dokładności, jak pokazano here.

+0

^Należy pamiętać, że taka niestabilność może wystąpić niezależnie od tego, jak niewielki rozmiar kroku ma miejsce lub czy system jest liniowy czy nie. Kiedy mówisz liniowo, odnosisz się do drugiego rzędu (przyspieszenia), a nie do pierwszego rzędu (prędkości), prawda? Wierzę, że tom10 odnosiło się do stałej, nie przyspieszonej prędkości. –

+0

@Steve H, kiedy powiedziałem, że liniowy, miałem na myśli standardową definicję liniowego równania różniczkowego, a nie kolejność równania. – rcollyer

+2

Metoda Eulera * jest * metodą Runge-Kutta, więc nie można powiedzieć, że metody Runge-Kutta różnią się od metody Eulera. Należy również zauważyć, że istnieje więcej niż jedna metoda czwartego rzędu, Runge-Kutta, ale ta jedna z nich nazywa się metodą RK4 i jest szczególnie dobrze znana. Ale może to jest ukryte w tym, co mówisz. – HelloGoodbye

14

Metoda Verlet sprawdza się w symulacji systemów z oszczędzaniem energii, a to dlatego, że jest symplektyczna. Aby zrozumieć to stwierdzenie, musisz opisać etap czasowy w twojej symulacji jako funkcję f, która mapuje przestrzeń stanu w sobie. Innymi słowy, każdy etap może zostać zapisany w poniższym formularzu.

(x (t + dt), v (t + dt)) = f (x (t), V (t))

Funkcja czas kroku f, ze sposobu Verlet ma specjalny właściwość, która zachowuje wolumen przestrzeni stanów. Możemy napisać to w kategoriach matematycznych. Jeśli masz zestaw A stanów w przestrzeni stanów, możesz zdefiniować f (A) przez

f (A) = {f (x) | dla x w A}

Teraz załóżmy, że zbiory A i f (A) są gładkie i ładne, więc możemy zdefiniować ich objętość. Wtedy mapa symplektyczna f, zawsze wypełni, że objętość f (A) jest taka sama jak objętość A. (i to będzie spełnione dla wszystkich ładnych i gładkich wyborów A). Jest to realizowane przez funkcję kroku czasu metody Verlet, a zatem metoda Verlet jest metodą symplektyczną.

Teraz ostatnie pytanie. Dlaczego metoda symplektyczna jest dobra do symulacji systemów z oszczędzaniem energii, ale obawiam się, że będziesz musiał przeczytać książkę, aby to zrozumieć.