Matematikk 1000. Øvingsoppgaver i numerikk leksjon 3. Løsningsforslag



Like dokumenter
Matematikk Øvingsoppgaver i numerikk leksjon 3 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 3 Skript

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

Matematikk Øvingsoppgaver i numerikk leksjon 5 Litt oppsummering undervegs Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Matematikk Øvingsoppgaver i numerikk leksjon 11 Eulers metode. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 for-løkker

Matematikk Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 34

Matematikk Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 9. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5. Løsningsforslag

Høgskolen i Oslo og Akershus. sin 2 x cos 2 x = 0, x [0, 2π) 1 cos 2 x cos 2 x = 0 2 cos 2 x = 1 cos 2 x =

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Matematikk Eksamensaktuelle numerikk-oppgåver

Matematikk Øvingsoppgaver i numerikk leksjon 7 Numerisk derivasjon

Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 40

Matematikk Øvingsoppgaver i numerikk leksjon 8 Matriser. Løsningsforslag

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 1 Innleveringsfrist: 14. september klokka 14:00 Antall oppgaver: 3.

Løsningsforslag. Innlevering i BYFE 1000 Oppgavesett 1 Innleveringsfrist: 10. oktober klokka 14:00 Antall oppgaver: 6. Oppgave 1

Høgskolen i Oslo og Akershus. i=1

Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Kapittel og 5. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 4.

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 35

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 7. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 4 Løsningsforslag

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Plotting av data. Kapittel Plott med plot-funksjonen

Matematikk Øvingsoppgaver i numerikk leksjon 8. Løsningsforslag

: subs x = 2, f n x end do

Skilpaddefraktaler Erfaren Python PDF

Enarmet banditt Nybegynner Scratch Lærerveiledning

Matematikk Øvingsoppgaver i numerikk leksjon 8 Numerisk integrasjon

Høst Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver uke 37 og 38

Prosjektoppgave, FYS-MEK1110 V06 ROBERT JACOBSEN

Tallinjen FRA A TIL Å

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 8. Løsningsforslag

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Utførelse av programmer, metoder og synlighet av variabler i JSP

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Redd verden. Steg 1: Legg til Ronny og søppelet. Sjekkliste. Introduksjon

Løsningsforslag AA6526 Matematikk 3MX Privatister 3. mai eksamensoppgaver.org

Spøkelsesjakten. Introduksjon

BYFE/EMFE 1000, 2012/2013. Numerikkoppgaver veke 14

Lage en ny spillverden

Enkel plotting i LibreOffice/OpenOffice og Excel

Skilpadder hele veien ned

Den krever at vi henter ned Maples plottekommandoer fra arkivet. Det gjør vi ved kommandoen

Bruk av oppgaver og grupper i

Gangemesteren Nybegynner Scratch PDF

Straffespark Introduksjon Scratch Lærerveiledning

Øvingsforelesning i Matlab TDT4105

Bursdag i Antarktis Nybegynner Scratch PDF

Vann i rør Ford Fulkerson method

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

12 Vekst. Areal under grafer

MAT Grublegruppen Uke 36

Del 1. Generelle tips

Telle i kor steg på 120 frå 120

Løsningsforslag AA6516 Matematikk 2MX Privatister 10. desember eksamensoppgaver.org

Kanter, kanter, mange mangekanter

Høgskolen i Oslo og Akershus. c) Et annet likningssystem er gitt som. t Bestem parametrene s og t slik at likningssystemet blir inkonsistent.

Posisjonsystemet FRA A TIL Å

Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P TI-84

Hvordan du kommer i gang med LOGO.

Bygge et hus. Steg 1: Vegger. Sjekkliste. Introduksjon

Lineære funksjoner. Skjermbildet

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

Løsningsforslag B = 1 3 A + B, AB, BA, AB BA, B 2, B 3 C + D, CD, DC, AC, CB. det(a), det(b)

Løsningsforslag AA6524/AA6526 Matematikk 3MX Elever/Privatister 6. desember eksamensoppgaver.org

Løsningsforslag. Innlevering i BYFE/EMFE 1000 Oppgavesett 5 Innleveringsfrist: 15. april klokka 14:00 Antall oppgaver: 3.

OBLIGATORISK INNLEVERINGSOPPGAVE

Løsningsforslag. og B =

Korteste vei i en vektet graf uten negative kanter

Tegneprogram Journeyman Scratch PDF

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Spørsmål og svar om GeoGebra, versjon 2.7 bokmål

Spørreundersøkelse om informasjon fra Arkitektbedriftene

3. Introduksjon til prosjektet Hringr. Scratch fra scratch Enkel programmering for nybegynnere

GeoGebra-opplæring i Matematikk 2P

Oppgaver om fart, strekning og akselerasjon. Løsningsforslag. Oppgave 1

Lær å bruke GeoGebra 4.0

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

TMA Kræsjkurs i Matlab. Oppgavesett 1/3

Løsningsforslag. 3 x e. g(x) = 1 + x4 x 2

Matematikk Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag

Steg 1: Bli kjent med spillet

Transkript:

Matematikk 1000 Øvingsoppgaver i numerikk leksjon 3 Løsningsforslag Oppgave 1 Flo og fjære a) >> x=0:.1:24; >> y=3.2*sin(pi/6*(x-3)); Disse linjene burde vel være forståelige nå. >> plot(x,y,'linewidth',3) Grafen får tykkelsen 3 (default 1 er 1). >> set(gca,'fontsize',20) Justerer opp skriftsstørrelsen. >> xlabel('t [timar]'); ylabel('t [meter]') Setter tekst på aksene (både x- og y-aksen). >> hold on Setter at plottene skal bli stående når vi lager ere plott. >> plot([0 24],[-1-1],'k-') Plotter linja y = 1 for x fra og med 0 til og med 24. Linja skal være en svart strek. >> plot([6 18],[3.2 3.2],'ro','linewidth',2) >> plot([2.39 9.61 14.39 21.61],-ones(1,4),'gd') 1 Med default menes den verdien som blir satt dersom det ikke er spesisert. 1

Her plotter vi inn diverse punkt - de første to blir markert med en (tykk) rød (r) sirkel (o), og de re neste blir markert med grønne (g) diamanter (d). For å nne ut mer om hvilke muligheter man har (farger, typer punkt etc.), kan man skrive ` help plot'. >> legend('t(t)','y=-1','flo','t(t)=-1') legend-kommandoen gjør oss i stand til å forklare hva de ulike grafene og punktene representerer. Input-variablene til legend-, xlabel og ylabel-funksjonene er små tekst-snutter inni apostroer 2. Slike små tekstvariabler kalles strenger. >> axis([0 27-4 4]) Her justerer vi x-aksen litt ut slik at grafen ikke kolliderer med teksten i hjørnet øverst til høgre. b) Om vi tar med kommentarer, kan skriptet se slik ut: % Skript som plotter en modell for tidevann x=0:.1:24; % Vektor med argument-verdier y=3.2*sin(pi/6*(x-3)); % Vektor med fusjonsverdier plot(x,y,'k','linewidth',3) % Plotter fuksjonen set(gca,'fontsize',20) % Fikserer skriftsstørrelsen på aksene xlabel('t [timer]'); ylabel('t [meter]') % Setter tekst på aksene hold on plot([0 24],[-1-1],'k-') % Markerer linja y=-1 plot([6 18],[3.2 3.2],'ro','linewidth',2) % Markerer punktene for flo plot([2.39 9.61 14.39 21.61],-ones(1,4),'gd') % Markerer når vannstanden var -1 m legend('t(t)','y=-1','flo','t(t)=-1') % Forklarende tekst til grafene axis([0 27-4 4]) % Justerer intervallene aksene går over hold off Som sagt, er det en god vane å kommentere skript, selv om det kanskje er gjort litt vel omstendelig her. Oppgave 2 Summer og for-løkker a) 10 i=1 i 2 = 1 2 + 2 2 + 3 2 + 4 2 + 5 2 + 6 2 + 7 2 + 8 2 + 9 2 + 10 2 = 1 + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 + 100 = 385. c) I kommandovinduet får vi opp følgende: 2 Hermetegn kan også brukes 2

>> FinnSum sum = 385 Dette stemte jo bra. Om vi dropper semikolonet i linje 3, får vi >FinnSum sum = 1 sum = 5 sum = 14 sum = 30 sum = 55 sum = 91 sum = 140 sum = 204 sum = 285 sum = 385 sum = 385 d) Skriptet kan lett tilpasses ved å endre 10 til 100 i linje 2: sum=0; for i=1:100 sum=sum+i^2; end sum Det er lurt allerede nå å venne seg til å lagre la med hurtigtast, typisk Ctrl+S, i stedet for å klikke i menyen; ellers kan det kan fort bli i overkant mye klikking. Om vi nå kjører skriptet, får vi svaret 338350. e) Nedre grense skal nå være 5, og øvre grense skal være 20. Hvor hver gang legger vi til i, som vi skriver som `sqrt(i)' i MATLAB: sum=0; for i=5:20 sum=sum+sqrt(i); end sum 3

