Замените значения неопределенностями в sympy

#python-3.x #sympy #uncertainty

Вопрос:

Я пытаюсь дифференцировать уравнение для эффективности изменения воздуха и заменить значения объемного расхода целыми числами, используя sumpy. Это работает абсолютно нормально. Но на следующем шаге я хотел бы применить неопределенности к объемным потокам, которые я заменяю. Поэтому я использовал модуль неопределенности для достижения этой цели, но всякий раз, когда я использую «ufloat», переменные «sympy» не вычисляют конечное значение.

Ниже приведен упрощенный пример (без дифференциации) того, чего я хотел бы достичь. Есть ли какая-либо альтернатива, где я могу использовать математические операции наряду с неопределенностями. Или, по крайней мере, способен дифференцировать уравнение и применять неопределенности.

 from sympy import *
from uncertainties import ufloat

x , y = symbols("x, y")

eqn = pow(x, 2)   pow(y, 2)

a = eqn.subs({x:2, y:2})

b = eqn.subs({x:ufloat(2, 1), y:2})

print("without uncertainties: {}".format(a))

print("with uncertainties: {}".format(b))
 

Ответ №1:

У симпатии есть AccumBounds то, что работает более или менее как интервал неопределенности:

 In [8]: eqn.subs({x: AccumBounds(1.9, 2.1), y:2})
Out[8]: <7.61, 8.41>