Chci řešit systém nelineárních nerovnost, rovnice, Zjednodušit takto: 12<x,y<14 a 2x + 3*y>40, je tam nějaký způsob, jak najít minimální x pomocí python, vím, jak řešit lineární nerovnosti quations s scipy.optimalizovat.linprog,ale nemůžu najít způsob, jak vyřešit non-lineární nerovnosti quations,díky
1
Z3 je SAT/SMT řešitel, který může být zajímavý pro tento typ problémů.
Zde je příklad hledáme celočíselné řešení. Všimněte si, že dané rovnice jsou neomezené pro plováky.
from z3 import Optimize, Int, And
opt = Optimize()
x = Int('x')
y = Int('y')
opt.add(And(x * y > 12, x * y < 14))
opt.add(2 * x + 3 * y > 40)
opt.minimie(x)
print(opt.check()) # prints sat
print(opt.model()) # prints [y = 13, x = 1]