具有函數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()抱怨?