You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Læringsmål:

  •  Kap løkker PLACEHOLDER

 

Når man støter kule er det ikke bare hastigheten på kulen som avgjør hvor langt man støter- vinkelen man støter med og høyden over bakken spiller også en rolle. I denne oppgaven skal
det lages en funksjon som modellerer dette problemet, og vi skal nne ut hvilken vinkel som er optimal for en gitt høyde.

Det skal regnes på bevegelse i to dimensjoner, x og y. Det er ikke nødvendig å forstå fysikken bak bevegelsene, siden det blir oppgitt riktige formler og hvor de skal brukes. Men det kreves en liten intuisjon for hva som foregår. Hvis høyden er lik 4 så er startposisjonen x = 0 og y = 4.
FIGURE

For å bergene kulebanen, må man vite hvor kulen er, 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 i helt til høyden, y-koordinatet er 0. Da har kulen landet. x-verdien er da lengden på kastet. 

a)

Fra posisjon, vinkel og initial-fart kan farten dekomponeres i x og y-retning:
v_x = cos(angle)*speed
v_y = cos(angle)*speed

Skriv funksjonen initVelocity( initAngle, speed). Denne skal returnere initialhastighet i x og y-retning som en liste. 

Tips: cos og sin i Matlab renger med radianer. Bruk derfor cosd og sind eller benytt følgende: grader = radianer*(180/pi)

[ivx, ivy] = initialVelocity (0, 100) % skal returnere x = 100 , y = 0
 
[ivx, ivy] = initialVelocity (pi /2, 100) % skal returnere x = 6.1232e -15 , y = 100
 
[ivx, ivy] = initialVelocity (pi /4, 100) % skal returnere x = 70.7107 , y = 70.7107

 

b)

Farten i x og y-retning (etter dt, 0.1 sekund) er beregnet. Av fart*tid = strekning blir den nye posisjonen blir gitt ved: x_{n+1} = x_n + v_{xn}*dt og y_{n+1} = y_n + v_{yn}*dt .

Lag funksjonen position(x,y,  vx, vy,  dt) som returnerer [x,y] (koordinatene). 

[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)

a_x_{n+1} = -k*v_{x_n}*abs(v_x_n)

a_y_{n+1} = -k*v_{y_n}*abs(v_y_n)-g

k = 0.01 og representerer luftmotstanden. g = 9.81 , gravitasjonskonstanten. 

Skriv function [ax, ay] = acceleration(vx, vy). 

 

[ax, ay] = acceleration (0, 0) % skal returnere x = 0, y = -9.81
 
[ax, ay] = acceleration (10 , 10) % skal returnere x = -1, y = -10.81

 

d) 

 

 

 

  • No labels