具有函数f(x,y,z),我需要解决限制f(x,y,z)= 0然后绘制它.我试图为每对(y,z)找到f(x,y,z)= 0的值x:
from numpy import *
from scipy.optimize import fsolve
def func(x,y,z):
return x+y+z
y = linspace(0,1,100)
z = linspace(0,1,100)
x0 = zeros((y.size,z.size)) + 0.5 # the initial guess
yz = (y[:,newaxis],z[newaxis,:]) # the other parameters
x, info, iterations, message = fsolve(func,x0,yz)
contour(y,z,x)
Python(2.7.5)说“TypeError:fsolve:’func’参数’func’的输入和输出形状之间存在不匹配.”
但如果我自己测试它,它会给出相同的形状:
func(x0,y[:,newaxis],z[:,newaxis]).shape == x0.shape
返回True.
为什么fsolve()抱怨?