《Matlab微分方程高效解法:谱方法原理与实现》简介

更新于 2026年10月10日 版权声明

《Matlab微分方程高效解法:谱方法原理与实现》这本书是由张晓创作的,《Matlab微分方程高效解法:谱方法原理与实现》共有97章节

1

出版说明

随着信息科学与技术的迅速发展,人类每时每刻都会面对层出不穷的新技术和新概念。毫无疑问,在节奏越来越快的工作和生活中,人们需要通过阅读和学习大量信息丰富、具备实践
阅读
2

序

(https://www.daowen.com)
阅读
3

前言

我第一次进行微分方程数值求解是在读硕士的时候,当时查找了很多资料,用现在看来很蹩脚的办法写了大段的Matlab代码解决了一个描述激光器谐振腔的简单边值问题。随后
阅读
4

提示

本书代码中对变量的命名遵循一定规律: 以t结尾的变量代表对某函数做傅里叶变换的结果(取transform首字母),如ut为函数u的傅里叶变换结果(即频谱)。 以
阅读
7

第1章  初值问题和边值问题

本章将通过最基本、简单的微分问题——初值问题(initial value problem)和边值问题(boundary value problem)的数值解法,
阅读
8

1.1  初值问题

初值问题是科研、工程技术应用中最常见的一类问题,一阶常微分方程的初值问题表述如下: 已知u(x)的起始点(x0,u0)以及u(x)的一阶导数表达式为二元函数f(
阅读
9

1.1.1  欧拉法

欧拉法(Eulermethod)的核心就是将导数(微商)近似为差商。将导数近似为向前差商,则有: 代入式(1-1)中的第1个式子,得: u(xn+1)=u(x
阅读
10

1.1.2  局部截断误差

在利用某种数值计算方法由u1,u2,…,un逐步递推的过程中,每一步产生的误差都会积累在一起。在xn处的误差为u(xn)-un,称为整体截断误差。整体截断误差由
阅读
11

1.1.3  改进的欧拉法

对式(1-1)中的第1个式子在[xn,xn+1]上积分,可得: 其中,n=0,1,…。用不同方式来近似上式中的积分运算,就会得到不同的递推公式。比如使用左端点
阅读
12

1.1.4  龙格-库塔法

将欧拉法写成式(1-37)的形式,可以看出它实际上利用了f(x,u)在xn处的取值来计算un+1的值。类似地,隐式欧拉法使用了f(x,u)在xn+1处的近似值来
阅读
13

1.1.5  ode系列函数的用法

Matlab的ode系列函数(统称odesolver)专门用于求解形如式(1-53)的常微分方程的初值问题,或者求解形如式(1-54)的常微分方程组的初值问题。
阅读
14

1.1.6  高阶微分方程的降阶

在初值问题中,odesolver只能用来数值求解一阶微分方程(组)。对于高阶微分方程,可以将其化成一阶微分方程组,进而用odesolver求解,过程如下。 有n
阅读
15

1.2  边值问题

前面分析的是初始条件下常微分方程(组)的数值求解,但在某些实际问题中,已知的是边界上的条件(即边界条件)而非初始条件,如:梁的形变问题、激光器谐振腔的理论模型、
阅读
16

1.2.1  打靶法

对于二阶常微分方程(1-65)及边界条件(1-67),利用代换u1=u、u2=u′,可将其写为等价的方程组形式: 它与初值问题的不同之处在于,u2(a)的值是
阅读
17

1.2.2  bvp系列函数的用法

与专门针对初值问题的ode系列函数类似,Matlab中还有专门用于解决边值问题的bvp系列函数,其调用语法为: sol=bvpsolver(odefun,bcf
阅读
18

第2章  有限差分法和有限元法

有限差分法(finite difference method)和有限元法(finite element method)是两种历史悠久且十分成熟的求解偏微分问题的
阅读
20

2.1.1  有限差分法中的数值微分

数值微分是根据函数在一些离散点的值计算它在某点的1阶导数或高阶导数近似值的方法。先从一个最简单的例子开始,在区间[a,b]上取一系列间距为h的点:x0,x1,…
阅读
21

2.1.2  求导的矩阵形式

2.1.1小节给出了数值微分的原理及公式,要在Matlab中实现这样的数值微分,既可以用循环语句,也可以用矩阵乘法的形式。众所周知,Matlab在矩阵运算方面的
阅读
23

2.2.1  二维泊松方程

考虑区域Ω上的二维泊松问题: 其中,∂Ω为区域Ω的边界,f(x,y)和φ(x,y)为已知函数。u|∂Ω=φ(x,y)描述了函数u在边界上的取值,即所谓的边界条
阅读
24

2.2.2  一维热传导方程

考虑一维热传导问题: 其中a为正常数,f(x,t)、φ(x)、α(t)和β(t)为已知函数。u(x,0)=φ(x)给出了函数u在t=0时刻的取值,即初始条件。
阅读
25

2.2.3  一维波动方程

考虑如下一维波动方程: 其中,a为正常数,f(x,t)、φ(x)、ψ(x)、α(t)和β(t)为已知函数。这里的计算区域网格剖分过程和2.2.2小节完全一样,
阅读
26

2.3  有限元法和Matlab偏微分工具箱

有限差分法直接将偏微分方程离散化并根据泰勒级数展开写成差分格式近似求解,而有限元法则是把偏微分方程定解问题转化为一个等价的变分问题求解。较之有限差分法,有限元法
阅读
27

2.3.1  基本操作

在Matlab中输入pdetool并回车,可启动图形界面化的偏微分工具箱,如图2-11所示。界面的上侧有一个工具栏,供用户方便、快捷地进行常用操作,如图2-12
阅读
28

2.3.2  二维泊松方程

考虑单位圆上的泊松问题: 其解析解为u=(1-x2-y2)/4,求解步骤如下: 首先启动偏微分工具箱,点击按钮,按住Ctrl键同时鼠标左键在原点按下并拖曳到合
阅读
29

2.3.3  二维热传导方程

考虑这样一个热传导问题:一个长/宽为2×1的金属板,中央有一个半径为0.2的孔。此板左边界接触一温度为100的恒温热源,右边界接触一温度为200的恒温热源,其他
阅读
30

2.3.4  二维波动方程

考虑如下二维波动方程的定解问题,取a=0.1: 可近似认为上式描述了一个四周被固定的正方形弹性薄膜在中心被拉起并突然释放之后的过程,u为薄膜上每个点的位移。求
阅读