Я пытаюсь решить 3 нелинейных уравнения, используя Sympy nsolve в Python, и мне нужны только положительные результаты. Я попытался добавить положительный = True для каждого из символов, но в следующем примере B все еще отрицательный:
from sympy import *
def solveEquation (x,y,phi):
A = Symbol('A',positive=True)
B = Symbol('B',positive=True)
K = Symbol('K',positive=True)
eq1 = y[0] - A - B * cos(K * x[0] + phi[0])
eq2 = y[1] - A - B * cos(K * x[1] + phi[1])
eq3 = y[2] - A - B * cos(K * x[2] + phi[2])
results = nsolve((eq1, eq2, eq3), (A, B, K), (1, 1, 1),maxsteps=10000)
return (results[0],results[1],results[2])
print(solveEquation([100,220,330],[10,25,32],[1,2,3]))
И вот результаты, в которых B является отрицательным числом:
(11.2988936136965, -21.4022916997153, 1.29436821905308)
Есть мысли? Спасибо