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

如何从SymPy的solve结果中提取x、y值并赋值给新变量

从SymPy solve结果中提取变量值

当SymPy的solve函数返回字典形式的结果(如{x: 1, y: -1})时,字典的键是SymPy的符号对象(即你定义的x和y),值是对应的解。你之前用tuple(result)[0]获取的是字典的键(符号x),而非对应的值,所以得到的是符号而非数值。

正确提取方式

直接使用定义好的符号作为键,从字典中取出对应的值:

from sympy import * 

x,y = symbols('x,y')

eq = -2*x**2 + 4*x - y**2 - 2*y

pdx = diff(eq, x)
pdy = diff(eq, y)

result = solve((Eq(pdx, 0), Eq(pdy, 0)), x, y)

# 提取值赋值给x0和y0
x0 = result[x]
y0 = result[y]

print(x0, y0)  # 输出:1 -1

如果需要将SymPy的数值转换为Python原生数值类型(如int或float),可以直接转换:

x0 = int(result[x])
y0 = int(result[y])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:10:25