On Friday 24 October 2008 15:17:57 Stan Schymanski wrote:
> That's interesting. It seems that the bug lies in the use of floating
> point numbers? By the way, simplify_trig and simplify_rational create
> the same mistake. I agree that the use of simplify_radical() is not
> very useful here, but if it makes such an obvious mistake, how
> confident can we be that it doesn't make mistakes in more complicated
> cases where we don't actually notice the mistake straight away? I
> thought about using something like simplify_full() on any equation to
> see if it can be simplified before I carry on with calculations.
> Perhaps this is the wrong strategy, anyway. Any comments?
> How could I actually get Sage to cancel out the 'a' in the equation?
> None of the methods I tried do the job. I don't like doing things by
> hand, because then I have to redo everything if I change an equation
> somewhere at the top of the notebook.

In this case, expand seems to do what you want. I don't know if it will help 
you with more complex expressions.

sage: var("a,b,c")
(a, b, c)
sage: e = ((a*b - (1/2)*a*(b - c))/a); e
(a*b - a*(b - c)/2)/a
sage: e.expand()
c/2 + b/2

or with float coefficients:

sage: e = ((a*b - (.5)*a*(b - c))/a); e
(a*b - 0.500000000000000*a*(b - c))/a
sage: e.expand()
0.500000000000000*c + 0.500000000000000*b


> On Oct 24, 3:04 pm, "John Cremona" <[EMAIL PROTECTED]> wrote:
> > A variation on your first try is:
> >
> > sage: ((a*b - (1/2)*a*(b - c))/a).simplify_radical()
> > (c + b)/2
> >
> > which works fine.  Maybe it's a bug in maxima.  I don't see why you
> > would need simplify_radical() at all here, since your expression
> > contains no radicals.
> >
> > John Cremona
> >
> > 2008/10/24 Stan Schymanski <[EMAIL PROTECTED]>:
> > > Dear all,
> > >
> > > I just noted some strange behaviour with simplify_radical():
> > >
> > > ----------------------------------------------------------------------
> > >
> > > | SAGE Version 3.1.2, Release Date: 2008-09-19                       |
> > > | Type notebook() for the GUI, and license() for information.        |
> > >
> > > ----------------------------------------------------------------------
> > >
> > > sage: sage: var('a b c')
> > > (a, b, c)
> > > sage:  ((a*b - 0.5*a*(b - c))/a).simplify_radical()
> > > 0
> > > sage: ((b - 0.5*(b - c))).simplify_radical()
> > > 0.500000000000000*c + 0.500000000000000*b
> > >
> > > Clearly, the second result should be the same as the first one, as 'a'
> > > cancels out. Does anyone know how to avoid such mistakes and whether
> > > it is advisable to use simplify_radical at all?
> > >
> > > Cheers
> > > Stan

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to