Fysiikan simulaatiot ja visualisointi itse ohjelmoiden

Jari-Pekka Makkonen, Matti Heikkinen ja Samu Huovinen

Fysiikkaa ja Python -ohjelmointia

Johdanto

Fysiikan simulaatioiden avulla voidaan tarkastella ilmiöitä joiden tutkiminen kokeellisesti olisi vaikeaa. Kirjoittamalla simulaatio-ohjelmia, opitaan myös syvällisesti soveltamaan fysiikan ilmiöihin liittyviä matemaattisia malleja. 

Python-ohjelmointikieli soveltuu helpohkon syntaksinsa vuoksi hyvin ohjelmoinnin alkeiden opiskeluun ja simulaatioiden kirjoittamiseen. Tässä esittelyssä oletetaan, että Python-kielen alkeet ovat hallinnassa. Näiden simulaatioiden ohjelmoinnissa on käytetty VPython-nimistä 3D-grafiikkamodulia. 

VPython-moduli on tehty helppokäyttöiseksi ja se mahdollistaa vähällä vaivalla simulaatioiden ohjelmoinnin ja erilaisten visualisaatioiden teon. VPython on käytännössä yksinkertainen renderöintityökalu 3D-kappaleille ja graafeille. VPython-ohjelmia voi kirjoittaa ja ajaa suoraan selaimessa kirjautumalla Glowscript-ympäristöön. 

Esimerkiksi kinematiikasta on mahdollista antaa opiskelijoille ohjelmointitehtäviä, jotka eivät edellytä esitietoja ohjelmoinnista. Myöhemmin jaetaan materiaalia, jossa käsitellään lisäksi Pythonin alkeita.

Esimerkki 1

Esimerkissä simuloidaan pomppivaa palloa. Pompuissa mekaaninen energia ei säily. Esimerkin lähdekoodi ja simulaation suoritus

Esimerkki 2

Esimerkissä 2 simuloidaan pallon putoaminen 4.0 m korkeudelta ja piirretään pallon sijainti y-suunnassa ajan funktiona. Pallo lähtee levosta liikkeelle. Esimerkin lähdekoodi.

Esimerkki 3

Simuloidaan Kuun kiertoliikettä Maan ympäri käyttäen mallina Newtonin painovoimalakia:

F=\gamma\cdot\frac{M\cdot m}{r^2}

Esimerkin lähdekoodi ja suoritus