来自「收集的C语言算法程序」· 代码 · 共 30 行

TXT
30
字号
抛物线公式的逐次半分法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 + =
减小字号Ctrl + -
显示快捷键?