On Mon, Mar 30, 2009 at 2:16 PM, Jason Grout <[email protected]> wrote: > > Chris Seberino wrote: >> In a new sage session... >> (Notice the A(t) function returns values just fine. Why doesn't plot >> () like it?) >> >> sage: W(t)=95*sqrt(t)*sin(t/6)^2 >> >> sage: R(t)=275*sin(t/3)^2 >> >> sage: def A(t): >> ....: return 1200 + numerical_integral(W(x)-R(x),0,t)[0] >> ....: >> >> sage: A(0) >> 1200.0 >> >> sage: A(18) >> 1309.788183281373 >> >> sage: plot(A(t),(t,0,18)) >> --------------------------------------------------------------------------- >> TypeError Traceback (most recent call >> last) >> >> /home/seb/<ipython console> in <module>() >> >> /home/seb/<ipython console> in A(t) >> >> /usr/local/sage-3.4-linux-PentiumM-ubuntu-8.04.1-i686-Linux/local/lib/ >> python2.5/site-packages/sage/gsl/integration.so in >> sage.gsl.integration.numerical_integral (sage/gsl/integration.c:1953) >> () >> >> TypeError: a float is required > > > That's weird. A workaround for now is the following:
It's not a weird -- A is a function, not a symbolic expression, so the right syntax is: plot(A, (t,0,18)) Doing plot(A(t), (t,0,18)) should never work. By the way, doing this is massively faster (10000 times faster?) W(t)=95*sqrt(t)*sin(t/6)^2 R(t)=275*sin(t/3)^2 F = (W-R)._fast_float_(t) def A(t): return 1200 + numerical_integral(F,0,t)[0] plot(A, (t,0,18)) William William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---
