Integration af 1.ordens differentialligning
Runga-Kutta sammenlignet med Adams-Moulton
Opgave 2 i Afsnit 19.2 (afsnit 20.2 i 7. udgave)

Clear[x, y, f];

h = 0.1; n = 10;

x[0] = 0; Do[x[i] = x[i - 1] + h, {i, n}]

f[x_, y_] = y; y[0] = 1;

F[x_] = Exp[x];

\(Do[{k1 = h\ f[x[i - 1], y[i - 1]]; 
		
        k2 = h\ f[x[i - 1] + 0.5\ h, y[i - 1] + 0.5\ k1]; 
		
        k3 = h\ f[x[i - 1] + 0.5\ h, y[i - 1] + 0.5\ k2]; 
		
        k4 = h\ f[x[i], y[i - 1] + k3]; 
		
        y[i] = y[i - 1] + 1\/6\ \((k1 + 2\ k2 + 2\ k3 + k4)\)}, {i, n}]\)

w = 
      Table[{x[i - 1], y[i - 1], F[x[i - 1]], F[x[i - 1]] - y[i - 1]}, {i, 
          n + 1}];

\(TableForm[w, \ 
      TableHeadings -> 

        		{None, {\*""\!\(x\_n\)"", \*""\!\(y\_n\)"", 
            \*""y(\!\(x\_n\))"", \*""\!\(ϵ\_n\)""}}]\)

Table[{x[i - 1], w[[i, 4]]}, {i, 
        n + 1}];

g1 = ListPlot[%]

Adams-Moulton metode med Runga-Kutta tilnærmelsen som start

Do[ff[i - 1] = f[x[i - 1], y[i - 1]], {i, 4}];

\(Do[{
        yst[i] = 
			
          y[i - 1] + 
            1\/24\ h\ 
              \((55\ ff[i - 1] - 59\ ff[i - 2] + 37\ ff[i - 3] - 9\ ff[i - 4])
                \), 
		
        y[i]\  = \ 
          y[i - 1] + 
            1\/24\ h\ 
              \((9\ f[x[i], yst[i]] + 
						19\ ff[i - 1] - 
                  5\ ff[i - 2] + ff[i - 3])\), 
		ff[i] = f[x[i], y[i]]}, {
        i, 4, n}]\)

z = 
      Table[{x[i - 1], y[i - 1], F[x[i - 1]], F[x[i - 1]] - y[i - 1]}, {i, 
          n + 1}];

\(TableForm[z, \ 
      TableHeadings -> 

        		{None, {\*""\!\(x\_n\)"", \*""\!\(y\_n\)"", 
            \*""y(\!\(x\_n\))"", \*""\!\(ϵ\_n\)""}}]\)

Table[{x[i - 1], z[[i, 4]]}, {i, 
        n + 1}];

g2 = ListPlot[%, PlotStyle -> {RGBColor[1, 0, 0]}]

Show[g1, g2]

Bemærk at fejlen ved de to metoder er af samme størrelsesorden.