(仮称) 十進BASICというプログラミング言語は、気軽に試せる、 1000桁演算モードがある、などの特徴があって、 プログラミング入門用に一時期勧めていました。
REM dampedoscillation.bas REM http://nalab.mind.meiji.ac.jp/~mk/program/ode_prog/dampedoscillation.BAS DEF fx(t,x,y)=a*x+b*y DEF fy(t,x,y)=c*x+d*y LET maxn=1000 DIM x(0 TO maxn),y(0 TO maxn) SUB runge(t0,x0,y0,h,n) LET t=t0 LET x(0)=x0 LET y(0)=y0 PLOT LINES : x(0),y(0); PRINT t,x(0),y(0) FOR j=0 TO n-1 LET k1x=h*fx(t,x(j),y(j)) LET k1y=h*fy(t,x(j),y(j)) LET k2x=h*fx(t+h/2,x(j)+k1x/2,y(j)+k1y/2) LET k2y=h*fy(t+h/2,x(j)+k1x/2,y(j)+k1y/2) LET k3x=h*fx(t+h/2,x(j)+k2x/2,y(j)+k2y/2) LET k3y=h*fy(t+h/2,x(j)+k2x/2,y(j)+k2y/2) LET k4x=h*fx(t+h,x(j)+k3x,y(j)+k3y) LET k4y=h*fy(t+h,x(j)+k3x,y(j)+k3y) LET x(j+1)=x(j)+(k1x+2*k2x+2*k3x+k4x)/6 LET y(j+1)=y(j)+(k1y+2*k2y+2*k3y+k4y)/6 LET t=t+h PLOT LINES : x(j+1),y(j+1); PRINT t,x(j+1),y(j+1) NEXT j PLOT LINES END SUB LET a=0 LET b=1 LET c=-1 LET d=-0.1 SET WINDOW -1,1,-1,1 DRAW grid LET Ts=0 LET Te=100 LET N=1000 LET h=(Te-Ts)/N SET LINE COLOR 2 CALL runge(Ts, 0.7, 0.5, h, N) END