结合了共感和不确定性

2024-10-02 04:26:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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}$

Tags: 模块theare方程x1sympy系数xs
2条回答

一种解决方案是使用Symbol('x'),然后用它代替ufloat(您可能需要使用lambdify来完成这项工作)。假设SymPy能够用符号系数来解一般形式的方程,这应该是可行的。因为这只是一个二次方,它会的。对于三次多项式也是如此,但是对于高阶多项式,你的运气就不好了。如果把这个方程插入到二次方程中。在

有点像

x, x1, x3 = symbols('x x1 x3')
L=Symbol("L")
eqn=(x*(L**2))+(x1*(L*1))+(x3*(L**0))
s = solve(eqn,L)
lambdify([x, x1, x3], s)(ufloat(10,0.2), ufloat(8,0.01), ufloat(25,2))

(注意,二次曲线有两个解,所以这两个都可以得到)。在

有一个基于不确定性和sympy的python包可以做到这一点:maabara

它仍然是beta版,但请参见示例here


更新

上面的链接已经无效。您可以在github上找到包裹。 这是User Guide


2019年3月2日更新

上面的链接也是死的。 您可以在github上找到一个同名的包。 这是User Guide

相关问题 更多 >

    热门问题