Решение задачи Коши методами Эйлера, модифицированным Эйлера и Рунге-Кутта

Photo

Задание 1.1

Решить задачу Коши методом Эйлера, модифицированным методом Эйлера и методом Рунге-Кутта на заданном отрезке:

$$y' = 3 + 2x - y, \quad y(0) = 2, \quad x \in [0; 1], \quad h = 0.2$$

1. Метод Эйлера

Формула метода Эйлера: $y_{i+1} = y_i + h f(x_i, y_i)$, где $f(x, y) = 3 + 2x - y$.

  • $x_0 = 0, y_0 = 2$
  • $x_1 = 0.2, y_1 = y_0 + h(3 + 2x_0 - y_0) = 2 + 0.2(3 + 2*0 - 2) = 2 + 0.2(1) = 2.2$
  • $x_2 = 0.4, y_2 = y_1 + h(3 + 2x_1 - y_1) = 2.2 + 0.2(3 + 2*0.2 - 2.2) = 2.2 + 0.2(1.2) = 2.44$
  • $x_3 = 0.6, y_3 = y_2 + h(3 + 2x_2 - y_2) = 2.44 + 0.2(3 + 2*0.4 - 2.44) = 2.44 + 0.2(1.36) = 2.712$
  • $x_4 = 0.8, y_4 = y_3 + h(3 + 2x_3 - y_3) = 2.712 + 0.2(3 + 2*0.6 - 2.712) = 2.712 + 0.2(1.488) = 2.712 + 0.2976 = 3.0096$
  • $x_5 = 1.0, y_5 = y_4 + h(3 + 2x_4 - y_4) = 3.0096 + 0.2(3 + 2*0.8 - 3.0096) = 3.0096 + 0.2(1.5904) = 3.0096 + 0.31808 = 3.32768$

2. Модифицированный метод Эйлера (метод прогноза-коррекции)

  • Прогноз: $y_{i+1}^* = y_i + h f(x_i, y_i)$
  • Коррекция: $y_{i+1} = y_i + \frac{h}{2} [f(x_i, y_i) + f(x_{i+1}, y_{i+1}^*)]$

  • $x_0 = 0, y_0 = 2$

  • $x_1 = 0.2$
    • $y_1^ = y_0 + h(3 + 2x_0 - y_0) = 2 + 0.2(3 + 20 - 2) = 2.2$
    • $y_1 = y_0 + \frac{h}{2} [(3 + 2x_0 - y_0) + (3 + 2x_1 - y_1^)] = 2 + \frac{0.2}{2} [(3 + 0 - 2) + (3 + 20.2 - 2.2)] = 2 + 0.1[1 + 1.2] = 2 + 0.1(2.2) = 2.22$
  • $x_2 = 0.4$
    • $y_2^ = y_1 + h(3 + 2x_1 - y_1) = 2.22 + 0.2(3 + 20.2 - 2.22) = 2.22 + 0.2(1.18) = 2.22 + 0.236 = 2.456$
    • $y_2 = y_1 + \frac{h}{2} [(3 + 2x_1 - y_1) + (3 + 2x_2 - y_2^*)] = 2.22 + \frac{0.2}{2} [(3 + 0.4 - 2.22) + (3 + 0.8 - 2.456)] = 2.22 + 0.1[1.18 + 1.344] = 2.22 + 0.1(2.524) = 2.4724$
  • $x_3 = 0.6$
    • $y_3^ = y_2 + h(3 + 2x_2 - y_2) = 2.4724 + 0.2(3 + 20.4 - 2.4724) = 2.4724 + 0.2(1.3276) = 2.4724 + 0.26552 = 2.73792$
    • $y_3 = y_2 + \frac{h}{2} [(3 + 2x_2 - y_2) + (3 + 2x_3 - y_3^*)] = 2.4724 + \frac{0.2}{2} [(3 + 0.8 - 2.4724) + (3 + 1.2 - 2.73792)] = 2.4724 + 0.1[1.3276 + 1.46208] = 2.4724 + 0.1(2.78968) = 2.751368$
  • $x_4 = 0.8$
    • $y_4^ = y_3 + h(3 + 2x_3 - y_3) = 2.751368 + 0.2(3 + 20.6 - 2.751368) = 2.751368 + 0.2(1.448632) = 2.751368 + 0.2897264 = 3.0410944$
    • $y_4 = y_3 + \frac{h}{2} [(3 + 2x_3 - y_3) + (3 + 2x_4 - y_4^*)] = 2.751368 + \frac{0.2}{2} [(3 + 1.2 - 2.751368) + (3 + 1.6 - 3.0410944)] = 2.751368 + 0.1[1.448632 + 1.5589056] = 2.751368 + 0.1(3.0075376) = 3.05212176$
  • $x_5 = 1.0$
    • $y_5^ = y_4 + h(3 + 2x_4 - y_4) = 3.05212176 + 0.2(3 + 20.8 - 3.05212176) = 3.05212176 + 0.2(1.54787824) = 3.05212176 + 0.309575648 = 3.361697408$
    • $y_5 = y_4 + \frac{h}{2} [(3 + 2x_4 - y_4) + (3 + 2x_5 - y_5^*)] = 3.05212176 + \frac{0.2}{2} [(3 + 1.6 - 3.05212176) + (3 + 2 - 3.361697408)] = 3.05212176 + 0.1[1.54787824 + 1.638302592] = 3.05212176 + 0.1(3.186180832) = 3.3707398432$

