Recursie in de wiskunde

Slides:



Advertisements
Verwante presentaties
Het algoritme van Euclides
Advertisements

Differentie vergelijkingen differentie vergelijkingen
Datastructuren Quicksort
Hoofdstuk 8: Recursie.
Een paar programma’s met een aantal basisprincipes.
Lijsten in de -calculus Een lijst [E 1, E 2,..., E n ] kan in de -calculus voorgesteld worden als z.((z E 1 ) z.((z E 2 )... z.((z E n ) nil)...) met nil.
Deel I: Functionele Programmeertalen Hoofdstuk 4: Functioneel Programmeren.
Uitwerking tentamen Functioneel Programmeren 29 januari 2009.
Hogere-ordefuncties nEen lijst langs lopen en met elk element iets doen nEen lijst langs lopen en sommige elementen selecteren map filter.
Inleiding Meten 8E020 8C120 College 15a
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
Conditionele expressie
vwo C Samenvatting Hoofdstuk 9
 - congruentie -regel:
Herleiden (= Haakjes uitwerken)
Fibonacci & Friends Met dank aan Gerard Tel.
Functies op Proposities evalueer:: Bedeling  Prop  Bool tautologie:: Prop  Bool contradictie:: Prop  Bool equivalentie:: Prop  Prop  Bool vervulbaar::
Inleiding tot een nieuw soort wiskunde…
Regelmaat in getallen … … …
Prof.dr.ir. Bart ter Haar Romeny
PARADOXEN EN ONBEWIJSBAARHEID
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen.
Functies als Getallen Jan Martin Jansen.
BEWIJSPATRONEN EN LOGICA
Functies definiëren nDoor combinatie van standaardfuncties fac :: Int  Int fac n = product [1..n] oneven :: Int  Bool oneven n = not (even n) negatief.
Reguliere talen nReguliere grammatica: versimpelde Contextvrije grammatica nFinite-state Automaton: andere manier om een taal te beschrijven nReguliere.
Imperatief programmeren nProgramma bestaat uit nRunnen is opdrachten gegroepeerd in methoden één voor één uitvoeren te beginnen met main.
H8 ontbinden in factoren.
H8 ontbinden in factoren. 1. Instap. a) Productsom 1°) product 1, 2°) som 2, 3°) product 3, 4°) som 4,
Een inleiding. Door: M.J.Roos 8 mei 2011
vwo D Samenvatting Hoofdstuk 12
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 4.
, 17h30Recursie 1 Inleiding tot recursie Karel Popelier.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 2 Cees Witteveen.
Algoritme Inhoud: Definitie algoritme Recursieve algoritmes Opgaven
Gereedschapskist vlakke meetkunde
Tircms03-p les 2 Hfdst 3,4 Meer operatoren Functies.
PROGRAMMEREN LOGISCH en FUNCTIONEEL Ik zeg wat ik denk!
Functioneel programmeren Een snelle herhaling…. Functie-definitie static int kwad (int x) { return x*x ; } kwad x = x * x Haskell kwad :: Int  Int.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
AWK A Pattern scanning and processing language made by Aho Weinberger Kernighan and explained by Albert Montijn.
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Recursie: het cirkel algoritme van Bresenham
De O-notatie Algemene lijn: Broncode analyseren Herhalingsfrequentie bepalen O-notatie afleiden.
De O-notatie Algemene lijn: Broncode analyseren Herhalingsfrequentie bepalen O-notatie afleiden.
De O notatie… Limiet van Bachmann-Landau: Paul Gustav Heidrich Bachmann Edmund Landau
1 februari 2016 PHP expressie statement. 1 februari 2010 Titel van de presentatie 2 Boole logica? Definitie De booleaanse operatoren zijn genoemd naar.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Berekening van de Orde Van een Algoritme
Hoofdstuk 3 Lineaire formules en vergelijkingen
Wat is het grootste getal
Voorkennis: Kwadratische vergelijking oplossen
7.2 Buiten haakjes brengen Ontbinden in factoren
-calculus versus Scheme
Tijdcontinue systemen Tijddiscrete systemen
Bewijs: de eigenschap van de som van de hoeken in een driehoek
Info 2 Vereenvoudigen van breuken M A R T X I © André Snijers W K U N
Nim, een strategisch spelletje
Kettingbreuk = = = = = =[0;3;6;2]
Voorkennis Wiskunde Les 7 Hoofdstuk 2/3: §2.5, 3.1 en 3.2.
Voorkennis Wiskunde Les 12 Hoofdstuk 5: §5.5 en §5.8.
GGD en KGV.
Bewerkingen met natuurlijke getallen
Gameprogrammeren: Arrays
Tweedegraadsfuncties
Voorkennis Wiskunde Les 11 Hoofdstuk 5: §5.3 en §5.4.
Transcript van de presentatie:

Recursie in de wiskunde 1 Recursie in de wiskunde Recursieve definities recursieve functies recurrentierelaties (taak 1) vorm van expressies Bewijzen per inductie (taak 2) Recursieve algoritmen (taak 3)

Recursie in de wiskunde 2 Recursie in de wiskunde Recursieve definities recursieve functies recurrentierelaties (taak 1) vorm van expressies Bewijzen per inductie (taak 2) Recursieve algoritmen (taak 3)

Recursieve functies (faculteit) 3 Recursieve functies (faculteit) WISKUNDE Definitie: 0! = 1  n  1 : n! = n.(n-1)…3.2.1 Eigenschap:  n  1 : n! = n.(n-1)! INFORMATICA (define (fac n) (cond ((= n 0) 1) (else (* n (fac (- n 1))))))

Recursieve functies (afleiden) 4 Recursieve functies (afleiden) WISKUNDE Dx cte = 0 … Dx f.g = f . Dx g + Dx f . g ... INFORMATICA (define (deriv exp var) (cond ((number? exp) 0) ... ((product? exp) (let ((f (multiplier expr)) (g (multiplicand expr))) (make-sum (make-product f (deriv g var)) (make-product (deriv f var) g) ))) ...)) Referentie: [Abelson] blz. 146, sectie 2.3.2

Recurentierelaties (fib) 5 Recurentierelaties (fib) WISKUNDE Beschouw de recurrentierelatie Fn = Fn-1 + Fn-2 voor n  2 en F0 = 0, F1 = 1. Men kan bewijzen dat de algemene oplossing van deze recurrentierelatie wordt gegeven door de formule: Fn = 1/5 { [(1+5)/2]n - [(1-5)/2]n } Referentie: [Grimaldi] blz. 472, vb. 10.9 INFORMATICA (define (fib n) (cond ((= n 0) 0) ((= n 1) 1) (else (+ (fib (- n 1)) (fib (- n 2)))))) (let ((w5 (sqrt 5))) (* (/ 1 w5) (- (expt (/ (+ 1 w5) 2) n) (expt (/ (- 1 w5) 2) n)) )))

Recurentierelaties (i) 6 Recurentierelaties (i) WISKUNDE De rij met algemene term an = 1 + 2 + 3 + … + n-1 + n wordt beschreven door de recurrentierelatie an = an-1 + n voor n  1, en a0 = 0 Men kan bewijzen dat de algemene oplossing van deze recurrentierelatie wordt gegeven door de formule: an = n(n+1)/2 Referentie: [Grimaldi] blz. 463, vb. 10.4 INFORMATICA (define (a n) (if (= n 0) (+ (a (- n 1)) n))) (/ (* n (+ n 1)) 2))

Recurentierelaties (taak 1) 7 Recurentierelaties (taak 1) WISKUNDE Beschouw de recurrentierelatie an + an-1 - 6an-2 = 0 voor n  2 en a0 = 1, a1 = 2. Men kan bewijzen dat de algemene oplossing van deze recurrentierelatie wordt gegeven door de formule: an = 2n Referentie: [Grimaldi] blz. 471, vb. 10.8 INFORMATICA Schrijf een recursieve Scheme functie die an berekent uit an-1 en an-2 volgens de recurrentierelatie. Schrijf een Scheme functie die an rechtstreeks berekent volgens de gevonden algemene formule.

Vorm van expressies 8 WISKUNDE INFORMATICA Definitie: E is een goedgevormde rekenkundige expressie als 1) E is een getal 2) E is van de vorm F + G of E is van de vorm F - G of E is van de vorm F * G of E is van de vorm F / G waarbij F en G goedgevormde rekenkundige expressies zijn 3) E is van de vorm - F waarbij F een goedgevormde rekenkundige expressie is INFORMATICA (define (ggre? exp) (or (number? exp) (and (binary? exp) (member? (operation exp) ’(+ - * /)) (ggre? (arg1 exp)) (ggre? (arg2 exp))) (and (unary? exp) (eq? (operation exp) ’-) (ggre? (arg exp)))))

