MaA 12 Algoritmer i matematiken

1. Algoritmer

Vad betyder Algoritm? Ta reda på olika definitioner genom att se vad SAOL, Wikipedia på svenska, finska och engelska och synonymer.se skriver.

När vi arbetar med algorimter så gör vi ett resept över vad som skall hända. Man kan tala om att man använder sig av programmering på meta nivå, en abstrakt nivå där vi inte ser på de exakta kommandorna.

Exempel 1 Gör en algoritm över hur man går framåt.

Lösning

Det beror på hur noggrannt vi vill beskriva men på en metanivå har vi något i stil med

  1. Lyft upp ena foten
  2. Luta dig framåt tills foten som är i luten tar i marken.
  3. Lyft upp andra fonten.
  4. Luta dig framåt tills foten som är i luten tar i marken.

och så fortsätter vi. Du märker att beroende på hur nogrann man vill vara så kan man beskriva tex "Lyft upp foten" med "Lyft upp foten och gör en liten cirkelformad rörelse framåt".

I uppgifterna så försök vara så noggrann som möjlig utan att vara allt för petnoga. Kursen handlar om numeriska metoder där vi bestämmer nollställen för funktioner eller areor under funktioner och då gör vi flera gånger samma steg. Därför börjar vi med att öva med att skapa algoritmer.

När vi skapar algoritmer, funderar på en metanivå vad som skall hända, börjar vi snabbt tänka i banor där vi har uttryck som

  • när eller då, (if)
  • om... så, (if ... then)
  • annars, (else)
  • upprepa (loop eller while)
dessa bildar grunder för tankesättet då man skapar algoritmer.

Använd dig av dessa då du löser uppgifterna.

