Thanks for sharing that knowledge. I have no show-stopping problem with the 
limitation on symbol order and I understand it is cosmetic. The change in 
order was merely something I noticed and wanted to point out.

Thanks one and all for your contribution and help.
Andre

On Monday, April 25, 2022 at 4:07:30 AM UTC+1 asme...@gmail.com wrote:

> On Sun, Apr 24, 2022 at 2:28 AM Andre Bolle <andre...@gmail.com> wrote:
> >
> > So true. I deleted my post soon after I posted it, in case anyone took 
> it seriously. But it was intended as a cosmetic work-around. I presume a 
> var('a', commutative=True) immediately after would remedy that.
>
> Not quite. Symbols aren't global in SymPy (nothing in SymPy works
> globally). If you do
>
> F = symbols('F')
> m, a = symbols('m a', commutative=False)
> eqn = Eq(F, m*a)
> m, a = symbols('m a')
>
> then what would happen is that the expression in eqn would have the
> noncommutative symbols and the Python variables 'm' and 'a' would
> reference new, separate symbols.
> A symbol in SymPy is determined by its name and assumptions, and
> commutative is an assumption, so the m and a defined in line 2 would
> be different from the m and a defined in line 4.
>
> For example:
>
> >>> m, a = symbols('m a', commutative=False)
> >>> expr = m*a
> >>> m, a = symbols('m a')
> >>> expr == m*a
> False
>
> If you wanted to "fix" the expression to not have noncommutatives,
> you'd have to keep track of the symbols you wanted to swap out and use
> subs, like
>
> >>> m_nc, a_nc = symbols('m a', commutative=False)
> >>> m, a = symbols('m a')
> >>> expr = m_nc*a_nc
> >>> expr.subs({m_nc: m, a_nc: a})
> a*m
>
> Aaron Meurer
>
> >
> > On Sunday, April 24, 2022 at 5:01:49 AM UTC+1 asme...@gmail.com wrote:
> >>
> >> I would only do that just for the printing. Telling SymPy that two
> >> symbols don't commute means that it will no longer do any
> >> simplifications on it that aren't valid without commuting them.
> >>
> >> Aaron Meurer
> >>
> >> On Sat, Apr 23, 2022 at 3:32 AM Andre Bolle <andre...@gmail.com> wrote:
> >> >
> >> > You can always tell Sympy that as far as I am concerned "a" is 
> non-commutative. Then tradition is preserved.
> >> >
> >> > >>> var('F m')
> >> > (F, m)
> >> > >>> var('a')
> >> > a
> >> > >>> print(Eq(F,m*a))
> >> > Eq(F, a*m)
> >> > >>> var('a', commutative=False)
> >> > a
> >> > >>> print(Eq(F,m*a))
> >> > Eq(F, m*a)
> >> > On Thursday, April 21, 2022 at 8:23:51 PM UTC+1 Andre Bolle wrote:
> >> >>
> >> >> I think mathematicians prefer the order of symbols preserved.
> >> >>
> >> >> On Thursday, April 21, 2022 at 7:54:20 PM UTC+1 asme...@gmail.com 
> wrote:
> >> >>>
> >> >>> On Thu, Apr 21, 2022 at 12:16 PM Oscar Benjamin
> >> >>> <oscar.j....@gmail.com> wrote:
> >> >>> >
> >> >>> > On Thu, 21 Apr 2022 at 18:53, Aaron Meurer <asme...@gmail.com> 
> wrote:
> >> >>> > >
> >> >>> > > If you want the expression to print in the same way that it was
> >> >>> > > originally entered, then it needs to keep track of that 
> information
> >> >>> > > when it is created. That's not something that currently happens.
> >> >>> > >
> >> >>> > > If you just want the printers to have more options in how they 
> sort
> >> >>> > > things, that is technically already possible, although it's not
> >> >>> > > particularly straightforward and not very well documented.
> >> >>> >
> >> >>> > It should be easier to do each of these things. At the moment you 
> can
> >> >>> > create an Add(y, x, evaluate=False) and the printers do have an
> >> >>> > "order" setting (for init_printing) but there isn't a value for 
> the
> >> >>> > order parameter that just prints the terms in the exact order that
> >> >>> > they appear in the Add.
> >> >>> >
> >> >>> > This is a very commonly requested option on StackOverflow etc. It
> >> >>> > would be good to fix it so that the printers can just print in 
> args
> >> >>> > order.
> >> >>>
> >> >>> The order flag needs to be documented much better. Also I think it
> >> >>> would be useful if you could just pass a sort key function directly 
> to
> >> >>> the printer, with some examples of how to do that.
> >> >>>
> >> >>> Aaron Meurer
> >> >>>
> >> >>> >
> >> >>> > --
> >> >>> > Oscar
> >> >>> >
> >> >>> > --
> >> >>> > 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 sympy+un...@googlegroups.com.
> >> >>> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/CAHVvXxQU5MSP45UFe1ioztrW6%3DJF1TPEdVXC3o9qOROMFw9_cw%40mail.gmail.com
> .
> >> >
> >> > --
> >> > 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 sympy+un...@googlegroups.com.
> >> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/4a04c3f8-881e-4e80-a00e-a01c4b280a52n%40googlegroups.com
> .
> >
> > --
> > 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 sympy+un...@googlegroups.com.
> > To view this discussion on the web visit 
> https://groups.google.com/d/msgid/sympy/759013c4-2e98-41ac-b231-dce084baa112n%40googlegroups.com
> .
>

-- 
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 sympy+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/23096ad2-f159-4fc9-8f8b-6ef2efeb6efbn%40googlegroups.com.

Reply via email to