首页/文章/ 详情

数值微分|有限差分法的误差分析

8月前浏览4480

在所有有限差分表达式中,系数之和为零。对舍入误差的影响可能很大。    很小时,的值几乎相等。当它们通过系数相乘再相加,可能会丢失几个有效数字。

 

以(1)为例,分子可能会为0。但是我们不能使h太大,因为这样截断错误将变得过大。为了解决这个矛盾,我们可以采取以下措施:

  • 1 使用双精度浮点数运算
  • 2 采用精确度至少为      的有限差分公式

例如,用中心差分法计算    在    处的二阶导数。取不同的    值以及精度为    和     ,手算结果见下表

精确值为    。精度为    时,    的最佳值为0.08。由于截断和舍入错误的共同影响,三位有效数字丢失。    大于最佳值,主要错误是由截断引起的。    小于最佳值,舍入误差变得明显。

精度为    时,结果精确到四位有效数字。这是因为额外的精度降低了舍入误差。最佳    约为0.02。

Python的双精度计算










import math
h = 0.02x = 1.0                                                                                  
ddf = ( math.exp(-(x+h)) - 2*math.exp(-(x)) + math.exp(-(x-h)) ) / (h*h)
print(ddf)

输出结果:

h的取值对双精度计算影响不大。


★★★★往期相关★★★★

数值微分|向前差分和向后差分

数值微分|中心差分法(Central Finite Difference Approximations)

数值微分|多项式的导数计算C++版

数值微分|多项式的导数计算

通过案例学Python之定义函数类

数值积分|第二类反常积分

数值积分|第一类反常积分

数值积分|中点法则(Midpoint Rule)

数值积分|龙贝格公式

数值积分|自适应辛普森积分公式

数值积分|自适应梯形积分

数值积分|牛顿-柯特斯公式

数值积分|高斯积分

数值积分|泰勒(Taylor)公式求积分

数值积分| 辛普森公式

Python实现辛普森公式


来源:数值分析与有限元编程
python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-02
最近编辑:8月前
太白金星
本科 慢慢来
获赞 6粉丝 17文章 327课程 0
点赞
收藏
作者推荐

数值微分|向前差分和向后差分

中心差分法详见:数值微分|中心差分法(Central Finite Difference Approximations)求区间端点的导数时,不能用中心差分法。考虑在 个离散点 给出函数的情况,由于中心差分在 的两侧使用函数的值,因此我们将无法计算导数 。显然,需要只在 的一侧求值的差分表达式。这些表达式称为向前和向后有限差分(forward and backward finite difference approximations)。一阶向前和向后差分由泰勒公式可得到: 由(1)可得 或者 同理,由(2)可得 (6)称为求 的一阶向前差分公式。(7)称为求 的一阶向后差分公式。由(1)(3)可得求 的一阶向前差分公式: 一阶向前差分法的系数见下表。一阶向后差分法的系数见下表。二阶向前和向后差分由(1)(3)消去 可得 即 或者 (10)称为求 的二阶向前差分公式。二阶向前差分法的系数见下表。二阶向后差分法的系数见下表。★★★★往期相关★★★★数值微分|多项式的导数计算C++版数值微分|多项式的导数计算通过案例学Python之定义函数类数值积分|第二类反常积分数值积分|第一类反常积分数值积分|中点法则(Midpoint Rule)数值积分|龙贝格公式数值积分|自适应辛普森积分公式数值积分|自适应梯形积分数值积分|牛顿-柯特斯公式数值积分|高斯积分数值积分|泰勒(Taylor)公式求积分数值积分| 辛普森公式Python实现辛普森公式来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