如何绘制具有固定边界的波动方程

时间:2019-04-18 15:41:47

标签: python wave

我试图绘制在z = 0处具有固定边界的3d波动方程。

Points

但是我只绘制一个在边界处具有不同值的表面。同样,当我通过边界数组固定边界时,它不是波动方程。取而代之的是我的断线

我的结果

我的预期数字

1 个答案:

答案 0 :(得分:0)

我不确定这是关于波浪还是z范围的问题。下面的示例可以解决以下任一问题:

  • 对于x或y = +/- 10,z = 0的波是通过zgrid = np.sin(xgrid*np.pi/10.) * np.cos(ygrid*np.pi*3/20.)获得的。
  • z = 0平面(接近)用axes.set_zlim(0,3)显示。

完整代码:

import numpy as np
from matplotlib import cm
import pylab
from mpl_toolkits.mplot3d import Axes3D

def makeData():
    x = np.arange(-10, 10, 0.1)
    y = np.arange(-10, 10, 0.1)
    xgrid, ygrid = np.meshgrid(x, y)
    zgrid = np.sin(xgrid*np.pi/10.) * np.cos(ygrid*np.pi*3/20.)
    return xgrid, ygrid, zgrid

x, y, z= makeData()
fig = pylab.figure()
axes = Axes3D(fig)
axes.plot_surface(x, y, z, cmap=cm.jet)
axes.set_zlim(0,3)
pylab.show()

waves