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

List of numerical schemes #11

Open
1 of 8 tasks
szaghi opened this issue Oct 16, 2015 · 7 comments
Open
1 of 8 tasks

List of numerical schemes #11

szaghi opened this issue Oct 16, 2015 · 7 comments

Comments

@szaghi
Copy link
Contributor

szaghi commented Oct 16, 2015

To the aim of the numerical solution of definite integrals many schemes have been devised. It could be helpful to have a list of desiderata:

  • Newton-Cotes formulae:
    • trapezoidal rule;
    • composite trapezoidal rule;
    • Simpson's rule;
  • Gaussian quadrature formulae:
  • Gauss-Kronrod formulae:
  • Montecarlo schemes for multidimensional function;
  • acceleration methods;
@giacrossi
Copy link
Owner

Closed by 84838cb

@szaghi
Copy link
Contributor Author

szaghi commented Oct 16, 2015

This issue was not intended to be closed... was just a "room" for discuss about desiderata schemes. Please, reopen it.

@giacrossi
Copy link
Owner

As @szaghi said, the issue is been reopened.

A list of numerical schemes can be found here. Any suggestion is very appreciated!

@giacrossi giacrossi reopened this Oct 16, 2015
@szaghi
Copy link
Contributor Author

szaghi commented Oct 16, 2015

@giacombum thank you!

P.S. nice README :-) I have already seen something similar...

@giacrossi
Copy link
Owner

@szaghi I've a good master...

@giacrossi
Copy link
Owner

I've found a nice algorithm to divide an integration interval in a series of little intervals to minimize the error of the numerical integration algorithm, but I've a doubt on which is the best way to proceed: this algorithm is suitable for a wide series of integration formulas (midpoint, trapezoidal, Simpson's, ecc...), so I think that can be useful that any of this integrator use this adaptive method to release themselves from a fixed choose of the number of subintervals in which the main interval has to be divided (see for example here).

Do you think can be useful to implement this algorithm over all the integrators?

Or do you think is better to develop an "adaptive" version of each integrator?

Or, moreover, do you think is better to develop an independent routine that uses this algorithm to split the original interval into adaptive sub-intervals?

A remarkable observation: the procedure that computes the step sizes uses the integrator to compute an error estimation and estabilish if the interval has to be splitted or not!

As always, I hope I've explained what I mean...

@szaghi
Copy link
Contributor Author

szaghi commented Oct 20, 2015

I am not an expert on definite integrals numerical schemes (I just remember what learned at university lessons), but in general I can suggest:

  • you are trying to develop an abstract library, thus try to abstract all, in particular:
    • if the adaptive step algorithm has the potential to be applied to many solvers it could be likely the case to abstract it and in this case:
      • improve your integrand ADT to support the eventually necessary methods to complete the adaptive step algorithm;
      • implement the algorithm basing on only your ADT;
      • make the algorithm available for your integrators, namely put it into a separate module (implementing the algorithm with your favorite paradigm, I only suggest to exploit again OOP because you can in future devise new adaptive algorithms belonging to a different family);
      • when necessary let your integrators to use the adaptive algorithm facility;

In this scenario you avoid to replicate the adaptive algorithm for each integrator using always the same implementation (improving code re-usability, robustness, conciseness and clearness).

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

2 participants