Vi kjører skriptet og får (det tilnærma) svaret 55.5197. f) I linje 2 ser vi at i går, i steg på 1, fra og med 0 til og med 12. Dette er altså summasjonsgrensene. I linje 3 ser vi at for hver omgang, hver iterasjon, blir det lagt til 1/i. Summen er altså 12 i=0 1 i. Vi kommer tilbake til summer av denne typen når vi senere i kurset skal beregne integraler. Oppgave 3 Lys til bløtkaka a) Vi kan tenke som så: Etter ett år feirer de bursdag med ett lys. Etter ett år til er barnet to år, så de bruker to lys til, altså har de brukt 1+2=3 lys. Etter enda ett til bruker de 3 lys og har brukt 1+2+3=6 lys til sammen. På reårsdagen bruker de de re siste lysene; 1+2+3+4=10. b) Tankegangen over er rett, men det blir litt tungvindt å gjøre med papir og blyant for 100 lys. Men siden det er snakk om ei enkel aritmetisk rekke, kan vi nne en formel for summen; etter n år vil vi ha brukt n i = n(n + 1)/2 i=1 lys, så vi nner svaret ved å løse ulikheten n(n + 1)/2 100. Men i denne sammenhengen er det kanskje mer naturlig å gjøre det ved å skrive et lite MATLAB-skript som regner ut hvor mange lys vi bruker år for år. Det kan vi gjøre slik 3 : 1 % Skript som regner ut forbruk av kakelys 2 3 % Setter antall lys til null 4 Lys=0; 5 6 % Bestemmer hvor mange aar framover vi skal regne 7 N=20; 8 9 for aar=1:n 10 Lys=Lys+aar % Lar Lys oeke med antall aar (skrives til skjerm) 11 end 3 Linjenumrene er ikke med i selve skriptet. Vi har tatt dem med for å lettere kunne referere til bestemte steder i skriptet. Når ting blir litt mer, ikke mye mer, komplisert etterhvert, kan dette vere ganske praktisk. 4

Her har vi laga ei for-løkke som går fra det første året til og med det 20. året. For hvert år blir antall år lagt til variabelen Lys, som gir totalt lysforbruk etter hvert av årene. Dette blir skrevet til skjerm. Vi har kalt skriptet BursdagsLys.m. Om vi kjører det i MATLAB, får vi dette ut: >> BursdagsLys 1 3 6 10 15 21 28 36 45 55 5

66 78 91 105 120 136 153 171 190 210 Vi kjenner igjen svaret fra a) i den fjerde utskriften. Men det blir ganske oversiktlig å lese dette; vi ser at vi et sted går fra 91 til 105 brukte lys, men det blir litt krøkkete å telle seg fram til hvilke år det er snakk om. Derfor er det mer praktisk å skrive ut både antall år og antall lys helst på ei linje. Dette oppnår vi om vi endrer for-løkka til for aar=1:n Lys=Lys+aar; % Lar Lys oeke med antall aar 6

