Læringsmål og pensum. Funksjoner hittil (1) Oversikt. Læringsmål Anonyme og rekursive funksjoner Funksjoner som inn-argumenter Subfunksjoner

Like dokumenter
Læringsmål og pensum. Forberdring vha preallokering. Oversikt

f '( x) 28x 6x 2 ( 2) x x 4(3t 2 s) 6s 2x 6(3t 2 s) 2t ln x 2ln y med bibetingelsen 2x y m. Her er m 0

PARENTESER Matematikerne har funnet på at i regneuttrykk kan vi bruke parenteser for å markere hvilken regneoperasjon som skal gjøres først.

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 13. desember HINDA / 98HINDB / 98HINEA ( 2DA / 2DB / 2EA ) TID:

Uke 12 IN3030 v2019. Eric Jul PSE-gruppa Ifi, UiO

Chapter 2 - Discrete Mathematics and Its Applications. Løsningsforslag på utvalgte oppgaver

MED SVARFORSLAG UNIVERSITETET I OSLO

Differensligninger Forelesningsnotat i Diskret matematikk Differensligninger

Avsnitt 8.1 i læreboka Differensligninger

Pensumoversikt - kodegenerering. Maskinen det oversettes til. Kodegenerering del 2: tilleggsnotat, INF5110 v2006

Brøkregning og likninger med teskje

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Løsningsforslag Eksamen 7. august 2006 TFY4250 Atom- og molekylfysikk

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Kapittel 10 fra læreboka Grafer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

Matematikk Øvingsoppgaver i numerikk leksjon 8 Numerisk integrasjon

Odd Heir John Engeseth Håvard Moe Ørnulf Borgan BOKMÅL. Særtrykk. Matematikk 1T

Løsningsforslag til obligatorisk oppgave i ECON 2130

Ekstraksjon. Vi sier at det løste stoff fordeles mellom to faser og likevektskonstanten for denne reaksjonen kalles partisjonskoeffisienten.

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

1 Mandag 1. mars 2010

Oversikt II. Innhold. INF1000 (Uke 12) Oversikt I. Sortering. Lære å lage proff programvare ved å lage. en generell klasse for sortering

S2 kapittel 1 Rekker Utvalgte løsninger oppgavesamlingen

Integrasjon. October 14, Department of Mathematical Sciences, NTNU, Norway. Integrasjon

Matematikk Øvingsoppgaver i numerikk leksjon 9 Numerisk integrasjon

Løsningsforslag Kollokvium 6

Matematikk for IT. Prøve 2 løsningsforslag. Torsdag 27. oktober 2016 S S F S F F S F S F S S F S F S F F F F S S F F

Innhold. INF1000 (Uke 12) Sortering og eksamensoppgaver. Oversikt II. Oversikt I. Om sortering. Litt om dokumentasjon av kode. Deler av eksamen H03

INF våren 2005 Uke 1, 11 jan - Praktisk, oversikt og forutsetninger

INF våren januar, uke 3 - Oversikt og forutsetninger Java datastruktur-tegninger

1 Mandag 18. januar 2010

Integrasjon Skoleprosjekt MAT4010

Fasit. Grunnbok. Kapittel 2. Bokmål

Kapittel 8 TUTORIALS-CASES

Numerisk Integrasjon

2 Algebra R2 Løsninger

Høgskolen i Agder Avdeling for realfag EKSAMEN. begrunn = grunngi beregn = rekn ut

Kapittel 9 ALGEBRA. Hva er algebra?

OM TAYLOR POLYNOMER. f x K f a x K a. f ' a = lim x/ a. f ' a z

IKT-trapp for Lade skole

x 1, x 2,..., x n. En lineær funksjon i n variable er en funksjon f(x 1, x 2,..., x n ) = a 1 x 1 + a 2 x a n x n,

TMA4100 Matematikk 1 Høst 2006

MAT 100A: Mappeeksamen 4

