python - 结合 Sympy 和不确定性

标签 python sympy uncertainty

我正在尝试使用 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

没有抛出错误:

TypeError: unsupported operand type(s) for *: 'Variable' and 'Pow'

最佳答案

一种解决方案是使用 Symbol('x') 然后将其替换为您的 ufloat(您可能需要使用 lambdify 来执行此操作)。这应该有效,假设 SymPy 能够用符号系数以一般形式求解方程。因为这只是一个二次方,所以它会。对于立方体它也会,但对于更高阶的多项式,你就不走运了。我还假设 ufloat 在代入二次方程时会做正确的事情。

有点像

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))

(注意二次方程式有两个解,所以这两个都会给出)。

关于python - 结合 Sympy 和不确定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19647988/

相关文章:

python - 如何在更改列名时正确读取 Pandas 中的 csv

python - 仅在同一行索引内应用函数?

python - 如何使 Python help() 函数与装饰器良好配合?

python - 如何在Python中使用单例继承基类

python - sympy diff 给了我意想不到的结果

python - sympy:如何简化三角表达式

python - 计算 FFT 振幅的不确定性

python - Sympy 在简化时生成损坏的 `Piecewise` 条件

python - python 上的 LMFIT 置信区间不确定性估计误差

c++ - 查找父节点在二叉树中的位置