optimize.fsolve в случае многомерных функций - PullRequest
0 голосов
/ 04 апреля 2019

Мне нужно решить алгебраическое уравнение вида f(x,y)=0, и я знаю, что значение y равно y0. Один из возможных способов сделать это - определить новую функцию, которая является функцией только x

y0=0.1 
def g(x):
    return f(x,y=y0)

и затем найдите решение для новой функции g, используя fsolve:

from scipy import optimize
solution = optimize.fsolve(g,x0=0.1)

Есть ли более элегантный способ сделать это? Я хотел бы указать, что я знаю значение y без необходимости определения новой функции.

1 Ответ

1 голос
/ 05 апреля 2019

Передайте y0 или любые другие дополнительные входы как args для функции.

Ниже приведен минимальный пример.

def f(x,y):
  return 2*x*x - y
scipy.optimize.fsolve(func, x0=3, args=(5))  # y0=5


array([1.58113883])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...