Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Literature Notes #212

Open
rparini opened this issue Aug 18, 2022 · 0 comments
Open

Literature Notes #212

rparini opened this issue Aug 18, 2022 · 0 comments

Comments

@rparini
Copy link
Owner

rparini commented Aug 18, 2022

Improving derivative-free case

When df is not provided we currently approximate it using a finite difference method

if df is None:
df = numdifftools.Derivative(f, order=df_approx_order)
# df = lambda z: scipy.misc.derivative(f, z, dx=1e-8, n=1, order=3)
# Too slow
# import numdifftools.fornberg as ndf
# ndf.derivative returns an array [f, f', f'', ...]
# df = np.vectorize(lambda z: ndf.derivative(f, z, n=1)[1])

Is there a better way of doing this? I feel like knowing f is complex analytic should let us do something more clever but not sure what. I've seen literature involving contour integrations to do this (and I implemented an approach in the cxroots.derivative.cx_derivative function) but integration can involve a lot of function evaluations. Possibly relevant reading:

Alternatively, perhaps we could take a different approach to rootfinding that avoids approximating df when it is not provided. Possibly relevant reading:

Cluster handling

Can we improve how we handle clusters of roots?

@rparini rparini changed the title Improve no-derivative case Review literature Aug 18, 2022
@rparini rparini changed the title Review literature Literature review notes Aug 18, 2022
@rparini rparini pinned this issue Aug 18, 2022
@rparini rparini changed the title Literature review notes Literature Notes Aug 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant