Matrix 具有矩阵起始向量的辛解型误差
当我给它一个Matrix 具有矩阵起始向量的辛解型误差,matrix,typeerror,sympy,solver,Matrix,Typeerror,Sympy,Solver,当我给它一个矩阵作为起始向量时,我得到了一个TypeError和nsolve。值得注意的是,nsolve非常好,因为方程是一个矩阵表达式。以下是一个基本示例: import sympy as sy v = sy.Matrix(sy.symarray("v", (2,))) w = sy.Matrix([17, 23]) equation = v - w 下一行给出了一个类型错误:无法从矩阵([[17],[23]])创建mpf: 下一行是一个笨拙的解决方法,它给出了正确的输出,矩阵([[17.0
矩阵
作为起始向量时,我得到了一个TypeError
和nsolve
。值得注意的是,nsolve
非常好,因为方程是一个矩阵
表达式。以下是一个基本示例:
import sympy as sy
v = sy.Matrix(sy.symarray("v", (2,)))
w = sy.Matrix([17, 23])
equation = v - w
下一行给出了一个类型错误:无法从矩阵([[17],[23]])创建mpf
:
下一行是一个笨拙的解决方法,它给出了正确的输出,矩阵([[17.0],[23.0]])
:
有比此解决方案更好的解决方案吗?鉴于以下情况,您有必要使用此解决方案:
nsolve
将x0
参数直接传递到上的mpmath.findroot
findroot
仅支持x0
中满足isinstance(x0,(列表,元组))
的iterables,on。此外,它必须是一个平面元组或列表;它的元素在随后的x0=[ctx.convert(x)for x in x0]
中被假定为标量列表
或元组
的实例。另外,w.tolist()
是不够的,因为结果列表是嵌套的。因此需要w.T.tolist()[0]
这是现在的SymPy repo。谢谢,我已经开始发行了。
sy.nsolve(equation, v, w)
sy.nsolve(equation, v, w.T.tolist()[0])