William Stein wrote: > 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:
Oh, right. Duh. I should have seen that. Thanks, Jason > > 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 -~----------~----~----~----~------~----~------~--~---
