我正在使用 sympy 及其求解函数,但我注意到它有时返回列表中的字典,但在其他情况下仅返回字典,没有列表。
from sympy import *
x, y = symbols('x y')
q = 16*x**0.5*y**0.5
solve((diff(q, x)/5 - diff(q, y)/20, 3200 - q))
这将返回一个列表:[{x: 400.000000000000, y: 100.000000000000}]
x, y = symbols('x y')
q = 8*x**.5*y**0.5
solve((diff(q, x)/10 - diff(q, y)/8, 400-10*x-8*y))
这将返回一个字典,没有列表:{x: 20.0000000000000, y: 25.0000000000000}
为什么会出现这种情况?感谢您的帮助。
以及输出类型的解释已添加 https://github.com/sympy/sympy/blob/master/doc/src/explanation/solve_output.rst到文档。该解释的开头段落给出了要点:
造成这种情况的原因是历史性的并且偏向于人类
交互而不是编程使用。输出的类型将
取决于方程的类型(以及它们的输入方式)和
提供的符号数量(以及提供方式)。
solve
有两个主要途径:单个方程与多个方程。对于其中的每一个,用户可以接受任何解决方案(通过不提供符号)或给出感兴趣的符号。方程的处理还取决于系统是否是线性的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)