Datoralgebraprogrammet Maxima med tillämpningar Per Jönsson Malmö Högskola, 2011 2 Innehåll 1 Datoralgebrasystemet Maxima 1.1 Inledning . . . . . . . . . . . . . . . . . 1.2 Installera Maxima . . . . . . . . . . . . 1.3 Maximas arbetsfönster . . . . . . . . . . 1.4 Aritmetik . . . . . . . . . . . . . . . . . 1.5 Fördefinierade konstanter och symboler 1.6 Funktionsknappar för algebra . . . . . . 1.7 Funktioner . . . . . . . . . . . . . . . . 1.8 Insättning av värden i uttryck . . . . . . 1.9 Grafer . . . . . . . . . . . . . . . . . . . 1.10 Matematisk analys . . . . . . . . . . . . 1.11 Ekvationer och nollställen . . . . . . . . 1.12 Ordinära differentialekvationer . . . . . 1.13 Vektorgeometri . . . . . . . . . . . . . . 1.14 Vektorer, linjer och plan i 3-dimensioner 1.15 Sannolikhetslära . . . . . . . . . . . . . 1.16 Arbetsblad . . . . . . . . . . . . . . . . 1.17 Vidare läsning och länkar . . . . . . . . 1.18 Övningar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 6 6 8 9 11 13 13 15 20 22 26 28 30 33 34 34 4 INNEHÅLL Kapitel 1 Datoralgebrasystemet Maxima 1.1 Inledning Datoralgebrasystem (Computer Algebra Systems) har funnits relativt länge. På universiteten dominerar program som Maple och Mathematica, medan på gymnasieskolorna är symbolhanterande räknare vanligare. Maxima är ett fritt och kraftfullt datoralgebrasystem som finns för Windows, Mac och Linux. Programmet kan också köras on-line på nätet. I datoralgebrasystem kan vi utföra operationer på symboler som representerar matematiska objekt. De matematiska objekten kan vara formler, ekvationer, funktioner och så vidare. Operationerna sker i enlighet med kända algebraiska lagar och regler. Exempel på datoralgebraiska operationer är sådana som adderar bråktal 1 3 7 + + 3 5 6 eller bestämmer derivatan av en funktion d x sin x e . dx Symbolisk beräkning av en exakt lösning till ett problem kräver i allmänhet större datorresurser än motsvarande numeriska beräkning av en approximativ lösning. Den symboliska lösningen är emellertid exakt och lyfter på ett tydligare sätt fram den underliggande matematiska strukturen. I skolsammanhang kan datoralgebrasystem användas för att upptäcka och se mönster i beräkningar som sedan kan generaliseras ligga till grund för lagar och regler. De kan också användas för att kontrollera delberäkningar i 6 Datoralgebrasystemet Maxima uppgifter som kanske inte blev rätt. Användningsområdena är många. Effekterna och nyttan av datoralgebrasystem i skolan är väl dokumenterad, och i slutet av kapitlet finns tips på användbar litteratur. Precis som i andra matematikprogram finns det i Maxima även omfattande stöd för numeriska beräkningar. Till Maxima hör även kommandon för 2Doch 3D-grafik med vars hjälp vi kan plotta funktioner och presentera data. 1.2 Installera Maxima Maxima distribueras under GNU Public License, vilket innebär att programmet får användas fritt av lärare och studenter. Här behandlar vi en version av Maxima med ett förenklat gränssnitt som anpassats till främst gymnasieskolans kurser. Detta gränssnitt har utvecklats av lektorn Bjørn Ove Thue och översatts till svenska av författarna. För att ladda ner denna version av Maxima går vi in på http://www.moglestu.com/maxima/. Standardversionen av Maxima finns på http://maxima.sourceforge.net/, där det också finns en omfattande dokumentation till programmet. Instruktionsvideo hur du installerar Maxima finns på bokens hemsida. 1.3 Maximas arbetsfönster Maxima startas genom att dubbelklicka på ikonen med texten wxMaxima. Vid starten kommer ett fönster, vilket är illustrerat i figur 1, att öppnas. Fönstret är Maximas arbetsfönster och har flera olika funktioner. Kommando skrivs på inmatningsraden och utförs när returtangenten (←-) trycks ned. I det följande kommer vi inte att skriva ut returkommandot eftersom detta ger svårläst text. Kommandon kan också ges genom att använda funktionsknapparna eller genom att gå in i rullgardinsmenyerna. 1.4 Aritmetik Maxima har fem aritmetiska operatorer. ˆ5 * / + - potens (upphöjt till) multiplikation division addition subtraktion prioritet prioritet prioritet prioritet prioritet 1 2 2 3 3 Då två operatorer har samma prioritetsordning utförs beräkningarna från 1.4 Aritmetik 7 Menyrad Tidigare inmatningar och svar Inmatningsrad Funktionsknappar Figur 1.1: Maximas arbetsfönster. Kommandon ges på inmatningsraden. Kommandon kan även ges genom att använda funktionsknapparna eller rullgardinsmenyerna. vänster till höger. Maxima ger exakta svar (och ej decimaltal) vid räkning med heltal och rationella tal. Kommandot för kvadratrötter är sqrt. Kvadratrötter för heltal och rationella tal representeras alltid på enklast möjliga form. Exempel 1.1. (a) För att beräkna 2 · 32 skriver vi 2*3^2 på inmatningsraden och trycker return. Eftersom ^ har högst prioritet börjar Maxima med att beräkna 3^2. Sedan följer multiplikation med 2 och Maxima svarar 18 (b) Division och multiplikation har samma prioritet. Då vi skriver 1/2*3 8 Datoralgebrasystemet Maxima på inmatningsraden börjar Maxima från vänster och beräknar 1/2 sedan följer multiplikation med 3, vilket ger svaret 3 2 (c) För att beräkna 15 12 1 + − 8 7 12 skriver vi 15/8 + 12/7 - 1/12 vilket ger 589 168 (d) Talet √ 56 beräknas genom sqrt(56) vilket ger √ 2 14 Här har Maxima skrivit 56 som 4 · 14 och utnyttjat att rotlagarna. 1.5 2 Fördefinierade konstanter och symboler I Maxima finns flera fördefinierade konstanter och symboler. Det finns också möjlighet att avrunda exakta värden till decimaltal. %pi %e, exp(1) %i inf minf float π ≈ 3.14159. e√≈ 2.71828 (basen för naturliga logaritmen). −1, imaginära enheten. ∞ positiva oändligheten. −∞ negativa oändligheten. omvandlar ett exakt tal till decimaltal. Maxima känner till exakta regler för en rad operationer med π och e. Symbolerna finns tillgängliga vi funktionsknapparna nere till vänster i arbetsfönstret. Det finns även en funktionsknapp för att omvandla resultatet till decimaltal. Exempel 1.2. (a) För att beräkna i2 skriver vi 1.6 Funktionsknappar för algebra 9 %i^2 Maxima känner till reglerna för räkning med den imaginära enheten och svarar −1 (b) Roten ur ett negativt tal ger komplexa värden. För att beräkna skriver vi √ −4 sqrt(-4) vilket ger svaret 2 %i (c) Logaritmfunktionen ln betecknas log i Maxima. Då vi beräknar naturliga logaritmen av e log(%e) får vi svaret 1 (d) För att omvandla talet π/2 till decimaltal ger vi kommandot float(%pi/2) Maxima svarar 1.570796326794897 Alternativt (prova gärna det) kan du skriva in π/2 på inmatningsraden och sedan trycka på knappen Till decimaltal nere till höger. 2 1.6 Funktionsknappar för algebra Det finns flera kommandon för att skriva om och manipulera uttryck. Vi tar här upp några av de viktigaste. Kommandona motsvaras av funktionsknappar. För att få mera information om ett kommando skriver vi ett frågetecken följt av kommandot på inmatningsraden. Maximas dokumentationssidor på engelska kommer då upp. Utveckla Faktorisera Beräkna skriver ett uttryck som en summa av produkter. faktoriserar ett uttryck i reella faktorer. Om uttrycket är ett heltal fås en uppdelning i primfaktorer. förenklar rationella uttryck och funktioner som har rationella uttryck som argument. 10 Datoralgebrasystemet Maxima Exempel 1.3. (a) För att utveckla uttrycket (5x + 4)2 skriver vi (5*x + 4)^2 på inmatningsraden och klickar på funktionsknappen Utveckla (se figur 1.2). Vi får då följande utskrift på skärmen 25 x2 + 40 x + 16 (b) Uttrycket x3 + 2x2 + x faktoriseras genom att skriva x^3+2*x^2+x och klicka på funktionsknappen Faktorisera. Maxima svarar med att skriva ut x (x + 1) 2 (c) Heltal kan enkelt primtalsfaktoriseras. För att få 138 som produkt av primtal skriver vi 138 och klickar igen på knappen Faktorisera. Vi får i retur 2 · 3 · 23 (d) Vi har uttrycket x 1 2 + − . 3x + 9 x2 − 9 2x − 6 För att skriva uttrycket på gemensam nämnare skriver vi 2/(3*x+9) + x/(x^2-9) - 1/(2*x-6) på inmatningsraden och trycker sedan på funktionsknappen Beräkna. Maxima svarar 7 6 x + 18 Funktionsknappen Beräkna kan också användas för att förenkla andra typer av uttryck. 2 1.7 Funktioner 11 Skriv in uttrycket Tryck på knappen utvidga Figur 1.2: För att utveckla (5x + 4)2 skriver vi uttrycket på inmatningsraden och trycker sedan på knappen Utveckla. 1.7 Funktioner Maxima har ett antal standardfunktioner. Bland annat finns trigonometriska funktioner som arbetar med antingen grader eller radianer. Notationen för standardfunktioner liknar den som vi finner på miniräknare. abs(x) sqrt(x) exp(x) ln(x) sin(x) cos(x) tan(x) cot(x) asin(x) acos(x) atan(x) ger ger ger ger ger ger ger ger ger ger ger absolutbeloppet √ |x|. kvadratroten x. exponentialfunktionen ex . naturliga logaritmen ln(x). sin(x) där x måste vara i radianer. cos(x) där x måste vara i radianer. tan(x) där x måste vara i radianer. cot(x) där x måste vara i radianer. arcsin(x). arccos(x). arctan(x). Trigonometriska funktioner som arbetar med grader skrivs med inledande stor bokstav. Till exempel ger Sin(x) sinusvärdet då x ges i grader. Vi 12 Datoralgebrasystemet Maxima återkommer till en del av dessa funktioner i de följande avsnitten. Förutom alla räkneregler som gäller för funktionerna √ så känner Maxima även till speciella värden som exempelvis sin(π/4) = 1/ 2 och så vidare. Vi kan även införa egna funktioner i Maxima och räkna med dessa som vi är vana vid. Detta görs med :=. Exempel 1.4. (a) Om vi till exempel skriver sin(%pi/4) får vi 1 √ 2 (b) För att beräkna sinusvärdet av 30 grader skriver vi funktionen med stor bokstav Sin(30) och får resultatet 1 2 (c) Talet e ≈ 2.71828 ges i Maxima av %e. Då vi skriver ln(%e) blir svaret 1 (d) Vi drar roten ur x2 genom att skriva sqrt(x^2) Svarsutskriften blir |x| Fundera på varför svaret inte blir x? √ Exempel 1.5. Vi inför funktionen f (x) = x x genom f(x) := x*sqrt(x) För att beräkna funktionsvärdet för x = 12 skriver vi 2 1.8 Insättning av värden i uttryck 13 f(12) och får resultatet √ 24 3 Funktioner f (x) införda på ovanstående sätt kan deriveras och integreras genom att skriva f(x) och sedan klicka på knapparna för derivation och integration (se vidare avsnitt 1.10). 2 1.8 Insättning av värden i uttryck För att sätta in ett värde på en variabel i en funktion eller ett uttryck skriver vi uttrycket följt av variabelns värde. Om vi vill sätta in ett värde som kommer från någon tidigare beräkning kan vi klippa ut värdet med Ctrl-c och klistra in det med Crtl-v. Vi tar några exempel för att visa hur det går till. Exempel 1.6. (a) För att sätta in värdet x = 1 i funktionsuttrycket f (x) = x2 + 3x − 1 ger vi kommandot x^2+3*x-1, x=1 och får svaret 3. (b) Vi har ett sinusuttryck a sin(bx) och vill veta värdet då b = 3 och x = 90o . Uppgiften löses med (observera stort s) a*Sin(b*x), b=3, x=90 och vi får svaret −a. (c) För att sätta in a = 5, b = 3 och x = π/4 radianer skriver vi (observera litet s) a*sin(b*x), a=5, b=3, x=%pi/4 Maxima svarar 5 √ 2 1.9 2 Grafer Det finns flera kommandon med vars hjälp vi kan rita grafer i både 2D- och 3D. För att rita en vanlig graf i två dimensioner går vi in i rullgardinsmenyn 14 Datoralgebrasystemet Maxima Figur 1.3: För att rita grafen skriver vi in funktionsuttrycket och gränserna. Genom att klicka på knappen Varianter kan vi plotta punktdiagram. Grafer och väljer Graf 2D. En inmatningsruta liknande den i figur 1.3 kommer då upp. Vi skriver in vårt funktionsuttryck tillsammans med gränserna i x-led och trycker på OK varvid vi får upp ett fönster med grafen. Genom att klicka på knappen Varianter i inmatningsrutan får vi möjlighet att plotta punktdiagram. Om du ändrar formatet från gnuplot till intern, så dirigeras utskriften av grafen om. Prova detta! Exempel 1.7. (a) Vi ska rita grafen till funktionen f (x) = sin x för 0 < x < 2π och börjar med att gå in i rullgardinsmenyn Grafer och välja Graf 2D så att inmatningsrutan kommer upp. Vi skriver in vårt funktionsuttryck sin(x) och matar in intervallgränserna 0 och 2π (skrivs som 2*%pi). När detta är gjort trycker vi på OK varvid grafen till vänster i figur 4 kommer upp. Notera att vi kan rita flera grafer samtidigt om vi bara matar in motsvarande funktioner omgivna av hakparentes och separerade med komma. Till exempel ger [sin(x),cos(x)] grafen för både sin x och cos x. (b) Vi kan själv definiera skalan i y-led. Då vi matar in funktionen 1/(x-2)^2 och låter x och y gå från −1 till 5, respektive från −5 till 15 får vi grafen till höger i figur 1.4. 2 15 1 15 0.5 10 1/(x-2)^2 sin(x) 1.10 Matematisk analys 0 5 -0.5 0 -1 -5 0 1 2 3 x 4 5 6 -1 0 1 2 x 3 4 5 Figur 1.4: Funktionerna y = sin x och y = 1/(x − 2)2 . I grafen till höger har vi själv valt begränsningarna i y-led. 1.10 Matematisk analys I det här avsnittet skall vi titta på optionerna under rullgardinsmenyn Infinitesimalkalkyl. Dessa optioner är: Integrera Derivera Finn gränsvärde Beräkna summan Polynomdivision Partialbråksuppdelning Regression integrera en funktion. derivera en funktion. bestäm gränsvärdet. beräkna summan. dividera två polynom. dela upp en rationell funktion i partialbråk. anpassa funktion till datapunkter. Exempel 1.8. Vi ska beräkna integralen Z 3 xe2x dx. 0 Vi går in i menyn Infinitesimalkalkyl och väljer Integrera. Ett fönster liknande det i figur 1.5 kommer då upp. Vi skriver in integranden xe2x , klickar i rutan för bestämda integraler och skriver in integrationsgränserna 0 och 3. Då vi klickar på OK skriver Maxima ut 1 5 e6 + 4 4 Om vi inte anger några integrationsgränser får vi den obestämda integralen (primitiva funktionen). Notera att vi även kan beräkna integraler numeriskt genom att markera rutan Numerisk integration. 2 16 Datoralgebrasystemet Maxima Figur 1.5: För att integrera en funktion matar vi in integranden, klickar på rutan Bestämda Integraler och ger integrationsgränserna. Om vi inte anger några integrationsgränser får vi den primitiva funktionen. Exempel 1.9. Maxima kan beräkna gränsvärde antingen då x går mot oändligheten eller då x får mot en punkt. För att beräkna gränsvärdet av f (x) = sin(x)/x då x går mot 0 väljer vi Finn gränsvärde och får upp ett fönster som det i figur 1.6. Vi skriver in funktionen sin(x)/x och punkten mot vilken x närmar sig och trycker på OK. Maxima beräknar gränsvärdet som i detta fall är 1. 2 Figur 1.6: Inmatningsruta för gränsvärde. Vi kan bestämma gränsvärde då x går mot en punkt eller då x går mot oändligheten. Exempel 1.10. Vi ska beräkna derivatan av funktionen f (t) = sin(t) . t 1.10 Matematisk analys Vi går in i menyn Infinitesimalkalkyl och väljer Derivera. Ett fönster liknande det i figur 1.7 kommer då upp. Vi skriver in integranden sin(t)/t, ändrar till variabeln t (vi ska derivera med avseende på t i detta fall) och klickar på OK. Vi får svaret cos (t) sin (t) − t t2 Vi kan sätta derivatan på gemensam nämnaren genom att klicka på knappen förenkla. För att derivera två gånger skriver vi 2 på raden gånger. 2 Figur 1.7: Inmatningsruta för derivering. Notera att vi har ändrat derivationsvariabeln till t. För att beräkna andraderivatan ändrar vi till 2 på raden gånger. Exempel 1.11. (a) Låt oss anta att vi vill summera alla tresiffriga tal som är delbara med talet sju (7). Det innebär att ett sådant tal går att skriva som 7k och att vi startar med det första tresiffriga talet som är delbart med 7, det vill säga 105. Då måste startvärdet för k vara 15. Det högsta tresiffriga talet som är delbart med sju är 994, vilket motsvarar ett värde på k = 142. För att beräkna summan klickar vi på Beräkna summa och får upp ett fönster som det i figur 1.8. Vi skriver in summationsuttrycket 7k och gränserna och trycker på OK. Maxima returnerar svaret 70336. (b) Vi ska beräkna den oändliga summan ∞ X 1 1 1 1 = 2 + 2 + 2 ... k2 1 2 3 k=1 I inmatningsfälten för Beräkna summa skriver vi 1/k 2 samt gränserna 1 och ∞ (inf) och klickar på OK. Maxima returnerar svaret π 2 /6. Testa gärna några fler summor. 2. 17 18 Datoralgebrasystemet Maxima Figur 1.8: Inmatningsruta för summation. Exempel 1.12. Vi kan dividera polynom på samma sätt som heltal. För att utföra divisionen x2 − 1 x+2 klickar vi på Polynomdivision och inmatningsrutan i figur 1.9 kommer upp. Vi skriver in polynomen och klickar på OK. Vi får svaret [x − 2, 3] Det första elementet x − 2 är kvoten och det andra elementet 3 är resten. Vi har alltså x2 − 1 3 =x−2+ x+2 x+2 Kontrollera gärna svaret genom att sätta på gemensam nämnare. Notera att vi även kan skriva in och dividera två heltal t.ex. 13/4. Också i detta fallet ger Maxima kvoten och resten. Testa detta. 2 Figur 1.9: Polynom kan divideras på samma sätt som heltal. 1.10 Matematisk analys 19 Exempel 1.13. Rationella funktioner där nämnaren är en faktor kan skrivas som ett partialbråk. Funktionen −x (x + 1)2 (x + 2) partialbråksuppdelas genom att klicka på Partialbråksuppdelning. Rutan i figur 1.10 kommer upp och vi matar in -x/((x+1)^2*(x+2)) och trycker på OK. Resultatet blir 2 2 1 − + x + 2 x + 1 (x + 1)2 Kontrollera även i detta fallet gärna svaret genom att sätta högerledet på gemensam nämnare. 2 Figur 1.10: Rationella funktioner kan uppdelas i partialbråk. Exempel 1.14. En mycket viktig uppgift i tillämpad matematik är att anpassa ett funktionsuttryck till ett antal experimentella datapunkter som kan vara behäftade med osäkerhet. Denna typen av anpassningar brukar gå under namnet regression. Vilken typ av funktion som skall anpassas beror av data och de underliggande processerna. Vi har följande data: x y 0 0 1 1 2 5 3 8 4 15 För att anpassa ett andragradspolynom till data går vi in i menyn Infinitesimalkalkyl och klicka på optionen Regression. Rutan i figur 1.11 kommer fram. Vi matar in våra x- och y-värden. Sedan klickar vi på pilen till höger på raden anpassa till: och väljer ett andragradspolynom (där finns också en mängd andra funktioner att välja mellan). 20 Datoralgebrasystemet Maxima Figur 1.11: Anpassning av funktion till data (regression). Då vi klickar på OK bestämmer Maxima det andragradspolynom som bäst ansluter till våra datavärden. Detta polynom plottas tillsammans med data och vi får fram figur 1.12. 2 16 y = 0.786x^2 +0.557x -0.0286 14 12 10 8 6 4 2 0 -2 0 0.5 1 1.5 2 x 2.5 3 3.5 4 Figur 1.12: Anpassat andragradspolynom tillsammans med datapunkter. 1.11 Ekvationer och nollställen Att bestämma nollställen och lösa ekvationer är viktiga moment i grundskolans och gymnasiets matematikundervisning. Under rullgardinsmenyn Ekvationer finns flera optioner för detta. Lös ekvation Lös linjärt system Nollställen lös ekvation. lös system av ekvationer. bestäm nollställen till en funktion. Under rullgardinsmenyn Ekvationer finns även kommandon för att lösa differentialekvationer. Vi kommer till detta i ett separat avsnitt längre fram. 1.11 Ekvationer och nollställen Exempel 1.15. För att lösa ekvationen 2e−kt = 1 med avseende på t klickar vi på optionen Lös ekvation. Fönstret i figur 1.13 kommer upp. Vi skriver in ekvationen och den variabel med avseende på vilken vi ska lösa ekvationen och klickar på OK. Maxima returnerar svaret log 2 t= k Med hjälp av Maxima kan vi även lätt kontrollera att lösningen är rätt, dvs att den verkligen uppfyller ekvationen. 2 Figur 1.13: Skriv in ekvation och lösningsvariabel. Exempel 1.16. Maxima är bra på att lösa trigonometriska ekvationer. Vi kan få lösningen i både grader eller radianer beroende på om vi använder triginometriska funktioner som börjar med stor eller liten bokstav. Som ett exempel ska vi lösa sin(x) = 1/2 och matar in ekvationen och variabeln i lösningsfönstret och klickar på OK. Svaret blir [x = 360 n + 30, x = 360 n + 150] Här skall vi tolka n som ett godtyckligt heltal, dvs vi får lösningen med korrekt periodicitet. 2 Exempel 1.17. För att lösa ekvationssystemet 2x + 3y = 3 3x − 4y = 1 med avseende på x och y klickar vi på optionen Lös linjärt system. Vi får upp ett fönster där vi skall ange antalet ekvationer. Vi skriver in att det är två ekvationer och klickar på OK. Fönstret i figur 1.14 kommer upp och vi skriver in ekvationerna och lösningsvariablerna x och y och klickar på OK. Maxima svarar 15 7 [[x = ,y = ]] 17 17 I exemplet har vi lika många ekvationer som obekanta. Maxima klarar även att lösa underbestämda system, där vi har fler variabler än ekvationer. 2 21 22 Datoralgebrasystemet Maxima Figur 1.14: Mata in ekvationerna och lösningsvariablerna. Exempel 1.18. Vi har funktionen f (x) = x3 +2 x2 −x−2. För att bestämma nollställena till funktionen klickar vi på Nollpunkter. Ett fönster liknande det i figur 1.15 kommer upp. Vi matar in funktionsuttrycket och variabeln, x och trycker på OK. Maxima ger svaret [x = −2, x = −1, x = 1] 2 Figur 1.15: Mata in funktionsuttrycket och variabeln. 1.12 Ordinära differentialekvationer Ordinära differentialekvationer är viktiga i gymnasiets E-kurs. Under rullgardinsmenyn Ekvationer finns optionen Lös ODE med vars hjälp vi kan lösa både första- och andra ordningens ordinära differentialekvationer. Under rullgardinsmenyn Grafer finns optionen Riktningsfält som plottar ett riktningsfält till en första ordninges ekvation. Lös ODE Riktningsfält lös ordinär differentialekvation. rita riktningsfält. 1.12 Ordinära differentialekvationer Exempel 1.19. För att bestämma den allmänna lösningen till differentialekvationen y 0 + y = te−t går vi in i rullgardinsmenyn Ekvationer och klickar på Lös ODE. Fönstret i figur 1.16 kommer fram. Vi matar in ekvationen och skriver in att den beroende variabeln är y medan den oberoende är t. Då detta är klart klickar vi på OK och Maxima svarar 2 t y= + %c e−t 2 Här är %c en godtycklig konstant. För att bestämma den lösning som uppfyller y(2) = 5 skriver vi in ekvationen på samma sätt som tidigare, bockar för rutan Startvärde och skriver in t = 2 och y = 5. Då vi klickar på OK får vi svaret t2 + 10 e2 − 4 e−t y= 2 2 Figur 1.16: Mata in ekvationen och den beroende och oberoende variabeln. I de fall vi ska lösa ett begynnelsevärdesproblem klickar vi även i rutan Startvärde och fyller i dessa. 23 24 Datoralgebrasystemet Maxima Exempel 1.20. Vi går vidare och tittar på andra ordningens differentialekvationer. För att få en entydig lösning behöver vi nu lägga på två villkor. För att bestämma lösningen till differentialekvationen y 00 + 3y 0 + y = sin x som uppfyller vilkoret y(0) = 0 och y 0 (0) = 1 går vi in i rullgardinsmenyn Ekvationer och klickar på Lös ODE. Fönstret i figur 1.17 kommer fram och vi matar in ekvationen. Vi markerar rutan Startvärde och skriver in x = 0 och y = 0. Efter det markerar vi rutan Extra initialvärde och matar in att förstaderivatan är 1. Alla inmatningar är nu klara och vi klickar på OK. Maxima skriver ut lösningen 9 cos (x) + y=− 3 √ √ (√5−3) x (−√5−3) x 2 9 5−5 e 5+5 e 2 − 30 30 Figur 1.17: Mata in ekvation, variabler och startvärden. 2 1.12 Ordinära differentialekvationer Riktningsfält Differentialekvationer av första ordningen y 0 = f (x, y) har en enkel geometrisk tolkning. Derivatan y 0 ger riktningskoefficienten för lösningen genom punkten (x, y). Via likheten y 0 = f (x, y) associerar därmed funktionen f (x, y) en riktning till varje punkt i xy-planet. Om riktningen markeras med en liten pil får vi det så kallade riktningsfältet. Genom att följa pilarna i riktningsfältet är det ofta möjligt att få en kvalitativ uppfattning om lösningarna till differentialekvationen. Exempel 1.21. Vi har en differentialekvation y 0 = sin(x) √ y. För att rita riktningsfältet i området [0, 4] × [0, 10] går vi in i rullgardinsmenyn Grafer och väljer Riktningsfält. Fönstret i figur 1.18 kommer fram. √ Vi skriver in högerledet sin(x) y samt gränserna i x och y. Notera att endast variablerna x och y tillåtna då vi ritar riktningsfält. Då vi klickar på OK ritas riktningsfältet upp. Då vi klickar på en punkt i riktningsfältet ritas lösningskurvan genom denna punkt (se figur 1.19). Figur 1.18: Mata in högerled och begränsningar i x- och y-led. 25 26 Datoralgebrasystemet Maxima 7.5 5 2.5 0 0 1 2 3 4 √ Figur 1.19: Riktningsfält till ekvationen y 0 = sin(x) y. I figuren har vi även ritat in den numeriska lösningen genom punkten (0, 2). 1.13 Vektorgeometri Optionerna under rullgardinsmenyn Algebra är relaterade till vektorgeometri. Längden av en vektor Vinkel mellan vektorer Plan genom tre punkter Skalärprodukt Kryssprodukt ger längden av en vektor. ger vinkeln i grader mellan två vektorer. bestämmer ekvationen för ett plan genom tre punkter. beräknar skalärprodukten av två vektorer. beräknar kryssprodukten mellan två vektorer. Exempel 1.22. För att beräkna längden av vektorn v = (1, 2, 1) klickar vi på Längden av en vektor så att fönstret i figur 1.20 kommer fram. Vi matar in vektorn√(obs inga parenteser runt) och trycker på OK. Vi får att vektorns längd är 6. Notera att vi även kan beräkna längden av tvådimensionella vektorer. 2 1.13 Vektorgeometri Figur 1.20: Längd av vektor. Elementen i vektorn matas in utan parentes. Exempel 1.23. Vi ska beräkna vinkeln i grader mellan vektorerna v = (0, 1) och u = (1, 1) och klickar på Vinkel mellan vektorer så att fönstret i figur 1.21 kommer fram. Vi matar in vektorerna och trycker på OK. Vi får att vinkeln 45.0 grader. Vi kan även göra beräkningen för tredimensionella vektorer. 2 Figur 1.21: Vinkel mellan två vektorer. Elementen matas in utan parenteser. Exempel 1.24. För att bestämma ekvationen för planet genom de tre punkterna (1, 0, 0), 0, 1, 0) och (0, 0, 1) klickar vi på Plan genom tre punkter. Fönstret i figur 1.22 kommer fram och vi matar in punkterna och trycker på OK. Maxima skriver ut planets ekvation z = −y − x + 1 2 Figur 1.22: Ekvationen för ett plan genom tre punkter. 27 28 Datoralgebrasystemet Maxima Exempel 1.25. Vi har två vektorer u = (1, 1, 1) och v = (2, 1, 1). För att bestämma skalärprodukten u · v klickar vi på Skalärprodukt. Fönstret i figur 1.23 kommer fram och vi matar in de två vektorerna och trycker på OK. Vi får att skalärprodukten är 4. Skalärprodukt kan beräknas för både två- och tredimensionella vektorer. 2 Figur 1.23: Beräkning av skalärprodukt mellan två vektorer. Exempel 1.26. Kryssprodukten av u × v två tredimensionella vektorer u och v är en ny vektor som är vinkelrät mot både u och v. Längden av den nya vektorn är lika med arean av parallellogramen som spänns upp av u och v. Vi har två vektorer u = (1, 1, 0) och v = (2, 1, 3). För att bestämma kryssprodukten u×v klickar vi på Kryssprodukt. Fönstret i figur 1.24 kommer fram och vi matar in de två vektorerna och trycker på OK. Maxima skriver 2 ut kryssprodukten som är [3, −3, −1]. Figur 1.24: Kryssprodukt mellan två vektorer. 1.14 Vektorer, linjer och plan i 3-dimensioner Vi kan rita vektorer, linjer, plan och ytor i 3-dimensioner. För att göra detta klickar vi på rullgardinsmenyn Grafer och väljer 3D Geometri. En inmatningsruta som den i figur 1.25 kommer då upp. I den första delen av inmatningsrutan kan vi definiera ett antal punkter. I den andra delen av inmatningsrutan för vi möjlighet att rita segment eller vektorer mellan kombinationer av punkter. Ytterligare lite längre ned får vi möjlighet att rita en 1.14 Vektorer, linjer och plan i 3-dimensioner sfär eller olika ytor. Exempel på ytor kan vara plan givna i affin form. Allra längst ned kan vi ändra skalningen på axlarna. Vi rekommenderar dig att alltid ha samma skalning på de tre axlarna. Figur 1.25: Inmatningsfönstret till 3D Geometri. Vi kan definiera ett antal punkter och rita vektoremellan dessa. Vi kan även plotta en eller flera ytor. Exempel 1.27. Vi har tre punkter O : (0, 0, 0), A : (0, 1, 1), B : (1, −1, 0) och −→ −→ −→ ska rita vektorerna OA, AB, OB. Vi börjar med att mata in punkterna O, A, B i inmatningsrutan som hör till optionen 3D Geometri. Därefter markerar vi att vi vill rita en vektor mellan O och A, en mellan A och B och slutligen en mellan O och B. Gränserna för x, y och z låter vi vara mellan −5 och 5 (defaultvärden). Alla inmatningar är nu klara och då vi trycker på OK får vi upp figur 1.26. 2 29 30 Datoralgebrasystemet Maxima A a 1 0.8 b 0.6 0.4 O 0.2 0 c 1 0.5 B 0 0.2 0 0.4 0.6 -0.5 0.8 1 -1 Figur 1.26: Illustration av vektoraddition. Exempel 1.28. För att rita planen x + y + z = 1 och x − y − z = 0 i samma figur klickar vi på optionen 3D Geometri så att vi får upp inmatningsrutan. Vi skriver nu in x + y + z = 1 och x - y - z = 0 på raden för Ekvation 1 respektive Ekvation 2, och låter variablerna x och y löpa mellan −2 och 2. När inmatningarna är klara trycker vi på OK varvid figur 1.27 kommer upp. 2 1.15 Sannolikhetslära I det här avsnittet skall vi titta på optionerna under rullgardinsmenyn Sannolikhetslära. Dessa optioner är: Binomialkoefficient Hypergeometrisk fördelning Binomialfördelning Normalfördelning Invers normalfördelning Att beräkna binomialkoefficienter. En diskret sannolikhetsfördelning. En diskret sannolikhetsfördelning. Normalfördelningen. Den inversa normalfördelningen. 1.15 Sannolikhetslära 31 4 2 0 -2 -4 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 Figur 1.27: Två skärande plan. Exempel 1.29. Verktyget binomialkoefficient räknar helt enkelt ut binomialkoefficienten för ett viss förlopp. Antag att vi vill undersöka på hur många sätt som vi kan välja ut ett fem spelare till ett lag utifrån elva tillgängliga spelare. Vi klickar på Sannolikhetslära och väljer Binomialkoefficient ... n över k samt skriver in våra värden enligt figur 1.28. Då vi klickar på OK returnerar Maxima svaret 462. 2 Figur 1.28: Beräkning av Binomialkoefficienter i Maxima. Exempel 1.30. Vi gör en gallupundersökning bland gymnasister i en storstad. Vi vet att cirka 20 % av dessa skolelever är rökare och frågar ett slumpvist utvalt antal om 500 elever om de röker. Hur stor är sannolikheten att precis 100 elever svarar Ja? Detta går att testa med en binomial fördelning. Välj Binomial fördelning och figur 1.29 kommer upp. Mata in antal dragningar, sannolikhet för träff samt antal träffar. Tryck på OK och vi får att sannolikheten att precis 100 elever svarar Ja på frågan till 0.0446, dvs ganska låg sannolikhet. Med de andra optionerna i rutan kan vi även besvara frågor som hur sannolikt är det att vi får mindre än 100 Ja svar eller mer än 100 Ja svar. 32 Datoralgebrasystemet Maxima Figur 1.29: Hur stor är sannolikheten att precis 100 svarar Ja? Vi kan även ta reda på sannolikheten att få mellan till exempel 80 och 120 Ja svar. Prova gärna de olika optionerna. 2 Exempel 1.31. Den så kallade hypergeometriska fördelningen är det tredje verktyget under Sannolikhetslära. Det är en diskret sannolikhetsfördelning, som beskriver dragning utan återläggningmed två sorters objekt. Vi har en urna med 30 röda och 20 blå kulor. Vi drar slumpmässigt 8 kulor utan att titta på dem. För att bestämma sannolikheten att det är 5 röda och 3 blå kulor med bland de 8 klickar vi på Hypergeometrisk fördelning så att ett fönster som det i figur 1.30 kommer upp. Vi matar in antalet röda kulor (typ 1) och blå kulor (typ 2) samt antalet kulor som skall dras. Antalet dragningar av röda kulor (typ 1) är 5. Alla inmatningar är nu klara och då vi trycker på OK ger Maxima sannolikheten som är 0.30259. Precis som i det tidigare exemplet finns där olika optioner du kan prova. 2 Figur 1.30: Hur stor är sannolikheten att det är 5 röda och 3 blå kulor med bland de 8 som dras? 1.16 Arbetsblad 33 Exempel 1.32. Normalfördelningen är mycket vanlig och många fenomen i naturen följer denna fördelning (se figur 1.31). Med hjälp av optionen Normalfördelning kan vi definiera en normalfördelning med ett givet väntevärde µ och standardavvikelse σ samt få fram sannolikheten för att ett värde faller i ett intervall som vi anger. Om vi matar in väntevärdet µ = 0, standardavvikelsen σ = 1 samt intervallgränserna −1 och 1 får vi sannolikheten till 0.6827. 2 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 −3 −2 −1 0 1 2 3 Figur 1.31: Normalfördelning med µ = 0 och σ = 1. Sannolikheten att värdena faller i det markerade intervallet från −1 till 1 är 0.6827. 1.16 Arbetsblad Maxima tillåter att vi skapar arbetsblad (notebook) där vi kan skriva in kommentarer i direkt anslutning till givna kommandon och beräkningar (se figur 1.1). Arbetsbladet med kommentarer och kommandon kan sparas till fil. Filen kan läsas in vid ett senare tillfälle och den kan också skickas över till andra som på detta sättet kan ta del av det vi har gjort. Detta är ett mycket effektivt sätt att kommunicera matematik. För att skriva rubrik och kommentarer i arbetsbladet går vi upp i menyraden och klickar på Redigera och väljer Infoga. Klicka sedan på Text och skriv in kommentarerna (det går även bra att skriva rubrik och titel). Arbetsbladet sparas genom att gå upp i menyraden, klicka på Arkiv och Spara som. Det kommer då upp en ruta där vi ska ange filnamnet följt av extensionen .wxm. Vi ska även ange katalogen i vilken filen skall sparas. Den sparade filen kan öppnas med en vanlig editor, till exempel Anteckningar som hör till Windows. Filen med arbetsbladet kan läsas in i Maxima vid ett senare tillfälle genom att gå upp i menyraden, klicka på Arkiv, välja Öppna 34 Datoralgebrasystemet Maxima och ange katalog och filnamn. Vid inläsningen skrivs alla kommentarer ut och alla kommandon exekveras i den ordning de gavs så att vi kan fortsätta arbetet där vi sist slutade. Hur vi skapar och sparar arbetsblad visas i en video på bokens hemsida. 1.17 Vidare läsning och länkar Här kommer några referenser för den som vill läsa vidare om datoralgebrasystem Josef Böhm, m.fl, The Case for CAS, T3 Europe (2004), ISBN 3-934064-45-0 Laddas ner från www.t3ww.com/pdf/TheCaseforCAS.pdf [hämtat 20070201] Boken argumenterar för fördelarna med ett symbolhanterande arbetssätt i skolan och ger exempel på uppgifter och prov från lärare i olika länder. Per Jönsson, Matematik med datoralgebrasystem, Studentlitteratur (2008), ISBN 978-91-44-05250-2 Boken går systematiskt igenom Maximas olika kommandon och tillämpar dessa inom algebra och analys. Boken innehåller ett stort antal övningar med fullständig lösning och lämpar sig väl för självstudier. Gilberto E. Urroz, Maxima Book Laddas ner från http://www.neng.usu.edu/cee/faculty/gurro/Maxima.html En komplett och mycket läsbar beskrivning av den fulla versionen av Maxima. Didaktisk litteraturxxxx 1.18 Övningar