Oppgave 2 Betydningen til hvert enkelt siffer er bestemt av sifferets plassering eller posisjon. Tallet 4321 betyr

UNIVERSITETET I OSLO

Oblig 2 - MAT1120. Fredrik Meyer 26. oktober 2009 = A = P1 1 A 1 P 1 A 1 A 2 = P 1. A k+1. A k P k

12 MER OM POTENSER POTENSER

Obligatorisk oppgave ECON 2200, Våren 2016

Løsningsforslag Eksamen MAT112 vår 2011

Løsningsforslag til Eksamen i fag MA1103 Flerdimensjonal analyse

LØSNINGSFORSLAG(Sensor) I TMA4140 og MA0302

INF Forelesning 10

Logaritmen til et tall er det vi må opphøye 10 i for å få tallet. Logaritmen til et tall a kan vi indirekte definere slik:

Eksamen våren 2018 Løsninger

x n = 1 + x + x 2 + x 3 + x x n + = 1 1 x

Oppfriskningskurs i matematikk Oppgaveheftet Oppsummeringsnotater Oppgaver med fasit Høsten 2018 Amir Massoud Hashemi

Fasit til utvalgte oppgaver MAT1100, uka 20-24/9

MAT 1110: Løsningsforslag til obligatorisk oppgave 2, V-06

Vi skal hovedsakelig ikke bestemme summen men om rekken konvergerer. det vil si om summen til rekken er et bestemt tall

Feilestimeringer. i MAT-INF1100

Forkunnskaper i matematikk for fysikkstudenter. Derivasjon.

INF1010 våren 2017 Torsdag 26. januar. Arv og subklasser del 1. Stein Gjessing Institutt for informatikk Universitetet i Oslo

Læringsmål og pensum. Oversikt. Læringsmål Forstå og bruke cell array og strukturer. Pensum Matlab, Chapter 8

UNIVERSITETET I OSLO

Sensorveiledning ECON 1410: Internasjonal Økonomi; vår a) NORD har absolutt fortrinn i produksjonen av begge varer siden A < a og

Oppfriskningskurs i matematikk Oppgaveheftet Oppsummeringsnotater Oppgaver med fasit Høsten 2016 Amir Massoud Hashemi

FY2045/TFY4250 Kvantemekanikk I, løsning øving 10 1 LØSNING ØVING 10

Tall i arbeid Påbygging terminprøve våren 2014

a 2πf(x) 1 + (f (x)) 2 dx.

Faglærer går normalt én runde gjennom lokalet. Ha evt. spørsmål klare!

Kapittel 4 Tall og algebra Mer øving

1 dx cos 1 x =, 1 x 2 sammen med kjerneregelen for derivasjon. For å forenkle utregningen lar vi u = Vi regner først ut den deriverte til u,

Løsning til KONTROLLOPPGAVER Sinus S2 1 Rekker Uten hjelpemidler OPPGAVE 1 a) 1) b) 1) c) d)

KOMPLEKSE TALL KARL K. BRUSTAD

2. Bestem nullpunktene til g.

Faglærer går normalt én runde gjennom lokalet. Ha evt. spørsmål klare!

addisjon av 2 og 3. Vi skriver da i alt: 2+3= og etter at likhetstegnet er skrevet så gir matcad oss svaret.

Modul 1 15 studiepoeng, internt kurs Notodden/Porsgrunn

Temahefte nr. 1. Hvordan du regner med hele tall

Terminprøve Matematikk for 1P 1NA høsten 2014

1 Mandag 8. mars 2010

5: Algebra. Oppgaver Innhold Dato

Eksamen høsten 2015 Løsninger

1 Tallregning og algebra

Mer øving til kapittel 3

Polynominterpolasjon

Multippel integrasjon. Geir Ellingsrud

R2 - Heldagsprøve våren 2013

Detaljert løsningsveiledning til ECON1310 seminaroppgave 9, høsten der 0 < t < 1

