使用 SymPy 求解方程时出现运行时错误

弗兰克·王 |

在此处输入图片说明

我有一个方程要解。该方程可以描述为上面的公式。N 和 S 是常数,例如 N = 201 和 S = 0.5。我在python中使用sympy来解决它。python脚本如下:

from sympy import *

x=Symbol('x')
print solve( (((1-x)/200) **(1-x))* x**x - 2**(-0.5), x)

但是,有一个RuntimeError: maximum recursion depth exceeded in __instancecheck__

我也尝试过使用 Mathematica,它可以输出 0.963 的结果

http://www.wolframalpha.com/input/?i=(((1-x)%2F200)+ (1-x))*+x x+-+2**(-0.5)+%3D+0

在此处输入图片说明

欢迎任何建议。谢谢。

艾萨克·范东根

Assuming that you don't want a symbolic solution, just a value you can work with (like WA's 0.964), you can use mpmath for this. I'm not sure if it's actually possible to express the solution in radicals - WA certainly didn't even try. You should already have it installed as SymPy

Requires: mpmath

Specifically, mpmath.findroot seems to do what you want. It takes an actual callable Python object which is the function to find a root of, and a starting value for x. It also accepts some more parameters such as the minimum error tol and the solver to use which you could play around with, although they don't really seem necessary. You could quite simply use it like this:

import mpmath

f = lambda x: (((1-x)/200) **(1-x))* x**x - 2**(-0.5)
print mpmath.findroot(f, 1)

我只是使用 1 作为起始值 - 你可能会想到一个更好的。从图形的形状来看,只有一个根可以找到,并且可以很容易地接近它,不需要花哨的求解器,所以这应该就足够了。此外,考虑到“mpmath 是一个用于任意精度浮点运算的 Python 库”,如果您愿意,您应该能够从中获得非常高精度的答案。它的输出为

(0.963904761592753 + 0.0j)

这实际上是一个 mpmath 复合体或mpc对象,

mpc(real='0.96390476159275343', imag='0.0')

如果您知道它的虚值为 0,则可以使用以下任一方法:

In [6]: abs(mpmath.mpc(23, 0))
Out[6]: mpf('23.0')

In [7]: mpmath.mpc(23, 0).real
Out[7]: mpf('23.0')

mpf.格式“提取”单个浮点数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Sympy RuntimeError:使用对数求解方程式时,超出了最大递归深度

来自分类Dev

使用SymPy一般解析和求解方程式

来自分类Dev

无法使用Sympy求解方程式,在Mathcad Prime中可以正常工作

来自分类Dev

使用sympy求解指数方程式?

来自分类Dev

使用numpy或scipy优化sympy代码的运行时

来自分类Dev

使用Sympy方程进行绘图

来自分类Dev

如何使用 Sympy 求解矩阵方程(matrix = 0)?

来自分类Dev

使用 SymPy (Python) 求解非线性符号方程组

来自分类Dev

使用 odeint 和 sympy 求解微分方程问题

来自分类Dev

尝试使用pip时出现运行时错误

来自分类Dev

使用动态数组时出现运行时错误 1004

来自分类Dev

使用Sympy的导数错误

来自分类Dev

SymPy 无法求解方程 cos(x) = - 1 /cosh(x)

来自分类Dev

用 sympy 中的分数指数求解方程

来自分类Dev

难以在python中使用sympy求解器

来自分类Dev

使用sympy扩展索引符号方程

来自分类Dev

使用 Sympy 导出方程的多元牛顿方法

来自分类Dev

Sympy:求解微分方程

来自分类Dev

使用包含使用EF查询记录时出现多个运行时错误

来自分类Dev

使用VBA从受保护的网站导入Excel中的数据时出现运行时错误438

来自分类Dev

使用getline,strcpy,strtok C ++加载.txt文件时出现运行时错误

来自分类Dev

使用malloc在运行时分配内存时出现分段错误

来自分类Dev

使用静态导入编译运行时参数注释时出现“不兼容类型”错误

来自分类Dev

仅在使用“填充”时才出现“运行时错误'13'?

来自分类Dev

使用VBA访问ActiveX控件时出现运行时错误'438'问题

来自分类Dev

使用python在uva中提交代码时出现运行时错误

来自分类Dev

使用纯CMake构建SFML时出现运行时错误

来自分类Dev

使用g ++编译Objective-C项目时出现运行时错误

来自分类Dev

为什么在struct中使用字符串时出现运行时错误

Related 相关文章

  1. 1

    Sympy RuntimeError:使用对数求解方程式时,超出了最大递归深度

  2. 2

    使用SymPy一般解析和求解方程式

  3. 3

    无法使用Sympy求解方程式,在Mathcad Prime中可以正常工作

  4. 4

    使用sympy求解指数方程式?

  5. 5

    使用numpy或scipy优化sympy代码的运行时

  6. 6

    使用Sympy方程进行绘图

  7. 7

    如何使用 Sympy 求解矩阵方程(matrix = 0)?

  8. 8

    使用 SymPy (Python) 求解非线性符号方程组

  9. 9

    使用 odeint 和 sympy 求解微分方程问题

  10. 10

    尝试使用pip时出现运行时错误

  11. 11

    使用动态数组时出现运行时错误 1004

  12. 12

    使用Sympy的导数错误

  13. 13

    SymPy 无法求解方程 cos(x) = - 1 /cosh(x)

  14. 14

    用 sympy 中的分数指数求解方程

  15. 15

    难以在python中使用sympy求解器

  16. 16

    使用sympy扩展索引符号方程

  17. 17

    使用 Sympy 导出方程的多元牛顿方法

  18. 18

    Sympy:求解微分方程

  19. 19

    使用包含使用EF查询记录时出现多个运行时错误

  20. 20

    使用VBA从受保护的网站导入Excel中的数据时出现运行时错误438

  21. 21

    使用getline,strcpy,strtok C ++加载.txt文件时出现运行时错误

  22. 22

    使用malloc在运行时分配内存时出现分段错误

  23. 23

    使用静态导入编译运行时参数注释时出现“不兼容类型”错误

  24. 24

    仅在使用“填充”时才出现“运行时错误'13'?

  25. 25

    使用VBA访问ActiveX控件时出现运行时错误'438'问题

  26. 26

    使用python在uva中提交代码时出现运行时错误

  27. 27

    使用纯CMake构建SFML时出现运行时错误

  28. 28

    使用g ++编译Objective-C项目时出现运行时错误

  29. 29

    为什么在struct中使用字符串时出现运行时错误

热门标签

归档