Я искал немного, и я нахожусь в точке, что, я считаю, я могу задавать неправильный вопрос Google. Если есть еще одна тема, которая имеет эту проблему, сообщите мне.sympy - Используя «solve()», чтобы найти значение в знаменателе
Я относительно новичок в симпы, но документация очень хорошая, поэтому до сих пор у меня не было никаких проблем. Я пытаюсь преобразовать в Python из MATLAB, и я тестирую некоторые скрипты, которые работали в MATLAB. Я использую Python 3.3.
Я пытаюсь решить относительно простое равенство, и я терплю неудачу. Когда я запускаю сценарий ниже, я получаю только пустой список в качестве вывода.
# define the symbols we wish to use
se = symbols('se')
# assign some constants
D = S(0.24)
sn = S(38e6)
Q = S(0.64)
Dprime = 1.0 - D
mc = 1 + (se/sn)
# this is the expression that we wish to make equal to Q
expr = (S(1)/(pi * (mc * Dprime - S(0.5))))
# this should print the value for se
print(solve(Eq(expr, Q),se))
Этот блок кода работает совершенно точно, пока не будет выполнена функция «решить».
>>> Eq(expr, Q)
1
──────────────────── = 0.64
π⋅(2.0e-8⋅se + 0.26)
Я просмотрел документацию, и я обнаружил, что есть несколько флагов, которые я мог бы использовать. Я сначала попробовал те, которые, как я думал, могут иметь значение. Затем я попробовал те, которые, как я думал, не были очень важны. Затем я попробовал их всех.
Я также пробовал различные операции с входами в переменные. Один из них, который я оставил, - это S(), который, как я понимаю, является функцией «symplify». Возможно, я переделал это, но я подозреваю, что нельзя использовать эту функцию.
Проблема, похоже, связана с наличием переменной в знаменателе. Я пробовал многие из примеров, которые содержатся в документации sympy, и все они работают для меня, поэтому я достаточно уверен в самой установке.
Спасибо за ваше время,
J
Для этого я открыл https://code.google.com/p/sympy/issues/detail?id=4112. – asmeurer
Похоже, эта проблема исправлена. Он должен работать лучше в следующей версии SymPy. – asmeurer