You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SymPy重排供给曲线方程,将log Q表示为log P的函数?

使用SymPy重排供给曲线方程

当然可以用SymPy完成这类方程重排,不过你的代码存在几个问题,我帮你修正并实现需求:

问题分析

给定方程:log P = -2 + 1.7 * log Q,我们需要将其变形为log Q关于log P的表达式。

修正后的代码

首先要正确定义完整等式,再针对log(q)求解:

import sympy as sp

# 定义符合经济意义的正实数符号
p, q = sp.symbols('p q', real=True, positive=True)

# 正确定义原方程:左边为log(p),右边为-2 + 1.7*log(q)
eq = sp.Eq(sp.log(p), -2 + 1.7 * sp.log(q))

# 求解log(q)
solution = sp.solve(eq, sp.log(q))
print(solution)

运行结果

执行后会输出:

[0.588235294117647*log(p) + 1.17647058823529]

这个结果对应变形后的精确方程:log Q = (1/1.7)log P + 2/1.7,近似值就是输出里的小数形式,完全满足你的需求。

原代码的问题说明

  • 原代码中sp.Eq(-2+1.7*sp.log(q))只定义了等式的一边,缺少左边的log(p),SymPy无法识别这是完整方程。
  • 你尝试求解sp.log(p),但实际需求是求解sp.log(q),目标变量搞错了。

内容的提问来源于stack exchange,提问作者Johannes Pedersen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:05:21