Hi Jason, It think that find_root does use fast_float, but it compiles the fast_float function every time it is called. This makes it very slow if I want to find the roots of f for all values of b between say -3 and -1. Therefore, I would like to be able to compile a fast_float function of e.g. 'b' and 'x', then pluck in different values for b and call find_root repeatedly to find the roots. The partial trick did it, but it would be great if this could be made more intuitively and part of fast_float, as you suggested.
Since fast_float can be defined for an arbitrary number of variables, I think that it should be possible to generate a fast_float expression for any symbolic equation, and if this was a callable function or even worked with .subs() it would be a huge enhancement. Thanks again, Stan Jason Grout wrote: > Unfortunately, I don't that will ever work, as Python does not do > automatic currying (did I use the right term?). The list comprehension > in python is a special case, where the function is not evaluated until > you have a value for x. However, in the case of plot, the function ff > is evaluated first, and since x is missing, there is an error. > > However, in your case, it would probably make a lot more sense to do this: > > f = a*x^3+b*x^2+c*x+d > plot(f.subs(a=1,b=2,c=3,d=4), (x, 0, 6)) > > This uses the fact that f is a symbolic expression, then the subs > command substitutes in variables and returns another expression. > fast_float is called by plot automatically. > > If find_root doesn't automatically use fast_float (it should!), then you > could do something like: > > f = a*x^3+b*x^2+c*x+d > find_root(fast_float(f.subs(a=1,b=2,c=3,d=4), 'x'), (x, 0, 6)) > > (or whatever the syntax is). > > Again, this only works for Sage symbolic expressions... > > Sorry I didn't think of this earlier. For general python functions, you > could use the partial trick we talked about. > > It might make sense to have some sort of partial evaluation available > for fast_float functions, so if a few arguments were given, it behaved > like the partial trick above. > > Thanks, > > Jason > > > > > > > -- ________________________________________ Stan Schymanski Scientist Max Planck Institute for Biogeochemistry Postfach 10 01 64 D-07701 Jena Phone: +49.3641.576264 Fax: +49.3641.577274 WWW: http://www.bgc-jena.mpg.de/~sschym Biospheric Theory and Modelling Group http://www.bgc-jena.mpg.de/bgc-theory/ _________________________________________ --~--~---------~--~----~------------~-------~--~----~ 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 URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---