一、前向差分

前向差分公式:(1)泰勒展开为:(2)

由泰勒展开可以推出 f '(x) : (3)

由(3)可以知道右边第一项是前向差分,而其他项的和是函数f '(x)与前向差分的误差,用o(x)表示,得出:(4)

因为误差项为o(x),o(x)主要项为Δx/2。而Δx为一阶,所以前向差分为一阶精度。

同理可以推出后向差分

二、后向差分


后向差分公式:(1)

泰勒展开为:(2)

由泰勒展开可以推出 f '(x) : (3)

由(3)可以知道右边第一项是后向差分,而其他项的和是函数f '(x)与后向差分的误差,用o(x)表示,得出:(4)
因为误差项为o(x),o(x)主要项为Δx/2。而Δx为一阶,所以后向差分为一阶精度。

三、中心差分


中心差分公式:(1)
泰勒展开为:(2)

由泰勒展开可以推出 f '(x) : (3)


由(3)可以知道右边第一项是中心差分,而其他项的和是函数f '(x)与中心差分的误差,其中主要项就是 (Δx^2)/6,由于 Δx^2是二姐的,因此中心差分的精度是二阶精度。

总结:
1、对于一阶差分如果Δx缩小到原来的1/2,那么误差项也会缩小到原来的1/2.
2、对于二阶差分如果Δx缩小到原来的1/2,那么误差项会缩小到原来的1/4.
3、因此二阶精度比一阶精度高。

四、Matlab仿真

%% 探究前向差分、后向差分、中心差分的精确度
% 函数f(x)=sin(x)*exp(-0.3x)
% 原函数图像
hold on
a = 100;
x = linspace(0,5*pi,100);
fx = sin(x).*exp(-0.3*x);
plot(x,fx);
% fx的一阶倒数画图
% f'(x)=cos(x)*exp(-0.3x)-0.3sin(x)*exp(-0.3x)
% f1x = cos(x).*exp(-0.3*x)-0.3*sin(x).*exp(-0.3*x);
% plot(x,f1x);
hold off%% 差分
hold on
f1x = cos(x).*exp(-0.3*x)-0.3*sin(x).*exp(-0.3*x);
plot(x,f1x);dx = 5*pi/100;
fx_0dx = sin(x+dx).*exp(-0.3*(x+dx));
fx_1dx = sin(x-dx).*exp(-0.3*(x-dx));
% 前向差分:f'(x)=[f(x+dx)-f(x)]/dx
f1x_f = (fx_0dx - fx)/dx;
plot(x,f1x_f,'--');
% 后向差分:f'(x)=[f(x)-f(x-dx)]/dx
f1x_b = (fx - fx_1dx)/dx;
plot(x,f1x_b,'-.');
% 中心差分:f'(x)=[f(x+dx)-f(x-dx)]/2dx
f1x_c = (fx_0dx - fx_1dx)/(2*dx);
plot(x,f1x_c,'o:','MarkerSize',3);title('f(x)的导数与有限差分近似,dx=5*\pi/100','FontSize',20)
legend("f'(x)原始","前向差分","后向差分","中心差分",'FontSize',12)
hold off%% 差分误差分析,dx=5*pi/100
hold on
% 前向误差
error_f = f1x - f1x_f;
plot(x,error_f,'--');
% 后向误差
error_b = f1x - f1x_b;
plot(x,error_b,'-.');
% 中心误差
error_c = f1x - f1x_c;
plot(x,error_c,'o:','MarkerSize',3);
title('差分误差分析,dx=5*\pi/100','FontSize',20)
legend("前向误差","后向误差","中心误差",'FontSize',12)
hold off%% 差分误差分析,dx=5*pi/200
a = 200;
x = linspace(0,5*pi,a);fx = sin(x).*exp(-0.3*x);
f1x = cos(x).*exp(-0.3*x)-0.3*sin(x).*exp(-0.3*x);dx = 5*pi/a;
fx_0dx = sin(x+dx).*exp(-0.3*(x+dx));
fx_1dx = sin(x-dx).*exp(-0.3*(x-dx));f1x_f = (fx_0dx - fx)/dx;
f1x_b = (fx - fx_1dx)/dx;
f1x_c = (fx_0dx - fx_1dx)/(2*dx);hold on
% 前向误差
error_f = f1x - f1x_f;
plot(x,error_f,'--');
% 后向误差
error_b = f1x - f1x_b;
plot(x,error_b,'-.');
% 中心误差
error_c = f1x - f1x_c;
plot(x,error_c,'o:','MarkerSize',3);
title('差分误差分析dx=5*\pi/200','FontSize',20)
legend("前向误差","后向误差","中心误差",'FontSize',12)hold off

运行结果:

第一部分:原函数

第二部分:


细节图:
观察细节图:
由细节图可以观察出中心差分比前向后向差分都准确

第三部分:误差分析图


由这个误差分析图可以看出:中心差分(橙色的圆圈)的误差最小。

第四部分:修改采样频率,理论分析得知,采样频率越高,精度越高。


第三部分和第四部分对比,dx缩小1/2,误差缩小!

前向差分、后向差分、中心差分精度,matlab仿真相关推荐

  1. CIC滤波器的Matlab仿真与FPGA实现

    CIC滤波器 1.单级CIC滤波器: CIC滤波器的冲激响应为: h(n)=1,[0,M-1] h(n)=0,其他 可见CIC滤波器在时域上是一个矩形窗,是一个累加器(积分器). 用MATLAB仿真不 ...

  2. 如何用matlab测a相相电流,电流平均值谐波检测方法MATLAB仿真

    电流平均值谐波检测法MATLAB仿真 Math模块库中选取,放大器增益约等于无功电流 ,最后得到有功电流. .然后封装成一个子模块abc/pq.三相到两相的变换在Simulink 的实现及其封装图如图 ...

  3. 功率谱估计性能分析及matlab仿真,功率谱估计性能分析及Matlab仿真.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 功率谱估计性能分析及Matlab仿真.doc19页 ...

  4. 电力电子技术 matlab仿真指导,在_电力电子技术_课程教学中展开Matlab仿真训练_唐贤伦...

    教 学改革广角 中国电力教育 2009年10月上 总第146期 "电力电子技术"是电气工程及其自动化等专业的重要专业 基础课,也是实用性.工程性和综合性很强的课程.作为自动化.电气 ...

  5. ann matlab,人工神经网络ann及其matlab仿真.ppt

    人工神经网络ann及其matlab仿真 人工神经网络 的研究方法及应用刘 长 安2004. 12. 31 引 言 利用机器模仿人类的智能是长期以来人们认识自然.改造自然和认识自身的理想. 研究ANN目 ...

  6. 控制系统数学模型的matlab仿真,第7章 控制系统的MATLAB仿真

    <第7章 控制系统的MATLAB仿真>由会员分享,可在线阅读,更多相关<第7章 控制系统的MATLAB仿真(101页珍藏版)>请在人人文库网上搜索. 1.1,本章主要教学内容在 ...

  7. MATLAB仿真噪声信号、单多音信号、LFM、2ASK、2FSK、BPSK、16QAM

    文章目录 背景: 1.高斯白噪声 2.噪声调幅信号 3.噪声调频信号 4.单音信号 5.多音信号 6.线性扫频信号 7.2ASK信号 8.2FSK信号 9.BPSK信号 10.16QAM信号 缩略对照 ...

  8. flooding matlab仿真,无线传感器网络flooding路由协议MATLAB仿真.doc

    PAGE 摘 要 无线传感器网络是计算机科学技术的一个新的研究领域,是传感器技术.嵌入式计算技术.分布式信息处理技术和无线通信技术相结合的产物.与传统网络相比,无线传感器网络具有造价低.功耗低.布局灵 ...

  9. dc dc变换器的建模及matlab仿真,基于Matlab的AC/DC变换器的系统建模和仿真.pdf

    基于Matlab的AC/DC变换器的系统建模和仿真 Research.Developmentl 基于 Matlab的AC/DC变换器的 系统建模和仿真 1'lleM odelingand Simula ...

最新文章

  1. 联想一体计算机排行,2019最具性价比一体机推荐 电脑一体机十大最新排名
  2. android平台 arcgisr_《ArcGIS Runtime SDK for Android开发笔记》——Android Studio基本配置与使用...
  3. DELL R720 服务器 RAID阵列卡配置介绍
  4. hibernate笔记(一)
  5. Dart的数据库操作
  6. 误删数据库---恢复
  7. git和github的基本使用
  8. URI 、URL 和 URN
  9. 机会难得 | 这家上市公司终于招人了
  10. VS2015打开cshtml视图页文件报错 未将对象引用设置为实例 解决办法
  11. 【图解深度学习】【章节:2-1.1 | 什么是机器学习?】连小学生都能看懂的深度学习基础总结
  12. ArcGIS操作实例视频教程38讲全集(转)
  13. c语言vc怎么改变背景板颜色,VC OnCtlColor函数来修改控件背景颜色
  14. TikTok如何玩转语言教学类目?
  15. Word中如何修改脚注的编号方式
  16. RabbitMq:java.lang.NoClassDefFoundError: org/springframework/util/backoff/BackOff
  17. 题目 1867: 王牌花色
  18. mysql 一个月以前_mysql查询昨天 一周前 一月前 一年前的数据
  19. FHQ Treap 总结
  20. (论文阅读)NMS by Representative Region: Towards Crowded Pedestrian Detection by Proposal Pairing

热门文章

  1. Web网页如何实现QQ好友,QQ空间,微博分享
  2. 过来人都是怎么学习stm32的
  3. COPA和利润中心PCA的区别
  4. 代码质量保证体系(下)
  5. 某公司公众号任意用户注册漏洞利用
  6. [python][Bug记录]特殊16进制转成对应的语言
  7. SHA-1和SHA-2算法有什么区别?
  8. 使用python为Excel插入附件
  9. 字符数组 - 数组名
  10. 淘宝客小程序制作(4)-小程序(微信支付宝)