Re: writing out a general n-th order iterative eqn.
- To: mathgroup@smc.vnet.net
- Subject: [mg10365] Re: writing out a general n-th order iterative eqn.
- From: Paul Abbott <paul@physics.uwa.edu.au>
- Date: Mon, 12 Jan 1998 04:09:59 -0500
- Organization: University of Western Australia
- References: <69498b$i7b@smc.vnet.net>
V. Nagarajan wrote: > I have an n-th order eqn., > > {rho^(n) (t)}ij = {A(t)}ij (x) {B(t).rho^(n-1) - rho^(n-1).B(t)}ij > > ^ = superscript > {..}ij = ij-th matrix element > . = scalar multiplication > > The equation gets quite tedious upon substituting for the lower > order successively because {x.y}ij = Sum(k=1,N)({x}ik.{y}kl). > For N=2 and n=3, i can express rho^(3) as a function of rho^(0) > fairly easily. It is when these integers get to be larger, > the bookkeeping gets to be horrendous. See below for an appended Mathematica Notebook which attempts to do this computation. Cheers, Paul ____________________________________________________________________ Paul Abbott Phone: +61-8-9380-2734 Department of Physics Fax: +61-8-9380-1014 The University of Western Australia Nedlands WA 6907 mailto:paul@physics.uwa.edu.au AUSTRALIA http://www.pd.uwa.edu.au/~paul God IS a weakly left-handed dice player ____________________________________________________________________ Notebook[{ Cell[TextData[{ "I think that your recursive expression ", Cell[BoxData[ \(TraditionalForm \`{\(\[Rho]\^n\)(t)}\_\(i, j \)\ = {A(t)}\_\(i, j \)\[Times]\ { \(B(t)\) . \(\(\[Rho]\^\(n - 1\)\)(t)\)\ - \ \(\(\[Rho]\^\(n - 1\)\)(t)\) . \(B(t)\)}\_\(i, j\)\)]], " can be coded as follows. Starting condition:" }], "Text"], Cell[BoxData[ FormBox[ RowBox[{ RowBox[{\(\[Rho]\_0\), "=", FormBox[\(Function[{t}, Table[\[Rho]\_\(i, j\)[t], {i, 2}, {j, 2}]] \), "TraditionalForm"]}], ";"}], TraditionalForm]], "Input"], Cell["\<\ and recursion (using dynamic programming and pure functions):\ \>", "Text"], Cell[BoxData[ \(TraditionalForm \`\[Rho]\_\(n_ /; n > 0\) := \(\[Rho]\_n = Function[{t}, A[t] \((B[t] . \[Rho]\_\(n - 1\)[t] - \[Rho]\_\(n - 1\)[t] . B[t]) \)]\)\)], "Input"], Cell[TextData[{ "Matrix products of the form ", Cell[BoxData[ \(TraditionalForm\`{A(t)}\_\(i, j\)\[Times]{B(t)}\_\(i, j\)\)]], " can be computed without using indices using ordinary multiplication. For \ example, with" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(TraditionalForm\`A[t] = Table[a\_\(i, j\)[t], {i, 2}, {j, 2}]\)], "Input"], Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {\(\(a\_\(1, 1\)\)(t)\), \(\(a\_\(1, 2\)\)(t)\)}, {\(\(a\_\(2, 1\)\)(t)\), \(\(a\_\(2, 2\)\)(t)\)} }], ")"}], TraditionalForm]], "Output"] }, Open ]], Cell["and", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(TraditionalForm\`B[t] = Table[b\_\(i, j\)[t], {i, 2}, {j, 2}]\)], "Input"], Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {\(\(b\_\(1, 1\)\)(t)\), \(\(b\_\(1, 2\)\)(t)\)}, {\(\(b\_\(2, 1\)\)(t)\), \(\(b\_\(2, 2\)\)(t)\)} }], ")"}], TraditionalForm]], "Output"] }, Open ]], Cell["ordinary multiplication of these two matrices yields", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(TraditionalForm\`A[t] B[t]\)], "Input"], Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {\(\(\(a\_\(1, 1\)\)(t)\)\ \(\(b\_\(1, 1\)\)(t)\)\), \(\(\(a\_\(1, 2\)\)(t)\)\ \(\(b\_\(1, 2\)\)(t)\)\)}, {\(\(\(a\_\(2, 1\)\)(t)\)\ \(\(b\_\(2, 1\)\)(t)\)\), \(\(\(a\_\(2, 2\)\)(t)\)\ \(\(b\_\(2, 2\)\)(t)\)\)} }], ")"}], TraditionalForm]], "Output"] }, Open ]], Cell[TextData[{ "which is the sort of multiplication you want (I think). Here is ", Cell[BoxData[ \(TraditionalForm\`\[Rho]\_1[t]\)]], ":" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(TraditionalForm\`\[Rho]\_1[t] // Simplify\)], "Input"], Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ { \(\(\(a\_\(1, 1\)\)(t)\)\ \((\(\(b\_\(1, 2\)\)(t)\)\ \(\(\[Rho]\_\(2, 1\)\)(t)\) - \(\(b\_\(2, 1\)\)(t)\)\ \(\(\[Rho]\_\(1, 2\)\)(t)\))\)\), \(\(\(a\_\(1, 2\)\)(t)\)\ \((\((\(b\_\(1, 1\)\)(t) - \(b\_\(2, 2\)\)(t))\)\ \(\(\[Rho]\_\(1, 2\)\)(t)\) + \(\(b\_\(1, 2\)\)(t)\)\ \((\(\[Rho]\_\(2, 2\)\)(t) - \(\[Rho]\_\(1, 1\)\)(t))\)) \)\)}, { \(\(\(a\_\(2, 1\)\)(t)\)\ \((\((\(b\_\(2, 2\)\)(t) - \(b\_\(1, 1\)\)(t))\)\ \(\(\[Rho]\_\(2, 1\)\)(t)\) + \(\(b\_\(2, 1\)\)(t)\)\ \((\(\[Rho]\_\(1, 1\)\)(t) - \(\[Rho]\_\(2, 2\)\)(t))\)) \)\), \(\(\(a\_\(2, 2\)\)(t)\)\ \((\(\(b\_\(2, 1\)\)(t)\)\ \(\(\[Rho]\_\(1, 2\)\)(t)\) - \(\(b\_\(1, 2\)\)(t)\)\ \(\(\[Rho]\_\(2, 1\)\)(t)\))\)\)} }], ")"}], TraditionalForm]], "Output"] }, Open ]] } ]