- Python 88.9%
- TeX 11.1%
| 3Dplottest.py | ||
| abserr_euler.png | ||
| abserr_heun.png | ||
| abserr_midpoint.png | ||
| abserr_rk4.png | ||
| adaptive_test.png | ||
| diffeq.py | ||
| diffeq_stability.py | ||
| diffeq_tsint.py | ||
| different solutions.png | ||
| err_time_euler.png | ||
| err_time_heun.png | ||
| err_time_midpoint.png | ||
| err_time_rk4.png | ||
| family_1.png | ||
| family_2.png | ||
| main_06.py | ||
| Marko_Urbanč_06.pdf | ||
| mp06.tex | ||
| Nonworking.png | ||
| README.md | ||
| sol_k001_h004.png | ||
| solve2_1e-05.png | ||
| solve2_002.png | ||
| solve2_020.png | ||
| solve2_100.png | ||
| solve2_400.png | ||
| solve_1e-05.png | ||
| solve_002.png | ||
| solve_020.png | ||
| solve_100.png | ||
| solve_400.png | ||
| test_solve_010.png | ||
| test_solve_100.png | ||
| tests.py | ||
| time_euler.png | ||
| time_heun.png | ||
| time_midpoint.png | ||
| time_rk4.png | ||
| times.png | ||
DN 6. Enačbe hoda (Prevajanje toplote)
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.
Navodila
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.
Napotki
1. Integratorji
Č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.
2. Vgrajene funkcije
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.
3. Še kakšen dodaten integrator
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:
- Classical Fifth-, Sixth-, Seventh-, and Eighth-Order Runge-Kutta Formulas with Stepsize Control
- A Predictor-Corrector Approach for the Numerical Solution of Fractional Differential Equations
- Optimized Forest-Ruth- and Suzuki-like algorithms for integration of motion in many-body systems
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.
Kar sem jaz naredil
Tu je verjetno tisto kar te najbolj zanima.
Standard Disclaimer
Objavljam tudi kodo. Ta je bila včasih del večjega repozitorija, ampak sem jo sedaj izvzel v svojega, da je bolj pregledna. Koda bi morala biti razmeroma pokomentirana, sploh v kasnejših nalogah.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.
Citiranje
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.