有限差分法及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 hf 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 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ρ

这就是泊松方程的有限差分形式,以下估计该方程的精度:

由泰勒公式,易知有以下结果:

∂ 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,

matlab有限差分法编程波导_有限差分法及matlab实现.pdf相关推荐

  1. matlab有限差分法编程波导_有限差分法的Matlab程序

    fori=1:n-1 x(i)=a+i*h; function FD_PDE(fun,gun,a,b,c,d) % 用有限差分法求解矩形域上的 Poisson 方程 tol=10^(-6); % 误差 ...

  2. C#与Matlab混合编程中遇到的“MathWorks.MATLAB.NET.Arrays.MWNumericArray”的类型初始值设定项引发异常。

    C#与Matlab混合编程中遇到的"MathWorks.MATLAB.NET.Arrays.MWNumericArray"的类型初始值设定项引发异常. 参考文章: (1)C#与Ma ...

  3. MATLAB中fix啥意思,matlab fix函数用法_常见问题解析,matlab

    matlab syms什么意思_常见问题解析 matlab中syms的意思是定义多个变量,可以用来创建符号变量x和y,语法是"syms x y":也可以创建一些符号变量.函数和数组 ...

  4. matlab app设计步骤_如何从MATLAB/Simulink入手,系统地学习自动驾驶?

    自动驾驶相关的软件工具有不少,作为汽车工程师,我们最熟悉的可能是MATLAB/Simulink.如何从MATLAB/Simulink入手,系统地学习自动驾驶? 本文来源:自动驾驶仿真 自动驾驶相关的软 ...

  5. matlab最优控制实验报告_最优控制的MATLAB实现.doc

    最优控制的MATLAB实现 最优控制的MATLAB实现 摘要 线性二次型最优控制是一种普遍采用的最优控制系统设计方法.使用MATLAB软件设计的GUI控制界面实现最优控制,有较好的人机交互界面,便于使 ...

  6. matlab 写excel 慢_吐槽一下MATLAB的workspace

    用MATLAB编程,或者Simulink建模仿真,有一个特别强大.特别人性化的功能,可以在workspace中直接查看定义的参数和运行的结果 无论是仿真的调试,结果的分析,或是中途的Debug,wor ...

  7. matlab去除图片水印_怎么用matlab从含有水印的图像中提取出水印

    展开全部 3 视频水印的嵌入和检测方案 3.1水印的预处理 采用二值图像作为待嵌入的水印数据,本文e69da5e887aa323131333532363134313032313635333133333 ...

  8. matlab计算斜方差_协方差与Matlab的实现

    (参考文章) 标准差和方差一般是用来描述一维数据的 所谓的维数,拿EEG信号来说,每个通道就是一个维度,而同一个通道的每个一数字是样本. 协方差就是这样一种用来度量两个随机变量关系的统计量,我们可以仿 ...

  9. matlab无穷积分求解_从零开始的matlab学习笔记——(8)积分

    上节说了说求导,这节就顺带着说一说求积分,凑个完整. 不定积分: 定积分的代码和极限求导都差不多: syms x f; f=(3-x^2)^3; ans1=int(f,x) pretty(ans1) ...

  10. matlab批量生成灰度图像_科学网—matlab彩色图像的批处理转换为灰度、二值和主成分图图像 - 金秀良的博文...

    这段代码主要用来进行图像的批处理转换为灰度.二值和主成分图图像,希望给大家借鉴.其中 RGB to bw可以直接实现,但是效果不好,所以先用RGB to gray,之后再gray to bw.RGB ...

最新文章

  1. 怎样在Red Hat Enterprise Linux 5.4版本上安装GCC?
  2. 红杉中国合伙人刘星:新零售新在哪里?
  3. hadoop大数据——mapreduce程序提交运行模式及debug方法
  4. java课程总结_java课程总结报告.doc
  5. SSE图像算法优化系列二十二:优化龚元浩博士的曲率滤波算法,达到约1000 MPixels/Sec的单次迭代速度...
  6. quartz SpringMvc 动态定时任务(quartz2.2)
  7. centos 6 mysql 5.7.13 编译安装_Centos 6.5系统下编译安装PHP 7.0.13的方法
  8. nodejs 中http请求头,响应头
  9. 读懂才会用 : 瞅瞅Redis的epoll模型
  10. 财务报表分析,Smartbi财务BI项目解决方案
  11. java基础标识符,关键字,常量
  12. taptap评论爬虫
  13. tmux关机永久保存会话
  14. c++ opencv 读取文件夹里所有图片
  15. Windows基础 加固
  16. 运算放大器---转换速率(slew rate)
  17. 详细SpringBoot教程之入门(一)
  18. android显示输入法键盘布局,android 解决输入法键盘遮盖布局问题
  19. 使用按键精灵实现界面点击自动化
  20. vue表单验证,中文验证

热门文章

  1. KEPServerEX V6轻松连接Wonderware InTouch
  2. bp神经网络matlab feedfollownet,BP神经网络模型:Matlab
  3. 现代电视原理期末复习
  4. 华为私密相册计算机找回密码,华为手机隐私空间密码忘了怎么办 华为手机隐私空间密码忘了解决方法...
  5. 查看MD04结果的程序 Production Planning - Extract data from MRP Table
  6. c语言整人小程序格式,【C语言】整人小程序
  7. 挖金子修订版开发进行中
  8. 6.Linux中的进程管理
  9. everything用于移动硬盘资料管理(一):离线搜索
  10. 基于SSM实现在线考试及题库管理系统