Hi Mitchell,
iterating a user defined gradient function and then using the output
of the previous iteration as the input to the subsequent iterations
Nest
and related functions can do this e.g.
NestList[Normalize@df[Sequence @@ #] &, {3, 4}, 3]
(* {{3, 4}, {7/25, -(24/25)}, {527/625, 336/625}, {-(164833/390625), -(354144/390625)}} *)
In the attached notebook P1, P2, P3, P4
ignore the sign of the previous term. If that is what you want, just add an Abs
.