Проблема с методом Эйлера

У меня задание: Применяя метод Эйлера, численно решить ДУ (систему ДУ) с данными начальными условиями на отрезке [a;b] с шагом h=0.1 при указанных значениях параметра введите сюда описание изображения

import numpy as np
import matplotlib.pyplot as plt
import mplcyberpunk
from prettytable import PrettyTable, SINGLE_BORDER
plt.style.use("cyberpunk")


def method_Euler():
    print('Task 3')
    fig, ax = plt.subplots(figsize=(12, 6))
    # Define parameters
    betan = np.array([1.0, 1.25, 1.5, 1.75, 2.0])
    for beta in betan:
        f = lambda x, y: 1 + 0.4 * np.sin(x) - beta * y  # ODE
        h = 0.1  # Step size
        x = np.arange(0, 1, h)  # Numerical grid
        y0 = 0  # Initial Condition

    # Explicit Euler Method
    y = np.zeros(len(x))
    y[0] = y0

    for i in range(0, len(x) - 1):
        y[i + 1] = y[i] + h * f(x[i], y[i])
    plt.plot(x, y, 'ro--', label=beta)
    print(y)
plt.grid(which='both', linewidth=1.5, linestyle='-', color='gray')
ax.tick_params(which='major', length=8, width=2)
ax.tick_params(which='minor', length=8, width=2)
ax.minorticks_on()
ax.grid(which='major',
        linewidth=2)
ax.grid(which='minor',
        linestyle=':')
plt.title("'Approximate and Exact Solution for Simple ODE'")
plt.xlabel("x")
plt.ylabel("y")
legend = plt.legend(["Точне рішення"], title='Legend',
                    loc='upper left', shadow=True, fontsize='x-large',
                    frameon=True, title_fontsize=15, framealpha=1)
frame = legend.get_frame()
frame.set_facecolor('black')
frame.set_edgecolor('red')
mplcyberpunk.add_glow_effects()
mplcyberpunk.add_gradient_fill(alpha_gradientglow=0.1)
plt.show()
fig.savefig('Euler.png', dpi=300, bbox_inches='tight')

method_Euler()

Скажите как я могу на графике вот выводить линию при n=0,...4 Что нужно сделать в цикле?


Ответы (0 шт):