Python 怎么解方程啊?

2018-04-23 10:03:34 +08:00
 flyzy2005

用的 sympy 中的 solve,这个库是不是只能解有解的方程?

p1 = 0.8
p2 = 1
r1 = 500
r2 = 3500
x = symbols('x')
print('in')
s=solve(p1*exp(-x*r2)-p2*exp(-x*r1)+p2-p1, x)
print(s)

一直输出不了 s。。。 像这种方程用 python 怎么解?

5084 次点击
所在节点    Python
17 条回复
est
2018-04-23 10:12:13 +08:00
又来一个廖学峰课后作业系列?
flyzy2005
2018-04-23 10:18:05 +08:00
@est。。不是 = = 要算个方程
l1093178
2018-04-23 10:31:50 +08:00
WolframAlpha 了解一下?
flyzy2005
2018-04-23 10:53:12 +08:00
@l1093178 谢谢 算出来了
princelai
2018-04-23 12:14:08 +08:00
前两天不是刚问完,sympy
flyzy2005
2018-04-23 12:18:11 +08:00
@princelai 我用了那个 没解算不出来好像 换一个 x-2 很快算出来
asdf123101
2018-04-23 12:23:43 +08:00
自己写个二分法?知道导数可以用牛顿。这种方程自己写一个很快的。
sciooga
2018-04-23 12:47:07 +08:00
这样行不行?

import random

while True:
x = random.random()
然后将 x 带入方程两边如果相等就 break
reself
2018-04-23 12:54:51 +08:00
@sciooga 哈哈猴子算法
flyzy2005
2018-04-23 14:00:04 +08:00
@sciooga 😂😂😂 用了那个 wolframalpha
pandachow
2018-04-23 14:05:28 +08:00
sympy 啊。。。
flyzy2005
2018-04-23 14:08:04 +08:00
@pandachow 我就用的这个库啊……你看我代码 卡在 solve 算不出来
idlerlestat
2018-04-23 14:22:01 +08:00
sympy 是给解析解,你这个方程没有解析解啊。
flyzy2005
2018-04-23 15:39:09 +08:00
@idlerlestat 嗯。。所以我来问应该用什么
idlerlestat
2018-04-23 16:58:59 +08:00
@flyzy2005 numpy 和 scipy.optimize.fsolve 就行
inflationaaron
2018-04-23 20:11:15 +08:00
这种需求用 Mathematica 啊
20150517
2018-04-24 06:00:27 +08:00
不是我说,这种最好用 tensorflow,做个 variable 然后用模型能帮你算出系数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/449022

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX