对称求解集将结果存储为浮点数、整数等

我正在用对称求解集求解累积概率函数(或者如果你想以这种方式思考的话,一般的方程)。目前为止,一切都好。但是,它们将“sets”作为一种结果输出类型返回。我在将它们转换为或将其另存为标准python变量类型时遇到问题:在我的情况下,我希望它是一个浮点数。


我的代码如下:


import sympy as sp

from sympy import Symbol 

from sympy import erf

from sympy import log

from sympy import sqrt


x = Symbol('x')   

p = 0.1


sp.solveset((0.5 + 0.5*erf((log(x) - mu)/(sqrt(2)*sigma)))-p)

Out[91]: 

FiniteSet(7335.64225447845*exp(-1.77553477605362*sqrt(2)))

是否有可能将其转换为浮动?只是使用不起作用,因为我已经尝试过这个,而且到目前为止,我也以某种方式将其存储为列表,然后再次提取数字。然而,这种方式似乎非常麻烦,不适合我的目的。最后,我将让我们说在1000倍以上求解这个方程,我想将所有结果作为包含浮点数的整齐数组。float()


如果按如下方式存储上述结果:


q = sp.solveset((0.5 + 0.5*erf((log(x) - mu)/(sqrt(2)*sigma)))-p)

然后Python说类型是sets.setsFiniteSet,如果你尝试访问变量q,它会给你一个错误(在Spyder btw中工作):


“Spyder 无法从控制台检索此变量的值 - 错误消息为:'元组对象没有属性 'raise_error'”。


我不知道这意味着什么。多谢。


慕的地6264312
浏览 86回答 1
1回答

开心每一天1111

它的工作原理就像一个Python。您可以将其转换为列表并通过索引提取元素,例如:FiniteSetsetIn [3]: S = FiniteSet(7335.64225447845*exp(-1.77553477605362*sqrt(2)))                                                                         In [4]: S                                                                                                                                      Out[4]: ⎧                  -1.77553477605362⋅√2⎫⎨7335.64225447845⋅ℯ                    ⎬⎩                                      ⎭In [5]: list(S)                                                                                                                                Out[5]: ⎡                  -1.77553477605362⋅√2⎤⎣7335.64225447845⋅ℯ                    ⎦In [6]: list(S)[0]                                                                                                                             Out[6]:                   -1.77553477605362⋅√27335.64225447845⋅ℯ                    In [7]: list(S)[0].n()                                                                                                                         Out[7]: 595.567591563886
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python