def solveNLEs(xyz0):
def f(xyz):
x=xyz[0]
y=xyz[1]
z=xyz[2]
a=x**2 + y**2 - 10
b=x*y + y*z**2 + 15
c=y**2 + z - 25
return np.array([a,b,c])
xyz=fsolve(f,xyz0)
x=xyz[0]
y=xyz[1]
z=xyz[2]
return [x,y,z, f(xyz)]
print(np.round(solveNLEs(np.array([2,2,2])),5))
这只是一个简单的函数,用来解一组非线性方程组,但当我试图对答案进行四舍五入时,我发现了这个错误。我知道我需要更改答案的类型,但我不确定如何更改,尝试使用dtype=float或.atype只会抛出其他错误
“ufunc的循环不支持numpy.float64类型的参数0,该参数没有可调用的rint方法”这正是出现的错误消息
似乎是嵌套数组的舍入导致了问题。您可以在函数内部对单个元素进行取整
注意:您也不需要在使用它们的函数中创建函数,定义后所有方法都可以使用它们
这一问题由
通过将返回值更改为数组本身,它就能够处理测试代码
相关问题 更多 >
编程相关推荐