【问题标题】:Error while trying to use Sympy for the Law of Supply and Demand in Python尝试将 Sympy 用于 Python 中的供需法则时出错
【发布时间】:2022-01-16 00:41:54
【问题描述】:

我正在尝试解决有关供需法则的练习

我有以下方程式:

供给: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

【问题讨论】:

    标签: python function for-loop sympy indentation


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多