16
$\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$
1
  • $\begingroup$ I discussed a similar example here,may possibly be relevant as another illustration. $\endgroup$ Oct 1, 2012 at 20:35

2 Answers 2

18
$\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$
1
  • $\begingroup$ I didn't know I could specify arguments of the function in such manner. Neat. Thank you $\endgroup$ Oct 1, 2012 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 and acknowledge that you have read and understand our privacy policy and code of conduct.

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