Diferencialne enačbe so povsod v fiziki. V tej nalogi se naučimo, kako jih lahko rešujemo numerično. Pravzaprav bodo zdaj naloge bolj ali manj sestavljene iz reševanja diferencialnih enačb, do zadnje naloge, kjer bomo uporabili strojno učenje. Skratka, very important stuff.
Naloga želi, da rešiš dano enačbo z Eulerjevo metodo in nato še z čimveč naprednejšimi metodami. Vse to je potrebno narediti za različne začetne pogoje ob danem parametru enačbe. Predvsem je pomembno, da raziščeš vpliv velikosti koraka na karakteristike dobljene rešitve. Na koncu pa nariši še družine rešitev za različne parametre enačbe.
Če se prav spomnem prof. Kerševan pri tej nalogi pripne skripto z že napisanimi metodami za integracijo. Meni te niso delale zato sem napisal svoje. Zdi se mi oboje koristno. To da veš, da obstaja že napisana metoda in to da jo poskusiš napisati sam, le tako lahko razumeš kako deluje.
Mogoče je to malo moj pet peeve, ampak striktno gledano recimo scipy.integrate.solve_ivp
ni algoritem za reševanje diferencialnih enačb, ampak je wrapper okoli že napisanih algoritmov. Za boljše informacije se tu spet splača prebrati dokumentacijo in mogoče tudi prelistati kak članek, kjer so opisali algoritem in njegovo implementacijo.
Cel smisel te naloge je, da se igraš z integratorji. Ni drugega kot to. Torej lepo prosim izživljaj se. Pokaži kako daleč si zrasel kot fizik. Tu imaš nekaj idej:
Prva dva sta legit NASA članka. Lej kako daleč si že prišel! Ponosen sem nate, bralec. Tretji pa vsebje malenkost spoilerje za naslednjo nalogo, ampak je vseeno zanimiv.
Tu je verjetno tisto kar te najbolj zanima.
Vseeno pa priporočam, da si najprej sam poskusiš rešiti nalogo. As always za vprašanja sem na voljo.
⚠️ WARNING ⚠️ : Za natančnost rezultatov sem dobival za različne metode podobne rezultate, kar se mi zdi nenavadno. Gotovo je kje napaka, ampak je nisem uspel najti. Mogoče jo lahko ti.
Priznam, da zna biti source repozitorij nekoliko kaotičen. Over time sem se naučil boljše prakse. Zdi se mi, da je tole glavni .py
file.
Malo za šalo, malo za res.. če želiš izpostaviti/omeniti/se sklicati ali pa karkoli že, na moje delo, potem ga lahko preprosto citiraš kot:
@misc{Urbanč_mfpDN6,
title={Enačbe hoda},
url={https://pengu5055.github.io/fmf-pages/year3/mfp/dn6.html},
journal={Marko’s Chest},
author={Urbanč, Marko},
year={2023},
month={Oct}
}
To je veliko boljše kot prepisovanje.