Matematikk Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting

Like dokumenter
Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Matematikk Øvingsoppgaver i numerikk leksjon 3 Funksjoner og plotting

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

Matematikk Øvingsoppgaver i numerikk leksjon 5 Skript

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

Matematikk Øvingsoppgaver i numerikk leksjon 4 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 3 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 3. Løsningsforslag

Matematikk Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingeoppgaver i numerikk leksjon 1 Å komme i gang

Matematikk Øvingsoppgaver i numerikk leksjon 1 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 3 Skript

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

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

Matematikk Øvingsoppgaver i numerikk leksjon 7 Løsningsforslag

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

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 9. Løsningsforslag

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

Matematikk Øvingsoppgaver i numerikk leksjon 6 Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 5. Løsningsforslag

Matlab-tips til Oppgave 2

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

TMA Kræsjkurs i Matlab. Oppgavesett 1/3

MAT1120 Plenumsregningen torsdag 26/8

Matematikk Øvingsoppgaver i numerikk leksjon 2 Løsningsforslag

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

Øvingsforelesning i Matlab TDT4105

Matematikk Øvingsoppgaver i numerikk leksjon 7. Løsningsforslag

Matematikk Øvingsoppgaver i numerikk leksjon 1. Løsningsforslag

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Matematikk Øvingsoppgaver i numerikk leksjon 6. Løsningsforslag

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

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

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

Høgskolen i Oslo og Akershus. i=1

Kapittel august Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 2.

Matematikk 1 (TMA4100)

MAT 1110: Obligatorisk oppgave 1, V-07: Løsningsforslag

wxmaxima Brukermanual for Matematikk 1T Bjørn Ove Thue

Løsningsforslag. Innlevering i BYFE 1000 Oppgavesett 4 Innleveringsfrist:??? klokka 14:00 Antall oppgaver: 5, 20 deloppgaver.

Hydrostatikk/Stabilitet enkle fall

Øvingsforelesning i Matlab TDT4105

Matematikk Øvingsoppgaver i numerikk leksjon 8. Løsningsforslag

Plotting av data. Kapittel Plott med plot-funksjonen

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

En innføring i MATLAB for STK1100

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

LØSNINGSFORSLAG. Skriv følgende komplekse tall både på kartesisk form som a + bi og på polar form som re iθ (r 0 og 0 θ < 2π). a) 2 + 3i.

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Innhold. Bruker manual BlueprintEasy PDF tagger. versjon: P a g e

Matematikk 1 Første deleksamen. Løsningsforslag

Noen MATLAB-koder. 1 Plotte en vanlig funksjon. Fredrik Meyer. 23. april 2013

Innhold. Bruker manual BlueprintEasy PDF tagger. versjon: P a g e

Matematikk Øvingsoppgaver i numerikk leksjon 7 Numerisk derivasjon

TMA4100 Matematikk 1, høst 2013

Innhold. Bruker manual BlueprintEasy PDF tagger. versjon: P a g e

Løsningsforslag AA6524 Matematikk 3MX 3. juni eksamensoppgaver.org

Løsningsforslag for eksamen i AA6516 Matematikk 2MX - 4. desember eksamensoppgaver.org

Kapittel Oktober Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 14.

Løsningsforslag AA6524 Matematikk 3MX Elever 7. juni eksamensoppgaver.org

TMA4100 Matematikk 1, høst 2013

Øvingsforelesning i Matlab (TDT4105)

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

R2 - Løsningsskisser til noen oppgaver i kapittel 4.1 og 4.2

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

MATLABs brukergrensesnitt

Fasit MAT102 juni 2016

Løsningsforslag Eksamen 3MX - AA eksamensoppgaver.org

Løsningsforslag AA6516 Matematikk 2MX desember eksamensoppgaver.org

Kapittel 1. Funksjoner. 1.1 Definisjoner

Løsningsforslag. og B =

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

GeoGebra i 1T. Grafer. Å tegne grafen til en funksjon. GeoGebra tegner grafen til f(x) = 0,5x 2 for 0 x 10.

Øvingsforelesning i Matlab (TDT4105)

Øving 13. Et diffraksjonsgitter med N meget smale spalter og spalteavstand d resulterer i en intensitetsfordeling. I = I 0, φ = πdsin(θ)/λ

Control Engineering. MathScript. Hans-Petter Halvorsen

a) f(x) = 3 cos(2x 1) + 12 LF: Vi benytter (lineær) kjerneregel og får f (x) = (sin(7x + 1)) (sin( x) + x) sin(7x + 1)(sin( x) + x) ( sin(x) + x) 2 =

