python有限差分求解拉普拉斯方程( 二 )


python有限差分求解拉普拉斯方程



11然后进行各变量的初始化
#设立网格X, Y = np.meshgrid(np.arange(0, lenX), np.arange(0, lenY))
#初始化温度T = np.empty((lenX,lenY))T.fill(Tguess)
#边界条件T[(lenY-1):, :] = TtopT[:1, :] = TbotT[:, (lenX-1):] = TrightT[:, :1] = Tleft
Tlast = copy.deepcopy(T)

python有限差分求解拉普拉斯方程



12然后循环迭代计算温度 , 每次计算完与上次做差比较 , 输出变化的最大值
print("Solving,Please wait")for iteration in range(0, maxIter):    for i in range(1, lenX-1, delta):        for j in range(1, lenY-1, delta):            T[i, j] = 0.25 * (T[i+1][j] + T[i-1][j] + T[i][j+1] + T[i][j-1])    print(abs(T-Tlast).max())    Tlast = copy.deepcopy(T)print("Iteration finished")

python有限差分求解拉普拉斯方程



13最后进行画图和保存 , 保存为一张pdf
# Configure the contour
plt.title("Contour of Temperature")
plt.contourf(X, Y, T, colorinterpolation, cmap=colourMap)
# Set Colorbar
plt.colorbar()
#保存图片
plt.savefig('plt1.pdf')
# Show the result in the plot window
plt.show()

python有限差分求解拉普拉斯方程



14前面已经展示过这个问题的结果图了 , 下面展示一张将右侧边缘温度调整为30摄氏度的结果图片 。

python有限差分求解拉普拉斯方程



注意事项注意python的缩进
You can do it!

以上内容就是python有限差分求解拉普拉斯方程的内容啦 , 希望对你有所帮助哦!

猜你喜欢