二维拉普拉斯方程的数值解法

import numpy as np
import matplotlib.pyplot as plt
m=101
n=101
U=np.zeros([m,n])
F=np.zeros([m,n])
#定义边界条件
F[m-1,:]=100
e=0.001
count=0
 
for i in range(10000):
    count+=1
    F[:,0]=0
    F[:,n-1]=0
    F[0,:]=0
    F[m-1,:]=100
    U[1:-1,1:-1]=(F[1:-1,:-2]+F[1:-1,2:]+F[:-2,1:-1]+F[2:,1:-1])/4
    e=abs(U-F).max() #求助老师我这个值为何总是0
    F=U
       
x=np.arange(0,m)
y=np.arange(0,n)
X,Y=np.meshgrid(x,y)
C=plt.contour(X,Y,U)
plt.clabel(C, inline = True, fontsize = 10)

参考网址:

https://blog.csdn.net/Jerry_Weihuajing/article/details/78253055

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值