Runge-Kutta class methods are a implicit and explicit methods for temporal discretization for ODE's.
Let it be a initial value problem
$$y^\prime = f(t,y)$$
with $y(t_0)=y_0$. find $y(t)$.
then runge-kutta methods have the form of
$$y_{n + 1} = y_n + h \sum_{i = 1}^s b_i k_ i $$
$$k_i = f ( t_n + c_i h , y_n + h \sum_{j = 1}^s a_{ij} k_j )$$
with some initial value $y_0$ and parameters $a_{ij}, b_i$ and $c_i$
## implicit Euler
the simplest *implicit* runge-kutta method is the *implicit Euler method* (explicit is an exercise) with $c_i = 1$, $a_{ij} = 1$ and $b_1 = 0$ which then yields the update formula
$$y_{n + 1} = y_n + h f ( t_{n+1} , y_{n+1} )$$
Now there is on both sides the unkown function and we have to solve an algebraic equation for this. This can be done with newton's method or with solving a linear equation depending on the problem. Because our example with the harmonic oscillator is linear but multidimensional we can solve a linear system of equations for $y_{n+1}$