6-9 求一元函数定积分

        一元函数f(x)在区间[a,b]上定积分∫ab​f(x)dx的几何意义是被积函数与横坐标轴以及直线x=a和直线x=b围成的曲边形的面积。依据几何意义求定积分的方法是将这个区域按x轴方向等分成若干个细小的条状区域,每个小区域近似于一个梯形(如图所示),计算出所有小梯形面积之和就可计算出区域面积的近似值。区间划分的越细求得的结果越精确

ch6-8.png

现在要求用梯形法编写一个求一元定积分的函数,调用该函数求解以下三个函数在给定区间的定积分。
(1) y=x2
(2) y=x3
(3) y=sinx

函数接口定义:

double integration(double (*p)(),double a,double b,int n);

其中  a  b 是积分区间的端点,n是对积分区间的等分数量。 p 是一个指向函数的指针。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double square(double x)
{return x*x;
}
double cube(double x)
{return x*x*x;
}
/*你编写的积分函数嵌入在这里*/
int main()
{/*求平方函数在区间[0,2]上的定积分*/printf("square=%f\n",integration(square,0,2,10000));/*求立方函数在区间[0,2]上的定积分*/printf("cube=%f\n",integration(cube,0,2,10000));/*求正弦函数在区间[0,2]上的定积分*/printf("sin=%f\n",integration(sin,0,2,10000));return 0;
}

输入样例:

0 2 100000

输出样例:

square=2.666667
cube=4.000000
sin=1.416147

定积分定义:

定积分是积分的一种,是函数f(x)在区间[a,b]上积分和的极限。具体定义如下:

设函数f(x) 在区间[a,b]上连续,将区间[a,b]分成n个子区间[x₀,x₁], (x₁,x₂], (x₂,x₃], …, (x,xₙ],其中x₀=a,xₙ=b。该和式叫做积分和,设λ=max{△x₁, △x₂, …, △xₙ}(即λ是最大的区间长度),如果当λ→0时,积分和的极限存在,则这个极限叫做函数f(x) 在区间[a,b]的定积分,记为,并称函数f(x)在区间[a,b]上可积。

之所以称其为定积分,是因为它积分后得出的值是确定的,是一个常数, 而不是一个函数。

当然对于一元函数的积分 我们可以简单理解为求函数在指定区间x轴所围成的面积

有了上面的解释我们就可以只去求f(x)与x轴所围成的面积即可 

在高中我们学过利用分割法去求面积

解决代码

double integration(double (*p)(),double a,double b,int n){double sum = 0;
/*elem 表示分割区间的宽度*/double elem = (b-a)/n;for(double i=a;i<=b-elem;i=i+elem){/*p(i)表示区间左边界的函数值  p(i+elem)表示区间右边界的函数值*//*对两个面积的和 求平均*/sum+=(p(i)+p(i+elem))*elem/2;}return sum;
}

注意: 在积分求解过程中 我们一定 一定 要注意积分的上下限 为了保证积分的上下限都被取到

我们可以把上下限的计算放入for循环中

自我反思:在我第一次做的时候代码如下

