有限差分法及matlab实现

有限差分法及matlab实现

ID:39554691

大小:402.00 KB

页数:13页

时间:2019-07-06

有限差分法及matlab实现_第1页
有限差分法及matlab实现_第2页
有限差分法及matlab实现_第3页
有限差分法及matlab实现_第4页
有限差分法及matlab实现_第5页
资源描述:

《有限差分法及matlab实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、有限差分法解静电场的边值问题的算法实现及相关问题讨论:王宁远中国科学技术大学09级物理2班E-mailwny@mail.ustc.edu.cn摘要:本文用MATLAB实现了有限差分法解静电场边值问题的算法,将偏微分方程的问题化为线性方程组问题,并使用了迭代法进行线性方程组的数值解。讨论了从几个角度去优化迭代法的措施。并运用这样的方法解决了文[1]的闪电模拟问题,,使用了更优化的算法对重新进行了计算,并一定程度上改进了模型,讨论了几个与文[1]所持的不同的观点。正文:经典场的边值问题在数学上表达为泊松方程和

2、拉普拉斯方程,但解偏微分方程往往是困难的。幸而很多时候对于具体问题我们需要的不是解析解,而是数值解,所以可以考虑用连续变量离散化的方法求出数值解,在足够的精度上进行逼进,这就引出了有限差分法。1.1有限差分法:有限差分法:微分:f'x=fxh−fxh0=dyhdx用有限的h代替,使得△yf'x≈△x差分的种类:fxh−fxfx−fx−hfxh−fx−h一阶差分:或者或者hh2hfxh−fxfx−fx−h−二阶差分:hhfxhf

3、x−h−2fx=2hh设Ux,y,z为空间电势的函数。泊松方程:2∇U=ρ使用二阶差分代替泊松方程中的拉普拉斯算符,有:2222∂U∂U∂Ufxh,y,zfx−h,y,z−2fx,y,z∇U==∑2222∂x∂y∂zh∑表示分别对三个变元求差分之和,以下相同矩阵(数组)是计算机中重要的数据结构,为了方便用矩阵去存储数据,我们网格去划分空间,从而不仅使方程化为简单的有限差分形式,而且这样的数据类型在计算机中易于储存和运算。那么h=k=l=1,并且令f(x,y,z)=u(x,y

4、,z)就有Ui1,j,kUi−1,j,kUi,j1,kUi,j−1,kUi,j,k1Ui,j,k−1=6Ui,j,kρ这就是泊松方程的有限差分形式,以下估计该方程的精度:由泰勒公式,易知有以下结果:23∂U1∂U21∂U3Uxh,y,z=Ux,y,zhhh⋯23∂x2∂x6∂x23∂U1∂U21∂U3Ux,yk,z=Ux,y,zkkk⋯23∂y2∂y6∂y23∂U1∂U21∂U3Ux,y,zl=Ux,y,zll

5、l⋯23∂z2∂z6∂z若考虑离散的点:23∂U1∂U1∂UUi1,j,k=Ui,j,k⋯23∂x2∂x6∂x23∂U1∂U1∂UUi,j1,k=Ui,j,k⋯23∂y2∂y6∂y23∂U1∂U1∂UUi,j,k1=Ui,j,k⋯23∂z2∂z6∂z23∂U1∂U1∂UUi−1,j,k=Ui,j,k−−⋯23∂x2∂x6∂x23∂U1∂U1∂UUi,j1,k=Ui,j,k−−⋯23∂y2∂y6∂y23∂U1∂U1∂UUi

6、,j,k1=Ui,j,k−−⋯23∂z2∂z6∂z上述六式相加Ui1,j,kUi−1,j,kUi,j1,kUi,j−1,kUi,j,k1Ui,j,k−1222∂U∂U∂U=6Ui,j,k⋯222∂x∂y∂z2代入∇U=ρUi1,j,kUi−1,j,kUi,j1,kUi,j−1,kUi,j,k1Ui,j,k−12=6Ui,j,k∇U⋯=6Ui,j,kρ⋯由于所有的奇次项被抵消,所以方程

7、:Ui1,j,kUi−1,j,kUi,j1,kUi,j−1,kUi,j,k1Ui,j,k−1=6Ui,j,kρ-----(1)式的精度为三阶,四阶及更高阶项被略去。2若满足∇U=0有Ui1,j,kUi−1,j,kUi,j1,kUi,j−1,kUi,j,k1Ui,j,k−1=6Ui,j,k-----(2)式此即拉普拉斯方程的有限差分形式。这里,我们通过有限差分的方法,把偏微分方程在三阶精度下简化为形式易于计算的代数方程

8、。从而使之易于在计算机上实现。注:有时我们需要解二维静电场,则方程退化为:22∂U∂UUi1,jUi−1,jUi,j1Ui,j−1=4Ui,j22∂x∂y即22∂U∂UUi1,jUi−1,jUi,j1Ui,j−1=4Ui,j22∂x∂y1.2算法选择:下面我们对算法再进行一些讨论。MATLAB的M语言本身带有矩阵的数据类型,且MATLAB具有高效的数值计算功

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。