尝试对 Python 中的供需定律使用 Sympy 时出错

Error while trying to use Sympy for the Law of Supply and Demand in Python

我正在尝试解决有关供求定律的练习

我有以下等式:

供给:S(q):(q**2) + β + 10

需求:D(q):(q - 20)**2

我想用 0 到 10 之间的 β 值来求解。

我做了以下代码

import sympy as sy

def S(q, β):
    return (q**2) + β + 10

def D(q):
    return (q - 20)**2

for i in range(11):
    β = i
    q = sy.Symbol('q')
    eq = sy.Eq(S(q,β), D(q))
    q_sol = sy.solve(eq)
    p_sol = S(q_sol[0], β)
    print(q_sol, p_sol)

但我得到以下结果而不是浮点数:

[39/4] 1681/16

[389/40] 168921/1600

[97/10] 10609/100

[387/40] 170569/1600

[193/20] 42849/400

[77/8] 6889/64

[48/5] 2704/25

[383/40] 173889/1600

[191/20] 43681/400

[381/40] 175561/1600

[19/2] 441/4

您看到的是 SymPy 可以使用的确切有理数。要将它们转换为 Float,请使用 nevalf 方法:

>>> from sympy import Rational
>>> Rational(22, 7)
22/7
>>> _.n()
3.14285714285714