同情解决功能作为功能

时间:2015-08-05 11:28:23

标签: python sympy symbolic-math

我想从

解决f(x)
(Eq(2*f(x)+f(1/x),1/x))

预期输出

f(x)=(2-x ^ 2)/(3 * x)

我试试

 solve((Eq(2*f(x)+f(1/x),1/x)),f(x))

这个答案包含f(1 / x):( - x * f(1 / x)+ 1)/(2 * x)

如何在同情中得到f(x)=(2-x ^ 2)/(3 * x)?

1 个答案:

答案 0 :(得分:1)

我不认为sympy会以你想要的方式解决这样的函数方程,但你可以把你的特定方程分成两个:2y + z = 1 / x和2z + y = x其中y(1 / x )= z(x)并让sympy解决y和z:

In [5]: x, y, z = Symbol('x'), Symbol('y'), Symbol('z')
In [6]: solve((Eq(2*y+z,1/x), Eq(2*z+y,x)),y,z)
Out[6]: {y: (-x**2 + 2)/(3*x), z: (2*x**2 - 1)/(3*x)}

所以y就是你想要的f(x)。