I want to do some calculation like this:

[cos(theta), -sin(theta)]     [Ld*p + R, -Lq*omega]     [cos(theta), 
sin(theta)]      [Id]
                          *                         
*                              *
[sin(theta),  cos(theta)]     [Ld*omega,  Lq*p + R]     [-sin(theta),  
cos(theta)]    [Iq]
 
This is a part of motor equation expressed in matrix multiplication,Id, Iq, 
theta are functions of t (time), p is the differential operator, so this 
isn't a simple multiplication. I will do this kind of calculation a lot, so 
I want to find a generic method. 



在 2013年1月26日星期六UTC+9下午10时45分08秒,Stefan Krastanov写道:
>
> Before suggesting a solution I need to point out a problem with your 
> suggestion. Namely, multiplication and application are two very 
> different operation (there is overlap (e.g. matrix multiplication) but 
> I will leave it out for the moment). SymPy does not have support for 
> this type of "abuse of notation" for the moment. If you are 
> interesting implementing it yourself your best shot (in my opinion) 
> would be to get inspiration by the matrix expression module and the 
> rewrite rules module. 
>
> On the other hand if you want to use simple vanilla python for all 
> this you can just use the `diff` global function but presumably you do 
> not want that in order to facilitate automatic simplifications like 
> "2*p - p -> p". 
>
> If this is the case (and you are absolutely sure that this is 
> necessary (usually it is not)) you can try to use the differential 
> geometry module (in differential geometry vector fields are 
> differential operators). If you know the formalism it will be very 
> easy to use, however if you do not know it you will need to read 
> something more than just the documentation. 
>
>
> http://docs.sympy.org/dev/modules/diffgeom.html#sympy.diffgeom.BaseVectorField
>  
>
> On 25 January 2013 23:49, ruoyu zhang <[email protected] <javascript:>> 
> wrote: 
> >>>> p = DifferentialOperator(t) 
> >>>> a * p * f(t) 
> > Derivative(f(t), t)*a 
> > 
> > p is a DifferentialOperator, when it multiply with some expression  at 
> right 
> > side, it calculates the derivative of the expression. 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "sympy" group. 
> > To post to this group, send email to [email protected]<javascript:>. 
>
> > To unsubscribe from this group, send email to 
> > [email protected] <javascript:>. 
> > Visit this group at http://groups.google.com/group/sympy?hl=en. 
> > For more options, visit https://groups.google.com/groups/opt_out. 
> > 
> > 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to