7
$\begingroup$

How do I write a recursive equation to compute a list of answers? I tried NestList, but it didn't work.

A = {{.5, -.6}, {.75, 1.1}};
x0 = {2, 0};

Dot[A,x0]
(* {1., 1.5} *)

Dot[A, {1.`, 1.5`}]
(* {-0.4, 2.4} *)

Dot[A, Dot[A, {1.`, 1.5`}]]
(* {-1.64, 2.34} *)
$\endgroup$
13
$\begingroup$

You were correct. NestList is exactly the function you want to use.

NestList[Dot[A, #]&, x0, 5]

(* {{2, 0}, {1., 1.5}, {-0.4, 2.4}, {-1.64, 2.34}, {-2.224, 
   1.344}, {-1.9184, -0.1896}} *)

Note that the first argument of NestList must be a function.

$\endgroup$
  • $\begingroup$ @ JHM foolish me that I didn't realize x0 is the one being operated on, thanks. $\endgroup$ – Tmm Oct 27 '16 at 3:40
  • $\begingroup$ How to visualize the change in x0,x1,x2.. with the no. of operations? $\endgroup$ – thils Oct 27 '16 at 4:49
  • $\begingroup$ @thils ListPlot would work. $\endgroup$ – JungHwan Min Oct 27 '16 at 5:26
10
$\begingroup$

Your can use MatrixPower for this example:

f[n_] := MatrixPower[{{.5, -.6}, {.75, 1.1}}, n].{2, 0}
f /@ Range[0, 5]

yields:

{{2., 0.}, {1., 1.5}, {-0.4, 2.4}, {-1.64, 2.34}, {-2.224, 
  1.344}, {-1.9184, -0.1896}}
$\endgroup$
  • $\begingroup$ Or #.x0 & /@ NestList[Dot[A, #] &, A, 5] to make it a recursion (starts at matrix power 1). $\endgroup$ – Jacob Akkerboom Nov 2 '16 at 9:14
  • 2
    $\begingroup$ @JacobAkkerboom thank you. Yes, the best recursive answer was already provided. I was just providing another in-built approach. :) $\endgroup$ – ubpdqn Nov 2 '16 at 9:17
2
$\begingroup$

You can also do this recursively, very nearly as you wrote it:

a[k_] := a[k] = A.a[k - 1];
a[1] = x0;

Now you can calculate any desired iterate by asking for a[5] or a[10]. Or calculate a range of values:

a[#] & /@ Range[5]
{{2, 0}, {1., 1.5}, {-0.4, 2.4}, {-1.64, 2.34}, {-2.224, 1.344}}
$\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.