Numerical Analysis/stability of RK methods

From testwiki
Jump to navigation Jump to search

Definitions

Let τi be the local truncation error, and k is the number of time steps, then:

  1. The numerical method is consistent with a differential equation if
    limh0max|τi|=0 over 1ik.
    according to this definition w:Euler's method is consistent.
  2. A numerical method is said be convergent with respect to differential equation if
    limh0|x(ti)yi|=0 over 1ik;
    where yi is the approximation for x(ti).
  3. A numerical method is stable if small change in the initial conditions or data, produce a correspondingly small change in the subsequent approximations.

Theorem: For an initial value problem

x=f(t,x) with t[t0,t0+α]

and certain initial conditions, (t0,x0), let us consider a numerical method of the form

(y0=x0) and yi+1=yi+hϕ(ti,yi,h).

If there exists a value h>0 such that it is continuous on the iterative domain, Ω and if there exists an L>0 such that

|ϕ(t,y,h)ϕ(t,y*,h)|L|yy*| for all (t,y,h),(t,y*,h)Ω,

the method fulfills the w:Lipschitz condition, and it is stable and convergent if and only if it is consistent. That is,

ϕ(t,x,0)=f(t,x) for all tΩ.

For a similar argument, one can deduce the following for multi- step methods:

  1. The method is stable if and only if all roots, λ, of the characteristic polynomial satisfy
    |λ|1,
    and any root of
    |λ|=1
    is simple root.
  2. one more result is that if the method is consistent with the differential equation, the method is stable if and only if it it is convergent.

see [1]

stability polynomials of Runge-Kutta methods

The w:Runge–Kutta methods are very useful in solving systems of differential equations, it has wide applications for the scientists and the engineers, as well as for the economical models, the recognized with their practical accuracy where we can use and get very good results and approximations when solving an ODE problem, RK has the general form :yn+1=yn+hi=1sbiki, where

k1=hf(tn,yn),
k2=hf(tn+c2h,yn+a21k1),
k3=hf(tn+c3h,yn+a31k1+a32k2),
ks=hf(tn+csh,yn+as1k1+as2k2++as,s1ks1).

such that

s is the number of stages,
aij (for 1 ≤ j < is),
bi (for i = 1, 2, ..., s)
and ci (for i = 2, 3, ..., s).

Example:finding the stability polynomial for RK4's methods

for RK4" case2a", which characterizes by c2=14 which has the form: the stability region is found by applying the method to the linear test equation y=λy

yn+1=yn+16k1+0k2+2k33+k46
the stability region is found by applying the method to the linear test equation y=λy
 k1=hf(tn,yn)
k2=hf(tn+h2,ynk12)
k3=hf(tn+h2,yn+3k14k24)
k4=hf(tn+h,yn2k1+k2+2k3)

using the linearized equation f(t,y)=λy, and considering h^=hλ , we get;

k1=h^yn
k2=h^(1h^2)yn
k3=h^(1+3h^4h^4(1h^2))yn
k4=h^(12h^+h^(1h^2)+2h^(1+3h^4h^4(1h^2)))))yn

substitute these back in yn+1, yields yn+1=[1+(h^)+(h^)22+(h^)36+(h^)424]yn=R(h^)yn

and so the characteristic polynomial

P(z)=zR(z);z=h^ for the absolute stability region for this method, set |R(z)|<1, and so we get the region in figure 1. case2a

the table below shows the final forms for the stability function for different forms of RK4, these RK4's are different in the values of bj, and they are fullfilling the consistencty requirement for the method i.e :j=1i1aij=ci for i=2,,s.

case# (b1,b2,b3,b4) stability function
caseI (18,38,38,18) 1+z+z22+z36+z424
caseII_a (16,0,23,16) 1+z+z22+z36+z424
caseII_b (16,0,23,16) 1+z+5z2617z3122z424+z512
caseIII (112,23,112,16) 1+11z12+5z212+z36+z424
caseIV (16,0,23,16) 1+z+z22+z36+z424
classical Rk (16,13,13,16) 1+z+z22+z36+z424


see [2] to find the table

Plotting the stability region

In order to plot the stability region, we can set the stability function to be bounded by 1 and solve for the values of z, then draw z in the complex plane. Since R(z) is the unit circle in the complex plane, each point on the boundary can be represented as eiθ and so by changing θ over the interval[0,2π], we can draw the boundaries of that region. The following w:OCTAVE/Matlab code does this by plotting contour curves until reaching the boudaries:

[x,y] = meshgrid(-6:0.01:6,-6:0.01:6);
z = x+i*y;
R = 1+z+0.5*z.^2+(1/6)*z.^3+(1/24)*z.^4;
zlevel = abs(R);
contour(x,y,zlevel,[1 1]);

The figure at right shows the absolute stability regions for RK4 cases which is tabulated above[3]

References