尝试对 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,请使用 n
或 evalf
方法:
>>> from sympy import Rational
>>> Rational(22, 7)
22/7
>>> _.n()
3.14285714285714
我正在尝试解决有关供求定律的练习
我有以下等式:
供给: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,请使用 n
或 evalf
方法:
>>> from sympy import Rational
>>> Rational(22, 7)
22/7
>>> _.n()
3.14285714285714