Hi,
On Fri, Apr 23, 2010 at 11:29:38AM +0200, Bastian Weber wrote:
> Hello again,
>
> bastian.weber wrote:
> > Hello,
> >
> >
> > currently I have this behavior:
> >
> >
> > In <69>: (d**3).subs(d**2,k)
> > Out<69>: k**(3/2)
> >
> >
> > Is it somehow possible to get
> >
> > In <69>: (d**3).subs(d**2,k)
> > Out<69>: d*k
> >
> > instead?
>
> SNIP
>
> >
> > Maybe subs is the wrong way to achieve this, but at the moment I dont
> > see any other.
>
> I just got the idea to use polynomial division to get the quotient q and
> the remainder r. Then I could multiply the quotient q by k (which I want
> to insert instead of d**2) from the right and then add the remainder r
> to get my desired result.
>
> But unfortunately div does not support non-commutative symbols:
>
> div(d**3, d**2, d)
>
> gives:
>
> SymbolsError: Non-commutative symbols: (d,)
>
>
>
> The expression which I want to handle reads:
>
> In <11>: m, d = symbols('m d', commutative = False)
> In <12>: a = 1 - 4*d**2 + 4*m**2 + d**4 + m**4 - 4*m*d - 2*m**2*d**2
> In <13>: div(a, d**2, d)
>
> of course, I get the SymbolsError too in that case.
>
>
> Any ideas for a workaround or an elegant solution would be very welcome.
> If you would like to work with polynomials, then there is no solution because polynomials in SymPy are for commutative symbols only. > > (The background is: m and d are operators. m means multiply by argument > and d means take the derivative. So I have some rules like d*m = 1 + > m*d. At the end these compound operators are applied to gaussian-like > functions, so I have another rule: d = -m and therefore d**2 = d*d = > d*(-m) = -(1 + m*d) = -1 + m**2. Higher powers of d could than be > reduced to that case.) > > Regards, > Bastian. > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > -- Mateusz
signature.asc
Description: This is a digitally signed message part
