问题描述:
采用矩形法求定积分
分析:利用矩形法可以求定积分其原理如图(9-1)所示。求函数f在(a,b)区间的定积分公式为:
所需数据与算法如下。
数据要求
程序设计:
初始算法
1. 初始化积分区间(a,b)。
2. 如果把积分区间划分为100个格,则h=fabs(a-b)/100;
3. 因为区间划分为100个格,因此循环过程如下:
for(i=0;i<100;i++)
{
fx=f (x+i*h+h/2);
… …
}
C语言程序代码如下:
- #include "stdio.h"
- #include "math.h"
- double f (double x)
- {
- return sin(x);
- }
- double Jifen(double a,double b)
- {
- double h;
- double fx;
- double x;
- int i;
- double sum=0;
- h=fabs(a-b)/100;
- x=a;
- for(i=0;i<100;i++)
- {
- fx=f (x+i*h+h/2);
- sum=sum+fx;
- }
- return sum*h;
- }
- void main()
- {
- double a;
- double b;
- double fx;
- a=0;
- b=3.1415926;
- fx=Jifen(a,b);
- printf("Ji Fen Y=%f" ,fx);
- }
运行结果 Ji Fen Y=2.000082
测试:
如果将积分区间划分为1000个格,则循环条件改为i<1000,得到结果为2.00001。该测试说明积分区间划分越多,越能够接近正确结果。