Errors in Adaptive Runge Kutta Method?

In summary, the conversation discusses the use of adaptive stepsize Runge Kutta method to solve a set of Lotka Volterra equations. The user is experiencing errors such as a step size too small and too many steps in the routine. It is suggested that the problem may be due to a limit on the number of steps or an incorrectly formulated derivative function. The conversation also touches on the importance of understanding the code being used and customizing it for the specific problem at hand.
  • #1
gradnu
21
0
Hi
I am using adaptive stepsize Runge Kutta (order4) method to solve a set of Lotka Volterra system of equations.

But I am getting the errors
1) Step size too small
2) Too many steps in the routine

Can somebody please help me on this.
 
Physics news on Phys.org
  • #2
This has nothing to do with mathematics! Also, you aren't using" adaptive stepsize Runge Kutta"- you are running a particular implementation of it and the difficulties are that of the implementation.
It would seem obvious from the second "error message" that their is a limit ion how many steps you can use in whatever program you are using. Of course, since the stepsize is the length of the interval divided by number of steps, using too many steps will cause the stepsize to be too small.
Do you have the documentation for your software? Is there a limit on how many steps you can use? If so, make sure your number of steps is below that limit. If not, try smaller numbers of steps until you don't get those error messages. The move it back up to find the limit.
 
  • #3
HallsofIvy said:
This has nothing to do with mathematics!

You purists! Of course it does. Applied mathematics is a very important part of mathematics.

Back on topic:
First, you are using something in addition to fourth-order RK. For example, an RK4/5 adaptive step size integrator uses a fifth order RK integrator to act as a check on the fourth order integrtor. The step size is adjusted to make the fifth order integrator more-or-less agree with the fourth order integrator. Too little agreement and the step size is reduced; too much and the step size is increased.

Two possible causes of the error:
  • You formulated the derivative function incorrectly. This can make the integrator try to find a numerical solution to an insoluble problem.
  • The problem is inherently stiff. Adaptive RK integrators fare poorly against stiff systems.
 
  • #4
Thanks for the prompt replies.
I am using the code in 'C' from numerical recipes.
It works for small limits of integration but starts giving errors if I increase the interval of integration.
 
  • #5
I agree with Hall's this is not a math problem, it is a software problem.

You have the code, do you not understand it? Seems like it is time to read through the code with the goal of understanding exactly what it is doing. That may mean doing some research on the RK method. This will also be an opportunity to improve your C skills.

You should be able to find in the code what the limits on your step size and number of steps is. You can then use the software as the programmer intended.
 
  • #6
You are not merely using the Numerical Recipes code. This code requires the user to supply a function that computes the total derivatives of the state vector components. If this function is wrong the NR code will either give incorrect result or will simply fail. That user-written function (i.e., your function) is the first thing you should deem as suspect.

This disclaimer in Numerical Recipes in C section 16.2 is pertenant: "The routine odeint should be customized to the problem at hand". The Numerical Recipes routines use single-precision floating point unless modified. Unless modified (and you need to do this with extreme care), trying to push the precision beyond the capability of single-precision will fail.
 
  • #7
I apologize for posting the problem in Diff. Eq. section.
Thanks D H for the suggestions.
 

FAQ: Errors in Adaptive Runge Kutta Method?

What is the Adaptive Runge Kutta Method?

The Adaptive Runge Kutta Method is a numerical method used to solve ordinary differential equations. It is an extension of the classic Runge-Kutta method, which is a fourth-order method. The adaptive version allows for more accurate solutions by adjusting the step size based on the error of the previous step.

How does the Adaptive Runge Kutta Method work?

The method works by taking smaller step sizes in the regions of the solution where the derivative is changing rapidly, and larger step sizes in regions where the derivative is changing slowly. This adaptive step size is determined by comparing the error of the current step to a predetermined tolerance level. If the error is too large, the step size is decreased, and if the error is small, the step size is increased.

What are the advantages of using the Adaptive Runge Kutta Method?

The main advantage of using the adaptive method is that it can provide more accurate solutions compared to the non-adaptive version. This is especially useful when solving stiff or highly oscillatory differential equations, where a fixed step size may lead to inaccurate results. Additionally, the adaptive method can save computational time by taking larger step sizes in regions where the solution does not change significantly.

What are the limitations of the Adaptive Runge Kutta Method?

One limitation of the adaptive method is that it can be more computationally intensive compared to the non-adaptive version. This is because it requires additional calculations to determine the optimal step size at each iteration. Additionally, the adaptive method may not be suitable for solving equations with discontinuous solutions or solutions with very sharp peaks.

When should the Adaptive Runge Kutta Method be used?

The adaptive method should be used when high accuracy is required in solving ordinary differential equations. It is particularly useful for solving equations where the solution changes rapidly or for problems where the solution is unknown and a high level of accuracy is desired. The adaptive method should also be used when the non-adaptive method leads to inaccurate results.

Similar threads

Replies
3
Views
2K
Replies
5
Views
2K
Replies
16
Views
3K
Replies
6
Views
4K
Replies
1
Views
1K
Replies
4
Views
7K
Replies
4
Views
3K
Back
Top