function rk4_1d(f, y0, t0, a, b, n) {
let dt = (b - a) / n;
if (t0 == a) {
return rk4_multi_step_1d(f, y0, a, dt, n);
} else if (b == t0) {
let result = rk4_multi_step_1d(f, y0, b, -dt, n);
result.reverse();
return result;
} else if (a < t0 && t0 < b) {
let i = Math.floor((t0 - a) / dt);
let backward = rk4_multi_step_1d(f, y0, t0, -dt, i);
backward.reverse();
let forward = rk4_multi_step_1d(f, y0, t0, dt, n - i).slice(1);
return backward.concat(forward);
}
}