Re: MatrixPower problem

*To*: mathgroup at smc.vnet.net*Subject*: [mg124112] Re: MatrixPower problem*From*: per at RQNNE.invalid (Per Rønne)*Date*: Mon, 9 Jan 2012 03:19:35 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <je96q1$j7o$1@smc.vnet.net> <jebnjq$1cs$1@smc.vnet.net>*Reply-to*: spam at RQNNE.dk (Per Rønne)

David Bailey <dave at removedbailey.co.uk> wrote: > On 07/01/2012 10:29, Per R=F8nne wrote: > > I have defined the following matrix: > > > > P = {{0, 1/2, 0, 1/2, 0}, {1/2, 0, 1/3, 0, 0}, > > {0, 1/2, 0, 1/2, 0}, {1/2, 0, 1/3, 0, 0}, {0, 0, 1/3, 0, 1}} > > > > And the following vector: > > > > e1 = {1, 0, 0, 0, 0} > > > > I try to solve: > > > > Limit[MatrixPower[P, k].e1, k -> \[Infinity]] > > > > And get the correct result: > > > > Out[7] = {0, 0, 0, 0, 1} > > > > But if I write the first statement as: > > > > P = {{0, 1/2, 0, 1/2, 0}, {1/2, 0, 1/3, 0, 0}, > > {0, 1/2, 0, 1/2, 0}, {1/2, 0, 1/3, 0, 0}, {0, 0, 1/3, 0, 1}} > > //MatrixForm > > > > I will not only get a more readle Out-format of the matrix. My > > Mathematica 8.1 for Students will also deny to calculate what is > > demanded. It will just list > > > > Limit[MatrixPower[P, k].e1, k -> \[Infinity]] > > > > with P replaced with the contents of the 5*5 matrix. > > > > I simply don't understant why. > > > > > > The output I can be pasted as: > > > > At least I get the following output: > > > > Limit[MatrixPower[\!\(\* > > TagBox[ > > RowBox[{"(", "", GridBox[{ > > {"0", > > FractionBox["1", "2"], "0", > > FractionBox["1", "2"], "0"}, > > { > > FractionBox["1", "2"], "0", > > FractionBox["1", "3"], "0", "0"}, > > {"0", > > FractionBox["1", "2"], "0", > > FractionBox["1", "2"], "0"}, > > { > > FractionBox["1", "2"], "0", > > FractionBox["1", "3"], "0", "0"}, > > {"0", "0", > > FractionBox["1", "3"], "0", "1"} > > }, > > GridBoxAlignment->{ > > "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, > > "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, > > GridBoxSpacings->{"Columns" -> { > > Offset[0.27999999999999997`], { > > Offset[0.7]}, > > Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { > > Offset[0.2], { > > Offset[0.4]}, > > Offset[0.2]}, "RowsIndexed" -> {}}], "", ")"}], > > Function[BoxForm`e$, > > MatrixForm[BoxForm`e$]]]\), k].{1, 0, 0, 0, 0}, k -> \[Infinity]] > > > > The following expression is wrong: > > P = {{0, 1/2, 0, 1/2, 0}, {1/2, 0, 1/3, 0, 0}, > {0, 1/2, 0, 1/2, 0}, {1/2, 0, 1/3, 0, 0}, {0, 0, 1/3, 0, 1}} > //MatrixForm > > To see what is wrong, type P//FullForm > > As you will see, the MatrixForm has become part of the expression > contained in P! Yes, I see. I just fail to see the purpose of such a behaviour. > Instead write: > > P = {{0, 1/2, 0, 1/2, 0}, {1/2, 0, 1/3, 0, 0}, > {0, 1/2, 0, 1/2, 0}, {1/2, 0, 1/3, 0, 0}, {0, 0, 1/3, 0, 1}}; > > P//MatrixForm Another poster has suggested I put the assignment statement in parentheses and place the //MatrixForm after the end parenthesis. A third that I make a MatrixForm[P] instead of your P//MatrixForm. Well, I have received two replies in my inbox that have not yet come through to the moderated usenet group. > BTW, it is best to avoid variables that start with a capital letter, as > these can clash with new definitions in later versions of Mathematica. I know. But in this case it is being used in a Linear Algebra assignment at college. And in the assignment (meant for another system) capital P is used. BTW, this other system proved unable to calculate Limit[MatrixPower[P, k].e1, k -> \[Infinity]]. Well, limit(P^k.e1,k=infinity). Instead, you have to manually simplify the problem before it is handled over to the other system. Which may be good for learners - but cumbersome for users. P contains probabilities. Consequently, every column adds up to 1. -- Per Erik Rønne http://www.RQNNE.dk Errare humanum est, sed in errore perseverare turpe