Numerisk kvadratur. PROBLEM STILLING: Approksimér. f(x)dx. I(f) = hvor f : R R. Numerisk sett, integralet I(f) = b. f(x)dx approksimeres med en summe

Fakultet for teknologi, kunst og design Teknologiske fag Eksamen i: Diskret matematikk

Sinus S2 > Følger og rekker. 01 Sinus S2 kap1 teoridel.indd :31:27

a 5 (2 + 8) d 5 (2 + 8) 4 g b 3 5 (2 + 8) e h 3 ( ) j Begrunn hvorfor du ikke får samme svar på oppgave b og g.

Numeriske metoder: Euler og Runge-Kutta Matematikk 3 H 2016

IN1010 våren 2018 Tirsdag 13. februar. Interface - Grensesnitt

Faktorisering. 1 Hva er faktorisering? 2 Hvorfor skal vi faktorisere? Per G. Østerlie Senter for IKT i utdanningen 11.

Tall i arbeid Påbygging terminprøve våren 2013

Reiseregning. Bankkto. Avdeling/ tj.sted. Skattekommune Utreise. Trondheim Reisested og -formål Tjenestereise

Transkript:

1 Lærigsmål og pesum TDT4105 Iformsjostekologi grukurs: Uke 44 Aoyme fuksjoer, fuksjosfuksjoer og rekursjo Lærigsmål Aoyme og rekursive fuksjoer Fuksjoer som i-rgumeter Subfuksjoer Pesum Mtlb, Chpter 10 uttt 10. og 10.4 Asbjør Thomsse, IDI 4 Oversikt Fuksjoer hittil (1) Fuksjoer hittil Pekere til fuksjoer (hdles), oyme fuksjoer og fuksjos-fuksjoer Rekursive fuksjoer Likt ethvert et uttrykk (expressio) hr e fuksjo e verdi bsert på i-rgumetee gjeom fuksjoskll: = sqrt(4) K derfor også h fuksjoskll som i-rgumeter rot1 = sqrt(bs(miverdi)) Fuksjoer k også returere flere verdier som vi k brukes gjeom e multippel tilordig: [u, x, y] = svd () Multippel tilordig tillter ku vrible og ideksuttrykk, dvs k h [u, s(), v(,4)] = svd ()

5 6 Fuksjoer hittil () Fuksjoer k h i-rgumeter: sqrt(), zeros(,m), rd Fuksjoer hr et loklt skop, dvs lle vrible er lokle for fuksjoe og ikke tilgjegelig utefor (eget workspce) Fuksjosdefiisjo hr form (hode og kropp): fuctio ret-vr = v (rg-liste) kropp eller ved multippel ut-rgumeter: fuctio [ret-liste] = v (rg-liste) kropp Hode Oversikt Fuksjoer hittil Pekere til fuksjoer (hdles), oyme fuksjoer og fuksjos-fuksjoer Rekursive fuksjoer 7 Pekere til fuksjoer (hdle) Nyttig å gi i fuksjoer til dre fuksjoer som rgumeter (prmetre) Se eksempel seere. Nv på fuksjo som eksisterer vribelv = @fuksjosv; 8 Pekere til oyme fuksjoer Nyttig for å defiere små ikke-vgitte fuksjoer eller for å pkke i kll til dre fuksjoer vr = @(rg1,rg,...)%kode fuksjo i her; >> v = @si; >> v(pi/4) s = 0.70711 >>vf = @rd; >> vf vf = @rd >> vf() s = 0.58167 v er vribel som blir tilordet e peker til fuksjoe. Bre v oppgis her og ikke prmeterliste. Fuksjoe klles ved å skrive vribelv(%prmetre) NB! Må h pretes i kllet også år fuksjoe ikke hr oe rgumeter. Får ellers bre vribelverdie, dvs fuksjospekere, og ikke utført fuksjoe. Ikke bld smme med tbeller og idekser >> f = @(x) si(x)/x; >> g = @(x,y) x^ + y^; >> f(1) s = 0.84147 >> f() s = 0.047040 >> g(,) s = 1 Bre prmeterliste oppgis etter @ etterfulgt v fuksjosuttrykk. Fuksjoe hr ltså ikke v (oym). NB! Vribler som ikke er i prmeterlist rves fr rbeidsområdet (workspce) der fuksjoe er klt

