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
-~----------~----~----~----~------~----~------~--~---

Reply via email to