我正在Python Sympy库中创建一个脚本,并试图访问solveset()和linsolve()函数返回的结果。我的问题是,这些函数返回的对象是finiteset类型,我想自动选择一些结果,将其重新输入到其他方程中。 有人能帮我吗?
例如:I create a list of equations with two unknown variables:
>>> a1, a2 = symbols('a1, a2')
>>> eq2_1 = Eq(-3*a1/10 - 3*a2/20 + 1/12)
>>> eq2_2 = Eq(-3*a1/20 - 13*a2/105 + 1/20)
>>> lista = [eq2_1,eq2_2]
>>> str(lista)
[-3*a1/10 - 3*a2/20 + 1/12, -3*a1/20 - 13*a2/105 + 1/20]
然后用linsolve()方法解决它。
>>> a = linsolve(lista,a1,a2)
>>> a
{(71/369, 7/41)}
结果是正确的,但我无法将这些结果转换为变量。
O尝试了DIC、列表、元组、索引命令,但始终返回错误信息。“Finiteset对象没有属性“command”
可以使用
iter
根据集合获取迭代器,然后next
返回集合中的一个元素(如果只需要一个元素)。示例:
现在x0是6/5,y0是4/5。
我在这个链接中找到了sympy库方法http://docs.sympy.org/latest/tutorial/manipulation.html
在函数或结果对象中使用.args属性。 如果我有一个函数:
这同样适用于有限集类型的结果。
更一般的解决方案是简单地将
FiniteSet
转换为标准pythonlist
然后可以使用标准索引提取元素-在本例中为
a[0]
。但如果你有多个解决方案,你只需要拿出一个你想要的。相关问题 更多 >
编程相关推荐