9 Eksempel pekere til fuksjoer 10 fleksiplot.m Skriv e Mtlb-fuksjo som fier ut om e grf f(x) er like i et pukt, dvs f(x)*f(-x) >= 0 Fuksjos-fuksjoer fuctio iseve = eve(f,x) iseve = f(x)*f(-x) >= 0; Tr e fuksjo som i-rgumet til e e fuksjo ved å bruke fuksjospeker (hdle) Øsker f.eks å plotte cos ved å skrive: fleksiplot(@cos) Hvord ser fuksjoe fleksiplot ut? >> f = @(x) si(x)/x; >> eve(f, pi/) s = 1 >> p = @(u) u^; >> eve(p, 1) s = 0 Vribele f er et vlig rgumet som peker til e fuksjo som skl brukes i eve(). f hr selv et rgumet x som også må få e verdi i eve(). fuctio fleksiplot(fp) % Eksempel på e fuksjosfuksjo. % Pekere til fuksjoe overføres som i-rgumet % i vrible fp og fuksjoe plottes x = 1:.5:6; y = fp(x); plot(x,y,'ko') 11 1 Noe yttige fuksjosfuksjoer Oversikt fplot tilbyr D fuksjosplott direkte ved: fplot(fp, [xmi xmx]) % fst form på kll strfuc koverterer fr strig til fuksjospeker fp = strfuc( si ); fucstr koverterer fr fuksjospeker til strig Fuksjoer hittil Pekere til fuksjoer (hdles), oyme fuksjoer og fuksjos-fuksjoer Rekursive fuksjoer evl utfører fuksjoe som tekststreg (som før) fstr = strfuc(@cos); y = evl(strct(fstr, (x) )); fevl utfører fuksjoe direkte ved å bruke fuksjospeker og rgumeter fevl(@si,.)

1 14 Rekursive fuksjoer Fuksjoer som kller seg selv Hvert fuksjoskll oppretter et ytt workspce Må være et termierigsltertiv, dvs. fuksjoe utfører setiger og returerer ute å gjøre kll til seg selv (bse cse) Itersjo k lltid uttrykkes som rekursjo me ieffektivt! Eksempel:! Er defiert som! = 1 * * *...* Altertiv rekursiv defiisjo:! = * (! 1)! geerl cse 1! = 1 bse cse (vslutig/termierig) Eksempel! = *!! = * 1! 1! = 1 = =6 15 Eksempel:! som rekursiv fuksjo 16 Hv skjer uder kjørig? (1) Bse workspce (hovedrbeidsområdet) Ige vribler eå fuctio = fct () if ( > 1) = * fct (-1); = 1; del er termierigstlertiv (bse cse) Progrm Couter (progrmteller): viser hv som er este setig som skl utføres

17 Hv skjer uder kjørig? () Vi k se på som vet på e "låst vribel som ieholder verdie, dvs er e kostt. 18. fuctio = fct () if ( > 1) = * fct (-1); = 1; Hv skjer uder kjørig? () Nytt workspce med lokle vrible for fc() Overførig v irgumet (cll-by-vlue) 19. fuctio = fct () if ( > 1) = * fct (-1); = 1; Hv skjer uder kjørig? (4) 0. fuctio = fct () if ( > 1) = * fct (-1); = 1; Hv skjer uder kjørig? (5)

1. fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; = * fct (-1); = 1; Hv skjer uder kjørig? (6) Nytt workspce med lokle vrible for fc(). fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; = * fct (-1); = 1; Hv skjer uder kjørig? (7) Overførig v irgumet (cll-by-vlue). fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; = * fct (-1); = 1; Hv skjer uder kjørig? (8) 4. Hv skjer uder kjørig? (9) fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; = * fct (-1); fuctio = 1; = fct () if ( > 1) = * fct (-1); = 1; 1 1 Nytt workspce med lokle vrible for fc(1)

5. Hv skjer uder kjørig? (10) fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; = * fct (-1); fuctio = 1; = fct () if ( > 1) = * fct (-1); = 1; 1 1 6. Hv skjer uder kjørig? (11) fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; = * fct (-1); fuctio = 1; = fct () if ( > 1) = * fct (-1); = 1; 1 1 7. Hv skjer uder kjørig? (1) fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; = * fct (-1); fuctio = 1; = fct () if ( > 1) = * fct (-1); = 1; 1 1 8. fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; 1 = * fct (-1); = 1; Hv skjer uder kjørig? (1) fct(1) returer med verdi 1.

9. fuctio = fct () if ( > 1) = * fct (-1); fuctio = fct () if ( > 1) = 1; = * fct (-1); = 1; Hv skjer uder kjørig? (14) 0. Hv skjer uder kjørig? (15) fuctio = fct () if ( > 1) = * fct (-1); = 1; fct() returer med verdi. 1. fuctio = fct () if ( > 1) = * fct (-1); = 1; Hv skjer uder kjørig? (16) 6 6 Hv skjer uder kjørig? (17) fct() returer med verdi 6. Vi er tilbke i hovedprogrmmet! og er ferdig med skriptet 6 E ieffektiv måte å rege ut!

Klltre for fct() 4 Oppgve power.m fct() E rekursiv defiisjo v er: fct() fct(1) fct(0) = 1 hvis == 0 = *!1 hvis > 0 Lg e fuksjo som bereger. Du skl ikke bruke ^ opertore oe sted! 5 6 Hv gjør mystery? Subfuksjoer fuctio outvr = mystery(x,y) if y == 1 outvr = x; outvr = x + mystery(x,y!1); K deklrere mer e e fuksjo i e m-fil Uder de primære fuksjoe (første i file) subfuksjoer, lokle fuksjoer eller hjelpefuksjoer Usylige og utilgjegelige utefor m-file Klles fr primærfuksjoe som dre fuksjoer K bidr til å dele opp progrmkode Se y progrmkode for fleksibel ilesig v felter for billetter i Tetersl på este foiler (se også tidligere kode) mtchfelter er subfuksjo og ikke tilgjegelig utefor lesfelterm

7 Progrmeksempel Tetersl Lg ekel versjo for reserverig v plss (skript) - 1 pseudokode dtstruktur Utvid skriptet til å hådter pris, tll billetter og slgsitekt -1b Lg ege fuksjo for prisberegig 1-c Lg ege fuksjoer for å lese i lovlig stolr. og skrive ut bildet v reserverte seter i sle (mtrise) 1d Utvid progrmmet til å lgre perso, rbtt etc. for hvert sete 1e K seere utvides til å tolke fleksible kommdoer for å legge dt i i feltee 8 Mier om strukturfuksjoer! (fr uke 4) rmfield returer e y struktur med oppgitt felt fjeret De gmle er uret isstruct returer true hvis ivribele er e struktur isfield returer true hvis feltet er e del v strukture fieldmes returer et cell rry med feltvee isempty returerer true hvis feltet er tomt (brukes også på cell rry) 9 Tetersl: les i feltverdier lesfelterm.m 40 lesfelterm.m

41 Tips Husk å overføre pekere til e fuksjo, og ikke fuksjosv, år du bruker fuksjosfuksjoer Pss på t du lltid hr et vslutigsltertiv i e rekursiv fuksjo (bse cse) Bruk oyme fuksjoer år fuksjoskroppe bre består v et ekelt uttrykk. Når mulig, bruk itersjo istedet for rekursjo