用梯形法求定积分​​​​​​的值

这篇具有很好参考价值的文章主要介绍了用梯形法求定积分​​​​​​的值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、梯形法求解定积分的过程

1.求定积分值存在的问题

计算定积分是数值计算领域内的一个重要内容。对于能够得到原函数的被积函数,如:

,

其定积分可以直接计算。

但对于不易得到原函数的被积函数,可以考虑使用数值计算的方法得到近似值。如:

不易得到原函数,故其如下

的定积分也不容易求解。

 2.定分积的几何意义

定积分的几何意义是被积函数和x轴以及积分上限、积分下限之间围成的图形的面积。如下图所示:

用梯形法求定积分​​​​​​的值
图1 定积分几何意义

 图中x轴、y=x与y=1所围三角形的面积即为

对于无法得到原函数的被积函数,其定积分也是这样的面积。如下图所示:

用梯形法求定积分​​​​​​的值
图2 定积分几何意义

 上图中,x轴、f(x)、a、b等所围成的阴影面积即为

的值,即以a为积分下限、b为积分上限、被积函数f(x)的积分值。

3.积分数值计算过程

图2中的阴影面积是不容易得到的。可以用近似的方法得到,即梯形近似法。如下图所示:

用梯形法求定积分​​​​​​的值

在f(a)、f(b)之间直接连线,则可以由x轴、a、b、以及连线形成梯形。该梯形的两个底分别为:f(a)、f(b),高为(b-a),由梯形的面积公式,可以得到上图中所围梯形的面积为:

用梯形法求定积分​​​​​​的值                                         (式1)

这个可以作为的近似值。当然其误差比较大。

 如果对上图进一步分割,按下图进行拆分,

用梯形法求定积分​​​​​​的值

 文章来源地址https://www.toymoban.com/news/detail-471427.html

 设c为积分下限a、积分上限b的之间中点,则

用梯形法求定积分​​​​​​的值

以f(c)为线对图形进行分割,形成两个梯形,分别计算面积,再对面积求和。

梯形S1的两个底分别为f(a)、f(c),高为(c-a);梯形S2的两个底分别为f(c)、f(b),高为(b-c)。则面积:

用梯形法求定积分​​​​​​的值

 同样,

 用梯形法求定积分​​​​​​的值

这样,总的面积是:

 用梯形法求定积分​​​​​​的值       (式2)

令(式1)为,(式2)为,可以得到:

用梯形法求定积分​​​​​​的值                                          (式3)

如果对上图中S1、S2再进行等分分割,可以得到如下图的S1、S2、S3、S4四个梯形。再次分别计算其面积后进行求和,可以得到更近似的面积,即定积分值。如此,不断进行将[a,b]进行二分,递推下去,得到的积分值越来越精确,可以无限逼近函数f(x)在[a,b]上的定积分。

用梯形法求定积分​​​​​​的值

 这样可以得到递推公式。具体是:将[a,b]段分为n等分,一共有n+1个等分点,第k(k=0,1,2...n)个等分点的值为:用梯形法求定积分​​​​​​的值,其中,

用表示将[a,b]n等分后梯形面积的总各,用表示将[a,b]2n等分后的梯形面积总各,得到递推公式为:

用梯形法求定积分​​​​​​的值                                (式4)

利用上式,即可以得到定积分的近似值。设置某一个精度e,当时,即认为达到精度,迭代结束。

二、计算定积分的C++程序

 1.计算函数的值

//---------------------------
double func( double x )
{
	if( x != 0 )
		return sin( x ) / x;
	else
		return 1.0;
}
//----------------------------

由于x不能为0,且,因此,设定,当x=0时,返回值为1.0。

2.迭代函数

//----------------------------
double ING( double a, double b, double e )//参数:积分下限,积分上限,精度
{
	double T1 = 0.0;
	double T2 = 0.0;
	double S = 0.0;
	double h, x;
	int flag;
	h = b - a;
	T1 = h / 2 * ( func( a ) + func( b ) );//计算第一个面积
	do {
		double s = 0;
		x = a + h /2;
		while( x < b )//循环计算
		{
			s = s + func( x );
			x = x + h;
		}
		T2 = T1 / 2 + h / 2 * s;
		if( fabs( T1 - T2 ) >= e )//判断精度
		{
			h = h / 2;
			T1 = T2;
			flag = 1;//当精度不够时,标志为1
		}
		else flag = 0;
	}
	while( flag );//为1时(意味着精度不够),继续计算。
	return T2;
}
//-------------------------------

3.完整程序

//-----------------------------
#include <iostream>
#include <cmath>
using namespace std;
//-----------------------------
double func( double x );
double ING( double a, double b, double e );
//-----------------------------
int main()
{
	double LowLim, HighLim, Accur;
	cout << "Input the low and high linitation and accuracy:" << endl;
	cout << "Low limitation: ";
	cin >> LowLim;           //输入积分下限
	cout << "High limitation:";
	cin >> HighLim;          //输入积分上限
	cout << " Accracy:";
	cin >> Accur;            //输入精度
	
	if( LowLim >= HighLim )  //积分上限不能小于积分下限,否则提醒再次输入
		cout << "HighLim is less than LowLim.Please input again.";
	else cout << "The result of integration is: " << ING( LowLim, HighLim, Accur ) << endl;
	system( "PAUSE" );
	return 0;
}
//---------------------------
double func( double x )
{
	if( x != 0 )
		return sin( x ) / x;
	else
		return 1.0;
}
//----------------------------
double ING( double a, double b, double e )//参数:积分下限,积分上限,精度
{
	double T1 = 0.0;
	double T2 = 0.0;
	double S = 0.0;
	double h, x;
	int flag;
	h = b - a;
	T1 = h / 2 * ( func( a ) + func( b ) );//计算第一个面积
	do {
		double s = 0;
		x = a + h /2;
		while( x < b )//循环计算
		{
			s = s + func( x );
			x = x + h;
		}
		T2 = T1 / 2 + h / 2 * s;
		if( fabs( T1 - T2 ) >= e )//判断精度
		{
			h = h / 2;
			T1 = T2;
			flag = 1;//当精度不够时,标志为1
		}
		else flag = 0;
	}
	while( flag );//为1时(意味着精度不够),继续计算。
	return T2;
}
//-------------------------------

三、运算结果

用梯形法求定积分​​​​​​的值

 

到了这里,关于用梯形法求定积分​​​​​​的值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mathematica求解不定积分与定积分

    注意要切换到英文输入法下 2 x 要输入成 2 ∗ x 或者 2   x (中间有个空格) 2x要输入成2*x或者2 x(中间有个空格) 2 x 要输入成 2 ∗ x 或者 2   x (中间有个空格) 无穷大——esc+inf+esc 运行 —— SHIFT+ENTER 幂运算 ____ CTRL+6 根号 ——— CTRL+2 分式 ——— CTRL+/ 对数—— Log[3]

    2024年02月06日
    浏览(36)
  • 基于MATLAB的双重积分的数值求解

    目录 一. Gauss求积公式 1.1 数学理论 1.2 例题与MATLAB代码 例题1 二. 双重积分问题的数值解 2.1 数学理论 2.2 MATLAB代码与例题 例题2  例题3  例题4 例题5 例题6 三. 小结 我们知道数值的方法求解积分往往精度会差一点。这个时候 Gauss求积公式 可以让数值求解积分有较高的代数精度

    2023年04月26日
    浏览(27)
  • 实验九 数据微积分与方程数值求解(matlab)

    实验九 数据微积分与方程数值求解 1.1实验目的 1.2实验内容 1.3流程图 1.4程序清单 1.5运行结果及分析 1.6实验的收获与体会 1,掌握求数值导数和数值积分的方法; 2,掌握代数方程数组求解的方法; 3,掌握多常微分方程数值求解的方法。 %% clc clear %% 1 clear;clc x=1;i=1; f=inline

    2024年02月12日
    浏览(28)
  • Python科学计算进阶:数值积分与微分求解算法应用在Python

    在Python中进行科学计算时,数值积分和微分是非常常见的操作。下面我将介绍几种常用的数值积分和微分求解算法,并给出Python代码示例。 一、数值积分 矩形法 矩形法是一种简单的数值积分方法,它使用矩形近似代替被积函数。这种方法虽然简单,但对于某些简单函数可以

    2024年02月02日
    浏览(34)
  • 考研数二第十四讲 牛顿-莱布尼茨公式与用定义法求解定积分

    牛顿-莱布尼茨公式在微分与积分以及不定积分与定积分之间架起了一座桥梁,因此,这个公式又被称为微积分基本公式。 微积分基本公式的简单推导 在看微积分基本公式之前,我们先来看一个有点特殊的函数,积分上限函数 ψ ( x ) = ∫ x a f ( t ) d t psi (x) =int_{x}^{a}f

    2024年02月08日
    浏览(29)
  • 一个单位球体积理清二三重积分计算与体积的求解方法(含旋转体体积)

    圆柱体体积可以看成图中红色长方形沿y轴旋转 将空心柱壳切开后,得到一个长方体,长为,宽为dy,(注意这里切开来以后当然不是一个严格的长方体,二是一上让边长为 ,下边为的一个柱体,但是dy较小我们可以忽略不计) 双重积分先对x积分(因为这样相当于常数)实际

    2024年02月05日
    浏览(28)
  • 【例题讲解】拓扑序列求解过程

    拓扑序列的含义:是求 有向无环图 的 拓扑序列 的方法。 拓扑序列过程:在有向图中任取一个入度为0的顶点,然后将它的值存入拓扑序列中,最后将该顶点以及以该顶点为弧尾的弧全部删掉。随后重新任取一个入度为0的顶点重复上述过程,直到没有一个入度为0的顶点或者

    2024年02月02日
    浏览(77)
  • 举例说明基于线性回归的单层神经网络网络(以梯度下降算法来求解权重的过程)...

    我们将通过一个简单的例子来说明基于线性回归的单层神经网络,以及如何使用梯度下降算法来求解权重。 假设我们有以下数据集,表示学生的学习时间(小时)与他们的考试分数: 学习时间(X):1, 2, 3, 4, 5 考试分数(Y):2, 4, 6, 8, 10 这是一个线性关系,我们可以使用线

    2024年02月16日
    浏览(74)
  • 2020年数维杯数学建模C题 垃圾转运优化模型设计求解全过程文档及程序

    原题再现:    随着我国人口的不断增加及城镇化进程的快速推进,城市面临了众多公共管理方面的难题。如生活垃圾、废气废水及排泄物等等的处理问题。截止2019年底我国拥有十多个千万规模以上的大型城市,城镇人口数量达到了8.48亿人。    数据统计结果表明我国的

    2024年02月07日
    浏览(29)
  • 2020年华数杯数学建模B题工业零件切割优化方案设计求解全过程文档及程序

    原题再现:    在大型工业产品中,如机床、轮船、飞机,常常需要很多的小零件,如螺钉、螺帽、螺栓、活塞等。在零件的生产过程中,第一步是需要依照零件产品尺寸从原材料中截取初级产品,这是零件制造的第一道工序。在这道工序中,不同的截取方案具有不同的材

    2024年02月05日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包