3. Метод Рунге-Кутта 4-го порядка

Формулы:

  • $k_1 = h f(x_i, y_i)$
  • $k_2 = h f(x_i + \frac{h}{2}, y_i + \frac{k_1}{2})$
  • $k_3 = h f(x_i + \frac{h}{2}, y_i + \frac{k_2}{2})$
  • $k_4 = h f(x_i + h, y_i + k_3)$
  • $y_{i+1} = y_i + \frac{1}{6}(k_1 + 2k_2 + 2k_3 + k_4)$

  • $x_0 = 0, y_0 = 2$

  • $x_1 = 0.2$
    • $k_1 = 0.2 * (3 + 2*0 - 2) = 0.2$
    • $k_2 = 0.2 * (3 + 2*0.1 - (2 + 0.1)) = 0.2 * (3 + 0.2 - 2.1) = 0.2 * 1.1 = 0.22$
    • $k_3 = 0.2 * (3 + 2*0.1 - (2 + 0.11)) = 0.2 * (3 + 0.2 - 2.11) = 0.2 * 1.09 = 0.218$
    • $k_4 = 0.2 * (3 + 2*0.2 - (2 + 0.218)) = 0.2 * (3 + 0.4 - 2.218) = 0.2 * 1.182 = 0.2364$
    • $y_1 = 2 + \frac{1}{6}(0.2 + 20.22 + 20.218 + 0.2364) = 2 + \frac{1}{6}(0.2 + 0.44 + 0.436 + 0.2364) = 2 + \frac{1}{6}(1.3124) = 2 + 0.21873333 = 2.21873333$
  • $x_2 = 0.4$
    • $k_1 = 0.2 * (3 + 2*0.2 - 2.21873333) = 0.2 * (3 + 0.4 - 2.21873333) = 0.2 * 1.18126667 = 0.23625333$
    • $k_2 = 0.2 * (3 + 2*0.3 - (2.21873333 + 0.23625333/2)) = 0.2 * (3 + 0.6 - (2.21873333 + 0.118126665)) = 0.2 * (3.6 - 2.336859995) = 0.2 * 1.263140005 = 0.252628$
    • $k_3 = 0.2 * (3 + 2*0.3 - (2.21873333 + 0.252628/2)) = 0.2 * (3 + 0.6 - (2.21873333 + 0.126314)) = 0.2 * (3.6 - 2.34504733) = 0.2 * 1.25495267 = 0.250990534$
    • $k_4 = 0.2 * (3 + 2*0.4 - (2.21873333 + 0.250990534)) = 0.2 * (3 + 0.8 - 2.469723864) = 0.2 * 1.330276136 = 0.2660552272$
    • $y_2 = 2.21873333 + \frac{1}{6}(0.23625333 + 20.252628 + 20.250990534 + 0.2660552272) = 2.21873333 + \frac{1}{6}(0.23625333 + 0.505256 + 0.501981068 + 0.2660552272) = 2.21873333 + \frac{1}{6}(1.509545625) = 2.21873333 + 0.2515909375 = 2.4703242675
  • $x_3 = 0.6$
    • $k_1 = 0.2 * (3 + 2*0.4 - 2.4703242675) = 0.2 * (3 + 0.8 - 2.4703242675) = 0.2 * 1.3296757325 = 0.2659351465$
    • $k_2 = 0.2 * (3 + 2*0.5 - (2.4703242675 + 0.2659351465/2)) = 0.2 * (3 + 1 - (2.4703242675 + 0.13296757325)) = 0.2 * (4 - 2.60329184075) = 0.2 * 1.39670815925 = 0.27934163185$
    • $k_3 = 0.2 * (3 + 2*0.5 - (2.4703242675 + 0.27934163185/2)) = 0.2 * (3 + 1 - (2.4703242675 + 0.139670815925)) = 0.2 * (4 - 2.609995083425) = 0.2 * 1.390004916575 = 0.278000983315$
    • $k_4 = 0.2 * (3 + 2*0.6 - (2.4703242675 + 0.278000983315)) = 0.2 * (3 + 1.2 - 2.748325250815) = 0.2 * 1.451674749185 = 0.290334949837$
    • $y_3 = 2.4703242675 + \frac{1}{6}(0.2659351465 + 20.27934163185 + 20.278000983315 + 0.290334949837) = 2.4703242675 + \frac{1}{6}(0.2659351465 + 0.5586832637 + 0.55600196663 + 0.290334949837) = 2.4703242675 + \frac{1}{6}(1.670955326667) = 2.4703242675 + 0.2784925544445 = 2.7488168219445
  • $x_4 = 0.8$
    • $k_1 = 0.2 * (3 + 2*0.6 - 2.7488168219445) = 0.2 * (3 + 1.2 - 2.7488168219445) = 0.2 * 1.4511831780555 = 0.2902366356111$
    • $k_2 = 0.2 * (3 + 2*0.7 - (2.7488168219445 + 0.2902366356111/2)) = 0.2 * (3 + 1.4 - (2.7488168219445 + 0.14511831780555)) = 0.2 * (4.4 - 2.89393513975005) = 0.2 * 1.50606486024995 = 0.30121297204999$
    • $k_3 = 0.2 * (3 + 2*0.7 - (2.7488168219445 + 0.30121297204999/2)) = 0.2 * (3 + 1.4 - (2.7488168219445 + 0.150606486024995)) = 0.2 * (4.4 - 2.899423307969495) = 0.2 * 1.500576692030505 = 0.3001153384061$
    • $k_4 = 0.2 * (3 + 2*0.8 - (2.7488168219445 + 0.3001153384061)) = 0.2 * (3 + 1.6 - 3.0489321603506) = 0.2 * 1.5510678396494 = 0.31021356792988$
    • $y_4 = 2.7488168219445 + \frac{1}{6}(0.2902366356111 + 20.30121297204999 + 20.3001153384061 + 0.31021356792988) = 2.7488168219445 + \frac{1}{6}(0.2902366356111 + 0.60242594409998 + 0.6002306768122 + 0.31021356792988) = 2.7488168219445 + \frac{1}{6}(1.80310682445316) = 2.7488168219445 + 0.30051780407552666 = 3.0493346260200266$
  • $x_5 = 1.0$
    • $k_1 = 0.2 * (3 + 2*0.8 - 3.0493346260200266) = 0.2 * (3 + 1.6 - 3.0493346260200266) = 0.2 * 1.5506653739799734 = 0.31013307479599468$
    • $k_2 = 0.2 * (3 + 2*0.9 - (3.0493346260200266 + 0.31013307479599468/2)) = 0.2 * (3 + 1.8 - (3.0493346260200266 + 0.15506653739799734)) = 0.2 * (4.8 - 3.204401163418024) = 0.2 * 1.595598836581976 = 0.3191197673163952
    • $k_3 = 0.2 * (3 + 2*0.9 - (3.0493346260200266 + 0.3191197673163952/2)) = 0.2 * (3 + 1.8 - (3.0493346260200266 + 0.1595598836581976)) = 0.2 * (4.8 - 3.208894509678224) = 0.2 * 1.591105490321776 = 0.3182210980643552
    • $k_4 = 0.2 * (3 + 2*1.0 - (3.0493346260200266 + 0.3182210980643552)) = 0.2 * (3 + 2 - 3.3675557240843818) = 0.2 * 1.6324442759156182 = 0.32648885518312364$
    • $y_5 = 3.0493346260200266 + \frac{1}{6}(0.31013307479599468 + 20.3191197673163952 + 20.3182210980643552 + 0.32648885518312364) = 3.0493346260200266 + \frac{1}{6}(0.31013307479599468 + 0.6382395346327904 + 0.6364421961287104 + 0.32648885518312364) = 3.0493346260200266 + \frac{1}{6}(1.911303660740619) = 3.0493346260200266 + 0.3185506101234365 = 3.367885236143463$

Результаты:

Метод y(0.2) y(0.4) y(0.6) y(0.8) y(1.0)
Эйлера 2.2 2.44 2.712 3.0096 3.32768
Мод. Эйлера 2.22 2.4724 2.751368 3.05212176 3.3707398432
Рунге-Кутта (4) 2.21873333 2.47032427 2.74881682 3.04933463 3.36788524
thinking img
progress gif

Текст скопирован
Готово
Ошибка
×