Datoralgebraprogrammet Maxima med

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