В SymPy есть полезная функция для создания словаря коэффициентов для данного выражения.
Однако я столкнулся с раздражающей ошибкой (/ признаком?), Из-за которой квадратные корни считаются частью переменной, а не частью значения коэффициента.
Минимальный пример:
from sympy import sqrt, symbols
k, t = symbols('k, t')
d = 1.5*t + 2.5*sqrt(2)*k
d.as_coefficients_dict()
Возвращает:
{?:1.5, sqrt(2)*?:2.5}
Когда вместо этого sqrt (2) следует рассматривать как часть коэффициента. Таким образом, я ожидал увидеть результат:
{?:1.5, ?:2.5*sqrt(2)}
NB, я использую последнюю версию SymPy 1.4
Это ошибка? Или альтернативный способ использования функции для получения ожидаемого значения, пожалуйста?
РЕДАКТИРОВАТЬ: я изменил вопрос, чтобы отметить, что я использую функцию Sympy sqrt. Я также попытался использовать np.sqrt NumPy, который оценивает правильно, но дает полное числовое значение, а не хороший аккуратный sqrt (2) для значения коэффициента k.