Non-Linear and Dynamic Programming