1.用变步长梯形法求下列积分,使精确度达到10-4。
要求:
(1) 精度ε和区间端点a,b的信息从键盘终端输入;
(2) 打印输出每一步的计算结果。
源代码:
#include<iostream>
#include<cmath>
using namespace std;
int main(){
double x,a,s,b,e,h,T1,T2;
cout<<"请输入区间端点a,b和精度e:"<<endl;
cin>>a>>b>>e;
cout<<endl;
h = b-a;
T1 = (h/2)*(4/(1+pow(a,2))+4/(1+(pow(b,2))));
int count=0;
cout<<"K "<<" T1 "<<" T2 "<<endl;
do{
if(count!=0){
h = h/2;
T1 = T2;
}
count++;
s = 0;
x = a + h/2;
do{
s = s + (4/(1+pow(x,2)));
x = x + h;
}while(x<b);
T2 = (T1/2)+h*s/2;
printf("%d: %.6lf %.6lf\n",count,T1,T2);
}while(abs(T2-T1)>=e);
cout<<endl;
printf("最后结果为:%.4lf",T2);
return 0;
}
2. 用龙贝格算法计算下列积分值,使精确度达到10-4。
要求:
(1) 绘制龙贝格算法的实现框图;
(2) 精度ε和区间端点a,b</