不同数值微分方法的精度讨论

本文探讨了数值微分的精度问题,通过比较插值型、两点和三点数值微分公式,发现三点数值微分在保持较高精度的同时,经MATLAB验证,能提供更好的结果。通过调整两点数值微分的赋值方式,虽然能改善中间点的精度,但并不适用于实时性要求。最后,提出一种改进的三点数值微分公式,实现了实时性和精度的平衡。
摘要由CSDN通过智能技术生成

验证数值微分的精度


  1. 来源
    在进行姿态解算的时候,有一个环节是“通过角度求角速率”,用到离散点求微分的知识,也就是“数值微分”。有人说离散点直接差分就好了,但对于对精度有一定要求的时候,直接差分可以胜任吗?

  2. 验证方法
    身边恰好有一本《工程数学基础教程》(天津大学出版社,P316),上面介绍的数值微分方法,包括插值型求导公式、两点数值微分公式和三点数值微分公式。插值型求导方法需要事先知道所有的插值点,才能写出公式,不能达到实时性的要求。
    插值型求导公式:
    n次Lagrange插值多项式
    两点数值微分公式,以一阶差商代替导数,其实就是我们所说的差分公式,截断误差为O(h)(与h同阶):
    两点数值微分公式
    三点数值微分公式,是为提高精度对两点数值微分公式进行的改进,三点对应二次差值多项式,公式为:
    这里写图片描述
    这里写图片描述
    这里写图片描述
    当f(x)的三阶导在[x0,x2]上有界时,三点的截断误差均为O(h^2)。

  3. MATLAB验证精度
    插值型求导方法毫无实时性,不再讨论;
    两点数值微分实时性最好,可以在获取采样点的同时进行数值微分求解;
    三点数值微分实时性稍差,通过公式我们发现求x1点处的微分值,需要用到x2点值。这样的话,数值微分的解算比采样少了一个节拍。
    下面通过MATLAB进行精度验证两点数值微分和三点数值微分方法的精度,验证思路是:
    a. 首先确定一个多项式,对多项式进行取点作为我们的模拟采样点,多项式进行求导作为数值微分结果对照的标准;

%设定一个多项式,并求出导数形式
syms x;
y = (x-1) * (x-2) * (x-3) * (x-4);
dy = diff(y);
h = 1/
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值