??
字號:
拋物線公式的逐次半分法2007-07-16 18:56#include<iostream>
#include<math.h>
using namespace std;
#define f(x) 1/(x) //給定被積函數(shù)
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"; //輸入被積區(qū)間
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;}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -