首页/文章/ 详情

数值微分|中心差分法

7月前浏览4095

利用泰勒(Taylor)公式将函数    展开:

 

令    ,则有

 

同理

 
 
 

   相加可得

 

   相减可得

 

   相加可得

 

   相减可得

 

注意到    仅包含偶数阶导数,而    仅包含奇数阶导数。

由    可得

 

或者

 

   就是求    的中心差分法(Central Finite DifferenceApproximations ),    表示截断误差(h是比较小的数)。由于截断误差是二阶,故又称二阶中心差分法。由    可得

 

或者

 

   就是求    的二阶中心差分法。    表示截断误差。

   仅包含偶数阶导数,而    仅包含奇数阶导数。利用这个特点,还可以得到求    的二阶中心差分法

 
 

二阶中心差分法的系数见下表。

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

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

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

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

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

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

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

数值积分|龙贝格公式

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

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

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

数值积分|高斯积分

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

数值积分| 辛普森公式

Python实现辛普森公式


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

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

在数值积分推导辛普森公式时就是将函数插值成为多项式形式,原因在于多项式的简洁。任何初等函数都可以用泰勒公式展开成多项式的形式,然后在多项式的基础上作求导运算。也可以用别的插值方法,比如拉格朗日插值,样条插值,埃尔米特插值等等。如果 作为一组离散数据点给出,则插值会非常有效。通常建议将多项式的阶数应该小于6,以避免振荡。/*C++定义多项式就是将多项式系数保存在一个容器vector中,比如将 1 + x + 2xˆ2 + 3xˆ3 + 4xˆ4 定义为vector<double> p{1,1,2,3,4}*/ 四阶多项式 可写成 令 这里, 一样。对于 次多项式 有以下递推式 两边对 求一阶导,得 对 求二阶导,得 以上过程就体现了多项式的简洁。CPP代码:/*p = a[0] + a[1]*x + a[2]*xˆ2 +...+ a[n]*xˆn计算多项式p的一阶导数dp以及二阶导数ddp*/#include <iostream> #include <vector>class Polynomials{public: Polynomials() = default; Polynomials(std::vector< double > a_) : a{a_} { } void evalPolynomials(double x){ double p = a.back(); double dp{ }; double ddp{ }; for(size_t i{1}; i<a.size(); ++i ) { ddp = ddp * x + 2.0 * dp; dp = dp * x + p; p = p * x + a[a.size()-1 - i]; } std::cout << "多项式在x=" << x << "处的函数值为: " << p << std::endl; std::cout << "多项式在x=" << x << "处的一阶导数为:" << dp << std::endl; std::cout << "多项式在x=" << x << "处的二阶导数为:" << ddp << std::endl; }private: std::vector< double > a{}; //多项式的系数 };//分割线,以上定义多项式类Polynomialsint main(){ std::vector< double > a{ 1,1,2,3,4 }; Polynomials pol(a); //创建多项式对象pol = 1 + x + 2xˆ2 +3xˆ3 + 4xˆ4 pol.evalPolynomials(2.2); return 0;} ★★★★往期相关★★★★数值微分|多项式的导数计算通过案例学Python之定义函数类数值积分|第二类反常积分数值积分|第一类反常积分数值积分|中点法则(Midpoint Rule)数值积分|龙贝格公式数值积分|自适应辛普森积分公式数值积分|自适应梯形积分数值积分|牛顿-柯特斯公式数值积分|高斯积分数值积分|泰勒(Taylor)公式求积分数值积分| 辛普森公式Python实现辛普森公式来源:数值分析与有限元编程

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