Eulers stegmetod
- numerisk lösning av differentialekvationer
Villkor
För att en differentialekvation ska kunna lösas med Eulers stegmetod måste den vara skriven på formen
y' = f(x,y)
Det vill säga ett uttryck som talar om hur man beräknar y' i en punkt, när man vet punktens koordinater x och y. Man måste även ha en startpunkt (x0, y0) att börja i samt bestämma sig för hur stora steg, dx, man vill ta. (Ju större steg desto snabbare når du målet, men det blir även större fel.)
Instruktioner
Du använder denna applet på följande sätt:
- Välj en av de angivna differentialekvationerna från listan. Eller hitta på en
alldeles egen som du skriver in i textfältet. Se nedan hur du skriver in uttryck.
Du kan lägga till en ekvation från textfältet till listan genom att klicka på plus-knappen. - Se till att du ställt in startpunkten (x0, y0) och steglängden dx.
- Klicka på Reset för att tala om att du vill börja från början.
- Stega dig nu fram med Next step och se hur lösningskurvan
ritas.
För varje steg beräknas ett nytt y' och med hjälp av det ett nytt y-värde.
Du kan ställa in vilken del av koordinatsystemet som visas genom att klicka på Set coords.
Syntax för uttryck
Programmet följer de vanliga reglerna för i vilken ordning räkneoperatioern ska utföras.
För decimaltal används punkt som decimaltecken.
Du kan använda följande symboler och funktioner i de uttryck du matar in:
| + | för addition. |
|---|---|
| - | för subtraktion och negativa tal. |
| * | för multiplikation. |
| / | för division. |
| ^ eller ** |
för upphöjt till. (^ fungerar inte på alla system, använd ** istället. 2**3 är alltså detsamma som 23.) |
| ( och ) | för att kunna skapa mer sammansatta uttryck. |
| pi | |
| sqrt(x) | roten ur x, (x>=0). |
| sin(x) | sinus för x, (x i radianer). |
| cos(x) | cosinus för x, (x i radianer). |
| tan(x) | tangens för x, (x i radianer). |
| asin(x) | arcussinus för x, (-1<x<1 och svaret i intervallet
[- |
| acos(x) | arcuscosinus för x, (-1<x<1 och svaret i
intervallet [0, |
| atan(x) | arcustangens för x. |
| exp(x) | ex, (e = 2.718...). |
| log(x) | naturliga logaritmen för x, (x>0). |
MathParser.java
För att kunna tolka och beräkna sådana här inmatade matematiska uttryck i ett program
behöver man en "parser".
Om någon matar in 2+3*5 i ett textfält vill jag i programmet kunna spara talet 17 i en
variabel. Vill jag dessutom kunna använda funktioner och mer komplexa uttryck blir det
jobbigt att programmera.
Som tur är finns det folk som redan gjort detta. I mina matteappletar använder jag en
parser som skrivits av Ari Y.
Benbasat.
Du
kan ladda ner den härifrån.