Fast numerical plot command that always works?
I typically encounter expressions of the type:type
E C = -I*sqrt(pi)*x*e^(-1/4*x^2)
Abs = abs(C)
or Sage's built-in plot commands fails:
E = C * C.conjugate()
verbose 0 (4101: plot.py, generate_plot_points) WARNING: When plotting,
failed to evaluate function at 200 points.
verbose 0 (4101: plot.py, generate_plot_points) Last error message:
'unable to simplify to float approximation'
Here, C is a complex We can evaluate the expression (function) of one more independent variables x, y, ...
Sage's built-in plot commands sometimes fail to plot E with errors such as "cannot simplify to float approximation".numerically:
XList = range(100)
Elist X = map(lambda X: real(E.subs(x=X).n()), Xlist)
list_plot(zip(XList, EList))
x: x/10, range(-100,100))
Y = map(lambda xx: Abs.subs(x=xx).n(), X)
Yreal = map(real, Y)
Yimag = map(imag, Y)
list_plot(zip(X,Yreal)) + list_plot(zip(X,Yimag),color='red')
This works, but it can be very slow and looks like a dirty workaround. Should I use numpy arrays and fast_callable? Or use fast_callable() without numpy?
Here is an example worksheet.