import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import fsolve, root
# Новая система: выражаем x2
f1 = lambda x1: 0.5 - np.cos(x1) # из cos(x1)+x2-0.5=0
f2 = lambda x1: 1/(x1+1.5) - 1 # из 1/(x1+1.5)-x2-1=0
x = np.linspace(-1, 2, 500)
plt.plot(x, f1(x), label='x2 = 0.5 - cos(x1)')
plt.plot(x, f2(x), label='x2 = 1/(x1+1.5)-1')
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()