Re: Hadamard -Sylvester Matrix Self-Similarity by substitution and reparatitioning

• To: mathgroup at smc.vnet.net
• Subject: [mg68641] Re: Hadamard -Sylvester Matrix Self-Similarity by substitution and reparatitioning
• From: Roger Bagula <rlbagula at sbcglobal.net>
• Date: Mon, 14 Aug 2006 06:44:13 -0400 (EDT)
• Sender: owner-wri-mathgroup at wolfram.com

```> Roger Bagula wrote: A long time back I ran across this in an
> electrical engineering magazine.
> With the right starting matric Haramard -Silvester Matrix
> self-Similaroty gives a Pascal's triangle like result.
> I just this morning figured out how to repartition the matrices to
> give usable arrasys!
> (* Fibonacci Matrix for Matrix Markov: 2by2*)
> t[n_, m_] := If[ n == m == 1, 0, 1]
> (* substitution step*)
> a = Table[t[n, m]*t[i, j], {n, 1, 2}, {m, 1, 2}, {i, 1, 2}, {j, 1, 2}];
> (* first level Hadamard -Sylvester Matrix self-Similarity
> repartitution: 4by4*)
> M = Flatten[Table[{Flatten[Table[a[[
>      n, m]][[1, i]], {n,
>           1, 2}, {i, 1, 2}]], Flatten[Table[a[[n, m]][[2,
>            i]], {n, 1, 2}, {i, 1, 2}]]}, {m, 1, 2}], 1]
> aa = Table[M[[n, m]]*M[[i, j]], {n, 1, 4}, {m, 1, 4}, {i, 1, 4}, {j,
> 1, 4}];
> (* second level Hadamard -Sylvester Matrix self-Similarity
> repartitution: 16 by16*)
> M2 = Flatten[Table[{Flatten[Table[aa[[
>      n, m]][[1, i]], {n,
>           1, 4}, {i, 1, 4}]], Flatten[Table[aa[[n, m]][[2,
>            i]], {n, 1, 4}, {i, 1, 4}]], Flatten[Table[aa[[
>      n, m]][[3, i]], {n,
>           1, 4}, {i, 1, 4}]], Flatten[Table[aa[[
>      n, m]][[4, i]], {n,
>           1, 4}, {i, 1, 4}]]}, {m, 1, 4}], 1]
>
> {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1},
> {0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 1, 1},
> {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1},
> {0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 1, 1, 1, 1},
> { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1},
> {0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 1, 1, 0, 0, 1, 1},
> {0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1},
> {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1},
> { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
> {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1},
> {0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1},
> {0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1},
> {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1},
> {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1},
> { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1}.
> {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}}

This method gives the same 16by16  with reversed order on the anti-diagonal:

b[i_, k_] := Floor[Mod[i/2^k, 2]]
n = 15
Table[If[Sum[b[i, k]*b[j, k], {k, 0, n}] == 0, 1, 0], {j, 0, 15}, {i, 0,
15}]

{{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},
{1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0},
{1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
{ 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
{1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0},
{1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 0, 1, 0, 1, 0, 1, 0,  0, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 0, 1, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0, 0},
{1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}

```

• Prev by Date: Re: Re: Wolfram Workbench and package development
• Next by Date: Re: Re: Wolfram Workbench and package development
• Previous by thread: Hadamard -Sylvester Matrix Self-Similarity by substitution and reparatitioning
• Next by thread: Re: Hadamard -Sylvester Matrix Self-Similarity by substitution and reparatitioning