disp([aar Lys]) end % Skriver til skjerm disp-funksjonen skriver det som står inni parantesen til skjerm uten å gi den noe variabelnavn. I dette tilfellet skriver den ut vektoren [aar Lys]. Når vi nå kjører skriptet, får vi nå en litt mer oversiktilg utskrift: >> BursdagsLys 1 1 2 3 3 6 4 10 5 15 6 21 7 28 8 36 9 45 10 55 11 66 12 78 13 91 14 105 15 120 16 136 17 153 18 171 19 190 20 210 7

Vi ser at familien må ut og handle lys før den 14. bursdagen. c) Nå må vi ta hensyn til at alderen ikke starter på null og at der er to barn. Vi kan implementere det ved å justere noe på for-løkka fra b): 1 % Skript som regner ut forbruk av kakelys 2 3 % Setter antall lys til null 4 Lys=0; 5 6 % Bestemmer hvor mange aar framover vi skal regne 7 N=15; 8 9 for aar=1:n 10 AarKari=7+aar; % Bursdags-alder inneværende år for Kari 11 AarOla=5+aar; % Samme for Ola 12 Lys=Lys+AarKari+AarOla; % Lar Lys oeke med alderen til Kari + Ola 13 disp([aar Lys]) % Skriver til skjerm 14 end Der er ofte mange ulike måter å implementere ting på. Skriptet nedenfor gjør akkurat det samme som skriptet over: 1 % Skript som regner ut forbruk av kakelys 2 3 % Setter lys-forbruk til null 4 Lys=0; 5 6 % Bestemmer hvor mange aar framover vi skal regne 7 N=15; 8 9 % Gir alder til Kari og Ola 10 AarKari=7; 11 AarOla=5; 12 13 for aar=1:n 14 AarKari=AarKari+1; % Oppdaterer Karis alder 15 AarOla=AarOla+1; % Samme for Ola 16 Lys=Lys+AarKari+AarOla; % Totalt lysforbruk 17 disp([aar Lys]) % Skriver til skjerm 18 end Begge skriptene gir følgende utskrift til skjerm: 1 14 2 30 3 48 8

4 68 5 90 6 114 7 140 8 168 9 198 10 230 11 264 12 300 13 338 14 378 15 420 Lys-beholdninga rekker akkurat i 12 år. Ekstra: Oppgave 4 Maksimering Siden det skal være ei funksjonsl med vektoren x som argument, må første linje være slik: function M=MaksFunk(x) Selvsagt kunne funksjonen hatt et annet navn enn `MaksFunk', og ut-variabelen må ikke nødvendigvis hete `M'. Vi skal nne det største elementet i x-vektoren. Det kan vi gjere ved å gå gjennom vektoren element for element. For hvert nytt element sjekker vi om det er større enn det som har vist seg å vere størst så langt. Vi kan starte med å si at det foreløpig største elementet, er det første elementet i x, M=x(1). Dette er ei funksjonl som implementerar nettopp dette: 1 function M=MaksFunk(x) 2 9

3 % Funksjon som finner det største elementet i vektoren x 4 5 M=x(1); % tilordner M - foreløpig største element 6 7 for xelement=x % for-løkke som løper gjennom x 8 if xelement>m 9 M=xElement; % om elementet er større enn M, oppdaterer vi M 10 end 11 end Vi tester funksjonsla, som vi har kalt MaksFunk.m, på litt ulike vektorer. I kommandovinduet kan det se slik ut: >> x = -2-1 0 1 2 3 >> MaksFunk(x) ans = 3 >> y=3-(x-sqrt(2)).^2; >> MaksFunk(y) ans = 2.8284 >> x=-2:.5:3; >> y=3-(x-sqrt(2)).^2; >> MaksFunk(y) ans = 2.9926 >> x=-2:0.1:3; >> y=3-(x-sqrt(2)).^2; >> MaksFunk(y) ans = 2.9998 10

Vi ser at når vi bruker nere og nere oppdeling i x-vektoren, ser maksimalverdien til y ut til å nærme seg 3, som er maksimalverdien til funksjonen f(x) = 3 (x 2) 2. 11