On Dec 10, 2007 8:29 PM, Jonathan Bober <[EMAIL PROTECTED]> wrote:
>
> Hi all. I just opened ticket #1457 (see below)
>
> http://trac.sagemath.org/sage_trac/ticket/1457
>
> The following is hopefully pretty self explanatory:
>
> -----------------------------------
>
> The following took place on an Intel Core Duo (32 bit) running Ubuntu
> 7.10. Hopefully the cause is obvious for someone familiar with the
> calculus/plotting code.
>
> (Note: replacing f(x) with f(x) = 2.0 * sqrt(x^2.0 + 300.0^2.0) - x +
> 1000.0 is a suitable workaround.)
>
>
> ----------------------------------------------------------------------
> | SAGE Version 2.8.15, Release Date: 2007-12-03                      |
> | Type notebook() for the GUI, and license() for information.        |
> ----------------------------------------------------------------------
>
> sage: f(x) = 2 * sqrt(x^2 + 300^2) - x + 1000
> sage: P = f.diff(x).diff(x).plot(xmin=0,xmax=1000)
> ---------------------------------------------------------------------------
> <type 'exceptions.AssertionError'>        Traceback (most recent call last)
>

Note

sage: x = var("x")
sage: f = lambda x: 2 * sqrt(x^2 + 300^2) - x + 1000
sage: P = f(x).diff(x).diff(x).plot(xmin=0,xmax=1000)
sage: show(P)
sage: g =  2 * sqrt(x^2 + 300^2) - x + 1000
sage: P = g.diff(x).diff(x).plot(xmin=0,xmax=1000)
sage: show(P)

both work and yield the same plot.


> /home/bober/sage-2.8.15.alpha1/<ipython console> in <module>()
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/calculus/calculus.py
>  in plot(self, *args, **kwds)
>     602         else:
>     603             f = self.function(param)
> --> 604         return plot(f, *args, **kwds)
>     605
>     606     def __lt__(self, right):
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/plot/plot.py
>  in __call__(self, funcs, *args, **kwds)
>    2303             G = funcs.plot(*args, **kwds)
>    2304         else:
> -> 2305             G = self._call(funcs, *args, **kwds)
>    2306         if do_show:
>    2307             G.show()
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/plot/plot.py
>  in _call(self, funcs, xmin, xmax, parametric, polar, label, show, **kwds)
>    2353
>    2354             try:
> -> 2355                 y = f(x)
>    2356                 data.append((x, float(y)))
>    2357             except (ZeroDivisionError, TypeError, ValueError), msg:
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/calculus/calculus.py
>  in <lambda>(x)
>     591                 else:
>     592                     param = A[0]
> --> 593                 f = lambda x: self(x)
>     594             else:
>     595                 A = self.variables()
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/calculus/calculus.py
>  in __call__(self, *args)
>    4012         vars = self.args()
>    4013         dct = dict( (vars[i], args[i]) for i in range(len(args)) )
> -> 4014         return self._expr.substitute(dct)
>    4015
>    4016     def _repr_(self, simplify=True):
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/calculus/calculus.py
>  in substitute(self, in_dict, **kwds)
>    2589         kwds = self.__parse_in_dict(in_dict, kwds)
>    2590         kwds = self.__varify_kwds(kwds)
> -> 2591         return X._recursive_sub(kwds)
>    2592
>    2593     def subs(self, *args, **kwds):
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/calculus/calculus.py
>  in _recursive_sub(self, kwds)
>    3424         """
>    3425         ops = self._operands
> -> 3426         new_ops = [SR(op._recursive_sub(kwds)) for op in ops]
>    3427
>    3428         #Check to see if all of the new_ops are symbolic constants
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/calculus/calculus.py
>  in _recursive_sub(self, kwds)
>    3424         """
>    3425         ops = self._operands
> -> 3426         new_ops = [SR(op._recursive_sub(kwds)) for op in ops]
>    3427
>    3428         #Check to see if all of the new_ops are symbolic constants
>
> /home/bober/sage-2.8.15.alpha1/local/lib/python2.5/site-packages/sage/calculus/calculus.py
>  in _recursive_sub(self, kwds)
>    3430         is_constant = all(map(lambda x: isinstance(x, 
> SymbolicConstant), new_ops))
>    3431         if is_constant:
> -> 3432             return SymbolicConstant( self._operator(*map(lambda x: 
> x._obj, new_ops)) )
>    3433         else:
>    3434             return self._operator(*new_ops)
>
> /home/bober/sage-2.8.15.alpha1/rational.pyx in 
> sage.rings.rational.Rational.__pow__()
>
> <type 'exceptions.AssertionError'>: BUG:  Rational.__pow__ called on a 
> non-Rational
> sage:
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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://sage.math.washington.edu/sage/ and http://sage.scipy.org/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to