Några lösta Geogebra-exempel
Enkla formler
Säg att vi vill beräkna den kinetiska energin E = mv2/2
som funktion av massan m = 1.244 kg och hastigheten v = 34.77 m/s. Det
kan då vara bekvämt att införa variablerna m och v och definiera E i
termer av dessa variabler. Följande tre steg krävs:
- m = 1.244
- v = 34.77
- E = m v^2 / 2
Man kan då enkelt ändra på m och v och få det nya värdet uträknat.
Dessutom ser man hur E beror på m och v istället för att ha ett anonymt
E = 751.97. Här är Geogebra-koden i form av ggb-filen ex1.ggb.
En enkel differentialekvation
Vi vill lösa differentialekvationen:
w'(t) = sin(t w(t)), w(0) = 3 där t ligger i intervallet (0, 5)
För
att lösa problemet får vi byta beteckningar, w(t) får bli y(x), annars
klagar Geogebra. Med nya beteckningar kan problemet skrivas:
y'(x) = sin(x y(x)), y(0) = 3.
Normalt skriver man inte ut x, så y' = sin(x y), y(0) = 3.
Vi löser problemet approximativt med LösODE-kommandot. CAS-delen kan inte
lösa detta problem och i denna kurs har du väldigt liten användning av
CAS. Så, man skriver följande kommando i inmatningsfältet:
LösODE[sin(x y), 0, 3, 5, 0.1]
sin(x
y) är högerledet i differentialekvationen, 0 är begynnelsetiden, 3 är
begynnelsevärdet, 5 är sluttiden och 0.1 är avståndet mellan de
tidpunkter där vi vill approximera lösningen.
Ett annat sätt att
som kan vara bekvämare, speciellt när man har system av ekvationer, är
att införa en funktion för högerledet. Så här:
f(x, y) = sin(x y)
LösODE[f, 0, 3, 5, 0.1]
Denna variant hittar du på filen ex2.ggb.
Standardformen på ett differentialekvationsproblem kan skrivas:
y' = f(x, y), y(x0) = y0
där begynnelsevillkoret, y(x0) = y0, innehåller begynnelsetid x0 och begynnelsevärde y0. Vi behöver också en sluttid.
Ett lite mer komplicerat system
Jag
har tagit exempel (8.4) sid 198-199 i läroboken. n1 och n2 är
funktioner av t. Även a1 och a2 är funktioner av t. Vi har systemet
(där jag skrivit ut tidsberoendet) och där jag inte har utnyttjat sub-
och superscript.
n1'(t) = n1(t) (a1(t) - (b1 - c1) n2(t) - c1 (n1(t) + n2(t)))
n2'(t) = n2(t) (-a2(t) + b2 n1(t))
a1(t) = a10 + a11 sin (pi t / 6)
a2(t) = a20 - a21 sin(pi t / 6)
där
(se Figure 8.6 nederst på sid 199), a10 = 1, a11 = 0.35, b1 = 1.75E-2,
c1 = 1E-2, a20 = 0.140, a21 = 0.075 och b2 = 1.5E-2. Observera att
1.75E-2 = 1.75×10-2 etc. Vi får börja med att göra ett
namnbyte. Tiden t svarar mot x, n1 mot y och z mot n2. Systemet kan då
skrivas (där jag nu utelämnar x):
y' = y (a1 - (b1 - c1) z - c1 (y + z))
z = z (-a2 + b2 y)
a1(x) = a10 + a11 sin (pi x / 6)
a2(x) = a20 - a21 sin(pi x / 6)
Man
kan i allt väsentligt knappa in värdena direkt i Geogebra. Man får då
börja med konstanterna a10, a11 etc och definierar sedan
funktionerna a1 och a2 som beror på konstanterna. Slutligen definierar
vi högerleden i differentialekvationerna. Så här med andra ord:
- a10 = 1
- a11 = 0.35
- b1 = 1.75E-2
- c1 = 1E-2
- a20 = 0.140
- a21 = 0.075
- b2 = 1.5E-2
- a1(x) = a10 + a11 sin(pi x / 6)
- a2(x) = a20 - a21 sin(pi x / 6)
- f(x, y, z) = y (a1(x) - (b1 - c1) z - c1 (y + z))
- g(x, y, z) = z (-a2(x) + b2 y)
- y0 = 0.5
- z0 = 0.5
- NSolveODE[{f, g}, 0, {y0, z0}, 50]
Några
kommentarer. Det underlättar felsökning om man använder variabler
enligt ovan, istället för att räkna ut värden som b1 - c2, pi / 6
separat. Det gör det dessutom bekvämt att ändra på en konstant.
I
punkt 8 och 9 ritas kurvorna ut, det vill vi inte så vi högerklickar i
Algebrafönstret på uttrycken och väljer Visa Objekt. I 10 och 11 måste
man skriva a1(x) respektive a2(x). Begynnelsevärdena, punkt 12 och 13,
står i figurtexten. Sluttiden 50 framgår av figuren. Om man vill se
alla decimaler i konstanterna får man sätta om antalet visade decimaler
eller antalet gällande siffror (menyn Inställningar,Antal decimaler).
Du hittar lösningen på filen ex3.ggb. Att lösa detta system tar lite tid, eftersom lösningskurvorna svänger en del.