很多物理现象的都可以用方程来描述,比如热传导与物质扩散可以用扩散方程来描述,流体的流动可以用NS方程描述等等。如果能够将这些偏微分方程求解出来,就可以来对很多物理现象进行仿真,现在工程中的仿真软件都是通过程序数值求解一类偏微分方程。今天我们尝试求解一类偏微分方程,为了简单起见,我们以一个简单的平流方程为例,方程形式如下:

平流方程

求解偏微分方程的数值解法非常多,这里也是采用一种较为直白的方法--------有限差分法,将上述的偏微分方程离散为差分方程,这里采用一种迎风格式的差分方法,首先我们可以看出这个平流方程由两个维度,一个空间维度x,一个时间维度t,我们对这两个维度进行离散:

差分网格

差分方程

将差分方程简化一下

通过上述的差分方程我们可以通过上一个时间步的结果推进得到下一个时间步的结果:

这里我们边界条件是周期边界如下图,周期边界的好处就是我们可以一直看到在我们的求解域内看到波的移动:

方程的初始条件我们给空间维度上一个指数函数的波形:

下面我们通过一段简单(其实挺长的,但是很容易理解)的Python代码对上述差分方程进行求解:

"""

运行程序大家就可以看到一个波在来回移动。这里以一个简单平流方程为例,然后构造了其迎风格式的差分方程,然后用我们可爱的python语言进行求解,这里再次说明了计算机语言是一个工具,有了这个工具我们可以用它来做我们想做的事,对我来言Python做科学计算非常的Nice。

matlab偏微分方程数值解误差_Python数值计算----------求解简单的偏微分方程相关推荐

  1. 偏微分方程数值解法python_Python数值计算----------求解简单的偏微分方程

    很多物理现象的都可以用方程来描述,比如热传导与物质扩散可以用扩散方程来描述,流体的流动可以用NS方程描述等等.如果能够将这些偏微分方程求解出来,就可以来对很多物理现象进行仿真,现在工程中的仿真软件都是 ...

  2. 【车间调度】基于matlab混合蛙跳算法 (SFLA) 求解简单调度问题【含Matlab源码 2247期】

    ⛄一.车间调度简介 在传统的SFLA中,每一个青蛙的位置代表一个解,若干个青蛙组成的种群代表一个解的集合,种群被划分为不同的组,即模因组,对每个模因组执行搜索过程,当达到终止条件后,重新将模因组合并成 ...

  3. 偏微分方程的数值解(五): 二维状态空间的偏微分方程的 MATLAB 解法

    偏微分方程的数值解系列博文: 偏微分方程的数值解(一):定解问题 & 差分解法 偏微分方程的数值解(二): 一维状态空间的偏微分方程的 MATLAB 解法 偏微分方程的数值解(三): 化工应用 ...

  4. python差分方程求解_Python数值计算----------二维波动方程有限差分解

    波动现象在生活中非常常见,比如你随便扔一颗石子到平静的湖面上,一圈圈的波纹图案就会出现.波动现象的控制方程为波动方程,下面不要眨眼,请欣赏美丽的波纹:正方形域内波反射图案矩形区域波反射图案三角形区域( ...

  5. 孙志忠 偏微分方程数值解作业算例的matlab程序

    偏微分方程数值解作业 大部分算例都是孙志忠<偏微分方程数值解>中的. 结构如下: 第三章椭圆方程 第四次课中心差分 第五次课紧差分 第六次课两点边值的一般差分格式 第八次课二维Poisso ...

  6. 【老生谈算法】matlab实现PSO算法程序求解简单的函数极值问题——PSO算法

    用MATLAB编制PSO算法程序求解简单的函数极值问题 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]用MATLAB编制PS ...

  7. MATLAB 数学应用 微分方程 边界值问题 求解边界值问题

    在边界值问题 (BVP) 中,目标是求常微分方程 (ODE) 的解,该解还需满足某些指定的边界条件.边界条件指定积分区间中两个或多个位置处的解的值之间的关系.在最简单的情形中,边界条件适用于区间的开始 ...

  8. MATLAB是一个强大的数值计算软件,常用于数值分析的实现

    数值分析是数学中研究数值计算方法和计算误差的一个分支.它是将数学模型用数值方法求解的学科,通常涉及计算数学.计算机科学和工程学科等.MATLAB是一个强大的数值计算软件,常用于数值分析的实现. 以下是 ...

  9. matlab 圆度误差,用MATLAB评定圆度误差的研究

    0 引言 目前在生产实践中,圆度误差的测量方法有半径变化测量法.两点法.三点法和坐标测量法等几种[1].其中,圆度仪.三坐标测量机对圆度的评定和计算是通过圆度仪.三坐标测量机等精密仪器自带的计算程序来 ...

最新文章

  1. usaco party lamps
  2. flash中制的SWC组件怎样导入到flex中使用
  3. 一款vue编写的功能强大的swagger-ui,有点秀(附开源地址)
  4. js插件---IUpload文件上传插件(包括图片)
  5. shell 脚本定时创建月份表
  6. Eclipse c++ 中[Linker error] undefined reference to `WSAStartup@8'的解决办法
  7. Vue 进阶 (二)
  8. hp laser103 属性没有配置项_哦?在hp打印机面板上就可以更改打印机ip地址
  9. threadlocal的set()方法中的内存回收
  10. golang flag.Parse包
  11. 一个优秀数据分析师的准则
  12. 如何获取jar包的在执行机上面的路径
  13. 「无捆绑不锁页」极度纯净win10 32位专业版下载地址
  14. oracle SCAN
  15. 分析算法泛化性能的有效工具:偏差——方差分解
  16. mysql命令(集合)
  17. 熊出没机器人光头强_熊出没:光头强除了3个真名,还有6个外号,第4个最让人心酸...
  18. 基于Java SpringBoot的电影院管理系统设计与实现毕业设计源码011633
  19. ros机器人gazebo仿真
  20. pytoch矩阵乘法torch.bmm

热门文章

  1. 从零开始的FPGA学习(第一个任务:多数表决器)
  2. osgEarth二维地图拉远时,局部小地图不正确放大,最后占满一半地图问题
  3. java中的Locale类讲解
  4. 从pdf和字体内部格式简单分析pdf复制提取文字乱码的原理
  5. 6.Z字形转换(ZigZag Conversion)
  6. hackerrank(python)
  7. 使用ffmpeg查询输入流的编码格式(hevc、h264等)
  8. 安装tomcat的详细步骤
  9. VIJOS 1321 魔塔
  10. 机器视觉,运动控制,C#联合雷赛运动控制卡