from compecon import MCP
from compecon.tools import jacobian
from demos.setup import np
To solve this problem we create a MCP object using a lambda function.
a = np.array([0.0, 0.0])
b = np.array([1.0, 1.0])
def func(z):
x, y = z
fval = np.array([1 + x * (y - 2*x**2 - 1), 2*x**2 - y])
return fval
F = MCP(func, a, b)
Solve for initial guess $x_0 = [0.5, 0.5]$
x0 = [0.5, 0.5]
x = F.zero(x0, transform='minmax', print=True)
The solution is
print('[x, y] = [{:.4f}, {:.4f}]'.format(*x))