如何从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
相关产品推荐
相关产品推荐

