Poynoom

Poynoom

Polynoom

Wat gaan we maken?

Start het elm programma powfuncpointsdraw.elm. Je ziet het volgende:

In het vakje links onder kun je de a, b en c invullen voor functies van de vorm:

y = ax2 + bx + c

Vul in het vakje links onder  5 in en druk op Enter.

Je ziet nu de grafiek voor de functie y=5 voor -100 =< x =< 100.

 

Vul in het vakje links onder  1,0 in en druk op Enter.

Je zie nu de grafiek voor de functie y=x voor -100 =< x =< 100.

 

Vul in het vakje links  onder 1,2 in en druk op Enter.

Je zie nu de grafiek voor de functie y=x+2 voor -100 =< x =< 100.

 

Vul in het vakje links  onder 1,0,0 in en druk op Enter.

Je zie nu de grafiek voor de functie y=x2 voor -100 =< x =< 100.

 

Vul in het vakje links  onder 1,0,-4 in en druk op Enter.

Je zie nu de grafiek voor de functie y=x2-4 voor -100 =< x =< 100.

 

Vul in het vakje links  onder 1,2,-4 in en druk op Enter.

Je zie nu de grafiek voor de functie y=x2+2x-4 voor -100 =< x =< 100.

 

Vul  nog wat andere waardes in voor a, b en c in en kijk wat er gebeurt.  Als je een half wilt invullen moet dat met 0.5 en een tiende met 0.1.

 

Vul vier getallen in en kijk wat er gebeurt.

Hoe pakken we het aan?

We gaan het vorige programma in Elm programmeren. Dit doen we met de volgende stappen.

  1. Maak een recursieve functie pow die een macht berekent
  2. Maak een recursieve functie powfunc die de waarde van  y berekent voor de waarde van x.
  3. Maak een recursieve functie powfuncpoints die de waarden van y berekend met powfunc voor -10 <= x <= 10
  4. Gebruik het resultaat van powfuncpoints om een grafiek te tekenen voor -100 <= x <= 100

Maak pow

Je gaat een recursie functie pow maken.  Deze functie pow heeft als invoer twee getallen g en m en geeft als uitvoer gm.  Je gebruikt de functie pow later om functies te bereken van de vorm y = ax2 + bx + c. Daarom is de functie pow goed genoeg als je voor m alleen gehele positieve getallen mag gebruiken. De functie pow heeft als uitkomst een getal dat gm weergeeft.

Start het elm programma pow.elm. Vul in het vakje 2,3 in. Je vraagt nu om 23 te berekenen en het resultaat is 8. Vul nog wat meer waarden voor g en m in en check de uitkomst.

Start het elm programma mypow.elm dat je gekregen hebt. Elm geeft als foutmelding dat de functie pow ontbreekt. Dat klopt want dat is nu juist de functie die jij zelf moet schrijven.

Voeg de functie pow toe aan mypow.elm volgens de volgende omschijving. Pow heeft als invoer twee getallen g en m. Daarvan is g het grondtal en m de macht. Pow geeft als resultaat gm terug.

Gebruik daarbij recursie volgens dit schema:

 

Maak powfunc

Je gaat een recursieve functie powfunc maken voor functies van de vorm y = ax2 + bx + c. Deze functie powfunc heeft als invoer een waarde voor x en een lijst met de waarden voor a, b en c. In deze lijst zijn a, b en c opgeslagen als Floats. De functie powfunc heeft als uitkomst een getal dat de waarde van y weergeeft.

Start het elm programma powfunc.elm. De test in dit programma werkt met een vaste waarde voor x die 2 is. Vul in het vakje 2,3 in. Dit staat voor y=2x+3. Als x dus 2 is, komt hier 7 uit. Vul nog wat meer waarden voor a,b en c in en check de uitkomst.

Start het elm programma mypowfunc.elm dat je gekregen hebt. Elm geeft als foutmelding dat de functie powfunc ontbreekt. Dat klopt want dat is nu juist de functie die jij zelf moet schrijven.

Voeg de functie powfunc toe aan mypowfunc.elm volgens de volgende omschijving. Powfunc heeft als invoer een getal x en een lijst van Floats l. Daarvan is x de waarde van x en bevat l de waarden van a, b en c voor een functie van de vorm y = ax2 + bx + c. Powfunc geeft als resultaat de uitkomst terug van y voor de functie y = ax2 + bx + c waarbij x, a, b en c zijn ingevuld.

Gebruik daarbij recursie volgens dit schema:

Maak powfuncpoints

Je gaat een recursieve functie powfuncpoints maken om een List van Floats met x en y waarden voor functies van de vorm y = ax2 + bx + c te maken. Deze functie powfuncpoints heeft als invoer  drie getallen c, s en e en een lijst met de waarden voor a, b en c. In deze lijst zijn a, b en c opgeslagen als Floats. De getallen c, s en e zijn achtereenvolgens de beginwaarde voor x, de stap waarmee x wordt opgehoogd en de eindwaarde van x. De functie powfuncpoints heeft als uitkomst een List van Floats  met  x en y waarden voor een bepaalde range van x.

Start het elm programma powfuncpoints.elm. De test in dit programma werkt met vaste waarden voor c, s en  e. Deze waarden zijn -10, 1 en 10. Vul in het vakje 2,3 in. Dit staat voor y=2x+3.  Je krijgt nu een lijst met waardes voor x en y voor -10 <= x <= 10.. Vul nog wat meer waarden voor a,b en c in en check de uitkomst.