Uppgifter

  1. Formulera en algoritm för följande
    1. Koka potatis.

      Något i stil med

      1. Tag fram potatis.
      2. Skala eller tvätt potatisen.
      3. Tag fram en kastrull, mät vatten och koka upp vattnet.
      4. När vattnet kokar så lägg i potatisen.
      5. Koka potatisen tills den är färdig.
      6. Häll vattnet från kastrullen.

      Följande är inte perfekt, men det ger dig en fingervisning över vad som du kan ha med. Hur skiljer sig algortimen från den som du skapar i nästa uppgift?

    2. Tillred potatis för fyra personer till middag.

      Något i stil med

      1. Tag fram potatis.
      2. Beräkna hur många potatisar som går åt

      3. Skala eller tvätt potatisen.
      4. Tag fram en kastrull, mät vatten och koka upp vattnet.
      5. När vattnet kokar så lägg i potatisen.
      6. Koka potatisen tills den är färdig.
      7. Häll vattnet från kastrullen.
      8. Meddela de som skall äta att potatisen är färdig.

      OBS! Du märker att här är endast då vi kokar potatis. För olika sätt att tillreda den så börjar vi med en om... så sats.

      Följande är inte perfekt, men det ger dig en fingervisning över vad som du kan ha med. Här får du gärna vara så noggrann av dig som du bara vill vara.

    3. Äta morgonmål hemma.

      Något i stil med

      1. Fundera vad du skall äta.
      2. Plockar farm ingredienserna.
      3. Plocka fram kärl.
      4. Tillred morgonmålet.
      5. Ät morgonmålet.
      6. Städa undan och lägg kärlen i diskmaskinen.

      Beroende på hur ditt morgonmål ser ut så ser det olika ut från detta. Försök att göra det så noggrannt som möjligt.

    4. Gå upp för en trappa med 16 steg.

      Något i stil med

      1. Ställ dig vid trappan.
      2. Upprepa 16 gånger:
        1. Lyft ena benet snett framåt.
        2. Luta dig framåt och sätt foten på trappsteget.
        3. Lyft andra foten så att den blir övanför nästa trappsteg.
        4. Luta dig framåt och sätt foten på trappsteget.
      3. När du är framme så stanna upp.

      Följande är inte perfekt, men det ger dig en fingervisning över vad som du kan ha med.

  2. Formulera en algoritm över hur du löser en ekvation av första grad.

    Något i stil med

    1. Sortera uttrycket så att du får termer med den variabeln som du vill lösa ut på vänster sida och annat på höger sida.
    2. Om möjligt, addera ihop termeran på vänster sida. Gör motsvarande på höger sida.
    3. Identifiera koefficienten framför variabeln.
    4. Multiplicera med det inverterade talet.
    5. Markera svaret.

    Eller som

    1. Addera till motsatta termer så att termer mex \(x\) är till vänster och andra till höger.
    2. Förenkla.
    3. Multiplicera med det inverterade talet som finns framför \(x\):et.
    4. Förenkla.

    Följande är inte perfekt, men det ger dig en fingervisning över vad som du kan ha med.

  3. Formulera en algoritm över hur du löser en andragradsekvation.

    Något i stil med

    1. Sortera uttrycket så att du får termerna i fallande grad på vänster sida.
    2. Identiefiera koefficienterna framför \( x^2 \), \( x \) och termen utan variabler.
    3. Använd dig av rotformeln.
    4. Markera svaret.

    Följande är inte perfekt, men det ger dig en fingervisning över vad som du kan ha med.

  4. Formulera en algoritm över hur du löser en olkihet av första grad.

    Något i stil med

    1. Sortera uttrycket så att du får termer med den variabeln som du vill lösa ut på vänster sida och annat på höger sida.
    2. Om möjligt, addera ihop termeran på vänster sida. Gör motsvarande på höger sida.
    3. Identifiera koefficienten framför variabeln.
    4. Multiplicera med det inverterade talet.
    5. Om det är negativt så byt rikting för olikheten, annars så fortsätter du räkna.
    6. Markera svaret.

    Följande är inte perfekt, men det ger dig en fingervisning över vad som du kan ha med.

  5. Formulera en algoritm över hur du undersöker en funktion.

    Något i stil med

    1. Derivera funktionen.
    2. Bestäm nollställena för derivatafunktionen.
    3. Bilda ett teckenschema.
    4. Analysera och svara.

    Då har vi inte beaktat om vi undersöker en funktion som är definierad i ett intervall, eller en rationell funktion som kan ha punkter där den inte är definierad.

  6. Algorimter är grunden då man programmerar. Klicka dig till Code.org och jobba med Hour of Code.
  7. Formulera en algoritm hur man dividerar i trappa, typ \( \dfrac{2112}{8} \).

    Något i stil med

  8. [SE H20] Det går att framställa en månghörning i planet som en ordnad lista \( [(x_1,y_1),\ldots,(x_n,y_n)] \) av hörnpunkter, så att man får månghörningens rand genom att förena efter varandra följande hörnpunkter samt den första och den sista hörnpunkten med sträckor. Vi antar att månghörningens rand inte skär sig själv. En metod som beräknar arean av en given triangel finns till vårt förfogande, och vi vill generalisera metoden för en månghörning.
    1. Rita en noggrann figur av en månghörning som motsvarar listan \([(2,2),(3,−1),(5,2),(7,3),(4,6)] \). (2 p.)

      Noggrann bild.

    2. Terje föreslår följande algoritm för att bestämma arean av månghörningen:
      • Vi väljer en slumpmässig hörnpunkt.
      • Från den ritar vi sträckor till alla övriga hörnpunkter, så att en mängd av trianglar bildas.
      • Vi adderar dessa trianglars areor.

      Ge ett exempel på en månghörning för vilken algoritmen ger en felaktig area och ett annat exempel på en månghörning vars area algoritmen beräknar korrekt. (5 p.)

      Algoritmen ger ett korrekt värde för till exempel en enhetskvadrat. ELLER Algoritmen fungerar för en rektangel. (2 poäng)

      Exempel: Algoritmen fungerar inte för en fyrhöring som har formen av en "pilspets".

      Algoritmen fungerar inte korrekt för månghöningar som inte är konvexa, dvs. till exempel för en sådan fyrhörning, vars hörn ligger i punkterna (1, − 1), (0,0), (−1, − 1) och (0,1). (3 poäng)

    3. Alf föreslår följande instruktioner för att bestämma arean av en månghörning:
      • Vi delar in en månghörning i trianglar genom att förena hörnpunkter på ett lämpligt sätt.
      • Vi adderar dessa trianglars areor.

      Vilka brister finns det i Alfs förslag, dvs. varför är detta inte en algoritm? (5 p.)

      Den här algoritmen kan inte användas som sådan, eftersom det inte anges på vilket sätt de hörn som ska förbindas ska väljas. (5 poäng)

  9. En del av kursen är att lära sig programmera. Gå till tie.koodariksi.fi, registrera dig och börja jobba på Ohjelmoinnin alkeet. Uppe till höger kan du byta språk.

    Kom ihåg att be gruppkoden av Kristoffer!

    Jobba ca en timme med materialet, eller med kapitlen 1-3.