【问题标题】:Solve for a specific variable in terms of another specified variable根据另一个指定变量求解特定变量
【发布时间】:2020-06-12 11:05:51
【问题描述】:

我正在尝试通过一些教科书问题来学习 sympy。 我有一个要求用开尔文计算 Rankine 的公式。

这很容易解决,无需简单(给定公式):

(????=????−459.4, ????=5????/9−1609, ????=????+273)

用一些代数,????=5r/9

但我不知道如何用 simpy 用 r 显式求解 k。我可以让它解决 eqns 的系统,但不确定如何根据哪个来指定哪个变量。

我的尝试:

import sympy as sp
r, c, k, f = symbols('r c k f')
eq1 = sp.Eq(f, r-459.4)             # f=r-459.4
eq2 = sp.Eq(c, (5/9)*f-(160/9))         # c = (5/9)*f-(160/9)
eq3 = sp.Eq(k, c+273)             # k = c+273
ans = sp.solve((eq1, eq2, eq3), (r, c, k, f))  #3 eqns, 4 unknowns (f, r, c, k)
ans

成功

{????:0.555555555555556????−17.7777777777778, ????:0.555555555555556????+255.222222222222, ????:????+459.4}

【问题讨论】:

    标签: simpy


    【解决方案1】:

    我想我是用 linsolve 发现的

    import sympy as sp
    eq1 = sp.Eq(f, r-459.4)             # f=r-459.4
    eq2 = sp.Eq(c, (5/9)*f-(160/9))         # c = (5/9)*f-(160/9)
    eq3 = sp.Eq(k, c+273)             # k = c+273
    sp.linsolve([eq2, eq3], [k,c])  #{(0.555555555555556?+255.222222222222, 0.555555555555556?−17.7777777777778)}  
    sp.linsolve([eq1, eq2], [c,f])   #{(0.555555555555556?−273.0, ?−459.4)}
    sp.linsolve([eq1, eq2, eq3], [k,c,f])   #{(0.555555555555556?, 0.555555555555556?−273.0, ?−459.4)}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 2015-05-15
      • 1970-01-01
      相关资源
      最近更新 更多