55(数值积分)递归梯形公式
【问题描述】利用递归梯形公式,在区间[0, pi/2]范围内连续增加子区间来求函数f(x)=(x^2+x+1)cos(x)的积分近似值。起始时子区间个数为1,每次迭代,子区间个数增加一倍。一直迭代,直到积分近似值与真实值的差的绝对值小于给定的阈值为止,在区间[0, pi/2]范围内函数积分真实值为2.038197427067。
【输入形式】在屏幕上输入所求积分的精度值d。
【输出形式】输出迭代次数,以及积分近似值(保留d位小数)。
【样例1输入】
2
【样例1输出】
4
2.03
【样例1说明】
输入:在屏幕上输入所求积分的精度值d=2,从而计算得到阈值为10^(-2)=0.01。
输出:经过4次迭代,得到满足精度要求的积分近似值为2.03。
【评分标准】根据输入得到的输出准确
#include<iostream>
#include<cmath>
#include<iomanip>
#define pi 3.1415926
using namespace std;
double a = 0, b = pi / 2;//积分上限、下限
double n;//积分近似值
int d;//精度值
double D;
int maxx = 1000;//最大迭代次数
int p = 0;//记迭代次数,初始设为0
double c = 2.038197427067;
double f(double x)//函数
{return (pow(x, 2) + x + 1) * cos(x);
}
void zuti(double D)
{//m是等距子区间个数 ,起始时是1,所以m从1开始for (int m = 1; m < maxx; ){p++;//p用来记迭代次数//下面是一般的组合梯形公式double h = (b - a) / m;double nn = 0;double x;for (int i = 1; i < m; i++)//i属于1~m-1{x = a + h * i;nn += f(x);}nn = h * (f(a) + f(b)) / 2 + h * nn;m=m*2;//每次迭代,子区间个数增加一倍//判断是否结束,跳出循环迭代if (fabs(nn - c) < D){cout << p-1 << endl;cout << fixed<< setprecision(d)<<nn;break;}}}
int main()
{cin >> d;D = pow(10, (-d));//D=0.01zuti(D);return 0;
}
55(数值积分)递归梯形公式相关推荐
- 【数值分析实验MATLAB】数值积分:梯形公式、辛普森公式、复化梯形公式、复化辛普森公式、龙贝格算法、自适应求积方法
(1)Matlab代码: f1: if x==0y=1; else%y=exp(-x^2);y=(sin(x))/x; end 梯形公式: a=0; b=1; tx=(b-a)/2*(f1(a)+f1 ...
- 数值积分计算方法——《数值计算方法》
<数值计算方法>系列总目录 第一章 误差序列实验 第二章 非线性方程f(x)=0求根的数值方法 第三章 CAD模型旋转和AX=B的数值方法 第四章 插值与多项式逼近的数值计算方法 第五章 ...
- Java基础知识强化之IO流笔记13:递归之不死神兔问题(斐波那契数列)
1.这个问题是如下的: 有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第3个月又生一对兔子,加入兔子都不死,问第20个月兔子的对数? 分析:我们找规律 兔子对数 第1个月: ...
- python--14 递归
递归是神马 >>> def recursion(): ... recursion() ... >>> recursion() Traceback (most rec ...
- 数值计算方法 数值积分(伪代码 c/c++ python)
数值计算方法 求解数值积分 使用梯形公式,中矩形公式和辛普森公式,并提供三个公式的复化求积法. fun (input x) //函数return sqrt(x)trapezium_formula(in ...
- 检测器:用递归特征金字塔和可切换的阿托洛斯卷积检测物体
Abstract 许多现代的目标探测器都采用了"三思"机制,表现出了优异的性能.本文将此机制应用于目标检测的主干设计中.在宏层次上,我们提出了递归特征金字塔,它将来自特征金字塔网络 ...
- 斐波那契数列(递归+源码+注释)
斐波那契数列(递归+源码+注释) 公元 1202 年,意大利数学家莱昂纳多·斐波那契提出了具备以下特征的数列: 前两个数的值分别为 0 .1 或者 1.1: 从第 3 个数字开始,它的值是前两个数字的 ...
- MySql 实现递归with recursive
MySQL版本8.0.21-2 递归方式生成一个临时表tmp,且填充了10条数据 WITH recursive tmp ( a, b ) AS (SELECT1,'2022-01-01' UNION ...
- C语言-青蛙跳台阶问题【递归+非递归】
青蛙跳台阶问题[递归+非递归] 问题描述 分析 递归实现 非递归实现 问题描述 一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级.求该青蛙跳上一个n 级的台阶总共有多少种跳法. 分析 n - 台阶数 ...
最新文章
- 实现超长焦梦想的捷径——试用适马150-500毫米F5-6.3 OS镜头
- excel求期望_商务数据分析考试:决策树分析(Excel)-安聪
- mysql5.7.25my.ini_mysql5.7 没有my.ini 的解决办法
- 使用ToughMySQL为ToughRADIUS系统提供数据存储
- C# Task和async/await详解
- 想学人工智能从哪入手?
- 第六篇:汇编基础指令讲解
- linux pclint配置_静态分析工具PC-lint Plus使用教程:安装与配置
- java 幸运大转盘_幸运大转盘抽奖 抽奖算法 程序实现逻辑
- matplotlib4 --设置line的属性, color,linestyle, linewidth, marker等
- 图片边框变圆圈html,css如何设置边框的圆角样式?border-radius属性设置圆角样式(图 文)...
- 华为交换机设置ACL时间控制
- 打印1000~2000年之间的闰年
- ssm 微信扫码支付
- BurpSuite实战十九之XSS检测实战
- 1099端口占用问题解决方案
- 计算机监控系统应用前景和发展趋势,计算机控制技术的现状及发展趋势
- Spark - OnYARN 模式搭建,并使用 Scala、Java、Python 三种语言测试
- 阿里云ECS服务器优惠券领取开通
- 关于android手游Sdk开发的专题(一)