python将数值代入方程,Python为一个变量求解方程

I'm trying to solve an equation in python using SymPy. I have a generated equation (something like function = y(8.0-(y**3.0)) which I use with SymPy to create a new equation like this: eq = sympy.Eq(function, 2) which outputs y(8.0-(y**3.0)) == 2. but sympy.solve(eq) doesn't seem to work.

>>> from sympy import Eq, Symbol as sym, solve

>>> y = sym('y')

>>> eqa = Eq(y(8.0-(y**3.0)), 8)

>>> solve(eqa)

Traceback (most recent call last):

File "", line 1, in

File "/usr/lib/pymodules/python2.6/sympy/solvers/solvers.py", line 332, in solve

result = tsolve(f, *symbols)

File "/usr/lib/pymodules/python2.6/sympy/solvers/solvers.py", line 716, in tsolve

raise NotImplementedError("Unable to solve the equation.")

NotImplementedError: Unable to solve the equation.

thanks for reading.

解决方案

(I don't know why you mention scipy in your question when you use sympy in your code. I'll assume you are using sympy.)

Sympy can solve this equation if you specify an integer power for y (ie y**3.0 changed to y**3).

The following works for me using Sympy 0.6.7.

from sympy import Eq, Symbol, solve

y = Symbol('y')

eqn = Eq(y*(8.0 - y**3), 8.0)

print solve(eqn)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值