我试图用sympy解一个多项式方程,它的系数有不确定性。对于不确定性,我尝试使用不确定性模块。有没有办法做到以下几点:
x=ufloat(10,0.2) #the xs are coefficients
x1=ufloat(8,0.01)
x3=ufloat(25,2)
L=Symbol("L")
eqn=(x*(L**2))+(x1*(L*1))+(x3*(L**0))
solve(eqn,L) #ideally this should give the value of L with it's propagated uncertainty
如果不抛出错误:
^{pr2}$
一种解决方案是使用
Symbol('x')
,然后用它代替ufloat(您可能需要使用lambdify
来完成这项工作)。假设SymPy能够用符号系数来解一般形式的方程,这应该是可行的。因为这只是一个二次方,它会的。对于三次多项式也是如此,但是对于高阶多项式,你的运气就不好了。如果把这个方程插入到二次方程中。在有点像
(注意,二次曲线有两个解,所以这两个都可以得到)。在
有一个基于不确定性和sympy的python包可以做到这一点:maabara
它仍然是beta版,但请参见示例here
更新
上面的链接已经无效。您可以在github上找到包裹。 这是User Guide
2019年3月2日更新
上面的链接也是死的。 您可以在github上找到一个同名的包。 这是User Guide
相关问题 更多 >
编程相关推荐