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:
  1. m = 1.244
  2. v = 34.77
  3. 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:

  1. a10 = 1
  2. a11 = 0.35
  3. b1 = 1.75E-2
  4. c1 = 1E-2
  5. a20 = 0.140
  6. a21 = 0.075
  7. b2 = 1.5E-2
  8. a1(x) = a10 + a11 sin(pi x / 6)
  9. a2(x) = a20 - a21 sin(pi x / 6)
  10. f(x, y, z) = y (a1(x) - (b1 - c1) z - c1 (y + z))
  11. g(x, y, z) = z (-a2(x) + b2 y)
  12. y0 = 0.5
  13. z0 = 0.5
  14. 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.