如何解决使用高阶近似的二阶导数有限差分
这里是新手。
我正在尝试实现二阶导数的高阶近似。
使用这种方法二阶工作正常
cte1 = hxv**2
cte2 = hyv**2
cte3 = cte1*cte2
cte4 = cte1 + cte2
uxxp = (pd[2:,1:-1] + pd[:-2,1:-1])*cte1
uyyp = (pd[1:-1,2:] + pd[1:-1,:-2])*cte2
bp = b[1:-1,1:-1]*cte3
p[1:-1,1:-1] = (uxxp + uyyp - bp)/(2*cte4)
p[0,:] = 0
p[nptx-1,:] = 0
p[:,0] = 0
p[:,npty-1] = 0
但是,当我尝试像 8th 这样的更高阶时,它不适用于 uxxp 和 uyyp
uxxp = (8/5*pd[2:,1:-1] + 8/5*pd[:-2,1:-1]- 1/5*pd[3:,1:-1] - 1/5*pd[:-3,1:-1] + 8/315*pd[4:,1:-1] + 8/315*pd[:-4,1:-1] -1/560*pd[5:,1:-1]-1/560*pd[:-5,1:-1])*cte2
uyyp = (8/5*pd[1:-1,2:] + 8/5*pd[1:-1,:-2] - 1/5*pd[1:-1,3:] - 1/5*pd[1:-1,:-3] + 8/315*pd[1:-1,4:] +8/315*pd[1:-1,:-4] -1/560*pd[1:-1,5:]-1/560*pd[1:-1,:-5])*cte1
它说这个错误操作数不能与形状一起广播 (399,399) (398,399)
你们有什么建议吗?
最好的, 拉斐尔
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。