Sharp PC-E500/E500S Technikersoftware

DIFF.132

Runge-Kutta Methode

DIFF.132 (1.376 Bytes)

10 ' RUNGEKUT.132 (Runge-Kutta method)
15 CLEAR
20 MERGE "G:COMN.00$"
30 ON ERROR GOTO *ERR
40 RADIAN :R2$="":P1=0:Q1=P1:Q3=1
50 GOSUB 900
60 PRINT "dy/dx= ";R2$;:IF R2$<>"" PRINT " ";
65 INPUT R2$:IF R2$="" THEN 60
70 IF LEN R2$<29 THEN P3$=R2$:GOTO 90
80 P3$=LEFT$ (R2$,29)+"..."
90 GOSUB 800:PRINT " x0= ";:P1=0:INPUT P1
100 GOSUB 800:PRINT " x0=";P1:PRINT " y0= ";:Q1=0:INPUT Q1
110 GOSUB 800:PRINT " h=";Q3;:INPUT Q3:IF Q3<=0 THEN 110
120 ERASE P1,Q1:DIM P1(50),Q1(50):QI=0:QJ=QI:R2=P1:P3=Q1:GOTO 200
130 GOSUB 800:GOSUB *DPC
140 R2=P1(QI-1):P3=Q1(QI-1):QJ=QI
150 X=R2:Y=P3:P6=EVAL R2$*Q3
160 X=R2+Q3/2:Y=P3+P6/2:Q6=EVAL R2$*Q3:Y=P3+Q6/2:R6=EVAL R2$*Q3
170 X=R2+Q3:Y=P3+R6:P7=EVAL R2$*Q3:R2=R2+Q3:P3=P3+(P6+2*Q6+2*R6+P7)/6
200 P1(QI)=R2:Q1(QI)=P3
210 QY$="="+STR$ P3
220 IF SGN R2<0 THEN Q9$="y("+STR$ R2+") " ELSE Q9$="y("+MID$ (STR$ R2,2,15)+") "
230 GOSUB 800:LOCATE 1,2:PRINT Q9$;QY$
240 Q9=ASC INPUT $(1):IF Q9=28 THEN 50
250 IF QI>0 AND Q9=29 THEN QI=QI-1:R2=P1(QI):P3=Q1(QI):GOTO 210
260 IF Q9<>13 THEN 240
270 IF QI=50 THEN 50
280 QI=QI+1:R2=P1(QI):P3=Q1(QI)
290 IF QI>QJ THEN 130 ELSE 210
800 GOSUB 900:PRINT "dy/dx= ";P3$:RETURN
900 CLS :PRINT "       *  RUNGE-KUTTA METHOD  *":LOCATE 1,1:RETURN
1000 *ERR IF ERL =65 RESUME 60
1010 IF ERL =90 OR ERL =100 OR ERL =110 RESUME ERL
1020 GOSUB 900:GOSUB *DPA:GOSUB *REK:RESUME 50

Generated by (c) Casio FX-850P/FX-880P Notepad 2.02

(c) by mani.becker@web.de - http://blog.manib.bplaced.net