Written by Robert Hodges This program solves differential equations numerically using ; Eulers method Mid-point Euler Improved Euler Runge-Kutta If the differential is a function of both x and y, then it can be solved by; Eulers method Mid-p [XY] Imprv. [XY] Just enter the differential function in terms of X (and Y) into Function Memory 6 and when asked; 1) X, Y, Starting values of x and y (the coordinates) 2) H, The step distance 3) The method to use. "DIFFERENTIAL STUFF" "f6" {f6 denote F-Mem 6 this could "X"? -> X be a program if no F-memories "Y"? -> Y are available} "H"? -> H "UNTILL X="? -> @ "1 EULERS METHOD" "2 MID-POINT EUL" "3 IMPROVED EUL" "4 RUNGE-KUTTA" "5 MID-P EUL [XY]" "6 IMPRV.EUL [XY]" Lbl 1 "WHICH ONE"? -> C 1=C => Goto 2 2=C => Goto 3 3=C => Goto 4 4=C => Goto 5 5=C => Goto 7 6=C => Goto 6 "TRY AGAIN" Goto 1 Lbl 2 Y+H*f6 -> Y X+H -> X X>=@ => Y_ {>= means 'equal to or greater than} Goto 2 {_ means that stoopid triangle on Lbl 3 the prog menu} X -> Z Z+0.5*H -> X Y+H*f6 -> Y Z+H -> X X>=@ => Y_ Goto 3 Lbl 4 X -> Z f6 -> F Z+H -> X Y+H*0.5*(F+f6) -> Y X>=@ => Y_ Goto 4 Lbl 5 X -> Z f6 -> D Z+H/2 -> X f6 -> F Y+H*(D+4E+F)/6 -> Y X>=@ => Y_ Goto 5 Lbl 6 f6 -> D Y -> C Y+H*D -> Y X+H -> X C+0.5H*(D+f6) -> Y X>=@ => Y_ Goto 6 Lbl 7 X -> Z Y -> C f6 -> D Z+0.5H -> X Y+0.5H*D -> Y C+H*f6 -> Y Z+H -> X X>=@ => Y_ Goto 7 There are likely to be mistakes so if you find any, mail me at casio@bayliss.demon.co.uk and I will check the listing.