...
hvor dt
er et tidsintervall på 0.1 sekunder.
Skriv Skriv funksjonen med signaturen function [x, y] = position(x, y, vx, vy, dt)
som kalkulerer x- og y-koordinatet i neste steg, ut ifra det nåværende stegets posisjon og fart.
Funksjonen kan testes med følgende skript: Funksjonen kan testes med følgende skript:
Code Block | ||
---|---|---|
| ||
[x, y] = position (10 , 10, 0, 1, 1) % skal returnere x = 10, y = 11 [x, y] = position (10 , 10, 1, 0, 1) % skal returnere x = 11, y = 10 [x, y] = position (10 , 10, 1, 1, 0.1) % skal returnere x = 10.1 , y = 10.1 |
c)
Akselerasjonen Akselerasjonen er i denne oppgaven gitt ved:
...
Skriv function [vx, vy] = velocity(ax, ay, vx, vy, dt)
. Denne beregner farten i det neste steget gitt nåværende fart og akselerasjon.
e)
Skriv function [xv, yv] = trajectory(initialSpeed, initialAngle,
height)
. Denne funksjonen benytter seg av initialSpeedav initialSpeed,
acceleration,
velocity
og position
. Den skal returnere to lister: en én for x og en én for y-koordinater.
Tiden kulen bruker på å treffe bakken er ukjent, en while løkke må derfor benyttes. Stopp denne når høyden (y) blir mindre enn 0.
...
Lag funksjonen plotTrajectory. Denne skal ha samme parameterene som trajectory
. Den skal benytte seg av plot
-funksjonen for å vise kulens bane.
g)
Lag funksjonen plotTrajectoryLength(initialSpeed, start, step, stop, height).
Den skal kalle trajectory med vinkler mellom 0 og pi/2 (0 og 90 grader). Deretter skal den plotte vinkel mot lengden av kulestøtet.
Velg pi/32 som steglengde for vinkelen.
Hvilken vinkel gir best resultat?
Hva skjer om man endrer på høyden?
Hva skjer om k og g endres?
Har farten noe å si for vinkelen?
...