- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有限差分法及matlab实现
有限差分法解静电场的边值问题的算法实现及相关问题讨论:
王宁远
中国科学技术大学 09 级物理 2 班
E-mail wny@mail.ustc.edu.cn
摘要:
本文用 MATLAB 实现了有限差分法解静电场边值问题的算法,将偏微分方程的问题化为线性方程
组问题,并使用了迭代法进行线性方程组的数值解。讨论了从几个角度去优化迭代法的措施。并运用这
样的方法解决了文 [1]的闪电模拟问题,,使用了更优化的算法对重新进行了计算,并一定程度上改进了
模型,讨论了几个与文[1]所持的不同的观点。
正文:
经典场的边值问题在数学上表达为泊松方程和拉普拉斯方程,但解偏微分方程往往是困难的。幸而
很多时候对于具体问题我们需要的不是解析解,而是数值解,所以可以考虑用连续变量离散化的方法求
出数值解,在足够的精度上进行逼进,这就引出了有限差分法。
1.1 有限差分法:
有限差分法:
微分: f x =f x h−f x h 0=dy
h dx
用有限的 h 代替,使得
f x ≈ △ y
△ x
差分的种类:
f x h−f x f x −f x −h f x h−f x −h
一阶差分: 或者 或者
h h 2h
f x h−f x f x −f x −h
−
二阶差分 : h h f x hf x −h−2f x
=
h h2
设 U x , y , z 为空间电势的函数 。
泊松方程:
∇ 2 U =ρ
使用二阶差分代替泊松方程中的拉普拉斯算符,有:
2 ∂2 U ∂2 U ∂2 U f x h, y , z f x −h, y ,z −2f x , y ,z
∇ U = 2 2 2 =∑ 2
∂ x ∂ y ∂ z h
∑ 表示分别对三个变元求差分之和,以下相同
矩阵(数组)是计算机中重要的数据结构,为了方便用矩阵去存储数据,我们网格去划分空间,从而不
仅使方程化为简单的有限差分形式,而且这样的数据类型在
计算机中易于储存和运算。那么 h=k=l=1 ,并且令f(x,y,z)=u(x,y,z)
就有
U i1,j , kU i−1,j , kUi , j 1,kU i, j −1,kU i, j , k1U i, j , k−1
= 6Ui, j , kρ
这就是泊松方程的有限差分形式,以下估计该方程的精度:
由泰勒公式,易知有以下结果:
∂ U 1 ∂2 U 2 1 ∂3 U 3
U x h , y , z =U x , y , z h 2 h 3 h ⋯
∂ x 2 ∂ x 6 ∂ x
∂ U 1 ∂2 U 2 1 ∂3 U 3
U x , y k, z
文档评论(0)