复化梯形求积公式 c语言实现 数值积分
标签:计算方法实验
/*
本实验用复化梯形求积公式求sinx在[1, 2]的定积分。
*/
#include <stdio.h>
#include <math.h>
double f(double x){
return sin(x);
}
double computeT(double a, double b, int n){
double h = (b - a) / n, T = 0;
for(int i = 1; i < n; i++) T += f(a + i * h); //1 <= k <= n - 1
return h * (f(a) + 2 * T + f(b)) / 2;
}
int main(){
int n = 8; //区间等分数
double a = 1, b = 2; //上下限
printf("answer = %f\n", computeT(a, b, n));
return 0;
}
实验结果