使用simpson规则 完成积分运算

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

构造函数中x_high为积分的上界,x_low为积分的下界,segment为分割的区间数(例如10),error为你需要结果的精度(假如你要求结果精确到小数点后四位,则error=0.0001),function为要积分的函数。

class Integrate

{

private double result=0.0;

private double oldresult=0.0;

void operate(double x_high,double x_low,int segment,double error,Functions function)

{

int j=-1;

do

{

oldresult=result;

j++;

int multi=1;

int k=0;

while(k<j)

{

multi=multi*2;

k++;

}

double w=(x_high-x_low)/(double)(segment*multi);

double sum=0.0;

for(int i=1;(x_low+i*w)<x_high;i++)

{

if(i%2==1)

sum=sum+4*function.operate(x_low+i*w);

if(i%2==0)

sum=sum+2*function.operate(x_low+i*w);

}

result=(w/3)*(function.operate(x_low)+sum+function.operate(x_high));

}while(Math.abs(result-oldresult)error);

}

double getResult()

{

return result;

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航