Nusrat_Ullah

Curve - Fitting, Least Square Method

Nov 2nd, 2019
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.12 KB | None | 0 0
  1. #include<stdio.h>                    // Equation 1. a*sum_x2 + b*sum_x = sum_xy
  2. int main()                           // Equation 2. a*sum_x  + b*n     = sum_y
  3. {
  4.     int n,i;                                           // n is the number of elements. i=iterator
  5.     double a,b,v,sum_x=0,sum_y=0,sum_x2=0,sum_xy=0;    // sum_x=summation of x, sum_y=summation of y
  6.     printf("Number of elements :\n");
  7.     scanf("%d",&n);                                    // sum_x2=summation of x^2, sum_xy=summation of x*y
  8.     double x[n+5],y[n+5];                              // array of size n
  9.     printf("Values of x :\n");
  10.     for(i=1;i<=n;i++){
  11.         printf("%d. ",i);
  12.         scanf("%lf",&x[i]);                            // scanning values of x
  13.     }
  14.     printf("Values of y :\n");
  15.     for(i=1;i<=n;i++){
  16.         printf("%d. ",i);
  17.         scanf("%lf",&y[i]);                            // scanning values of y
  18.     }
  19.     for(i=1;i<=n;i++){
  20.         sum_x+=x[i];                                   // summing all values of x
  21.         sum_y+=y[i];                                   // summing all values of y
  22.         sum_x2+=(x[i]*x[i]);                           // summing all values of x^2
  23.         sum_xy+=(x[i]*y[i]);                           // summing all values of x*y
  24.     }
  25.     v=sum_x/n;                                         // v is the value by which we will multiply equation(2)
  26.     a=(sum_xy-sum_y*v)/(sum_x2-sum_x*v);               // a*sum_x2+b*sum_x=sum_xy
  27.     b=(sum_y-a*sum_x)/n;                               // a*sum_x +b*n    =sum_y
  28.     printf("a = %.5lf and b = %.5lf\n",a,b);           // [multiplying by v=sum_x/n, and equation(1)-equation(2) , we can remove one constant]
  29.     printf("Equation is : y = %.5lfx + %.5lf\n",b,a);  // a*sum_x2=sum_xy
  30.     return 0;                                          // a*sum_x*v=sum_y*v
  31. }                                                      // a(sum_x2-sum_x*v)=(sum_xy-sum_y*v)
  32.                                                        // a=(sum_xy-sum_y*v)/(sum_x2-sum_x*v);
  33.                                                        // Then if we put value a in equation(2), we can get value b
Advertisement
Add Comment
Please, Sign In to add comment