Start het elm programma mypowfuncpoint.elm dat je gekregen hebt. Elm geeft als foutmelding dat de functie powfuncpoints ontbreekt. Dat klopt want dat is nu juist de functie die jij zelf moet schrijven.

Voeg de functie powfuncpoints toe aan mypowfuncpoints.elm volgens de volgende omschijving. Powfuncpoints heeft als invoer drie getallen c, s en e en een lijst met de waarden voor a, b en c. In deze lijst zijn a, b en c opgeslagen als Strings. De getallen c, s en e zijn achtereenvolgens de beginwaarde voor x, de stap waarmee x wordt opgehoogd en de eindwaarde van x. De functie powfuncpoints heeft als uitkomst een String met paren van x en y waarden met de door c, e en s opgegeven range van x.

Gebruik daarbij recursie volgens dit schema:

Maak powfuncpointsdraw

Kopieer je bestand mypowfuncpoints.elm naar mypowfuncpointsdraw.elm.

Voeg  bovenaan in mypowfuncpointsdraw.elm het volgende toe:

 

import Svg exposing (..)

import Svg.Attributes exposing (..)

 

Vervang in mypowfuncpointsdraw.elm:

 

view model =

  div []

  [ input [onKeyDown KeyDown, onInput Input] []

  , div [] [ text ("Result: " ++ model.outputData) ]

  ]

 

door:

 

view model =

  div []

  [ input [onKeyDown KeyDown, onInput Input] []

  , svg [ viewBox "0 0 200 200", width "400px" ]

     [ g [ transform "translate(100, 100) scale(1,-1)" ]

           [ polyline [ fill "none", stroke "black", points model.outputData] []

             , polyline [ fill "none", stroke "black", points(pointsListToString (powfuncpoints -100 1 100 [0]))] []

             , polyline [ fill "none", stroke "black", points "0,-100 0,100"] []

           ]

     ]

  ]

 

Pas powfuncpointsTest zo aan dat de test gaat voor -100 <= x <= 100.

 

Uitleg

In het view model maak je een svg tag.  Binnen deze svg tag maak je een polyline aan met als punten de uitkomst van:

 

model | outputData = powfuncpointsTest model.inputData

 

De andere twee polylines zijn de x-as en de y-as.

 

Zie https://www.w3schools.com/graphics/svg_polyline.asp als je meer over svg en polyline wilt weten.

  • Het arrangement Poynoom is gemaakt met Wikiwijs van Kennisnet. Wikiwijs is hét onderwijsplatform waar je leermiddelen zoekt, maakt en deelt.

    Laatst gewijzigd
    29-05-2018 17:13:04
    Licentie

    Dit lesmateriaal is gepubliceerd onder de Creative Commons Naamsvermelding 4.0 Internationale licentie. Dit houdt in dat je onder de voorwaarde van naamsvermelding vrij bent om:

    • het werk te delen - te kopiëren, te verspreiden en door te geven via elk medium of bestandsformaat
    • het werk te bewerken - te remixen, te veranderen en afgeleide werken te maken
    • voor alle doeleinden, inclusief commerciële doeleinden.

    Meer informatie over de CC Naamsvermelding 4.0 Internationale licentie.

    Aanvullende informatie over dit lesmateriaal

    Van dit lesmateriaal is de volgende aanvullende informatie beschikbaar:

    Eindgebruiker
    leerling/student
    Moeilijkheidsgraad
    gemiddeld
    Studiebelasting
    4 uur 0 minuten

    Gebruikte Wikiwijs Arrangementen

    themateam_paradigmas. (2018).

    Hoe gaan we een polynoom maken?

    https://maken.wikiwijs.nl/124680/Hoe_gaan_we_een_polynoom_maken_

    themateam_paradigmas. (2018).

    Maak pow

    https://maken.wikiwijs.nl/124681/Maak_pow

    themateam_paradigmas. (2018).

    Maak powfunc

    https://maken.wikiwijs.nl/124683/Maak_powfunc

    themateam_paradigmas. (2018).

    Maak powfuncpoints

    https://maken.wikiwijs.nl/124684/Maak_powfuncpoints

    themateam_paradigmas. (2018).

    Maak powfuncpointsdraw

    https://maken.wikiwijs.nl/124685/Maak_powfuncpointsdraw

    themateam_paradigmas. (2018).

    We gaan een polynoom maken

    https://maken.wikiwijs.nl/124678/We_gaan_een_polynoom_maken

  • Downloaden

    Het volledige arrangement is in de onderstaande formaten te downloaden.

    Metadata

    LTI

    Leeromgevingen die gebruik maken van LTI kunnen Wikiwijs arrangementen en toetsen afspelen en resultaten terugkoppelen. Hiervoor moet de leeromgeving wel bij Wikiwijs aangemeld zijn. Wil je gebruik maken van de LTI koppeling? Meld je aan via info@wikiwijs.nl met het verzoek om een LTI koppeling aan te gaan.

    Maak je al gebruik van LTI? Gebruik dan de onderstaande Launch URL’s.

    Arrangement

    IMSCC package

    Wil je de Launch URL’s niet los kopiëren, maar in één keer downloaden? Download dan de IMSCC package.

    Voor developers

    Wikiwijs lesmateriaal kan worden gebruikt in een externe leeromgeving. Er kunnen koppelingen worden gemaakt en het lesmateriaal kan op verschillende manieren worden geëxporteerd. Meer informatie hierover kun je vinden op onze Developers Wiki.