Recursie in de wiskunde 9 Recursie in de wiskunde Recursieve definities recursieve functies recurrentievergelijkingen (taak 1) vorm van expressies Bewijzen per inductie (taak 2) Recursieve algoritmen (taak 3)

Bewijzen per inductie 10 WISKUNDE INFORMATICA Eigenschap:  n  14 : n kan worden geschreven als som van 3’n en 8'n. Bewijs: Basisgeval: geldt voor n = 14 want 14 = 3 + 3 + 8 = 2 . 3 + 1 . 8 Inductiehyp.: eig. geldt voor n - 1  15, m.a.w. n - 1 = k . 3 + l . 8 dus n = k . 3 + l . 8 + 1 als l > 0 n = k . 3 + (l - 1) . 8 + 9 = (k + 3) . 3 + (l - 1) . 8 als l = 0 n = k . 3 + 1 = (k - 5) . 3 + 16 = (k - 5) . 3 + 2 . 8 (opm: k  5, want n - 1  15) INFORMATICA (define (make-res k l) (list (cons k 3) '+ (cons l 8))) (define (get-nr-3 res) (caar res)) (define (get-nr-8 res) (caaddr res)) (define (ontbind n) (cond ((= n 14) (make-res 2 1)) (else (let* ((prev (ontbind (- n 1))) (k (get-nr-3 prev)) (l (get-nr-8 prev))) (if (> l 0) (make-res (+ k 3) (- l 1)) (make-res (- k 5) 2))))))

Bewijzen per inductie (taak 2) 11 Bewijzen per inductie (taak 2) WISKUNDE Eigenschap:  n  64 : n kan worden geschreven als som van 5's en 17'en. Bewijs: Bewijs dit per inductie INFORMATICA Gebruik het inductieprincipe uit het inductief bewijs om een procedure te schrijven die deze ontbinding effectief construeert.

Recursie in de wiskunde 12 Recursie in de wiskunde Recursieve definities recursieve functies recurrentievergelijkingen (taak 1) vorm van expressies Bewijzen per inductie (taak 2) Recursieve algoritmen (taak 3)

Recursieve algoritmen (taak 3) 13 Recursieve algoritmen (taak 3) WISKUNDE Methode van Newton benadering van vierkantswortel benadering derdemachtswortel Bepalen van een fixpunt van een functie Algoritme van Euclides om grootste gemene deler te bepalen Referentie: [Grimaldi] blz. 226, stelling 4.7 INFORMATICA Methode van Newton [Abelson] blz. 22, sectie 1.1.7 [Abelson] blz. 26, oefening 1.8 [Abelson] blz. 68 “Finding fixed points of functions” Algoritme van Euclides Schrijf een recursieve Scheme-functie voor het bepalen van de grootste gemene deler van 2 getallen volgens het algoritme van Euclides

Algoritme van Euclides 14 Algoritme van Euclides Stelling: Als a,b  Z+ dan kunnen we de grootste gemene deler van a en b bepalen volgens het volgende algoritme: r1 = a mod b r1  0 r2 = b mod r1 r2  0 r3 = r1 mod r2 r3  0 … ri+2 = ri mod ri+1 ri+1  0 rk = rk-2 mod rk-1 rk  0 0 = rk-1 mod rk  rk = grootste gemene deler van a en b Referentie: [Grimaldi] blz. 226, stelling 4.7

15 Taken De recurrentierelatie an + an-1 - 6an-2 = 0 voor n  2 en a0 = 0, a1 = 2 heeft als algemene oplossing an = 2n. Schrijf twee Scheme-functies voor het bepalen van an : één door gebruik te maken van de recurrentierelatie zelf en één door de algemene oplossing van de recurrentierelatie te implementeren. Bewijs per inductie dat  n  64, n kan worden geschreven als som van 5's en 17'en. Schrijf een recursieve procedure om deze ontbinding effectief te construeren. (Inspireer je op de inductiestap uit het bewijs.) Schrijf een recursieve Scheme-functie die het algoritme van Euclides voor het bepalen van de grootste gemene deler van 2 getallen implementeert.