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


# ======================================================================
# 1. Код с fsolve / root (адаптирован для новой системы)
# Система:
#   1) 2^(x1) - x2 - 1.5 = 0  => x2 = 2^x1 - 1.5
#   2) ln(x1+1.5) + x2 - 0.2 = 0 => x2 = 0.2 - ln(x1+1.5)
# ======================================================================

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import fsolve, root

# Выражаем x2 из уравнений
f1 = lambda x1: 2**x1 - 1.5               # из 2^x1 - x2 - 1.5 = 0
f2 = lambda x1: 0.2 - np.log(x1 + 1.5)    # из ln(x1+1.5) + x2 - 0.2 = 0

x = np.linspace(-1, 2, 500)
plt.plot(x, f1(x), label='x2 = 2^x1 - 1.5')
plt.plot(x, f2(x), label='x2 = 0.2 - ln(x1+1.5)')
plt.xlabel('x1'); plt.ylabel('x2'); plt.grid(); plt.legend()

def sys(v):
    return [v[1] - f1(v[0]), v[1] - f2(v[0])]

guess = [0.3, 0.3]
sol_fsolve = fsolve(sys, guess)
sol_root = root(sys, guess).x

print(f"fsolve: x1={sol_fsolve[0]:.6f}, x2={sol_fsolve[1]:.6f}")
print(f"root: x1={sol_root[0]:.6f}, x2={sol_root[1]:.6f}")

plt.plot(sol_fsolve[0], sol_fsolve[1], 'ro', markersize=8, label='Решение')
plt.legend(); plt.show()