数值分析 第七章 常微分方程的数值解法

2023-11-02

1 数值解法相关公式

1.1 为什么要研究数值解法?

所谓数值解法,就是设法将常微分方程离散化,建立差分方程,给出解在一些离散点上的近似值.

1.2 问题 7.1 一阶常微分方程初值问题的一般形式

{y=f(x,y),axby(a)=α

其中 f(x,y) 是已知函数, α 为给定的初值.
若函数 f(x,y) 在区域
{axb,<y<+} 上连续且关于 y 满足Lipschitz条件
|f(x,y)f(x,y¯)|L|yy¯|,y,y¯

其中 L>0 Lipschitz 常数,则初值问题(7.1)有唯一解。

1.3 构造数值解法的基本思想

假设初值问题(7.1)的解 y=y(x) 唯一存在且足够光滑.对求解区域 [a,b] 做剖分

a=x0<x1<x2<...<xn<...<xN=b
其中剖分点 xn=a+nh,n=0,1,...,N , h 称为剖分步长,数值解法就是求精确解y(x)在剖分节点 xn 上的近似值 yny(xn),n=1,2,...,N .
我们采用数值积分方法来建立差分公式.
在区间 [xn,xn+1] 上对方程(7.1)做积分,则有
y(xn+1)y(xn)=xn+1xnf(x,y(x))dx

对右侧分别应用左矩形公式、梯形公式和中矩形公式,可分别得到 Euler 公式、梯形差分公式和 Euler 中点公式。

1.4 Euler 公式

{yn+1=yn+hf(xn,yn)y0=α,n=0,1,2,...,N1

1.5 梯形差分公式

yn+1=yn+h2[f(xn,yn)+f(xn+1,yn+1)]y0=α,n=0,1,2,...,N1

1.6 Euler 中点公式(双步 Euler 公式)

{yn+1=yn1+2hf(xn,yn)y0=α,n=0,1,2,...,N1

Euler 公式和梯形公式中,为求得 yn+1 ,只需用到前一步的值 yn ,这种差分方法称为 单步法,这是一种自开始方法. Euler 中点公式则不然, 计算 yn+1 时需用到前两步的值 yn , yn1 ,称其为 两步方法,两步以上的方法统称为 多步法.在 Euler 公式和 Euler 中点公式中,需要计算的 yn+1 已被显式表示出来,称这类差分公式为 显式公式,而梯形公式中,需要计算的 yn+1 隐含在等式两侧,称其为 隐式公式.隐式公式中,每次计算 yn+1 都需解方程,要比显式公式需要更多的计算量,但其计算稳定性较好.

1.7 改进的 Euler 方法

从数值积分的角度来看,梯形差分公式计算数值解的精度要比 Euler 公式好,但它属于隐式公式,不便于计算.实际上,常将 Euler 公式与梯形差分公式结合使用,通常采用只迭代一次的算法:

yn+1=yn+h2(K1+K2)K1=f(xn,yn)K2=f(xn+h,yn+hK1)y0=α,n=0,1,2,...,N1

2 差分公式的误差分析

在节点 xn+1 的误差 y(xn+1yn+1) ,不仅与 yn+1 这一步计算有关,而且与前 n 步计算值yn,yn1,...,y1都有关。
为了简化误差分析,着重研究进行一步计算时产生的误差,即假设 yn=y(xn) ,求误差 y(xn+1)yn+1 ,这时的误差称为局部截断误差,它可以反映出差分公式的精度。
如果单步差分公式的局部截断误差为 O(hp+1) ,则称该公式为 p 阶方法.这里p为非负整数.显然,阶数越高,方法的精度越高.
研究差分公式阶的重要手段是 Taylor 展开式,一元函数和二元函数的 Taylor 展开式为:

2.1 Taylor 一元展开式

y(xn+1)=y(xn+h)=y(xn)+y(xn)h+y′′(xn)2!h2+y′′′(xn)3!h3+O(h4)

其中,
y(xn)=f(xn,y(xn))=f(xn,yn)=fny′′(xn)=f(xn,y(xn))=fnx+fnyfny′′′(xn)=f′′(xn,y(xn))=2fnx2+22fnxyfn+2fny2f2n+fnxfny+(fny)2fn

2.2 Taylor 二元展开式

f(xn+h,yn+k)=f(xn+yn)+f(xn,yn)xh+f(xn,yn)yk+12![2f(xn,yn)x2h2+22f(xn,yn)xyhk+2f(xn,yn)y2k2]+O(h3)

Euler 方法,有
yn+1y(xn+1)=yn+hf(xn+yn)=y(xn+h)=y(xn)+y(xn)h+y′′(xn)2!h2+y′′′(xn)3!h3+O(h4)=yn+f(xn,yn)h+O(h2)

从而 y(xn+1)yn+1=O(h2) ,所以 Euler 是一阶方法。

3 单步方法的收敛性与稳定性

3.1 单步方法的收敛性

对于给定的初值问题

{y=f(x,y),axby(a)=α

的单步显示方法可以统一写成如下形式:
yn+1=yn+hΦ(xn,yn,h)(7.1)

其中, Φ(x,y,h) 称为增量函数,对于 Euler 方法,有 Φ(x,y,h)=f(x,y) ,对于改进 Euler 方法,有 Φ(x,y,h)=12[f(x,y)+f(x+h,y+hf(x,y))]

定义7.1 单步法的收敛性

y(x) 是初值问题(7.1)的解 , yn 是单步法 (7.1)产生的近似解.如果对任意固定的点 xn ,均有

limh0yn=y(xn)
,则称单步法(7.1)是收敛的
可见,若方法(8.5)是收敛的,则当 h0 时,整体截断误差 en=y(xn)yn 将趋于零.

定理7.1

设单步方法(7.1)是 p1 阶方法, 增量函数 Φ(x,y,h) 在区域 {axb,<y<+,0hh0} 上连续,且关于y满足 Lipschitz 条件,初始近似 y0=y(a)=α ,则方法(7.1)是收敛的,且存在与h无关的常数 C ,使|y(xn)yn|Chp

3.2 单步方法的稳定性

定义7.2 单步方法的稳定性

对于初值问题(7.1),取定步长 h ,用某个差分方法进行计算时,假设只在一个节点值yn上产生计算误差 δ ,即计算值 yn¯=yn+δ ,如果这个误差引起以后各节点值 ym(m>n) 的变化均不超过 δ ,则称此差分方法是绝对稳定的.讨论数值方法的稳定性,通常仅限于典型的试验方程 y=λy ,其中 λ 是复数且 Re(λ)<0 .在复平面上,当方法稳定时要求变量 λh 的取值范围称为方法的绝对稳定域,它与实轴的交集称为绝对稳定区间

说明:单步显式方法的稳定性与步长密切相关, 在一种步长下是稳定的差分公式,取大一点步长就可能是不稳定的.收敛性是反映差分公式本身的截断误差对数值解的影响;稳定性是反映计算过程中舍入误差对数值解的影响.只有即收敛又稳定的差分公式才有实用价值.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数值分析 第七章 常微分方程的数值解法 的相关文章

  • 专家讲解 Hadoop:HBASE松散数据存储设计

    http developer 51cto com art 201006 203833 htm 本节和大家一起学习一下Hadoop HBASE松散数据存储设计方面的内容 希望通过本节介绍大家能够掌握Hadoop HBASE松散数据存储设计的方
  • 设计模式复习(七)-------适配器模式

    1 定义 将一个类的接口转换成客户希望的另一个接口 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 设计模式 GoF 适配 即在不改变原有实现的基础上 将原先不兼容的接口转换为兼容的接口 Adapter模式很像货
  • C语言之移位操作符、位操作符详解

    目录 1 移位操作符 2 位操作符 1 移位操作符 分为左移操作符 lt lt 和右移操作符 gt gt 左移操作符 移位规则 左边抛弃 右边补0 什么意思呢 现在就让我来仔细讲解一番 比如我们定义一个整型变量a 给它赋初值5 如int a
  • tablayout固定在顶端

    当tablayout上方还有其他布局只需要给其他布局添加 app layout scrollFlags scroll 就可以实现
  • postgresql查找数据库端口

    netstat a grep PGSQL
  • 使用git时出现fatal: Authentication failed for

    出现如下错误 fatal Authentication failed for 这是因为我使用的git账号的密码修改了 但是之前已经保存了原来的密码 所以就是密码错误导致无法登陆 但是又不会弹出来让我重新输入密码的界面 这就尴尬了 后来找到了
  • MSYS2 介绍、下载与安装、Pacman常用命令

    一 MSYS2 介绍 MSYS2 官网 MSYS2 MSYS2 Minimal SYStem 2 是一个集成了大量的GNU工具链 工具和库的开源软件包集合 它提供了一个类似于Linux的shell环境 可以在Windows系统中编译和运行许
  • odoo15设置定时任务

    概念 主要是 ir cron模型 它有以下属性 ir actions server id 服务端动作 cron name 任务名称 user id 调度程序用户 默认是当前环境用户 active 默认True interval number
  • KNN最近邻算法——原理和Python代码

    KNN最近邻算法是一种监督学习算法 基本思想是取距离测试数据最近的K个点 这K个点训练数据属于某一类型的数量多 则将该测试数据点也判断为该类 距离可以取 1 欧氏距离 2 曼哈顿距离 算法 1 计算测试数据与各个训练数据之间的距离 2 按照
  • java基础:Object类和Objects工具类的介绍

    1 Object 1 说明 Object类是所有类 数组 枚举类的父类 java允许把任何类型的对象赋给Object类型的变量 当定义一个类时没有使用extends为它显式指定父类 则该类默认继承Object父类 2 Object类的常用方
  • Servlet的Cookie与Seesion的介绍

    什么是Cookie Cookie是服务器在本地机器上存储的小段文本 它是一个简单的字符串形式的键值对 网络服务器用HTTP头向客户端发送cookie 一般情况下Cookie是由服务端生成的 当然js也能操作cookie 在客户端 浏览器解析
  • Python将numpy(.npy文件)存储为.ply文件

    Python将numpy npy文件 存储为 ply文件 安装Open3D From NumPy to Ply Open3D文档 安装Open3D pip install open3d From NumPy to Ply Pass xyz
  • [561]TensorFlow练习1: 对评论进行分类

    TensorFlow是谷歌2015年开源的一个深度学习库 到现在正好一年 和TensorFlow类似的库还有Caffe Theano MXNet Torch 但是论火爆程度 TensorFlow当之无愧 短短一年就在Github就收获了4万
  • ubuntu安装docker及在docker中使用gpu

    ubuntu安装docker和nvidia docker2 docker19以下版本 安装docker 安装nvidia docker2 docker19以上版本 安装docker 安装nvidia container runtime do
  • CSS布局

    CSS布局 div标签 概念 div div 本身是HTML4的标签 因其特殊性而一直作为CSS布局的核心标签 特点 div div 本身默认样式极少 只有默认块级元素这一项 没有太多默认属性 默认宽度为100 总结 本身不具有太多默认的样
  • CTFshow--web--红包题第六弹

    提示了不是sql注入 需要找源码 查看网页源代码
  • 【Hadoop生态圈】1.Hadoop入门教程及集群环境搭建

    文章目录 1 简介 2 环境准备 3 安装hadoop 3 修改Hadoop配置文件 3 1 hadoop env sh配置 3 2 core site xml配置 3 3 hdfs site xml配置 3 4 mapred site x
  • 实操----mybatis自动生成实体类/mapper.java/mapper.xml:mybatis-generator-config

    填错信息导致的常见问题 一 pom里面添加配置 SpringBoot项目创建完成后 在SpringBoot项目的src main resources目录下创建generatorConfiguration xml文件 有时候出现报错找不到文件

随机推荐

  • c++中怎么控制浮点型小数点后输出的位数

    关于这个问题 涉及到的是流的格式化 大家都知道 关于c 的小数输出 小数点后面的尾数全部省略 那么该怎么办呢 我们需要了解一部分关于c 输出时格式的知识 首先 需要有 include
  • 高并发系统设计40问-缓存篇

    系统中使用缓存的优缺点 优点 缓存加快访问速度 便于横向扩展 可分为静态 动态 热点缓存 缺点 增加系统的复杂性 可能导致数据不一致 增加成本
  • html箭头随着点击而移动,Vue实现点击箭头上下移动效果的方法

    Vue实现点击箭头上下移动效果的方法 发布时间 2020 07 02 15 38 11 来源 亿速云 阅读 229 作者 清晨 这篇文章主要介绍Vue实现点击箭头上下移动效果的方法 文中示例代码介绍的非常详细 具有一定的参考价值 感兴趣的小
  • slambook2(ch10)—— Ubuntu18.04安装g2o_viewer + 例程演示

    slambook2 ch10 Ubuntu18 04安装g2o viewer 例程演示 一 安装g2o viewer 1 检查是否安装g2o viewer 2 g2o viewer安装 二 例程演示 1 pose graph g2o SE3
  • fragment组件

    在vue2中 组件必须有一个根标签 在vue3中 组件可以没有根标签 因为内部会将多个标签包含在一个fragment虚拟元素中 优点 减少标签层级 减小内存占用
  • Python搭建自己[IP代理池]

    IP代理是什么 ip就是访问网页数据服务器位置信息 每一个主机或者网络都有一个自己IP信息 为什么要使用代理ip 因为在向互联网发送请求中 网页端会识别客户端是真实用户还是爬虫程序 在今天以互联网为主导的世界中 数据一种资源 谁能得到更多有
  • C语言深入理解指针(非常详细)(五)

    目录 回调函数 qsort使用举例 qsort函数的模拟实现 sizeof和strlen的对比 sizeof strlen sizeof和strlen的对比 一道关于sizeof的题 回调函数 回调函数就是一个通过函数指针调用的函数 如果你
  • Java使用Mybatis-Plus实现根据参数动态拼接查询条件

    在编写代码的过程中我们常常会遇到下面的业务场景 我们需要根据传进来的参数来去进行拼接查询 例如当前端传过来的参数是base 那么我们就需要在Mybatis Plus的条件构造其中写出如下语句 public PageUtils queryBa
  • 常见分布与假设检验

    常见分布与假设检验 一 常见分布 1 离散型分布 1 1 二项分布 1 2 泊松分布 描述某段时间内 事件具体发生的概率 2 连续型分布 2 1 均匀分布 2 2 正态分布 2 3 指数分布 描述事件的时间间隔的概率 二 假设检验 1 正态
  • 大数据中不同文件格式的比较

    翻译 adaltas com中Aida NGOM所写的 Comparaison of different file formats in Big Data 在数据处理中 有不同类型的文件格式来存储您的数据集 每种格式都有自己的优缺点 具体取
  • 【满分】【华为OD机试真题2023 JS】最多几个直角三角形

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 最多几个直角三角形 知识点递归深搜 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 有N条线段 长度分别为a 1 a N 现要求你计算这N条线段最多可以组合成几个
  • 提权方式及原理

    通过getshell控制Web服务器后 通常权限很低 需要通过一些方式来提升权限 提权方式 系统本地漏洞提权 数据库提权 第三方软件提权 获取高权限的用户口令进行提权 其中系统漏洞提权分为Windows系统漏洞提权和Linux脏牛提权 数据
  • C++ 日志

    一个经典的C 日志类 转载于 http blog sina com cn s blog 59b6af6901010nfh html 一个多线程的日志类 转载于 http www oschina net code snippet 932501
  • SqlDataAdapter

    ado net提供了丰富的数据库操作 在这些操作中SqlConnection和SqlCommand类是必须使用的 但接下来可以分为两类操作 一类是用SqlDataReader直接一行一行的读取数据库 第二类是SqlDataAdapter联合
  • IntelliJ IDEA2021.1 安装golang 插件

    golang插件安装前置条件 1 安装IntelliJ IDEA2021 1 安装步骤参考 IntelliJ IDEA安装操作步骤 2 已安装golang 安装环境参考 Go语言开发包 第一步 用户需要登陆 IDEA 的官网下载新版的gol
  • NotADirectoryError: [WinError 267] 目录名称无效。: ‘123456.txt‘

    NotADirectoryError WinError 267 目录名称无效 123456 txt 状况 python中出现如下情况 NotADirectoryError WinError 267 目录名称无效 123456 txt 问题
  • 全球及中国金属包装市场发展状况与竞争趋势研究报告2022版

    全球及中国金属包装市场发展状况与竞争趋势研究报告2022版 HS HS HS HS HS HS HS HS HS HS HS HS 修订日期 2021年11月 搜索鸿晟信合研究院查看官网更多内容 第一章 金属包装相关概述 1 1 包装和金属
  • 大数据项目之Flink实时数仓(数据可视化接口实现)

    设计思路 之前数据分层处理 最后把轻度聚合的结果保存到 ClickHouse 中 主要的目的就是提供即时的数据查询 统计 分析服务 这些统计服务一般会用两种形式展现 一种是为专业的数据分析人员的 BI 工具 一种是面向非专业人员的更加直观的
  • samba 4.6.5 从编译到配置

    为了防范永恒之蓝等samba病毒的传播 需要及时更新samba服务 本文介绍了在Ubuntu16 04版本上编译 配置samba 4 6 5 的方法 卸载当前系统中的samba sudo apt get remove samba commo
  • 数值分析 第七章 常微分方程的数值解法

    1 数值解法相关公式 1 1 为什么要研究数值解法 所谓数值解法 就是设法将常微分方程离散化 建立差分方程 给出解在一些离散点上的近似值 1 2 问题 7 1 一阶常微分方程初值问题的一般形式 y f x y a x by a begin