#include <bits/stdc++.h>
using namespace std;
double f(double x)
{
return (4/(1+x*x));
}
int main()
{
double a = 0,b = 1,h=(b-a),sum,x;
double T1 = h/2*(f(a)+f(b)),T2; //(1)梯形公式计算积分近似值
for(int i=0;i<9;i++) //(2)按变步长梯形公式计算积分近似值(区间分半)
{
printf("h=%f,T=%f\n",h,T1);
sum = 0;
x = a+h/2; //区间分半
while(x<b)
{
sum+=f(x); //求累加和
x+=h;
}
T2 = T1/2+h/2*sum; //(2)
h/=2;
T1 = T2;
}
printf("h=%f,T=%f\n",h,T1);
return 0;
}
计算方法实验七
最新推荐文章于 2022-01-17 18:30:14 发布