Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,51 +1,51 @@
|
|||
-- 28 Jul 2025
|
||||
include Settings
|
||||
-- 18 Sep 2025
|
||||
include Setting
|
||||
numeric digits 16
|
||||
|
||||
say "RUNGE-KUTTA METHOD FOR ODE y'=x*SqRt(y)"
|
||||
say "RUNGE-KUTTA METHOD FOR ODE y'=x*Sqrt(y)"
|
||||
say version
|
||||
say
|
||||
numeric digits 9
|
||||
call Task 0,10,1/10,1
|
||||
numeric digits 16
|
||||
call Task 0,10,1/10,1
|
||||
numeric digits 9
|
||||
call Task 0,10,1/20,1
|
||||
numeric digits 16
|
||||
call Task 0,10,1/20,1
|
||||
call Timer
|
||||
exit
|
||||
|
||||
Task:
|
||||
-- Runge-Kutta method
|
||||
procedure expose Memo.
|
||||
arg x0,xn,dx,y0
|
||||
say 'From' x0 'to' xn 'step' dx
|
||||
say ' x Calc y True y Abs err Rel err'
|
||||
x=x0; y=y0
|
||||
say 'From' x0 'to' xn 'step' dx 'with' Digits() 'digits'
|
||||
say ' x Calc y True y Abs error Rel error'
|
||||
call Show x,y
|
||||
do until x >= xn
|
||||
dy1=dx*DyDx(x,y)
|
||||
dy2=dx*DyDx(x+dx/2,y+dy1/2)
|
||||
dy3=dx*DyDx(x+dx/2,y+dy2/2)
|
||||
dy4=dx*DyDx(x+dx,y+dy3)
|
||||
x=x+dx; y=y+(dy1+2*dy2+2*dy3+dy4)/6
|
||||
do until x > xn
|
||||
if Integer(x) then
|
||||
call Show x,y
|
||||
dy1=dx*Dy(x,y)
|
||||
dy2=dx*Dy(x+dx/2,y+dy1/2)
|
||||
dy3=dx*Dy(x+dx/2,y+dy2/2)
|
||||
dy4=dx*Dy(x+dx,y+dy3)
|
||||
x+=dx; y+=(dy1+2*dy2+2*dy3+dy4)/6
|
||||
end
|
||||
say
|
||||
return
|
||||
|
||||
DyDx:
|
||||
Show:
|
||||
-- Display a line
|
||||
procedure
|
||||
arg xx,yy
|
||||
yt=True(xx)
|
||||
say Format(xx,2,0) Format(yy,3,7) Format(True(xx),3,7),
|
||||
Left(Std(Abs(yy-True(xx))),10) Left(Std(Abs(yy/True(xx)-1)),10)
|
||||
return
|
||||
|
||||
Dy:
|
||||
-- Differential equation
|
||||
procedure expose Memo.
|
||||
arg xx,yy
|
||||
return xx*SqRt(yy)
|
||||
|
||||
True:
|
||||
-- Real solution
|
||||
procedure
|
||||
arg xx
|
||||
return (xx**2+4)**2/16
|
||||
|
||||
Show:
|
||||
arg xx,yy
|
||||
say Format(xx,2,0) Format(yy,3,8) Format(True(xx),3,8),
|
||||
Left(Std(Abs(yy-True(xx))),10) Left(Std(Abs(yy/True(xx)-1)),10)
|
||||
return
|
||||
|
||||
include Math
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue