【问题标题】:Calculate expression using SymPy in Python在 Python 中使用 SymPy 计算表达式
【发布时间】:2018-07-04 00:51:34
【问题描述】:

我正在试验 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)而不是表达式?

【问题讨论】:

    标签: python sympy


    【解决方案1】:

    sympy.solve() 返回一个列表,因此您需要以某种方式从该列表中取出表达式,然后您可以调用 <expression>.evalf() 来获得解决方案的浮点表示:

    所以要么:

    print(k[0].evalf())
    

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

    将显示:3.99352431498656

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多