梯形逐次插值
一剑行天下
posted @ 2008年11月01日 19:16
in
数值分析
with tags
梯形逐次插值
, 2257 阅读
#include<stdio.h>
#include<math.h>
double f
(double x
)
{
double f1=
0;
if(x==
0)
f1=
1;
else
f1=sin
(x
)/x;
return f1;
}
main
()
{
double a=
0,b=
0,e=
0;
double ff=
0;
int m=
1,k;
double h,T0,T,F=
0;
printf("请输入初始点a和末尾点b的值:\n");
scanf
("%lf,%lf",&a,&b
);
printf("请输入误差e\n");
scanf
("%lf",&e
);
h=
(b-a
)/
2;
T0=T=h*
(f
(a
)+f
(b
));
do
{
T0=T;
ff=
0;
for(k=
1;k<=
(pow
(2,m
-1));k++
)
{
ff=ff+f
(a+
(2*k
-1)*h
);
}
T=T0/
2 +h*ff;
h=h/
2;
m++;
printf("k=%d 时T=%.7lf\n",m
-1,T
);
}while ((T-T0
)>=
3*e
);
printf("对于要满足的误差e=%.8lf进行了%d次二分运算\n",e,m
-1);
printf("I=T=%.7lf\n",T
);
}
2008年12月18日 17:26
我刚好再做!写的挺适合我理解!谢谢这位大哥!
2008年12月18日 17:32
梯形逐次插值