double integration(double (*p)(),double a,double b,int n){double sum=0;//elem 代表区间分割的大小double elem=(b-a)/n;for(double i=0;i<n;i++){sum+=p(((a+elem*i)+(a+elem*(i+1)))/2)*elem;}return sum;}

这样写第三个测试点一直过不去 ,于是检查发现可能是积分的上下限的问题,所以这一题建议把积分上下限放在for循环中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265666.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mycat部署和配置读写分离(二)

说明&#xff1a; MyCAT 是使用 JAVA 语言进行编写开发&#xff0c;使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性&#xff0c;所以要求必须在 JDK7 以上的版本上运行。 1. jdk1.8安装 详见jdk环境安装 2. Mysql安装 详见mysql8.0.11源码安装…

pycharm手动安装包

1.下载对应的包 TTS PyPI 2.手动解压&#xff0c;找到文件放到pycharm对应项目的lib文件夹中 以TTS包为例&#xff0c;找到下载并解压的包中的2个文件&#xff0c;一个名称一个info结尾 3.放到项目的lib文件夹中 eg&#xff1a;路径&#xff1b;C:\doc\myProject\speaker\venv…

工业级路由器在货运物流仓储管理中的应用

工业级路由器在货运物流仓储管理中扮演着重要的角色&#xff0c;为整个物流系统提供了稳定可靠的网络连接和数据传输支持。下面将从以下几个方面介绍工业级路由器在货运物流仓储管理中的应用。 实时监控和追踪&#xff1a;工业级路由器通过与各种传感器、监控设备和物联网设备的…

亚马逊云科技Amazon Bedrock,现推出更多模型选择和全新强大功能

亚马逊云科技在re:Invent 2023上宣布推出Amazon Bedrock更多模型选择和强大功能&#xff0c;帮助客户更轻松地构建和规模化针对其业务定制的生成式AI应用程序。 Amazon Bedrock是一项全面托管的服务&#xff0c;用户可轻松访问来自AI21 Labs、Anthropic、Cohere、Meta、Stabili…

Word插件-好用的插件-一键标记-大珩助手

一键标记 在审阅重要文件时&#xff0c;需要将重点的信息标记出来&#xff0c;这些重点信息有一些具有相似性&#xff0c;比如甲方、地址、要求、必续等等&#xff0c;以避免遗漏重要内容&#xff0c;由此设计一个可一次标记多个关键字的标记工具 使用方法 关键字之间用逗号“…

PO模式在selenium自动化测试框架有什么好处

PO模式是在UI自动化测试过程当中使用非常频繁的一种设计模式&#xff0c;使用这种模式后&#xff0c;可以有效的提升代码的复用能力&#xff0c;并且让自动化测试代码维护起来更加方便。 PO模式的全称叫page object model&#xff08;POM&#xff09;&#xff0c;有时候叫做 p…

移动端原生实现列表列固定横向滚动功能

功能介绍&#xff1a; 在移动端开发中&#xff0c;会用到列表作为信息展示方式&#xff0c;一般希望上下滚动时&#xff0c;可以固定表头&#xff0c;左右滚动时&#xff0c;可以固定最左列。 需求&#xff1a; 1、列表可以使用数组循环遍历&#xff1b; 2、上下滚动时&…

快手商品采集API商品列表API商品详情数据API接口获取快手商品信息API

背景介绍 快手商城是快手平台上的一个电商购物频道&#xff0c;类似于淘宝、京东等商城&#xff0c;用户可以通过搜索或者快手App首页的一级入口进入。目前&#xff0c;快手商城正在招商中&#xff0c;今年双11期间&#xff0c;快手将力推短视频、直播间、店铺、商城这一全新的…

springboot整合通用Mapper入门

springboot整合通用Mapper入门 概述 通用 Mapper 是一个用于简化 MyBatis 操作的开发框架。它通过提供通用的 CRUD&#xff08;创建、读取、更新、删除&#xff09;方法&#xff0c;减少了开发者需要编写的重复代码。通用 Mapper 的一个著名的实现是 MyBatis Generator&#…

python基于ModBusTCP服务端的业务实现特定的client

python实现ModBusTCP协议的client是一件简单的事情&#xff0c;只要通过pymodbus、pyModbusTCP等模块都可以实现&#xff0c;本文采用pymodbus。但要基于ModBusTCP服务端的业务实现特定的client&#xff0c;那得看看服务端是否复杂。前面系列文章&#xff0c;我们学习了对服务端…

推荐几款常用Web自动化测试神器!

1、介绍 Web自动化测试在保证质量、提升效率、软件开发加速迭代上起到关键作用&#xff0c;它已经成为现代软件测试中不可或缺的一部分&#xff0c;今天给大家介绍推荐几款常用的Web自动化测试工具。 2、常用测试工具 常用的Web自动化测试工具包括&#xff1a; Selenium&am…

什么是双电机打包机?

我们都知道有的机器可能不只有一个电机&#xff0c;像我们公司最新生产的打包机&#xff0c;双电机打包机就是有两个电机&#xff0c;一个是退带电机&#xff0c;一个是进带电机&#xff0c;两个电机的好处就是更能提高包装速度&#xff0c;而且还能减少故障录&#xff0c;双电…