模拟物理-03 第二章 常微分方程.pdf

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模拟物理-03 第二章 常微分方程

第二章常微分方程 主要内容 1. 简单方法:Euler方法 2. 多步法和隐式法 3. Runge-Kutta方法 4. 例子:二维运动中的有序和混沌 最常遇到的任务 • 许多物理定律通过微分方程表述。 – 比如: 牛顿运动方程 • 求微分方程的数值解是模拟物理系统时最 常遇到的一项任务。 方程的表达形式 • 常微分方程最一般的形式是一组M个耦合的 一阶方程 • X是自变量,y是M个因变量,f 有M个分量。 • 高阶微分方程通过引入若干辅助函数可以 写成这种一阶形式。 牛顿方程 • 例如,我们考虑一个质量为m 的粒子在力场 F(z)作用下的一维运动。它由二阶方程描述 • 若定义动量 • 方程可以改为 1. 只要详细讨论求解一阶方程组的方法就够 了。 2. 只有一个因变量的情况,很容易推广到有 多个因变量的情况。(用矩阵表示。)因 此只讨论单个因变量的情况。 3. 本章重点讨论初值问题。即给定y (x=0)=y 0 , 求y (x ) 2.1 简单方法 • 设我们想求解带有初始条件y (x=0)=y 0 的微分 方程 • 更具体地说,我们通常感兴趣的是某一特 定x值(比如说x=1 )上的y 值。 解法概述 • 总的策略是把区间[0,1]分成N个等间隔的子 区间,每个子区间的宽度h=1/N 。 • 然后找出一个递推公式,把y n 同{ y n-1, y n-2, …} 联系起来。其中y 是对y (x =nh)的近似。 n n • 使用这样的递推关系可以对这个微分方程进 行从x=0 到x=1 的逐步积分。 Euler方法 • 一个最简单的算法是Euler法。 • 考虑xn 点上的情况,并且把微商换成前向 差分近似。 • 递推关系 例子 • 考虑微分方程和初条件 • 它的解析解为 • 下面我们用Euler方法从x=0积分到x=3 ,步 长由外界输入。 开始 输入步长:h 计算总步数N=3/h 初始条件x=0,Y=1.0 迭代一步: y=y+h*fnf(x,y) X=x+h 其中 fnf(x, y)=-x*y 输出误差 循环计数器i=i+1 N iN Y 结束 program main function fnf(x,y) implicit none implicit none real :: x,y,h,fnf real x,y,fnf integer :: N,i fnf=-x*y print*,Enter h end function fnf read(*,*) h N=(3.0-0.0)/h y=1.0 do i=0,N-1 x=i*h write(*,*)x,y,y-exp(-0.5*x**2) y=y+h*fnf(x,y) enddo x=N*h

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档