14
$\begingroup$

I'd like to know if it is possible to use NestList on a regular function of several arguments, such as:

fc[x_, y_] := {x + y, x - y};
res = NestList[ fc[x,y], {100, 75}, 50]

I just started learning Mathematica at my university, read about pure functions, but from the homework's text it doesn't look like I should use that. Roughly translated, it would be "Define a function of 2 arguments (...) and apply NestList on this function."

$\endgroup$
  • $\begingroup$ I discussed a similar example here,may possibly be relevant as another illustration. $\endgroup$ – Leonid Shifrin Oct 1 '12 at 20:35
16
$\begingroup$

One way to deal with "multiple inputs" to a function like NestList is to express the many inputs as a single vector. For example:

f[{x_, y_}] := {x + y, x - y};
NestList[f, {100, 75}, 5]

does what you are looking for

{{100, 75}, {175, 25}, {200, 150}, {350, 50}, {400, 300}, {700, 100}}
$\endgroup$
  • $\begingroup$ I didn't know I could specify arguments of the function in such manner. Neat. Thank you $\endgroup$ – Martin Melka Oct 1 '12 at 20:19
13
$\begingroup$

I suggest to look at this :

fc[x_, y_] := {x + y, x - y}
NestList[fc @@ # &, {100, 75}, 5]
{{100, 75}, {175, 25}, {200, 150}, {350, 50}, {400, 300}, {700, 100}}

First, after SetDelayed (:=) you don't have to use ;, look at CompoundExpression. Second, fc has to be applied (Apply) to the list of arguments.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.