如何求解函数的一个变量,首先给出其他变量(Fsolve)

时间:2018-12-17 17:14:09

标签: python solver

我一直在尝试找到一种方法来解决另一个已知的功能变量。例如。

def f(x,y):

    return x+y

sol=scipy.optimize.fsolve(f(x,1),0)

这显然是错误的,但是您明白了。返回x = -1。

这很简单,但尚未在Google或文档中找到

2 个答案:

答案 0 :(得分:2)

我认为您可以看看sympy

from sympy.solvers import solve
from sympy import Symbol
x = Symbol('x')
y = Symbol('y')
solve(x+y, x, y)
# [(−y,y)]
solve(x+y, x, 1)
# [(−y,1)]

它不会以您期望的确切方式返回答案,但是我认为您可以解释它以产生所需的结果。

答案 1 :(得分:0)

如何在另一个函数中定义该函数并将其传递给fsolve,就像这样:

from scipy import optimize
def createFunc(y):
    def optimisedFunc(x):
        return x+y
    return optimisedFunc

sol=scipy.optimize.fsolve(createFunc(1),0)
print(sol)

>>> array([-1.])

让我知道是否有任何不清楚的地方,我可以澄清一下,在函数中定义函数是一件很奇怪的事情。