Witam. Mógłby mi ktoś pomóc i naprowadzić mnie, gdzie w tym kodzie jest błąd? Co każdy krok podaje mi taką samą wartość początkową funkcji, niezależnie od jej wzoru.

class Rownanie
    {
        double t, y, dt, cel, z;
        public Rownanie(double t, double y, double dt, double cel)
        {
            this.t = t;
            this.y = y;
            this.dt = dt;
            this.cel = cel;
        }
        public void Run()
        {
            MK4 n = new MK4();
            while (t < cel)
            {
                y= n.RK(t, y, dt, funkcja);
                Console.WriteLine("t: {0}, y: {1}", t, y);
                t = t + dt;
            }
        }
        public static double funkcja(double t, double y)
        {
            return y;
        } 
 class MK4
    {
        public delegate double Calc(double t, double y);
        public double RK(double t, double y, double dt, Calc yp)
        {
            double k1 = dt * yp(t, y);
            double k2 = dt * yp(t + 0.5 * dt, y + k1 * 0.5);
            double k3 = dt * yp(t + 0.5 * dt, y + k2 * 0.5);
            double k4 = dt * yp(t + dt, y + k3);

            return (y + (1 / 6) * (k1 + 2 * k2 + 2 * k3 + k4));
        }
    }

Dziękuję za pomoc oraz pozdrawiam!