C趣味程序(二)(06)求定積分近似值

字號(hào):

1.8 求定積分近似值
     試求定積分
    的近似值(積分限a,b從鍵盤輸入)。
    算法分析如下:
     求定積分的近似值常有矩形法與梯形法,其實(shí)質(zhì)都是面積求和。
     矩形法是把所要求的面積垂直x軸分成n個(gè)小矩形,然后把這n個(gè)小矩形的面積相加,即為所求的定積分的值。
     梯形法是把所要求的面積垂直分成n個(gè)小梯形,然后作面積求和。
     這兩種近似求值的精度隨分割個(gè)數(shù)n的增加而增加,對(duì)于相同的n個(gè)數(shù),相對(duì)來(lái)說,梯形法的精度比矩形法的要高一些。
    程序代碼如下:
    #include
    #include
    void main()
    {
     int i,n=1000;
     float a,b,h,t1,t2,s1,s2,x;
     printf("請(qǐng)輸入積分限a,b:");
     scanf("%f,%f",&a,&b);
     h=(b-a)/n;
     for(s1=0,s2=0,i=1;i<=n;i++)
     {
     x=a+(i-1)*h;
     t1=(float)exp(-x*x/2);t2(float)=exp(-(x+h)*(x+h)/2);
     s1=s1+t1*h; /*矩形面積累加*/
     s2=s2+(t1+t2)*h/2; /*梯形面積累加*/
     }
     printf("矩形法算得積分值:%f.\n",s1);
     printf("梯形法算得積分值:%f.\n",s2);
    }
    程序運(yùn)行結(jié)果如下:
     矩形法算得積分值:0.855821
     梯形法算得積分值:0.855624
     由上面的比較可知,梯形法的精度要高于矩形法。