Symbolhanterade program och programmering i undervisningen

Symbolhanterade program och
programmering i undervisningen
Föredrag B307 på Matematikbiennalen 2016
Johan Wild
[email protected]
2016-02-13
Abstract
Jag argumenterar för att vi skall använda symbolhanterade programvara och programmering för att nå nya delar av matematiken stället för att bara lösa lite mer tillskruvade
varianter av dagen ”normala skolboksproblem”.
Jag exemplifierar både med fall som ryms inom dagens centrala innehåll och som är lite
mer visionära.
För att kunna avhandla denna typ av matematik finns ett stort fortbildningsbehov av
dagens lärare, vilket jag tycker vi skall se positivt på.
Jag har inga svar på frågor som rör vad man i framtiden skall betrakta som ”normala
skolboksproblem” och vad man rimligen kan komma att kräva av framtidens elever för
olika betyg.
Min erfarenhet av hur långt man faktiskt kan nå övertygar mig dock om behovet av att
lyfta dessa frågor.
1
Inledning
Det finns många program som utför symbolisk matematik, något som ofta förkortas CAS,
sprunget ur Computer Algebra System. Några är fria och gratis, till exemepl Maxima,
Sage och Geogebra. Vissa tillverkare av miniräknare har funktioner för CAS i sina premiummodeller.
Begreppet programmering är mycket omfattande och innefattar allt från att välja program på en diskmaskin till att skriva program för datorer med flera processorer för
högprestandaberäkningar.
Sedan Gy11 får man använda CAS på nationella prov, och i samhällsdebatten hörs allt fler
som vill införa programmering som ett ämne, eller del av något annat, från grundskolans
tidigaste år. Trots detta hörs sällan något om vad målet med detta egentligen är. På ett
allmänt plan tas det för självklart att det finns fördelar, men det hörs sällan något om
eventuella nackdelar och än mer sällan om konkreta mål.
Min erfarenhet av CAS är att det inte är ett mirakelmedel som får svaga elever att nå
godkänt. Möjligen kan vissa fenomen visualiseras så att vissa elevgrupper kan förstå några
begrepp och kanske klara olika sorters problem med lite mindre jobb. Det är också detta
jag sett exemplifierat i de flesta fall jag kommit i kontakt med reklam för CAS.
Jag tycker vi borde sikta lite högre, och jag har också erfarenhet av att det är möjligt.
2
Exempel
Alla exempel i detta avsnitt är genomförda och det finns material att ladda hem för den
som önskar, se länkarna i 4. Jag skriver därför inget om hur man gör i olika program,
utan fokuserar istället på vad som gjorts.
1
2.1
Abstrakt algebra
Med hjälp av CAS kan polynom av hög grad faktoriseras, och man kan bestämma kvot
och rest vid polynomdivision. Man kan alltså med små medel få elever att ”uppleva”
likheterna mellan polynom och heltalen. Begrepp som största gemensamma delare, minsta
gemensamma multipel, kvot, rest med mera fungerar på samma sätt.
Hur grafen till polynomfunktioner beror av faktorernas typ1 och multiplicitet.
Det blir ännu mer intressant för rationella uttryck, där både täljare och nämnare har sin
faktorisering. En liten finess man kan belysa är att om divisionen av t(x) med n(x) ger
kvoten q(x) och resten r(x) gäller att det rationella uttrycket
t(x)
→ q(x) då x → ∞.
n(x)
Att kunna resonera om denna sorts begrepp och problem tycker jag ryms inom dagens
centrala innehåll. Delar av det tas upp i de flesta läromedel, men då oftast bara i relativt
enkla problem rörande att identifiera nollställen till nämnaren i ett rationellt uttryck givet
en graf.
2.2
Numerisk lösning av PDE
Att skriva ett litet program som stegar fram en position med hjälp av en hastighet i små
steg i tiden är mycket enkelt. Att det är att lösa en ordinär differentialekvation med Eulers
stegmetod behöver man inte säga om man inte undervisar i Matematik 5. Elever i Fysik
1 klarar det i alla fall.
Elev Elevsson 2013−05−24
Lika enkelt är det att ha olika parametrar koordinatberoende. I två dimensioner kan man
då vips simulera rörelser i kraftfält. Diverse roliga problem, som att få partiklar att studsa
mot ytor och då kanske även förlora rörelseenergi, belyser många viktiga begrepp inom
både matematiken och fysiken.
Ett exempel på ett elevresultat av en sådan övning visas nedan.
−3.0
1
Över de reella talen finns inte irreducibla polynom av högre grad än två, men det är ändå intressant
att
identifiera
i funktionens
Detta skall f rest lladetta
en laddad
partikel som rgraf.
r sig i omloppsbana runt en laddning med styrkan
(−3.0 Colomb). Den f r sin elliptiska bana tack vare colombkraften som p verkar partikeln
i varje punkt. Samtidigt visar vektorf ltet i bakgrunden kraftf ltets styrka och riktning.
2
Här visas både kraftfältet, som är av typen
f (r) = −
k
.
r2
och rörelsen för en partikel i det. Partikelns läge är inte ritat för alla tidpunkter.
Vill man inte göra själva programmeringen till det huvudsakliga problemet kan man tillhandahålla ett ”skalprogram” som där den grundläggande funktionaliteten för att stega
fram tiden och datorgrafiken redan finns. Då kan eleverna fokusera på den intressanta
matematiken och fysiken.
Steget till att lösa partiella differentialekvationer är inte stort. Med notationen att fn0 är
”vid punkt n” och ”nu”, samt fn+ och fn− som ett steg fram och tillbaka i tiden gäller
f0 − f0
∂f
→ n+1∆x n
∂x
0
0
− 2fn0 + fn−1
fn+1
∂ 2f
→
∂x2
∆x2
∂f
∂t
∂ 2f
∂t2
fn+ − fn0
∆t
fn+ − 2fn0 + fn−
→
∆t2
→
(1)
En elev i årskurs ett accepterar de två första utan problem, om man jämför med fallet
då f (t) beskriver en rörelse. De två sista går att begripliggöra lite mer handviftande om
man jämför med fallet då andraderivatan beskriver en krökning av en kurva.
Ett program som löser till exempel vågekvationen blir inte långt. Vågen kan utan problem ha en koordinatberoende utbredningshastighet, och kommer naturligtvis att uppvisa
kända fenomen vid övergångar.
Nedan visas en lösning till vågekvationen. Programmet är ca 40 rader långt och är skrivet
av en elev i årskurs 2. Tiden går uppåt i bilden och prickarnas storlek är proportionell
mot vågens utbredningshastighet.
Till och med kopplade partiella differentialekvationer kan lösas enkelt med följande metod.
3
Antag att vi vill lösa
x ∂fx ∂fy
∂ 2 fx
= 0
2 + 2
∂t
x + y 2 ∂t ∂t
∂ 2 fy
y
∂fx ∂fy
= 0
2 + 2
2
∂t
x + y ∂t ∂t
där fx (x, y) och fx (x, y) beskriver ett vektorfält i R2 .
Detta är på sätt och vis svårt, men någon CAS-proramvara kan användas för att göra bytet
(1). Då fås ett (omfattande) algebraiskt ekvationssystem som kan lösas med avseende på
+
+
. Detta ger en numerisk lösning.
och fyn
fxn
2.3
Differentialgeometri och allmänna relativitetsteorin
Som en variant på förra exemplet skall jag beskriva det mest avancerade fallet jag hittills
tagit upp. Fysik 3 skall ge en orientering av den allmänna relativitetsteorin. Den innehåller
förhållandevis avancerad matematik. För att begripliggöra denna studerar vi fallet där vi
inför en metrik i R2 genom avståndet i R3 på en yta av typen z = f (x, y).
z = f (x, y) =
1
1
=
2
N
x +y +1
2
ger metriken
ds
2
2
2
4x2
8xy
4y 2
2
=
1+ 4
dx + 4 dxdy + 1 + 4 dy 2 .
N
N
N
(2)
där N = x2 + y 2 + 1.
Med mycket handviftande kan man motivera att det finns en differentialekvation vars
lösningskurvor är geodeter:
a
c
d 2 xb
b dx dx
+
Γ
= 0.
ac
dt dt
dt2
(3)
Även denna kan lösas med metoden beskriven ovan. Behovet av CAS är uppenbart då
den pythonkoden för ”nästa steg” i vardera komponent blir ca 1000 tecken långt.
Lösningsmetoden är lika enkel som när man löser f 0 + k(M − f )f = 0, vilket kanske är
mer brukligt i Matematik 5.
Nedan visas några geodeter som utgår från punkten (2, −2) och har olika riktningar.
Cirklarna är nivåkurvor för z = f (x, y).
4
0.1
0.1
0.2
0.2
0.1
0.3
0.6
0.2
0.2
0.6
0.1
0.1
0.1
0.2
0.7
0.60.7
0.5
0.4
0.3
0.3 0.4
0.1
0.2
0.1
0.1
Efter konkreta övningar i R2 kan man göra motsvarande i rumtiden, till exempel beräkna
längden av kurvor i Schwarzschildmetriken.
3
Framtidsfrågor
Exemplen ovan belyser några intressanta problem som vi inom lärarkollegiet måste förhålla
oss till.
Med rådande centralt innehåll och kunskapskrav tycker jag att man mycket väl kan
klämma in en hel del abstrakt algebra i Matematik 2-4 och lite intressantare differentialekvationer i Matematik 5. Inom Fysik 2 ska man göra simuleringar av rörelser, vilket
skapar förutsättningar för mervärde. Ägnar man mycket tid åt detta finns naturligtvis
risken att man blir sämre på något annat. Till exempel att öva inför nationella prov. Att
betyg avviker från resultat på NP är en känslig fråga.
Det finns också en möjlighet/risk att eleverna lär sig lite olika saker då valet av problem
för diverse programmeringsprojekt kan vara ganska fritt. Det är i huvudsak bra att undervisningen blir mer intressedriven, men vi måste ändå hantera detta som ett potentiellt
problem.
Om man ser längre in i framtiden, bortom dagens centrala innehåll, öppnas det väldigt
många möjligheter. Frågan är då vad vi vill att elever skall ha insikt i. Skall vi ägna
tid åt abstrakt algebra, differentialgeometri, matematisk statistik, linjär algebra och/eller
partiella differentialekvationer eller något annat?
Vad ska vi rimligen kräva av våra elever på olika betygsnivåer? Idag finns en rad ”standardproblem” man förväntas lösa i olika kurser. Vilka är framtidens standardproblem?
Nästa problem, kanske det intressantaste, är att man med CAS och lite programmering
kan nå delar av matematiken som många av dagens lärare inte kan speciellt mycket om.
Med dagens organisation för att utbilda lärare förväntas man lära sig all matematik man
någonsin kommer att behöva kunna inom ramen för lärarutbildningen. Möjligheterna till
ämnesfortbildning är nästan obefintliga. Min erfarenhet är tyvärr också att intresset för
att lära sig mer ofta dör på grund av för hög arbetsbelastning och avsaknad av incitament.
Vi måste vända denna fråga till något positivt! Naturligtvis skall även vi fortbilda oss i
5
våra ämnen, och det måste finnas resurser för det. Jag tycker det är rimligt att man läser
en kurs om ca 5p / 7,5 hp på C-, D- eller forskarutbildningsnivå vart tredje år inom ramen
för sin tjänst. Det skulle kosta ca 5% av vår arbetstid, vilket inte är orimligt mycket.
Att bli mer kunnig i sitt ämne känns för mig som en relevant karriärmöjlighet för lärare.
Alla behöver naturligtvis inte bli ämnesexperter. Det kommer finnas behov av lärare
av alla sorter med olika kompetens, men för att nyttja allas kompetens bäst kanske vi
behöver organisera om oss. Att samma lärare undervisar alla i en klass och handleder alla
programmeringsprojekt är kanske inte rimligt.
Personligen ser jag fantastiska möjligheter till diverse samarbeten mellan olika ämnen och
kollegor och hoppas många vill engagera sig denna utveckling.
4
Mer information och länkar
En längre version av denna text, som även innehåller bilder, finns på
www.strangnaskanotmaraton.se/Wild
Där finns också olika läromedel som berör exemplen som tas upp i denna text. Det gäller
även de skalprogram som används inom programmeringen och instruktionsfiler om hur
man använder Maxima och Sage.
Maxima finns på http://andrejv.github.io/wxmaxima/
Sage finns på http://www.sagemath.org
6