Вычислить выражение, используя SymPy в Python - PullRequest
0 голосов
/ 04 июля 2018

Я экспериментирую с SymPy и столкнулся с проблемой, с которой не могу справиться.

Моя проблема заключается в преобразовании выражения в число:

from sympy import *
a=1
b=3
x=15
y=30
v=5
w=10

    t = Symbol('t', positive=True)
k=solve( (a**2)*(y**2) + 2*a*t*v*(y**2) + (b**2)*(x**2) + 2*b*t*w*(x**2) + (t**2)*(v**2)*(y**2) + (t**2)*(w**2)*(x**2)
- ( (a**2)*(b**2) + 2*(a**2)*b*t*w + (a**2)*(t**2)*(w**2) + 2*a*(b**2)*t*v + 4*a*b*(t**2)*v*w + 2*a*(t**3)*v*(w**2) +
(b**2)*(t**2)*(v**2) + 2*b*(t**3)*(v**2)*w + (t**4)*(v**2)*(w**2) ) , t)

Значение k:

k = {list} : [-1/4 + sqrt(3601 + 120*sqrt(901))/20]

Как я могу получить значение k как число, например 7.2, а не как выражение?

1 Ответ

0 голосов
/ 04 июля 2018

sympy.solve() возвращает список, поэтому вам нужно каким-то образом извлечь выражения из этого списка, и вы можете вызвать <expression>.evalf(), чтобы получить представление решения с плавающей запятой:

Так что либо:

print(k[0].evalf())

или

for sol in k:
    print(sol.evalf())

будет отображаться: 3.99352431498656

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...