OBLIGATORISK INNLEVERINGSOPPGAVE i ING1x0 Ingeniørfaglig innføringsemne MATLAB Denne oppgaven er obligatorisk og skal leveres inn via ItsLearning innen 30. september 2016. Oppgaven vurderes som godkjent eller ikke godkjent. Man kan få innleveringen godkjent selv om ikke alle deloppgaver er korrekt utført, men da må man ha vist at man har forsøkt å løse hver deloppgave. Det oppfordres til å samarbeide med andre om å løse oppgaven, men den skal leveres inn individuelt. Kopiering av andre aksepteres ikke. Kopier vil bli avslørt av plagieringskontrollen som ligger i ItsLearning. Innleveringene vil godkjennes fortløpende i løpet av de første ukene i oktober. Man vil se på ItsLearning om oppgaven blir godkjent eller ikke. Alle som har fått godkjent innleveringen har adgang til skriftlig eksamen i november. Dette skal leveres inn på ItsLearning innen 30. september 2016: stud123456a.m der 123456 erstattes med ditt eget studentnummer. Svar på oppgave a) stud123456b.m der 123456 erstattes med ditt eget studentnummer. Svar på oppgave b) stud123456c.m der 123456 erstattes med ditt eget studentnummer. Svar på oppgave c) stud123456d.m der 123456 erstattes med ditt eget studentnummer. Svar på oppgave d) annuitet.m En MATLAB-funksjon du skal lage som en del av oppgave b) og c). Det beste er om dette pakkes i en zip-fil med navn stud123456.zip (der 123456 erstattes med ditt eget studentnummer.) Det gjør det enklere både for deg og for den som skal gå gjennom innleveringen. Det er viktig at all MATLAB-kode er godt kommentert. 1
Oppgave a) I denne oppgaven skal du hente inn værdata, lage meny, analysere værdata, lage plott og gi mulighet til å lagre plott i figurfil. Nedbørsdataene er lastet ned fra eklima.met.no. og lagret i en.mat-fil. Det er to værstasjoner involvert: Sola og Søyland 1. Hent inn værdata fra filen nedbor.mat. Denne filen inneholder to matriser med 13 kolonner, der første kolonne inneholder årstall, og de neste inneholder nedbørs Lag en meny som ser slik ut: Ved trykk på den første knappen, skal figuren under plottes. Vær bevisst på aksene. 1 Søyland ligger i Gjesdal kommune. Nedbørsdata fra Søyland for juli 2005 og april 2015 mangler, derfor er akkurat disse to månedene i.mat-filen erstattet med nedbør på Helland værstasjon, som også ligger i Gjesdal. 2
I tillegg til figur skal det i kommandovinduet skrives ut gjennomsnittlig årlig nedbør for henholdsvis Sola og Søyland. Skriv ut på følgende form: Gjennomsnittlig årsnedbør de siste 80 år: ***************************************** Sola: xx mm Søyland: xx mm La svarene komme i hele antall millimeter. Sjekk at svarene du får er i rett størrelsesorden. Sammenligne tallene. Ved trykk på den andre menyknappen, skal det plottes en figur som viser gjennomsnittlig månedlig nedbør fra 1936 til 2015 for begge værstasjoner. Måned nr langs x-aksen og gjennomsnittlig nedbør i mm langs y-aksen. Hvilken måned er tørrest og hvilken er våtest? Hvor stor er forskjellen? Ved trykk på tredje knapp, skal vi sammenligne vinter mot sommer på Søyland. Lag et plott som viser jan+febr nedbør som en kurve, og juli+aug nedbør som en annen kurve, år for år fra 1936 til 2015. Ved trykk på den fjerde menyknappen, skal figuren lagres i en JPEG-fil (.jpg) med navnet stud123456.jpg, der 123456 erstattes med ditt eget studentnummer. Ved trykk på den femte knappen skal programmet avsluttes. Ved trykk på hvilken som helst av de andre knappene, skal menyen komme fram igjen. Oppgave b) Et annuitetslån på kr T skal betales tilbake i månedlige terminer til en årlig rente på r %. Banken tar et etableringsgebyr på kr G som trekkes fra før utbetaling, og et termingebyr på kr g for hvert terminforfall. n er antall terminer (= Antall år multiplisert med 12). Terminbeløpet t kan uttrykkes ved formelen tt = gg + (TT + GG) rr/12 100 1 1 + rr/12 100 nn Lag MATLAB-funksjonen annuitet som tar inn verdiene til høyre i likningen over og som returnerer terminbeløpet t. I tillegg, lag et MATLAB-skript som bruker denne funksjonen. MATLAB-skriptet skal la en bruker legge inn data i kommandovindu. Se eksempelet under. Test gjerne at du får rett svar ved å legge inn dette eksempelet. (Fet skrift er hva brukeren i dette eksempelet tastet inn.) 3
Kalkulator for annuitetslån (12 terminer pr. år) ************************************************ Tast inn lånebeløp (kr): 2000000 Tast inn årlig rente (%): 3 Løpetid (år): 20 Etableringsgebyr (kr): 3000 Termingebyr (kr): 50 Hvert terminbeløp vil bli på 11159 kr. Oppgave c) Bruk funksjonen annuitet, som du lagde i oppgave b). Du skal i denne oppgaven la brukeren få taste inn samme data som sist, men i stedet for årlig rente, skal brukeren taste inn hvilket månedlig terminbeløp han/hun kan klare å betale inn. MATLAB-programmet i denne oppgaven skal finne ut hvilken årlig rente han/hun kan tåle. Se eksempelet under, der fet skrift indikerer hva brukeren la inn i dette konkrete eksempelet. Annuitetslån (12 terminer pr. år) Finn høyeste årlige rente du kan ha. ************************************ Tast inn lånebeløp (kr): 2000000 Løpetid (år): 20 Bankens etableringsgebyr (kr): 3000 Bankens termingebyr (kr): 50 Absolutt minste terminbeløp (Rente = 0 %): 8396 kr. Tast inn terminbeløpet du kan klare (kr): 9500 Du kan tåle en rente på 1.26 %. PS: Du skal altså bruke samme formel som sist, og iterere deg fram til en årlig rente som har en nøyaktighet med to siffer bak komma. Oppgave d) I denne oppgaven skal du lage et MATLAB-skript som tegner det japanske flagget. La bildet av flagget bestå av 200 x 300 piksler. Dette gjøres ved å opprette en tredimensjonal matrise flagg med dimensjon 200 x 300 x 3. Denne tredimensjonale matrise som inneholder rød (R), grønn (G) og blå (B) fargekomponent. R, G og B er alle 200 x 300 matriser: flagg(:,:,3) = B flagg(:,:,2) = G flagg(:,:,1) = R h b flagg (h x b x 3) 4
Når man i MATLAB-skriptet skriver image(flagg) blir de tre fargekomponentene blandet sammen, element for element, og flagg blir tegnet i et figurvindu. Hvert element i R, G og B har tallverdier mellom 0.0 og 1.0. 0.0 betyr «null intensitet», 1.0 betyr «full intensitet. Ved å justere verdiene til hver enkelt R, G og B, kan vi få alle mulige farger når disse tre komponentene blandes sammen. Eksempler: Farge R-verdi G-verdi B-verdi Rød 1.0 0.0 0.0 Grønn 0.0 1.0 0.0 Blå 0.0 0.0 1.0 Hvit 1.0 1.0 1.0 Svart 0.0 0.0 0.0 Gul 1.0 1.0 0.0 Grå 0.5 0.5 0.5 Det japanske flagget har følgende proporsjoner, i følge https://en.wikipedia.org/wiki/flag_of_japan Lag flagget som et bilde. Pass på å ha de rette proporsjoner. Bruk MATLAB til å finne ut hvor stor del av det japanske flagget som er rødt o Analytisk: Lag formel som finner andel rødt, ut fra proporsjonene gitt over. o Numerisk: Tell antall røde piksler i forhold til totalt antall piksler. Begge svar skal oppgis i prosent. Test 1: Ga analytisk og numerisk løsning samme svar? Test 2: Ta tiden på utregningene. Hva tok lengst tid? --- slutt --- 5