On 2014-06-21, David Ingerman <[email protected]> wrote: > Thank you, that's helpful. Is there a way to get all roots of a Python > function on an interval?
I never heard of robust procedures for such a task, and doubt they are even possible (think about roots of sin(1/x) on [0,1]). Certainly you can partition the interval into pieces and try finding root in each subinterval where the function has different signs on its ends. scipy has a variety of root-finding methods implemented. You can do sage: import scipy.optimize and then read on sage: scipy.optimize.brentq? (the method called by Sage's find_root) > > On Friday, June 20, 2014 2:10:38 AM UTC-7, Dima Pasechnik wrote: >> >> On 2014-06-20, David Ingerman <[email protected] <javascript:>> wrote: >> > Thank you, so what to do for Python function? Matlab had general >> purpose >> > 'optim(f)' if my memory is right... >> >> you can e.g. use find_root(); this is a numerical thing that accepts >> Python functions. Here is an example: >> >> sage: def f(x): >> return x-cos(x) >> ....: >> sage: find_root(f,0,1) >> 0.7390851332151559 >> sage: >> >> > >> > On Wednesday, June 11, 2014 1:50:10 AM UTC-7, Dima Pasechnik wrote: >> >> >> >> On 2014-06-10, David Ingerman <[email protected] <javascript:>> >> wrote: >> >> > >> >> > How to solve([f(x)==0],x) for a function "f(x)" defined in a .sage >> >> file? >> >> > >> >> > The error message: TypeError: Cannot evaluate symbolic expression to >> a >> >> > numeric value. >> >> >> >> what is f(x) ? >> >> solve() won't work for a Python function, it needs a symbolic >> >> expression, e.g. >> >> >> >> sage: type(sin(x)) >> >> <type 'sage.symbolic.expression.Expression'> >> >> sage: >> >> >> >> > >> >> > Thank you... >> >> > >> >> >> >> >> > >> >> > -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
