Tip
在实际工程和科学计算中,许多微积分问题无法获得解析解,或者解析表达式过于复杂。数值方法通过离散化近似,为这些问题提供了实用的解决方案。本章介绍三种基本数值方法:数值微分、数值积分和常微分方程的数值解法。
Tip
在实际应用中,我们经常遇到需要计算函数导数的情况,但有时函数表达式复杂,或者只有离散的数据点,这时就需要使用数值微分方法。
Important
差商的基本概念
数值微分的核心思想是用差商来近似导数。差商是函数在两个点上的函数值之差与自变量之差的比值。
三种基本差商:
前向差商:
后向差商:
中心差商:
其中
Warning
差商的几何意义
从几何角度看,差商实际上是割线斜率对切线斜率的近似:
前向差商:使用点
后向差商:使用点
中心差商:使用点
精度比较:
前向和后向差商的误差约为
中心差商的误差约为
Note
数值微分的计算实例
例1 计算
精确值:
前向差商:
后向差商:
中心差商:
可以看到中心差商给出了最精确的结果。
例2 步长
对于
| 步长 | 前向差商 | 绝对误差 | 中心差商 | 绝对误差 |
|---|---|---|---|---|
| 0.1 | 0.99833 | 0.00167 | 0.99998 | 0.00002 |
| 0.01 | 0.99998 | 0.00002 | 1.00000 | 0.00000 |
| 0.001 | 1.00000 | 0.00000 | 1.00000 | 0.00000 |
观察发现:
步长越小,精度越高
中心差商比前向差商精度更高
但步长过小可能引入数值舍入误差
Important
二阶导数的数值计算
二阶导数可以用以下公式近似:
推导:
将
两式相加:
整理得:
Note
例3 计算
精确值:
数值计算:
结果与精确值一致。
Tip
当函数的原函数难以求出,或者只有离散的数据点时,数值积分提供了计算定积分的有效方法。数值积分的基本思想是用简单的函数(如多项式)近似被积函数,然后计算近似函数的积分。
Important
矩形法
矩形法是数值积分中最简单的方法,它将积分区间分割成若干小区间,用每个小区间左端点或右端点的函数值作为矩形的高。
左矩形法:
其中
右矩形法:
几何意义:用一系列矩形面积之和近似曲边梯形的面积。
Note
例1 用矩形法计算
精确值:
左矩形法:
右矩形法:
Important
梯形法
梯形法用梯形面积代替矩形面积,通常能获得更好的精度。
梯形公式:
几何意义:用一系列梯形面积之和近似曲边梯形的面积。
推导:
每个小区间
将所有小区间相加即得梯形公式。
Note
例2 用梯形法计算
与精确值
Important
辛普森法
辛普森法用抛物线代替直线来近似被积函数,精度更高。
辛普森公式:
要求:区间等分且
几何意义:每两个相邻小区间上用一条抛物线近似被积函数。
Note
例3 用辛普森法计算
与精确值完全一致(因为
Warning
三种数值积分方法的精度比较
对于
| 方法 | 绝对误差 | 收敛阶 | |
|---|---|---|---|
| 左矩形法 | 1.49068 | 0.22760 | |
| 右矩形法 | 1.93637 | 0.21809 | |
| 梯形法 | 1.71339 | 0.00489 | |
| 辛普森法 | 1.71832 | 0.00004 |
可见辛普森法的精度最高,梯形法次之,矩形法精度最低。
Warning
数值积分的误差分析
各种数值积分方法的误差估计:
矩形法:误差约
梯形法:误差约
辛普森法:误差约
Tip
许多实际问题的数学模型是常微分方程,但大多数微分方程无法求得解析解。数值解法通过离散化方法,将连续的微分方程转化为离散的代数方程,从而获得近似解。
Important
欧拉方法
欧拉方法是最简单、最直观的数值解法,它用切线来近似积分曲线。
基本思想:从初始点出发,沿着该点的切线方向前进一小步,得到下一个近似点。
迭代公式:
其中:
几何解释:在每一步,用当前点的切线斜率代替曲线在该点的导数,沿着切线方向前进。
Note
例1 用欧拉方法求解初值问题:
在区间
精确解:
数值计算:
| 欧拉近似 | 精确值 | 绝对误差 | |
|---|---|---|---|
| 0.0 | 1.0000 | 1.0000 | 0.0000 |
| 0.2 | 1.2000 | 1.2214 | 0.0214 |
| 0.4 | 1.4400 | 1.4918 | 0.0518 |
| 0.6 | 1.7280 | 1.8221 | 0.0941 |
| 0.8 | 2.0736 | 2.2255 | 0.1519 |
| 1.0 | 2.4883 | 2.7183 | 0.2300 |
计算过程:
依此类推...
Note
步长对精度的影响
欧拉方法的精度与步长
例2 不同步长下的比较(同一个问题)
| 步长 | 绝对误差 | |
|---|---|---|
| 0.5 | 2.2500 | 0.4683 |
| 0.2 | 2.4883 | 0.2300 |
| 0.1 | 2.5937 | 0.1246 |
| 0.05 | 2.6533 | 0.0650 |
| 0.01 | 2.7048 | 0.0135 |
可见随着步长减小,精度逐渐提高。
Warning
改进的欧拉方法
改进的欧拉方法(又称Heun方法)通过使用预测-校正策略来提高精度。
计算步骤:
预测步:用欧拉方法计算一个初步预测值
校正步:用预测点的斜率来改进
几何解释:先用欧拉方法预测,然后用两端斜率的平均值来校正。
Note
例3 用改进欧拉方法求解例1的问题
第一步计算:
预测:
校正:
与精确值
Note
数值解法的应用实例
应用1:人口增长模型
问题:某地区人口初始为100万,年自然增长率为3%,同时每年净迁入1万人。预测10年后的人口。
模型:
(单位:万人,时间单位:年)
解析解:
数值解(欧拉方法,
| 年份 | 人口 | 人口 |
|---|---|---|
| 0 | 100.00 | 100.00 |
| 1 | 104.00 | 104.08 |
| 2 | 108.12 | 108.37 |
| 3 | 112.36 | 112.78 |
| 4 | 116.73 | 117.33 |
| 5 | 121.23 | 122.02 |
| 10 | 147.85 | 149.18 |
计算过程:
依此类推...
应用2:RC电路充电过程
问题:RC电路中,电容初始电压为0,电源电压
模型:
其中
解析解:
数值解(欧拉方法,
| 时间 | 电压 | 电压 |
|---|---|---|
| 0.0 | 0.00 | 0.00 |
| 0.2 | 2.00 | 1.81 |
| 0.4 | 3.60 | 3.30 |
| 0.6 | 4.88 | 4.51 |
| 0.8 | 5.90 | 5.51 |
| 1.0 | 6.72 | 6.32 |
计算过程:
依此类推...
Warning
数值解法的优缺点
优点:
通用性强:适用于各种类型的微分方程
实现简单:算法直观,编程容易
灵活性高:可以处理复杂的右端函数
缺点:
精度有限:欧拉方法只有一阶精度
稳定性问题:步长选择不当可能导致数值不稳定
累积误差:误差会随着计算步数增加而积累
实用建议:
先尝试欧拉方法,了解问题的基本特性
对于精度要求高的问题,使用改进欧拉方法或其他高阶方法
通过减小步长来检验结果的收敛性
对于刚性问题,需要特殊的数值方法
Tip
大部分微分方程都无法解析求解, 运用计算机, 我们可以对微分方程进行数值求解.
Note
Lotka-Volterra方程
[课堂展示] 我们可以很容易的用AI帮助我们写程序, 然后画图.
Note
行星运动方程
[课堂展示] 我们可以很容易的用AI帮助我们写程序, 然后画图.