如何解决具有数组操作的 Python bvp 求解器
我正在尝试在 python 中解决 bvp。这里已经提到了方程和边界条件。
d4y(x)/dx4= array-y(x)
,边界条件为 y(0)=y(L)=y'(0)=y'(L)=0
,其中 array
是指包含与 y[0]
中元素数量相同的数组。我为此编写的代码如下所示
import numpy as np
from scipy.integrate import solve_bvp
array=np.ones(100)
def fun(x,y):
return np.vstack([y[1],y[2],y[3],np.subtract(array,y[0])])
def bc(ya,yb) :
return np.array([ya[0],ya[1],yb[0],yb[1]])
xmesh = np.linspace(0,10,100)
y = np.zeros((4,len(xmesh)))
sol = solve_bvp(fun,bc,xmesh,y)
但我不断收到错误消息:operands Could not be broadcast together with shapes (100,) (99,)
,即使 array
和 y[0]
的大小相同。如果有人能解决问题,那将是非常有帮助的。
编辑: 完整的堆栈跟踪已在下方发布。
ValueError Traceback (most recent call last)
<ipython-input-2-62088552c9f2> in <module>()
21 xmesh = np.linspace(0,100)
22 y = np.zeros((4,len(xmesh)))
---> 23 sol = solve_bvp(fun,y)
24
25 plt.figure()
5 frames
<ipython-input-2-62088552c9f2> in fun(x,y)
14 def fun(x,y):
15 t0= t01[161:260:1]
---> 16 return np.vstack([y[1],y[0])])
17
18 def bc(ya,yb) :
ValueError: operands Could not be broadcast together with shapes (100,)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。