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
- References:
- Re: Matrices as operators
- From: Ray Koopman <koopman@sfu.ca>
- Re: Matrices as operators