?? 自動選取步長梯形法算法.cpp
字號:
//自動選取步長梯形法算法
#include<iostream.h>
#include<math.h>
double fun(double);
void main()
{
double a,b,h,e,T0,T1,S;
int n;
cout<<"**************自動選取步長梯形法算法**************"<<endl;
cout<<"請輸入積分區間的[a,b]:"<<endl;
cout<<"a= "; cin>>a;
cout<<"b= "; cin>>b;
cout<<"請輸入容許誤差e:"<<endl;
cout<<"e= "; cin>>e;
h=(b-a)/2;
T1=(fun(a)+fun(b))*h;
n=1;
int flag=1;
while(flag==1)
{ T0=T1;
S=0;
for (int k=1;k<=n;k++)
{
S+=fun(a+(2*k-1)*(h/n));
}
T1=T0/2+S*(h/n);
if (fabs(T1-T0)<3*e)
{ flag=0;
cout<<"所求函數f(t)=2/(1+t*t)在["<<a<<","<<b<<"]的積分近似值為:"<<T1<<endl;
}
else { n=2*n; flag=1; }
}
}
double fun(double x)
{
return 2/(1+x*x);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -