This is a bug. There absolutely no reason that plotting should give the error
"float() argument must be a string or a number".
We could give an error about not being able to evaluate the function at certain
points. However, the above error is not OK. The error in fact is
not in plotting
but in making a fast_float compiled version of the expression:
sage: s = 20*log(abs((1+I*x)^4),10)
sage: fast_float(s,x)
Traceback (most recent call last):
...
TypeError: float() argument must be a string or a number
In fact, SAge *should* be using fast_callable, not fast_float. This
works just fine if you force it manually:
s = 20*log(abs((1+I*x)^4),10)
plot(fast_callable(s,vars=[x]), (x,0,3))
[[nice picture as output]]
Many, many thanks for your bug report. It is bug reports from users
like you that really helps Sage to be a first-rate mathematical
software system.
We are now tracing this issue at 7614:
http://trac.sagemath.org/sage_trac/ticket/7614
William