Как оптимизировать нелинейные уравнения в python? - PullRequest
1 голос
/ 19 января 2020

System of non-linear equations

Я написал до здесь, но я не мог продолжить. Как я могу определить x0, x1 и x2? Как я могу решить эту проблему?

def nonlin(a,b,c):
    return [3*x0-cos(x1*x2)+ a, x0*x0-81*(x1+0.1)**2+ sin(x2)+b, exp(-x0*x1)+20*x2+c]

1 Ответ

1 голос
/ 19 января 2020

Вы можете попытаться решить эту проблему, используя scipy.optimize.fsolve:

from scipy.optimize import fsolve
from numpy import cos, sin, exp

# Define the non-linear equations
def equations(X, a,b,c):
    x0, x1, x2 = X
    return [3*x0-cos(x1*x2)+ a, x0*x0-81*(x1+0.1)**2+ sin(x2)+b, exp(-x0*x1)+20*x2+c]

a = 1.0
b = 0.5
c = 2.5

# Using (0.0, 0.0, 0.0) as an initial vector
x0, x1, x2 = fsolve(equations, x0=(0.,0.,0.), args=(a,b,c)) 
print(x0, x1, x2)

Выход :

-6.826133854836766e-06 -0.03657006638562982 -0.17499998751839313
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...