|
! y=SIN(x) の線積分 L=∫√{1+(dy/dx)^2}dx =∫√(1+cos(x)^2)dx
!
! 解かないまま、その積分曲線を、ルンゲクッタ4で、描く。
!
! L =∫√(1+cos(x)^2) dx
! dL/dx= √(1+cos(x)^2)
!-------------------------------
SET TEXT background "opaque"
SET COLOR MIX(15) .4,.4,.4
SUB Diff( dL,x)
LET dL=SQR(1+COS(x)^2) !dL: (dL/dx) ※この部分を、COS(x), 2*x などに換えると、
END SUB ! その積分 SIN(x), x^2 の曲線が、描ける。
SUB RungeKutta
CALL Diff( dL1,x)
CALL Diff( dL2,x+dx/2)
CALL Diff( dL3,x+dx/2)
CALL Diff( dL4,x+dx)
LET L=L+(dL1 +2*dL2 +2*dL3 +dL4)*dx/6
END SUB
SET WINDOW -2.3, 7, -2, 9
DRAW grid( PI/2, 1)
PLOT TEXT,AT 1.7, 8.5:" L=∫√(1+cos(x)^2) dx"
PLOT TEXT,AT 1.7, 8.0:"dL/dx= √(1+cos(x)^2)"
!----
LET L=0 !出力初期値 (上下に平行移動。積分定数の調整)
LET dx=PI/(pixelx(PI)-pixelx(0)) !計算 間隔
FOR x=0 TO 2*PI STEP dx !計算 範囲
PLOT LINES: x,L;
CALL RungeKutta
NEXT x
END
|
|