#include <stdio.h>
float f(float x)
{
return(exp(x)/(4+x*x));
}
main()
{
float a=0,b=1;//积分上下界
float h=b-a,T1,T2,s,x;//h是区间长度,T1是分为n等分的近似值,T2是分为2n等分的近似值
int i;//次数
T1=h/2*(f(a)+f(b));//公式
for(i=0;i<4;i++)
{
printf("h=%f,T=%f\n",h,T1);
s=0;
x=a+h/2;
while(x<b){
s+=f(x);
x+=h;
}
T2=T1/2+h/2*s;//公式
h/=2;//将区间逐次分半
T1=T2;//赋值后继续循环
}
printf("h=%f,T=%f\n",h,T1);
return;
}
Romberg(龙贝格求积)
最新推荐文章于 2022-10-27 17:10:51 发布