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

如何用SymPy将直线方程转换为y=mx+b的斜截式?

用SymPy分离直线方程中的y变量

你遇到的问题是调用solve()时没有指定要求解的目标变量,SymPy无法自动判断你要把y单独分离出来。下面是正确的操作步骤:

原有代码回顾

import sympy as sym

p1 = sym.Point(-1, 1)
m = -2
eq = sym.Line(p1, slope=m).equation()
# 返回:2x + y + 1

eq1 = sym.Eq(eq, 0)
# 返回:2x + y + 1 = 0

eq2 = sym.simplify(eq1)
# 返回:2x + y = -1

正确分离y的方法

使用solve()时,第二个参数传入要解的变量y,就能得到y的表达式:

result = sym.solve(eq2, y)
print(result)
# 输出:[-2*x - 1]

如果想直接得到y = -2x -1的形式,可以把结果包装成等式:

y_expr = sym.Eq(sym.Symbol('y'), result[0])
print(y_expr)
# 输出:y = -2*x - 1

为什么之前的方法失败?

  • 直接调用solve(eq2)时,SymPy会默认尝试求解所有变量,但这个方程有两个变量(x和y),没有额外约束,所以无法得到唯一解,返回空集。
  • subs()是用来替换变量值的工具,不是解方程的方法,所以只会返回原方程,达不到分离变量的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:23:09