Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   To caculate the Integrate by C Language (http://www.go4expert.com/forums/caculate-integrate-c-language-t24333/)

 wdliming 1Jan2011 09:16

To caculate the Integrate by C Language

To caculate the Integrate by C Language
Code:

```/* *To achieve a particular function,To integrate f(x) = x; which is rom low to up *sum=( (up-low)/n)*(f(x0)+f(x1)+...+f(x(n-1)) ) or sum=( (up-low)/n)*(f(x1)+f(x2)+...+f(x(n)) ) *Method:Fixed step quadrature; *Date:                        2010-11-28 *modification:        2010-12-31 usage modification : else -> switch *Version:                0.1.6 *Author:                wdliming *description:        Using modular programming method */ #include <stdio.h> #include <math.h> double Integrate(double low,double up,        unsigned long int n,int F_Ch); //double Func_Chioce(double x, int F_Ch); void Start(); void Start() {                printf("                                Mini Integrate\n");         printf("                                  LiMing\n");         printf("                                version 0.1.5\n");         printf("Funcion 1:        f(x)=x;\n");         printf("Funcion 2:        f(x)=x*x;\n");         printf("Funcion 3:        f(x)=exp(x);\n\n");         printf("Please input a number to select a funcion to integrate:\n"); } double Integrate(double low,double up, unsigned long int N,int F_Ch) {         double temp=0;         double sum=0;         double temp_1=0;         if( ((low>-100)&&(low<100)) && ( (up>-100)&&(up<100)) && (low != up) )         {         /*First,low and up is between -100 and 100;Second,low != up;Third,up>low*/                 printf("low=%lf,up=%lf.\n",low,up);                                 if( (N>0)&&(N<429467295) )                 {                         printf("N=%ld\n",N);                                 temp=(up-low)/N;                         printf("temp=(up-low)/N=%lf\n",temp);                         unsigned long int i;//counter i;                         switch(F_Ch)                         {                                 case 1:                                         for(i=1;i<=N;i++)                                         {                                                 temp_1=low+temp*i;                                                 sum = sum + temp_1;//This statement is very important!                                         }sum *= temp;                                                                                break;                                                                         case 2:                                         for(i=1;i<=N;i++)                                         {                                                 temp_1=low+temp*i;                                                 sum = sum + pow(temp_1,2);//This statement is very important!                                         }sum *= temp;                                         break;                                                                         case 3:                                         for(i=1;i<=N;i++)                                         {                                                 temp_1=low+temp*i;                                                 sum = sum + exp(temp_1);//This statement is very important!                                         }sum *= temp;                                         break;                         }                         /*if(F_Ch==1)                         {                                 for(i=1;i<=N;i++)                                 {                                         temp_1=low+temp*i;                                         sum = sum + temp_1;//This statement is very important!                                 }                                 sum *= temp;                         }                         else if(F_Ch==2)                         {                                 for(i=1;i<=N;i++)                                 {                                         temp_1=low+temp*i;                                         sum = sum + pow(temp_1,2);//This statement is very important!                                 }                                 sum *= temp;                         }                         else if(F_Ch==3)                         {                                 for(i=1;i<=N;i++)                                 {                                         temp_1=low+temp*i;                                         sum = sum + exp(temp_1);//This statement is very important!                                 }                                 sum *= temp;                         }*/                         //printf("Successful!The result of integral is:%lf\n\n",sum);                 }                        else if(N<0)                 {                         printf("Failed!The number you input is illegal!\n");                         printf("continue!\n");                 }                 else                 {                         printf("Failed!The number you input is too big!\n");                         printf("continue!\n");                 }         }         else         if( low == up )         {                 printf("Successful!sum=%lf\n",sum=0);                 printf("continue!Input the two Real Number a(low) and b(up) again: low,up.\n\n");                                }         else         {                 printf("Failed!The number(s) you input is(are) too big!\n");                 printf("continue input the two Real Number a(low) and b(up) again: low,up.\n\n");         }         return sum; } int main() {                 double low=0;         double up=0;                double sum=0;         int F_Ch=0;         Start();         while(scanf("%d",&F_Ch))         {                 if(F_Ch>0&&F_Ch<4)                 {                         printf("Selece Function %d;\n\n",F_Ch);                                                 printf("Input the two Real Number a(low) and b(up) to \ndefine the area that you want to integral: low,up.\n");                         printf("for example:0,2\n\n");                                                 scanf("%lf,%lf",&low,&up);                         printf("Input a number 'N':");                         unsigned long int N;                         scanf("%ld",&N);                         sum=Integrate(low,up,N,F_Ch);                         printf("Successful!The result of integral is:%lf\n\n",sum);                 }                 else                 {                         printf("error!\n");                 }         }         return 0; }```
Welcome to give some constructive suggestions!Thank you!

 All times are GMT +5.5. The time now is 07:57.