mn6d Runge Kutta

R-K es un método de solución para ecuaciones diferenciales ordinarias. Es un procedimiento iterativo para calcular la solución de la ecuación diferencial paso a paso a partir de una condición inicial.  El más común es el de 4to orden.

Método de  Runge – Kutta  4to. orden

K1 =  h f(xi,yi
K2 =  h f[xi + ½ h, yi + ½ K1]
K3 =  h f[xi + ½ h, yi + ½ K2]
K4 =  h f[xi + h, yi + K3]
K =  1/6  [K1 + 2K2 + 2K3 + K4]
yi+1 = yi + K
xn+1 = xn + h

Ejemplo. Resolver la ecuación diferencial  y’ = 2xy    condición inicial  y(1) = 1

n = 0               x = 1.0            y = 1.0       h = 0.1

K1 =  (h)(2x0y0) =  (0.1)(2)(1)(1)  =  0.2
K2 =  (0.1) f[x0 + ½ (0.1), y0 + ½ (0.2)] = 0.1 [2(1+0.05)(1+0.1)] = 0.231
K3 =  (0.1) f[x0 + ½ (0.1), y0 + ½ (0.231)] = 0.1 [2(1.05)(1.1155)] = 0.234255
K4 =  (0.1) f[x0 + 0.1, y0 + 0.234255] =  0.1 [2(1.1)(1.234255)] = 0.2715361
K =    [K1 + 2K2 + 2K3 + K4] = [0.2 + 2(0.231) +2(0.234255) + 0.2715361)]
K = 0.23367435
y1 = y0 + K   = 1 + 0.23367435 = 1.23367435
n = 1               x1 = 1.1          y1 = 1.23367435
K1 =  (h)(2x1y1) =  (0.1)(2)(1.1)(1.23367435)  =  0.27140836
K2 =  0.1[2(1.15)(1.36937853)] =  0.314957061555
K3 =  0.1[2(1.15)(1.391152880778)] =   0.3199651625788
K4 =  (0.1)[2(1.2)(1.553639512578)] =    0.3728734830187
K =  [0.27141 + 2(0.31496) +2(0.31997) + 0.37287)]   =  0.31902
y2 = y1 + K   =  1.23367435 +  0.31902  = 1.55269

n = 2               x2 = 1.2          y2 = 1.55269

K1 =  (h)(2x2y2) =  (0.1)(2)(1.2)(1.55269)  =  0.3726469
K2 =  0.1[2(1.25)(1.73901345)] =  0.43475471
K3 =  0.1[2(1.25)(1.77006668125)] =   0.44251819
K4 =  (0.1)[2(1.3)(1.99520819)] =    0.51875553
y2 = y1 + K   =  1.55269 +  0.44099  = 1.99369

Resolviendo con hoja de cálculo

xyK1K2K3K4K
1.010.20.2310.23420.2710.233
1.11.2330.2710.3140.31990.3720.319
1.21.5520.3720.4340.44250.5180.440
1.31.9930.5180.6080.62040.7310.617
1.42.6110.7310.8630.88251.0480.878
1.53.4901.0471.2441.27481.5241.268
1.64.7581.5221.8211.87082.2541.860
1.76.6182.2502.7102.79093.3872.773
1.89.3923.3814.1004.23375.1774.204
1.913.5965.1666.3106.53338.05206.484
2.020.0818.0329.87910.25812.74210.175
2.130.25612.70715.74216.39520.52616.251
2.246.50820.46325.53326.67333.66326.423
2.372.93133.54842.16144.18656.21643.743
2.4116.67556.00470.89174.53295.60773.745
2.5190.42195.210121.393128.070165.615126.62

El error es mínimo, por lo tanto, el método de Runge-Kutta es adecuado para resolver la ecuación diferencial.

XYreal% error
1.0110
1.11.233674351.233678060.00030072
1.21.55269541.552707220.00076128
1.31.993686771.993715530.00144273
1.42.611633232.611696470.00242142
1.53.490210643.490342960.00379106
1.64.758551674.758821250.00566476
1.76.618827416.619368680.00817715
1.89.392252339.393331290.01148646
1.913.596905413.59905090.01577667
2.020.081266820.08553690.02125956
2.130.256716530.26524430.02817676
2.246.508352246.52547440.03680182
2.372.931851672.96646850.04744218
2.4116.675363116.7459260.06044105
2.5190.421096190.5662680.0761793