So now you're adding y twice in the RK function itself. You should only add it once (which is what you had when you started). Also F should return -y no matter what x is -- right now you're returning "?" most of the time from F, and who knows what's going to happen when you start adding "?" to things.