...
For å beregne kulebanen, må man vi vite hvor kulen er, hva farten er og hvilken fart og akselerasjon den har. Dette er initialbetingelsene. Det velges så en liten tidsenhet, dt, feks 0.1 sekund. Ved å benytte initialbetingelsene kan man regne ut den nye posisjonen, farten og akselerasjonen, etter 0.1 sekund. Dette gjentas helt til kulen treffer bakken
Videre lar vi det gå en tidsenhet, f.eks 0.1 sekunder, slik at kulen flytter seg litt og deretter kalkulerer vi variablene på nytt.
Dette gjentar vi så lenge y-koordinatet er større enn 0. Da har kulen truffet bakken, og lengden av kastet vil være gitt av x-koordinatet.
a)
Fra vinkel og starthastighet kan farten dekomponeres i x og y-retning:
v_x = cos(angle)*speed
v_y = sin(angle)*speed
...
Tips: cos og sin i Matlab regner med radianer. Bruk derfor cosd
og sind
eller benytt følgende: grader = radianer*(180/pi)
Code Block | ||
---|---|---|
| ||
[ivxvx, ivyvy] = initVelocity (0, 100) % skal returnere xvx = 100 , yvy = 0 [ivxvx, ivyvy] = initVelocity (pi /2, 100) % skal returnere xvx = 6.1232e -15 , yvy = 100 [ivxvx, ivyvy] = initVelocity (pi /4, 100) % skal returnere xvx = 70.7107 , yvy = 70.7107 |
b)
Farten i x og y-retning (etter dt, 0.1 sekund) er retning er beregnet. Siden strekning = fart * tid vil den nye posisjonen være gitt ved:
...
hvor dt
er et tidsintervall på 0.1 sekunder.
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:
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 er i denne oppgaven gitt ved:
k = 0.01 og representerer luftmotstanden . og g = er gravitasjonskonstanten (9.81 , gravitasjonskonstantenpå jorden).
Skriv function [ax, ay] = acceleration(vx, vy).
...