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])