MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Matrices as operators

  • To: mathgroup at smc.vnet.net
  • Subject: [mg123077] Re: Matrices as operators
  • From: Oliver Ruebenkoenig <ruebenko at wolfram.com>
  • Date: Tue, 22 Nov 2011 07:23:08 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201111221034.FAA27988@smc.vnet.net>


On Tue, 22 Nov 2011, Ray Koopman wrote:

> On Nov 20, 2:34 am, Chris Young <c... at comcast.net> wrote:
>> I'd like to be able to abbreviate matrices such as rotation matrices
>> so that I don't have to repeat the argument. This way I can pass in
>> more complicated arguments and it also shows the structure of the
>> transformation more clearly.
>>
>> Through[( {
>>     {Cos, -Sin},
>>     {Sin, Cos}
>>    } )[=CE=B8]]
>>
>> will get me partway there:
>>
>> Out: {{Cos, -Sin}[=CE=B8], {Sin, Cos}[=CE=B8]}
>>
>> I have to apply Thread and Through again to finally get what I want:
>>
>> In: Thread[Through[{{Cos, -Sin}[=CE=B8], {Sin, Cos}[=CE=B8]}]]
>>
>> Out: {{Cos[=CE=B8], (-Sin)[=CE=B8]}, {Sin[=CE=B8], Cos[=CE=B8]}}
>>
>> Is there a shortcut way to do this all in one step?
>>
>> Thanks very much for any help.
>>
>> Chris Young
>> c... at comcast.net
>
> If you're worried about redundant calculations when the matrices
> are bigger than 2 x 2 and the functions are more complicated than
> Sin and Cos, try something like
>
> R[t_] := {{#1,-#2},{#2,#1}}&[Cos@t,Sin@t]
>
>

You could have the expression optimizer even further optimize that

Experimental`OptimizeExpression[{{#1, -#2}, {#2, #1}} &[Cos@t, Sin@t]]

(That is what happens in Compile)

Oliver



  • Prev by Date: Re: Bad Precision output for SphericaBesselY and
  • Next by Date: Re: How to do quickest
  • Previous by thread: Re: Matrices as operators
  • Next by thread: Re: Matrices as operators