问题的引入

​ 在实际生活中我们常遇到数值积分的求积问题,虽然我们也学过求数值积分的一些方法,但是由于用插值多项式L(x)近似表达函数f(x)时存在截断误差,即有插值余项,因此插值型求积公式也有相应的余项。存在求函数f(x)在区间[a,b]上的定积分,以及f(x)在给定点上的值的数值方法,为了克服求f(x)的原函数可能遇到的困难和便于计算,我们利用牛顿——科茨来计算。其中还推导它的两种特殊形式——梯形求积公式和辛普森求积公式,并对这三种求积公式(梯形公式、辛普森公式和柯茨公式)进行了分析和比较。

代码的实现

Newton-Cotes.h

#include <iostream>
#include <cmath>using namespace std;class Newton_Cotes{
public:double a, b, h, core[100], f[100];int n;//牛顿——科茨公式的求积系数double c[7][9] = { {2, 1,1}, {6, 1, 4,1}, {8, 1, 3,3,1}, {90, 7, 32, 12,32,7}, {288, 19, 75, 50,50,75,19}, {840, 41, 216, 27, 272,27,216,41},{17280, 751, 3577,1323, 2989,2989,1323,3577,751} };Newton_Cotes(){}void input() {cout << "输入积分区间:" << endl;cin >> a >> b;cout << "需要将区间n等分    n=" << endl;cin >> n;h = (b - a) / n;//输入纵坐标的对应值cout << "输入横坐标x对应的纵坐标y的值:" << endl;for (int i = 0; i <= n; i++) {cout << "x[" << i << "] = " << a + i * h << "   y[" << i << "] = ";cin >> f[i];}}double run() {double sum = 0;for (int i = 0; i <= n; i++) {double x = c[n - 1][i + 1];sum += x * f[i];}sum = sum / c[n - 1][0] * (b - a);return sum;}private:};

Newton-Cotes.cpp

#include <iostream>
#include "Newton-Cotes.h"using namespace std;int main() {Newton_Cotes nw;nw.input(); //输入区间和纵坐标的值double result = nw.run();cout << "输出结果:" << result << endl;return 0;
}

牛顿—科茨公式 C++代码实现相关推荐

  1. 5.3 牛顿-科茨公式

    学习目标: 理解微积分基础知识,例如导数和微分的概念. 学习牛顿-科茨公式的推导过程.这个公式实际上是使用泰勒公式对被积函数进行展开,并使用微积分的基本原理进行简化得到的. 学习如何使用牛顿-科茨公式 ...

  2. 牛顿迭代法Python代码,全网最详细,教学向

    代码功能包括函数图像展示,初始值选取收敛区间判断,迭代结果输出,迭代过程图像输出. 因讲解过于冗长,先将完整代码直接放在这里,只是想抄个模板方便修改的可以直接拿去用啦,有不了解的地方可以再翻下去看. ...

  3. Python03 拉格朗日插值法 牛顿插值法(附代码)

    1.实验结果 (1)在定义的类中设置已知的函数值列表为: (2)在 test.py 中选择 Lagrange 插值法求解: 输入:需求的 y 值对应的 x 值: 输出:所求函数值: (3)选择 New ...

  4. 艾特肯法方程解matlab程序,牛顿迭代法matlab代码

    牛顿法 迭代公式: x(k1) xk [2 f (x(k) )]1f (x(k) ) Matlab 代码: function [x1,k] =newton(x1,eps) hs=inline('(x ...

  5. 高斯牛顿迭代法matlab代码,优化算法--牛顿迭代法

    简书同步更新 牛顿法给出了任意方程求根的数值解法,而最优化问题一般会转换为求函数之间在"赋范线性空间"的距离最小点,所以,利用牛顿法去求解任意目标函数的极值点是个不错的思路. 方程 ...

  6. matlab 牛顿 科特斯的代码,SIMP算法和BESO算法的关键技术研究

    摘要: 各项正交惩罚材料变密度法(SIMP算法)和双向渐进结构优化方法(BESO算法)是目前结构拓扑优化领域中应用较为广泛的两种算法.以SIMP算法和BESO算法为研究对象,通过算例分析了其各自的特性 ...

  7. 高斯牛顿算法matlab代码,matlab实现高斯牛顿法、Levenberg–Marquardt方法

    高斯牛顿法: function [ x_ans ] = GaussNewton( xi, yi, ri) % input : x = the x vector of 3 points % y = th ...

  8. 【插值】牛顿插值、拉格朗日插值、三次样条插值的Python代码实现

    插值简介 插值即根据有限的离散点绘制出穿过所有样本点的曲线,从直观上想象似乎画一条穿过n个特定点的曲线有无数种画法,但从数学意义上来说我们希望画出的曲线能够尽量平滑,震荡幅度尽量小能够在非样本点上符合 ...

  9. 最优化方法matlab代码(一) 牛顿类方法

    代码:最优化方法牛顿方法matlab代码-从零开始-专业指导文档类资源-CSDN文库https://download.csdn.net/download/benchuspx/58807913目录 1. ...

最新文章

  1. 产品经理这个岗位是否真的可有可无?
  2. Js文件中调用其它Js函数的方法(转)
  3. html背景无法载入gif图像,background-image:url(XXXX.gif)为何不显示背景图片_html/css_WEB-ITnose...
  4. 最新37网游JS逆向分析
  5. 求数组第二大元素 和 字符串拷贝的实现
  6. ubuntu安装deb软件包文件
  7. mysql sql查询当天_sql查询当天数据
  8. 产品管理系统(MVC设计模式)——第一个Javaee项目
  9. java过滤器的作用_javaweb过滤器的作用,过滤器filter的作用是什么?
  10. 1076: 三位数求解 C语言
  11. docker: Error response from daemon: Conflict. The container name “/mysql“ is already in use by conta
  12. mcake蛋糕预订图片
  13. 清明节微信公众号图文排版有哪些经典素材?
  14. 87金融汇:如何理性看待互联网理财收益波动
  15. SecureCRT 命令行备注
  16. 微商截图王app 好用的截图工具
  17. Linux服务介绍一,关闭你不需要的服务
  18. ISO14001环境管理体系认证 具体操作流程有哪些?
  19. 计算机软件开发文档编写指南
  20. IT研发人员不能说的秘密-13种泄密方式

热门文章

  1. Python pillow库学习笔记
  2. Unity Text文字自动滚动
  3. Wio RP2040无线WiFi迷你开发板Arduino IDE开发环境安装与使用基础
  4. element input限制只能输入数字
  5. 深入学习Gremlin(11):统计运算
  6. 对项目经理的批评意见_如何处理对您的开放项目的批评
  7. 录制的视频有噪音,后期可以降噪吗
  8. Python 局部变量global,全局变量local ,非局部变量nonlocal ,Enclosing function locals作用域
  9. APP推广精华方案:做好用户口碑营销!
  10. 10分钟 GET 新技能 - CSS选择器