Matematikk Øvingsoppgaver i numerikk leksjon 8. Løsningsforslag

Shellscripting I. Innhold

Introduksjon til Matlab. Håvard Berland

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

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

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1T. Maple

Steg 1: Vår første datamaskin

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14

Kom i gang med Stata for Windows på UiO - hurtigstart for begynnere

Fasit til eksamen i emnet MAT102 - Brukerkurs i matematikk II Mandag 21.september 2015

UNIVERSITETET I OSLO

Transkript:

Matematikk 1000 Øvingsoppgaver i numerikk leksjon 2 Funksjoner og plotting I denne øvinga skal vi først og fremst lære oss å lage plott i MATLAB. I tillegg skal vi lære oss hvordan vi manøvrerer oss omkring i ulike mapper. Ellers minner vi om at der er mange MATLAB-ressurser tilgjengelig. Vi har heftet MATLAB Primer. Man kan søke etter dokumentasjon i MATLAB selv, eller man kan google etter hjelp. Sist, men ikke minst, man kan spørre lærerne om hjelp. Det forutsettes at man har gjort det forrige oppgavesettet. I en del av disse oppgavene er det mye tekst. Det betyr ikke nødvigvis at det krever mye arbeid å gjøre dem. Om det oppleves som mye arbeid: Spør om hjelp! Vi har sett at en hel del funksjoner allerede er lagt inn i MATLAB. Dette gjelder for eksempel de trigonometriske funksjonene med inversfunksjoner. De heter sin, cos, tan, asin, acos og atan. Eksponentialfunksjonen, e x, og den naturlige logaritme-funksjonen, ln x, nnes også; de heter exp og log. I tillegg kan vi lage våre egne funksjoner, som vi skal se mot slutten i dette oppgavesettet. Oppgave 1 Å lage et plott a) La vektoren x starte med 0 og så gå i steg på 0.1 opp til 7π. (Med fare for å være over-tydelig: Denne tilordninga skal utføres i MATLAB.) b) La vektoren y bestå, elementvis, av sinusverdiene av vektoren x. Det gjør du slik i MATLAB: ` y=sin(x);'. Denne funksjonen kan ta både skalare (tall-) argumenter og vektorer, slik som her. c) Plott sinusfunksjonen: ` plot(x,y)'. d) Undersøk hva som skjer når du skriver `plot(x,y,'r')' og `plot(x,y,'linewidth',3)'. Gå gjerne inn på dokumentasjonen for plotkommandoen for å se hvilke andre muligheter du har. Ser du hvordan man kan få grafen stipla i stedet for heltrukket? 1

e) Bruk MATLAB til å plotte følge funksjoner: a) f(x) = x + ln x, D f = [1/4, 5]. b) g(x) = arctan x, D g = [ 10, 10]. (arctan x er det samme som tan 1 x.) c) h(x) = cos(2x) e x2 /10. Velg selv et passe intervall for x her. Oppgave 2 Å lagre et plott Når vi skal lagre noe, er det selvsagt viktig at vi har kontroll på hvor det blir lagra. Det er nok en god idé å opprette ei mappe for de MATLAB-relaterte lene som etterhvert blir oppretta i dette kurset. Det vil nok bli nødvig å dele denne inn i ere under-mapper også. Det aller meste av det som har med lagring å gjøre, kan gjøres ved hjelp av klikkbare menyer. Men det kan også gjøres med kommandoer i kommandovinduet. Selv om de este antakeligvis vil foretrekke klikking, vil vi kort forklare hvordan ting gjøres fra kommandovinduet også. a) Når du starter MATLAB, vil du i utgangspunktet bli plassert et eller annet sted i l-systemet ditt. Hvor dette er, ser du i mappevinduet. (Alternativt kan du i kommandovinduet nne ut hvilken mappe du er i ved å skrive pwd print working directory.) Ta utgangspunkt i ett av plottene du lagde i oppgave 1). Dette kan du lagre ved å klikke Save i File-menyen oppe til venstre i viduet med plottet. Gjør dette og pass på at guren blir lagra i ei passe mappe. Figuren bli da lagra som ei fig-l MATLABs eget gurformat. Prøv gjerne å lukke guren og åpne den igjen. b) Man kan nt skrive ut grafer direkte fra MATLAB. Men ofte kan det være en fordel å lagre guren som ei bildel av et eller annet slag først. Dette er nødvig å gjøre om du ønsker å ta med plott i andre typer dokumenter som for eksempel tekstbehandlingsler (OpenOce, Word etc.). De vanliste tilgjengelige formatene er jpg/jpeg, png og pdf 1. Når man skal lagre et plot som ei bildel, kan man også gjøre dette ved å bruke Save eller Save As i l-menyen oppe til venstre i gur-vinduet. Du velger det formatet du vil ha i Save as type-menyen nederst i det vunduet som dukker opp og passer på å plassere la i den katalogen du vil ha den i før du trykker Save. Alternativt kan det hele gjøres fra kommandolinja: >> print -f<figurnummer> -d<format> <Filnavn>.<format>} 1 Forkortelsene står for henholdsvis Joint Photographic Expert Group, som kom opp med jpeg-formatet, Portable Network Graphics og Portable Document Format. 2

Om du for eksempel vil at gur 2 man kan ha ere gurer oppe samtidig skal eksporteres til png-formatet og hete FigurenMin (i tillegg til etternavnet png), skriver du >> print -f2 -dpng FigurenMin.png Når du gjør dette blir guren lagra i den arbeidsmappa du er i; om du vil lagre den et annet sted, kan du manøvrere deg dit 2. Velg en av metodene over og lagre plottet ditt som ei png-l i ei passe mappe. Forsøk å åpne png-la med en eller annen bilde-applikasjon. Oppgave 3 Flere grafer samtidig a) Lag et plott av grafen til funksjonen f(x) = x 2 + 1. Velg selv hvilket intervall x skal tilhøre og hvor n inndeling du vil ha på den tilsvare vektoren. (Tips: Gjør som over. Lag først en vektor med de aktuelle x- verdiene ved å bruke skrivemåten a:d:b du velger selv start og slutt, a og b, og steglengda d. Så bruker du denne x-vektoren til å lage en y-vektor som du kan bruke i plot-kommandoen. Pass på at d blir så liten at guren ikke ser hakkete ut.) b) Lag en vektor med funksjonsverdier for funksjonen g(x) = e x med den samme x-vektoren som i a). Lag et plott av g(x) også. Lag en gur som inneholder både grafen til f og g samtidig. Dette kan gjøres på to måter. Enten slik: >> plot(x,y,x,z) eller slik: >> plot(x,y) >> hold on >> plot(x,z) >> hold off Her har vi valgt å kalle vektorene med funksjonsverdier for f og g henholdsvis y og z. Oppgave 4 Funksjonsler Vi skal nå se hvordan vi kan lage våre egne funksjoner i MATLAB. Disse kan brukes på samme måte som de funksjonene MATLAB har inne fra før. Vi skal 2 Man kan som sagt manøvrere mellom ulike mapper i mappevinduet. Men også dette kan gjøres i kommandovinduet. Man bruker å så fall kommandoen cd, change directory, på samme måte som i dos-vinduet i Windows eller i terminalvinduet i Linux/Unix. 3

ta utgangspunkt i funksjonen f(x) = sin(2x) x 2. Først åpner vi en teksteditor. Det mest naturlige er nok å bruke MATLAB sin egen. Den kan åpnes ved å trykke på New Script-knappen oppe til venstre. Du får da opp et vindu hvor du kan skrive inn tekst. a) Skriv av følge i teksteditoren: function F=FunksjonenMin(x) % Funksjonen f(x)=sin(2x) - x^2. % Funksjonen tar bare skalarer som input. F=sin(2*x)-x^2; Lagre la i en passe mappe og kall den FunksjonenMin.m. Om du er i den samme mappa i MATLAB, kan du regne ut funksjoneverdier for denne funksjonen på akkurat samme måte som for funksjonene over; f(5) kan for eksempel nnes ved å skrive ` FunksjonenMin(5)' i kommandovinduet. Regn ut f(x) for noen x-verdier du velger selv på denne måten. Man kan lage funksjonsler på ere måter. Men to ting kommer man ikke utenom: 1) Den første linja skal ha denne strukturen: function <Navn på ut-variabel>=<navn på funksjon>(<liste med inn-variabler>) I eksempelet over, ser vi at ut-variabelen har fått navnet F og at funksjonen har fått navnet FunksjonenMin. Dette navnet bør være det samme som navnet på la (utenom `.m'). Til sist, inni en parantes, lister man opp de variablene som skal inn. I dette tilfellet er det bare én, x, men det er ingenting i veien for at det kan være ere 3. 2) Til sist i funksjonsla skal ut-variabelen, F i vårt tilfelle, ha blitt tilordna. b) Hva skjer hvis du skriver ` help FunksjonenMin'? c) Hvis vi skal plotte en funksjon gitt ved ei funksjonsl, er det en stor fordel om funksjonsla kan ta vektorer som inn-variabel på en slik måte at den gir som svar en vektor (ut-variabel) som består av funksjonsverdien av hvert element i vektoren vi gir inn. Vi har allerede sett at for eksempel sin funksjonen har denne egenskapen; hvis x=[1 2 3], vil ` sin(x)' gi vektoren [sin 1, sin 2, sin 3] som svar. Med ei ørlita ring kan funksjonen over bli i stand til dette. Gjør denne ringa og plott funksjonen. Velg selv hvilket intervall argumentet skal gå over og hvilken steglengde du vil ha. d) Lag ei funksjonsl for en eller annen elementær funksjon du velger selv og bruk denne til å plotte grafen til funksjonen. 3 Det kan gjerne være ere ut-variable også. 4

