I'm trying to solve a system of differential equations with Runge-Kutta method. When I use the step size $h=1$ my problem has true answer but when I use the smaller $h$ (for example $h = 0.1$) my answer is very bad. So I think I have a stiff problem. My question is how can I prove my problem is stiff? I want to know the methods that used for proving stiff problems. Thanks a lot
Compute the condition number of the Jacobian of the right side of the ODE at interesting points. If this number is very large, you have a stiff system. Edit: Since that tells you about the direction dependence of the Lipschitz constant. Non-stiff systems have a very low direction dependence.
Direct methods: Step size variation: Try a variety of step sizes $h$, for each $h$ compute the solution for $h$ and $h/2$, the difference between these two is an approximation of the error of the $h$ solution. This should be proportional to $h^p$ where $p$ is the global convergence order of the method. If the system is stiff, this becomes true only for very small step sizes $h$ or never, because then it becomes over-shadowed by rising numerical noise accumulation from the increasing number of steps.
Order variation: Use an adaptive method that has three embedded methods. If I remember correctly, there is a popular RK method that has embedded orders 1-5-6. See if the local errors conform to the theory for moderate Lipschitz constants.