我一直在寻找一点,我相信我可能会问谷歌错误的问题。如果还有另一个问题也有这个问题,请告诉我。
我相对较新,但文档非常好,所以到目前为止我没有遇到任何问题。我试图从MATLAB转换为Python,我正在测试一些在MATLAB中工作的脚本。我使用的是Python 3.3。
我正试图解决一个相对简单的平等问题而且我失败了。当我运行下面的脚本时,我只收到一个空列表作为输出。
# define the symbols we wish to use
se = symbols('se')
# assign some constants
D = S(0.24)
sn = S(38e6)
Q = S(0.64)
Dprime = 1.0 - D
mc = 1 + (se/sn)
# this is the expression that we wish to make equal to Q
expr = (S(1)/(pi * (mc * Dprime - S(0.5))))
# this should print the value for se
print(solve(Eq(expr, Q),se))
这段代码完全正常工作,直到执行“解决”功能。
>>> Eq(expr, Q)
1
──────────────────── = 0.64
π⋅(2.0e-8⋅se + 0.26)
我查看了文档,我发现有几个标志可供我使用。我首先尝试了我认为可能相关的那些。然后我尝试了那些我认为不太相关的东西。然后我尝试了所有这些。
我还尝试了对变量输入的各种操作。我留下的其中一个是S(),我理解它是“symplify”函数。也许我过度做了这个,但我怀疑一个人不能过度使用这个功能。
问题似乎与分母中的变量有关。我已经尝试了很多关于sympy文档中包含的示例,所有这些示例都适用于我,因此我对安装本身非常有信心。
感谢您的时间,
Ĵ
答案 0 :(得分:1)
当然,在寻找答案的过程中,我偶然发现了一些关于使用'scipy'代替'sympy'的问题。碰巧的是,只需放置from scipy import *
即可解决问题。
答案 1 :(得分:1)
您想要的旗帜是rational=False
。我认为这是SymPy中的一个错误,但可能你的系数2.0e-8太小了。