kcrisman wrote:
> Dear support,
> 
> I'm giving a talk Wednesday and would like to do the following
> interact as an example of how easy interacts are:
> 
> y = var('y')
> @interact
> def _(g=input_box(default = 1-y)):
>     P=plot_slope_field(g,(x,0,3),(y,0,20))
>     y = function('y',x)
>     f = desolve(diff(y,x) + g, y, ics=[2,2])
>     Q=plot(f,0,3)
>     show(P+Q)
> 
> Only it isn't easy.  The declaring of y = function('y',x), which is
> necessary to use desolve, causes the following error:
> 
> UnboundLocalError: local variable 'y' referenced before assignment
> 
> And the 'g' in the desolve also causes problems shortly thereafter.  I
> tried a lot of things to fix this, but nothing seemed to work quite
> right.  Note that this works nicely without interact.
> 
> Any help one can give in a relatively timely basis would be much
> appreciated!  Thanks in advance,


It looks like you are confusing y-as-a-variable and y-as-a-function an 
awful lot.  How about:

y = var('y')
@interact
def _(g=input_box(default = 1-y)):
     P=plot_slope_field(g,(x,0,3),(y,0,20))
     yfun = function('yfun',x)
     f = desolve(diff(yfun,x) + g(y=yfun), yfun, ics=[2,2])
     Q=plot(f,0,3)
     show(P+Q)


Does that give what you want?

Jason

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to