📄
字号:
抛物线公式的逐次半分法2007-07-16 18:56#include<iostream>
#include<math.h>
using namespace std;
#define f(x) 1/(x) //给定被积函数
void main()
{
int n,i;
double a,b,F1,F2,F3=0,S0,S,h,err=0.0001;
cout<<"Please input a and b:\n"; //输入被积区间
cin>>a;
cin>>b;
F1=f(a)+f(b);
F2=f((a+b)/2);
S0=(b-a)*(F1+4*F2)/6;
n=2;
h=(b-a)/4;
while(1)
{
for(i=1;i<=n;i++)
F3+=f(a+(2*i-1)*h);
S=h*(F1+2*F2+4*F3)/3;
if(fabs(S-S0)<15*err) {cout<<"The integration is:\n"<<S<<"\n";break;}
else {n=2*n;h=h/2;F2=F2+F3;S0=S;F3=0;i=1;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -