Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Læringsmål:

  • For-Løkker
  • While-LøkkerPLACEHOLDER

Pensum:

  • 3.7 User-Defined Functions That Return a Single Value
  • 5.1 The for loop
  • 5.3 While loops
  • 5.4 Loops with Vectors and Matrices: VectorizingPLACEHOLDER


Tenk deg en lang stang hvor massen er ulikt fordelt. Den første meteren veier 3 kg, den neste meteren veier 5 kg, den neste 2 kg, osv. Vi kan representere dette som en vektor stang = [3, 5, 2, ...]. Stangens massemidtpunkt er det punktet hvor det er like mye vekt på hver side. Dette må ikke forveksles med den fysiske betegnelsen for massesenter.

Grafisk forklart blir stangen sende ut som på bildet under:

Image Added

a) 

Lag en funksjon som tar inn en tabellrepresentasjon av stangen og returnerer massemidtpunktet.
Test funksjonen med følgende verdier:

Code Block
languagenone
titleKodesnutt 1
massCenter massMidpoint([1]) 		% 0.5
massCenter massMidpoint([1 1]) 		% 1
massCenter massMidpoint([1 1 1]) 	% 1.5
massCenter massMidpoint([3 1 3]) 	% 1.5
massCenter massMidpoint([1 2 3 4]) 	% 2.6667

b)

Lag et skript som genererer en liste med tilfeldige tall og skriver ut massemidtpunktet.

c)

Lag en funksjon som tar inn en matrise og regner ut massemidtpunktet av denne. Dette kan gjøres ved å regne ut massemidtpunktet for radene, og deretter gjøre det samme for kolonner. På denne måten finner du massesenteret i x-retning og y-retning hver for seg. 

Code Block
languagenone
titleKodesnutt 1
[x,y] = massMidpoint2D([1,2;2,1])           % returnerer x = 1, y = 1
[x,y] = massMidpoint2D([3,2,1;1,1,1;1,2,3]) % returnerer x = 1.5000, y = 1.5000
[x,y] = massMidpoint2D([2, 4; 1, 2])        % returnerer x = 1.2500, y = 0.7500