100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C++实现复化梯形公式求积分算法

C++实现复化梯形公式求积分算法

时间:2018-12-06 20:56:45

相关推荐

C++实现复化梯形公式求积分算法

1. 算法原理简介

步1 将积分区间2n等分;

步2 调用复化梯形公式:

2. 应用实例

取 n=10,利用复化梯形公式计算积分:

3. 程序代码

#include <iostream>#include <cmath>using namespace std;double X[1000];//保存生成的节点横坐标double Y[1000];//保存生成的节点纵坐标//定义一个数学函数double fun(double x){return 4 / (1 + x * x);}//分割区间void Devide(double a, double b, int N){double x;double dx= (b - a) / (N);for (int i = 0; i <= N; i++){x = a + i * dx;X[i] = x;Y[i] = fun(x);}}//复化梯形求积double GetIntegralValue(double a, double b, int N){double sum = 0;double value;//求2*f(xk)的总和,1<= k <= n-1for (int i = 1; i <= N - 1; i++){sum += 2 * Y[i];}value = 0.5 * ((b - a) / N) * (Y[0] + sum + Y[N]);return value;}int main(){//产生的节点数double a = 0;double b = 1;int N=10;cout << "被积函数 f = 4 / (1 + x * x)" << endl;cout << "区间等分数为 10" << endl;cout << "积分区间为(0,1)" << endl;Devide(a, b, N);cout << "积分值为:" << GetIntegralValue(a, b, N) << endl;return 0;}

4. 运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。