Загрузка данных


# ============================================================
#  ОТДЕЛЬНЫЕ ГРАФИКИ ДЛЯ СИСТЕМЫ 1
# ============================================================
fig1, axes1 = plt.subplots(1, 2, figsize=(14, 5.5))

# --- График 1: решения Системы 1 при h = 0.05 и h = 0.025 ---
axes1[0].plot(x1c, y1c, 'o-',  color='tab:blue',
              label=f'Система 1, h = {h_coarse}', markersize=8)
axes1[0].plot(x1f, y1f, 's--', color='tab:red',
              label=f'Система 1, h = {h_fine}',   markersize=5)
axes1[0].set_xlabel('x')
axes1[0].set_ylabel('y(x)')
axes1[0].set_title('Система 1 (O(h)): решения при двух шагах')
axes1[0].grid(True)
axes1[0].legend()

# --- График 2: разность решений Системы 1 на общих узлах ---
# Общие узлы — те, что есть и в грубой, и в мелкой сетке
common_x = x1c                             # узлы грубой сетки
common_y1c = y1c
common_y1f = np.array([y1f[np.argmin(np.abs(x1f - xi))] for xi in common_x])
diff1 = np.abs(common_y1c - common_y1f)

axes1[1].plot(common_x, diff1, 'o-', color='tab:green', markersize=8)
axes1[1].set_xlabel('x')
axes1[1].set_ylabel('|y(h=0.05) − y(h=0.025)|')
axes1[1].set_title(f'Разность решений Системы 1\nε₁ = {eps1:.3e}')
axes1[1].grid(True)

plt.tight_layout()
plt.savefig('system1_plots.png', dpi=150)
plt.show()