2019年4月26日 星期五

C語言 例題4-1 求 f(x)=x , a=0 ,b=10 的積分值

C語言 求 f(x)=x , a=0 ,b=10 的積分值

對於一個給定的實值函數在一個實數區間上的定積分
可以理解為在坐標平面上,由曲線、直線以及軸圍成的曲邊梯形面積值(一種確定的實數值)。


/* ex4-1.c based on Trapezoidol Rule is
 * used for computing definite integral with
 * domain [a,b] with n even-grids.
 */
#include <stdio.h>
#include <math.h>
#define  PI   3.141596
#define  F(x)   (x)
void main()
{
    int n,i;
    double  a,b,x,tn,h ,sum=0.0;
    n=100;
    a=0;
    b=10;

    h=(b-a)/n;
    x=a;
    for(i=1;i<=n-1;i++)
    {
        x=x+h;
        sum=sum+F(fabs(x));
    }
    tn=(h/2.0)*(F(fabs(a))+F(fabs(b))+2.0*sum);
    printf("梯形積分法 : T%d=%10.6lf\n",n,tn);
 
    x=a;
    sum=0;
    n=0;
    while (x<b-h)
    {
        sum=sum + h* F(fabs(x));
        x=x+h;
        n=n+1;
    }
    printf("左端近似積分法 : T%d=%10.6lf\n",n,sum);

    x=a+h;
    sum=0;
    n=0;
    while (x<=b)
    {
        sum=sum + h* F(fabs(x));
        x=x+h;
        n=n+1;
    }
    printf("右端近似積分法 : T%d=%10.6lf\n",n,sum);

   return;
}

輸出畫面
梯形積分法 : T100= 50.000000                                                                                                                                  
左端近似積分法 : T100= 49.500000                                                                                                                              
右端近似積分法 : T100= 50.500000                                                                                                                                                                                                                                 
...Program finished with exit code 40                                                                                                                         
Press ENTER to exit console.                                                                                                                                  
                                  



沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...