Oppgave 5 Delt forskrift if-satser I matematikken har vi sett av funksjoner kan bli gitt med delt forskrift altså at funksjonen er gitt ved ett uttrykk for visse x-verdier og et annet uttrykk for andre x-verdier. Det kan også være snakk om ere enn to ulike uttrykk. I denne oppgava skal vi se hvordan vi kan lage funksjonsler for, eller implementere, slike funksjoner. Men først skal vi se litt på logiske utsagn i MATLAB. a) Som tidligere nevnt, betyr `=' tilordning ikke likhet i MATLAB. Likhet skrives slik: `=='. Større enn og mindre enn, derimot skrives som normalt. `Er ulik', og ikke-strenge ulikheter kan skrives slik: ` =', `<=' og `>='. Forsøk å skrive noen sanne og noen usanne logiske påstander i kommandovinduet, som for eksempel 3 = 2, 1 < 0, og 1 0, og se hva du får til svar. Forsøk gjerne å kombinere med eller og og også. `Eller' kan skrives som ` ' og `og' kan skrives som `&'. For eksempel kan påstanden x [ 2, 1] skrives slik: x>=-2 & x<=1. I en slik sammenheng, hva betyr 0 og 1? b) Skriv av denne funksjonsla i editoren din, lagre den og kall den `DeltForskrift.m': function F=DeltForskrift(x) % Her bør det stå noe om hvilken funksjon det er snakk om if x<2 F=cos(pi*x)+2; else F=x^2-2; Regn ut noen funksjonverdiene for noen x-verdier du velger selv. Hvilken funksjon er dette ei implementering av? Merk at denne fuksjonsla bare tar skalarer (tall) som input (ikke vektorer) 4. Litt mer om if-satser til slutt (ingen oppgaver): De enkleste if-satsene har denne strukturen if <logisk påstand> <Utfør kommandoer> 4 Her kan det være friste å forandre funksjonsuttrykkene slik at de tar vektorargumenter. Om vi gjør denne justeringa, vil det se ut til at funksjonen tar vektor argument. Men dette er ei fallgruve; hvis x er en vektor, vil bare det siste elementet i vektoren bli brukt i if-satsen. Dette problemet er selvsagt løsbart... 5

