Tehdään ensin muutamia apufunktioita (et on kahden pisteen välinen etäisyys ja Fx ja Fy ovat x- ja y-akseleiden suuntaiset voimat:
![[Graphics:Images/9_ratkaisut_gr_2.gif]](Images/9_ratkaisut_gr_2.gif)
Seuraavassa PR on apumuuttuja plottausta varten (kuvat rajat), maxtime ilmoittaa kuinka pitkälle differentiaaliyhtälöitä ratkaistaan ja xa ja ya ovat auringon koordinaatit.
Differentiaaliyhtälöiksi saadaan
"maan kiihtyvyys x-akselin suunnassa"=="auringon maalle aiheuttama kiihtyvyys x-suunnassa"+"venuksen maalle aiheuttama kiihtyvyys x-suunnassa" (1. yhtälö NDSolvessa)
"maan kiihtyvyys y-akselin suunnassa"=="auringon maalle aiheuttama kiihtyvyys y-suunnassa"+"venuksen maalle aiheuttama kiihtyvyys y-suunnassa" (2. yhtälö NDSolvessa)
"venuksen kiihtyvyys x-akselin suunnassa"=="auringon venukselle aiheuttama kiihtyvyys x-suunnassa"+"maan venukselle aiheuttama kiihtyvyys x-suunnassa" (3. yhtälö NDSolvessa)
"venuksen kiihtyvyys y-akselin suunnassa"=="auringon venukselle aiheuttama kiihtyvyys y-suunnassa"+"maan venukselle aiheuttama kiihtyvyys y-suunnassa" (4. yhtälö NDSolvessa)
jne.
Huomaa, että satelliitin aiheuttama kiihtyvyys planeettoihin on niin häviävän pieni, että se voidaan jättää huomiotta. Lisäksi huomaa, että kustakin tiettyä planeettaa tai satelliittia esittävästä yhtälöistä on supistettu kyseisen planeetan/satelliitiin massa pois (sen vuoksi sitä ei sisällytetty funktioihinkaan).
![[Graphics:Images/9_ratkaisut_gr_3.gif]](Images/9_ratkaisut_gr_3.gif)
Flatten poistaa yhdet ylimääräiset aaltosulut yo. tuloksen ympäriltä.
![[Graphics:Images/9_ratkaisut_gr_5.gif]](Images/9_ratkaisut_gr_5.gif)
Seuraava rivi liittyy ohjelmointiin, jota käymme läpi seuraavaksi (ja joka selvinnee täysin vasta sitten). Kuvitellaan, että satelliitti on lähetetty maasta tutkimaan Venusta. Ohjelmanpätkä etsii ajanhetken, jolloin maata läheltä lähetetty satelliitti on lähimpänä Venusta jarrurakettien laukaisemista varten. Toinen tapa ratkaista hetki, jolloin jarruraketit voidaan ratkaista, on yksinkertaisesti kokeilla eri t:n arvoilla etäisyyksiä Venuksen ja satelliitin välillä.
![[Graphics:Images/9_ratkaisut_gr_7.gif]](Images/9_ratkaisut_gr_7.gif)
Radoista voidaan piirtää myös kuvia ParametricPlot-käskyllä:
![[Graphics:Images/9_ratkaisut_gr_9.gif]](Images/9_ratkaisut_gr_9.gif)
![[Graphics:Images/9_ratkaisut_gr_15.gif]](Images/9_ratkaisut_gr_15.gif)
Polttoainetta lisätty, raketti kipuaa ylemmäs.
![[Graphics:Images/9_ratkaisut_gr_20.gif]](Images/9_ratkaisut_gr_20.gif)
![[Graphics:Images/9_ratkaisut_gr_24.gif]](Images/9_ratkaisut_gr_24.gif)
Jotta funktiosta saataisiin jatkuva, voidaan esimerkiksi keskimmäisen palasen suora sovittaa siten, että pisteessä 3 se olisi sama kuin paraabeli samassa pisteessä ja pisteessä 7 se olisi 14:
![[Graphics:Images/9_ratkaisut_gr_27.gif]](Images/9_ratkaisut_gr_27.gif)
![[Graphics:Images/9_ratkaisut_gr_29.gif]](Images/9_ratkaisut_gr_29.gif)
For-silmukka:
![[Graphics:Images/9_ratkaisut_gr_37.gif]](Images/9_ratkaisut_gr_37.gif)
Do-silmukka:
![[Graphics:Images/9_ratkaisut_gr_48.gif]](Images/9_ratkaisut_gr_48.gif)
While-silmukka:
![[Graphics:Images/9_ratkaisut_gr_59.gif]](Images/9_ratkaisut_gr_59.gif)
![[Graphics:Images/9_ratkaisut_gr_71.gif]](Images/9_ratkaisut_gr_71.gif)
![[Graphics:Images/9_ratkaisut_gr_73.gif]](Images/9_ratkaisut_gr_73.gif)
![[Graphics:Images/9_ratkaisut_gr_75.gif]](Images/9_ratkaisut_gr_75.gif)
![[Graphics:Images/9_ratkaisut_gr_78.gif]](Images/9_ratkaisut_gr_78.gif)