微积分中,矩形法是一种计算定积分近似值的方法,其思想是求若干个矩形的面积之和,这些矩形的高由函数值来决定。
将积分区间 (a,b) 划分为 n 个长度相等的子区间,每个子区间的长度为 \Delta x =\frac{b-a}{n} 。这些矩形左上角、右上角或顶边中点在被积函数图像上。这样,这些矩形的面积之和就约等于定积分的近似值。有:
:\int_a^b f(x)\,\mbox{d} x \approx \sum_{i=1}^{n} f(a+i'\Delta x)\Delta x
其中i'可以是以下三个值 i-\frac{1}{2}, i , i+\frac{1}{2}之一,由函数图像上的点为矩形的左上角、右上角或顶边中点来决定。
当 n 逐渐扩大时,此近似值更加准确。矩形法的计算本质上是与黎曼积分的定义相吻合的。上述的i'无论取哪个值,最终和式的值都将趋近于定积分的值。
Image:midRiemann.png|i' = i-\frac{1}{2}
C 语言代码
#include
#include
double f(double x){
return sin(x);
/也可以回传其他数学子程序,像cos(2x)或2atan(3x+1)-1*/
}
double rectangle_integrate(double a, double b, int subintervals){
double result;
double interval;
int i;
interval=(b-a)/subintervals;
result=0;
for(i=1;i
Fortran 语言代码
Program Calc
Double Precision f,y,a,b,J,mult,sum,c1,c2
Sum=0.0
c2=0.0
c1=0.0
Print*,'Enter the start and end of the interval'
Read*,a,b
If (b.gt.a) then
goto 1
Else
goto 2
End If
1 Do J=a,b,.00000001
c1=J
Y=F(((c1+c2)/2))
Mult=Y*.00000001
Sum=sum+mult
c2=c1
End Do
2 Do J=a,b,-.00000001
c1=J
Y=F(((c1+c2)/2))
Mult=Y*.00000001
Sum=sum+mult
c2=c1
End Do
Print*,Sum
3 Format (F20.5)
End
Double Precision Function f(x)
Double Precision x
F=(4)/((x**2)+1)
Return
End
注释与参考
另见
*梯形法
*辛普森法
评论 (0)