sage: reset()
sage: var("x,mu,sigma")
(x, mu, sigma)
sage: dlnorm(x,mu,sigma)=e^-((log(x)-mu)^2/(2*sigma^2))/(sigma*x*sqrt(2*pi))
sage: integrate(dlnorm(x,mu,sigma),x,0,oo).canonicalize_radical()
1
sage: m=integrate(x*dlnorm(x,mu,sigma),x,0,oo).canonicalize_radical()
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/usr/local/sage-6.7/local/lib/python2.7/site-packages/sage/all_cmdline.pyc in <module>()
----> 1 m=integrate(x*dlnorm(x,mu,sigma),x,Integer(0),oo).canonicalize_radical()
/usr/local/sage-6.7/local/lib/python2.7/site-packages/sage/misc/functional.pyc in integral(x, *args, **kwds)
661 """
662 if hasattr(x, 'integral'):
--> 663 return x.integral(*args, **kwds)
664 else:
665 from sage.symbolic.ring import SR
/usr/local/sage-6.7/src/sage/symbolic/expression.pyx in sage.symbolic.expression.Expression.integral (build/cythonized/sage/symbolic/expression.cpp:52709)()
10695 R = ring.SR
10696 return R(integral(f, v, a, b, **kwds))
> 10697 return integral(self, *args, **kwds)
10698
10699 integrate = integral
/usr/local/sage-6.7/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.pyc in integrate(expression, v, a, b, algorithm, hold)
759 return indefinite_integral(expression, v, hold=hold)
760 else:
--> 761 return definite_integral(expression, v, a, b, hold=hold)
762
763 integral = integrate
/usr/local/sage-6.7/src/sage/symbolic/function.pyx in sage.symbolic.function.BuiltinFunction.__call__ (build/cythonized/sage/symbolic/function.cpp:10862)()
992 res = self._evalf_try_(*args)
993 if res is None:
--> 994 res = super(BuiltinFunction, self).__call__(
995 *args, coerce=coerce, hold=hold)
996
/usr/local/sage-6.7/src/sage/symbolic/function.pyx in sage.symbolic.function.Function.__call__ (build/cythonized/sage/symbolic/function.cpp:6798)()
500 for i from 0 <= i < len(args):
501 vec.push_back((<Expression>args[i])._gobj)
--> 502 res = g_function_evalv(self._serial, vec, hold)
503 elif self._nargs == 1:
504 res = g_function_eval1(self._serial,
/usr/local/sage-6.7/src/sage/symbolic/function.pyx in sage.symbolic.function.BuiltinFunction._evalf_or_eval_ (build/cythonized/sage/symbolic/function.cpp:11519)()
1063 res = self._evalf_try_(*args)
1064 if res is None:
-> 1065 return self._eval0_(*args)
1066 else:
1067 return res
/usr/local/sage-6.7/local/lib/python2.7/site-packages/sage/symbolic/integration/integral.pyc in _eval_(self, f, x, a, b)
174 for integrator in self.integrators:
175 try:
--> 176 return integrator(*args)
177 except NotImplementedError:
178 pass
/usr/local/sage-6.7/local/lib/python2.7/site-packages/sage/symbolic/integration/external.pyc in maxima_integrator(expression, v, a, b)
19 result = maxima.sr_integral(expression,v)
20 else:
---> 21 result = maxima.sr_integral(expression, v, a, b)
22 return result._sage_()
23
/usr/local/sage-6.7/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.pyc in sr_integral(self, *args)
782 raise ValueError("Integral is divergent.")
783 elif "Is" in s: # Maxima asked for a condition
--> 784 self._missing_assumption(s)
785 else:
786 raise
/usr/local/sage-6.7/local/lib/python2.7/site-packages/sage/interfaces/maxima_lib.pyc in _missing_assumption(self, errstr)
991 + errstr[jj+1:k] +">0)', see `assume?` for more details)\n" + errstr
992 outstr = outstr.replace('_SAGE_VAR_','')
--> 993 raise ValueError(outstr)
994
995 def is_MaximaLibElement(x):
ValueError: Computation failed since Maxima requested additional constraints; using the '
assume' command before evaluation *may* help (example of legal syntax is 'assume(sigma^2+mu>0)', see `assume?` for more details)
Is sigma^2+mu positive, negative or zero?
sage: maxima("declare(x,real,mu,real,sigma,real);")
done
sage: maxima("assume(sigma>0);")
[sigma>0]
sage: maxima("define(dlnorm(x,mu,sigma),%e^-((log(x)-mu)^2/(2*sigma^2))/(sigma*x*sqrt(2*%pi)));")
dlnorm(x,mu,sigma):=%e^-((log(x)-mu)^2/(2*sigma^2))/(sqrt(2*%pi)*sigma*x)
sage: maxima("radcan(integrate(dlnorm(x,mu,sigma),x,0,inf));")
1
sage: maxima("m:radcan(integrate(x*dlnorm(x,mu,sigma),x,0,inf));")
%e^((sigma^2+2*mu)/2)
sage: maxima("v:radcan(integrate((x-m)^2*dlnorm(x,mu,sigma),x,0,inf));")
%e^(2*sigma^2+2*mu)-%e^(sigma^2+2*mu)
sage:
Six month and a few versions of Sage and Maxima later, I've checked (in a different way, see below) that the same problem still exists. Nobody has a clue about this problem ?