Kommandoen eller kommandoene vil bare bli utført hvis den logiske påstanden er sann. Legg merke til at vi har gjort et lite innhopp i teksten i linja mellom if og. Dette gjør funksjonsla, eller hva det måtte være, mye mer oversiktlig. Så vi anbefaler at du også legger deg til denne vanen. Denne strukturen er også mye brukt: if <logisk påstand> <Utfør kommandoer> else <Utfør andre kommandoer> Vi kjenner denne strukturen igjen fra funksjonsla over. Her blir altså andre kommandoer utført i stedet for kommandoer dersom den logiske påstanden er feil. I eksempelet over er andre kommandoer tilordninga `F=x ˆ 2-2;', mens kommandoer er tilordninga `F=cos(pi*x)+2;'. En tredje vanlig struktur er denne: if <logisk påstand> <Utfør kommandoer> elseif <annen logisk påstand> <Utfør andre kommandoer> else <Utfør et tredje sett av kommandoer> Her kan man bygge på med så mange elseif-satser man bar vil etter hverandre. For spesielt interesserte kan det også være verd å nevne at MATLAB tillater en noe mer kompakt måte å denere funksjoner på. Man kan for eksempel bruke inline-funksjonen til å denere funksjoner direkte i kommandovinduet. Dette kan også gjøres bruk av @-symbolet. Spør gjerne om dette på rekneøving om du er interessert i vite mer. 6