Python scipy solve_ovp的数组维度错误
我试图用ScipyPython 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],
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
应该给您一个回溯
显示它发生的确切时间。但只有你能看到这一点;我们不能!