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

Compare with Current View Page History

« Previous Version 9 Current »

Læringsmål:

  • Tilfeldige tall
  • FOR-løkker
  • Struct
  • Simulering

I denne oppgaven ønsker vi å finne den optimale fiskeplassen ved hjelp av simulering i MATLAB. 

For å spe på stipendet har du kjøpt deg en fiskestang og ønsker å tjene penger på fiske. Du er ikke sikker på hvor det er best å fiske, så du prøver ut to steder: Nidelva og Haukvatnet (på Byåsen). Under er en liste over den respektive fangsten hver time for de to fiskeplassene.  

Eksempel på kjøring:
nidelva = 
  struct with fields:
    salmon: [0 1 1 1 0 0 0 0]
     trout: [0 3 0 1 1 3 2 2]
 
haukvatnet = 
  struct with fields:
    salmon: [2 3 1 1 0 0 1 3]
     trout: [0 1 1 0 0 0 0 1]
 

Her er nidelva og haukvatnet structer med felter 'salmon' og 'trout', som betegner hvor mange fisk av den sorten som ble fanget i hver time. 

a)

Lag en funksjon, plotFish(fishingSpot, name), som plotter den kumulative mengden laks og ørret du har fått på ett sted. fishingSpot er på samme format som vist over.

For dataene over vil plotFish(nidelva, 'Nidelva') og plotFish(haukvatnet, 'Haukvatnet') gi følgende grafer:

 

b)

Etter å ha analysert dataen, kommer du frem til følgende regel for hvor mange av hver fisk du kan forvente å få på hvert sted, per time:

 NidelvaHaukvatnet
Laks0-10-3
Ørret0-40-1

Du er ganske sikker på at antallet du får av én type fisk per time er uniformt fordelt, dvs. alle utfall (fra 0 til og med maks antall fisk) har like stor sannsynlighet. Det er altså like stor sannsynlighet  (25 % i hvert mulig utfall) å få ingen, én, to eller tre laks på én time ved Haukvatnet ut i fra tabellen over.

Lag en funksjon, fish = simulateFishing(salmonMax, troutMax), som simulerer en 8-timers fisketur. Returvariabelen fish er en struct med felter salmon og trout.

Eksempel på kjøring:
>> simulateFishing(4, 2)
ans = 
  struct with fields:
    salmon: [1 4 0 3 3 2 3 3]
     trout: [1 0 0 2 1 0 0 0]

Du oppretter en struct slik:

Tips
nidelva.salmon = [1 4 0 3 3 2 3 3]
nidelva.trout = [1 0 0 2 1 0 0 0]
>> disp(nidelva)
    salmon: [1 4 0 3 3 2 3 3]
    trout: [1 0 0 2 1 0 0 0]

c)

Prisen på både laks og ørret varierer fra dag til dag. Siden du ønsker å tjene mest mulig penger, vil du hver dag velge det fiskestedet (Nidelva eller Haukvatnet) som gir best forventet avkastning. Skriv en funksjon, recommendFishingSpot(salmonPrice, troutPrice), som simulerer 1000 fisketurer på hver av fiskeplassene og kommer med en anbefaling om hvor det i dag er mest lønnsomt å fiske.  

 

Eksempel på kjøring:
>> recommendFishingSpot(65, 40)
Forventet gevinst for Nidelva: 896 kr
Forventet gevinst for Haukvatnet: 937 kr
Fisk i Haukvatnet!

>> recommendFishingSpot(65, 50)
Forventet gevinst for Nidelva: 1061 kr
Forventet gevinst for Haukvatnet: 987 kr
Fisk i Nidelva!
  • No labels