Python scipy solve_ovp的数组维度错误

Python scipy solve_ovp的数组维度错误,python,numpy,scipy,Python,Numpy,Scipy,我试图用Scipysolve_bvp求解一个边值,第221页。代码是 from scipy.integrate import solve_bvp def fun(x, y): tmp = np.vstack(( np.cos(y[2]), np.sin(y[2]), y[3], (y[4]*np.cos(y[2])), 0 )) return tmp def bc(ya, yb): tmp = np.array([ ya[0], ya[1], ya[3],

我试图用Scipy
solve_bvp
求解一个边值,第221页。代码是

from scipy.integrate import solve_bvp

def fun(x, y):    
    tmp = np.vstack(( np.cos(y[2]), np.sin(y[2]), y[3], (y[4]*np.cos(y[2])), 0 ))
    return tmp

def bc(ya, yb):
    tmp = np.array([   ya[0], ya[1], ya[3], yb[1], yb[2]+(np.pi/2) ])
    return tmp

x = np.linspace(0, 0.5, 400)
y = np.zeros((5, x.size))

sol = solve_bvp(fun, bc, x, y)
我犯了一个错误

ValueError: all the input array dimensions except for the concatenation axis must match exactly
有什么消息来源吗?一个简单的问题不会出错

def fun(x, y):
    tmp = np.vstack((y[1], -np.exp(y[0])))
    print (tmp)
    return tmp

def bc(ya, yb):
    tmp = np.array([ya[0], yb[0]])
    print (tmp)
    return tmp

x = np.linspace(0, 1, 5)

y_1 = np.zeros((2, x.size))

from scipy.integrate import solve_bvp
res_1 = solve_bvp(fun, bc, x, y_1)
问题在于
np.vstack(…,(y[4]*np.cos(y[2]))中的0)。它没有铸造到正确的尺寸

from scipy.integrate import solve_bvp

def fun(x, y):    
    tmp = np.vstack(( np.cos(y[2]), np.sin(y[2]), y[3], (y[4]*np.cos(y[2])), np.zeros(y[3].shape) ))
    return tmp

def bc(ya, yb):
    tmp = np.array([   ya[0], ya[1], ya[3], yb[1], yb[2]+(np.pi/2) ])
    return tmp

x = np.linspace(0, 0.5, 400)
y = np.zeros((5, x.size))

sol = solve_bvp(fun, bc, x, y)

运行时没有问题。

错误
error
应该给您一个
回溯
显示它发生的确切时间。但只有你能看到这一点;我们不能!