Runge-Kutta method: Difference between revisions

Added Crystal version, translations of Run Basic and Ruby versions
(→‎{{header|C}}: Re add (erroneously?) C example, removed with no explanation)
(Added Crystal version, translations of Run Basic and Ruby versions)
Line 485:
(8.999999999999984d0 451.56245927683887d0 -4.072315812209126d-5)
(9.99999999999998d0 675.9999490167083d0 -5.0983286655537086d-5))</lang>
 
=={{header|Crystal}}==
{{trans|Run Basic and Ruby output}}
<lang crystal>y, t = 1, 0
while t <= 10
k1 = t * Math.sqrt(y)
k2 = (t + 0.05) * Math.sqrt(y + 0.05 * k1)
k3 = (t + 0.05) * Math.sqrt(y + 0.05 * k2)
k4 = (t + 0.1) * Math.sqrt(y + 0.1 * k3)
printf("y(%4.1f)\t= %12.6f \t error: %12.6e\n", t, y, (((t**2 + 4)**2 / 16) - y )) if (t.round - t).abs < 1.0e-5
y += 0.1 * (k1 + 2 * (k2 + k3) + k4) / 6
t += 0.1
end
</lang>
 
{{out}}
<pre>
y( 0.0) = 1.000000 error: 0.000000e+00
y( 1.0) = 1.562500 error: 1.457219e-07
y( 2.0) = 3.999999 error: 9.194792e-07
y( 3.0) = 10.562497 error: 2.909562e-06
y( 4.0) = 24.999994 error: 6.234909e-06
y( 5.0) = 52.562489 error: 1.081970e-05
y( 6.0) = 99.999983 error: 1.659460e-05
y( 7.0) = 175.562476 error: 2.351773e-05
y( 8.0) = 288.999968 error: 3.156520e-05
y( 9.0) = 451.562459 error: 4.072316e-05
y(10.0) = 675.999949 error: 5.098329e-05
</pre>
 
=={{header|D}}==
Anonymous user