// Simpson の公式による求積

 

#include<stdio.h>

 

float f(float x){

              float y=0.0;

              y=x*x*x*x;            //  <--- @(計算用):@とAに関数式を設定する

    return(y);

}

 

int main(){

 

              printf("y=x*x*x*x");  //  <--- A(表示用):@とAに関数式を設定する

 

              float x=0.0,y=0.0;  // 独立変数、従属変数

              float a=0.0,b=1.0;  // 積分区間[a,b]

              float S=0.0;        // 定積分値

              int n=1;            // 曲線の分割数

 

              printf("\n");

              printf("a=");

              scanf("%f",&a);

              printf("b=");

              scanf("%f",&b);

              printf("n=");

              scanf("%d",&n);

 

              float h=(b-a)/n;    // 近似放物線の区間幅

              printf("h=%f",h);

 

              float x1=a;         // 初期値

              float x2=a+h/2;     // 初期値

              float x3=a+h;       // 初期値

 

              for(int i=0;i<n;i++){

                            S=S+h*(f(x1)+4*f(x2)+f(x3))/6;

                            x1=x1+h;

                            x2=x2+h;

                            x3=x3+h;

              }

 

              printf("\n Integral[a,b]f(x)=%f\n\n",S);

 

              return(0);

}