27 lines
591 B
Plaintext
27 lines
591 B
Plaintext
window 1
|
|
|
|
def fn dydx( x as double, y as double ) as double = x * sqr(y)
|
|
def fn exactY( x as long ) as double = ( x ^2 + 4 ) ^2 / 16
|
|
|
|
long i
|
|
double h, k1, k2, k3, k4, x, y, result
|
|
|
|
h = 0.1
|
|
y = 1
|
|
for i = 0 to 100
|
|
x = i * h
|
|
if x == int(x)
|
|
result = fn exactY( x )
|
|
print "y("; mid$( str$(x), 2, len$(str$(x) )); ") = "; y, "Error = "; result - y
|
|
end if
|
|
|
|
k1 = h * fn dydx( x, y )
|
|
k2 = h * fn dydx( x + h / 2, y + k1 / 2 )
|
|
k3 = h * fn dydx( x + h / 2, y + k2 / 2 )
|
|
k4 = h * fn dydx( x + h, y + k3 )
|
|
|
|
y = y + 1 / 6 * ( k1 + 2 * k2 + 2 * k3 + k4 )
|
|
next
|
|
|
|
HandleEvents
|