Скачиваний:
19
Добавлен:
01.05.2014
Размер:
2.15 Кб
Скачать

Turbo Profiler  Version 2.1  Tue Mar 29 17:39:25 2005

Program: D:\_MYDOCS\LETI\8SEM\Њ…’ђЋ‹~1\LAB2\C\LINEFIT1.EXE  File D:\_MYDOCS\LETI

Time  Counts
              #include <stdlib.h>
              #define size 20
0.0000 1      void linfit1(double x[size],double y[size], double* y_calc, double
              {
                      int i;
                      double sum_x,sum_y,sum_xy,sum_x2,sum_y2,xi,yi,sxy,sxx,syy;
0.0000 1              sum_x = 0;
0.0000 1              sum_y = 0;
0.0000 1              sum_xy = 0;
0.0000 1              sum_x2 = 0;
0.0000 1              sum_y2 = 0;
0.0000 1              for (i=0; i<n; i++)
                      {
0.0000 20                     xi=x[i];
0.0000 20                     yi=y[i];
0.0000 20                     sum_x += xi;
0.0000 20                     sum_y += yi;
0.0000 20                     sum_xy += xi*yi;
0.0000 20                     sum_x2 += xi*xi;
0.0000 20                     sum_y2 += yi*yi;
                      }
0.0000 1              sxx = sum_x2-sum_x*sum_x/n;
0.0000 1              sxy = sum_xy-sum_x*sum_y/n;
0.0000 1              syy = sum_y2-sum_y*sum_y/n;
0.0000 1              *b=sxy/sxx;
0.0000 1              *a=((sum_x2*sum_y-sum_x*sum_xy)/n)/sxx;
0.0000 1              for (i=0;i<n;i++)
0.0000 20                     *(y_calc+i) = *a + *b * x[i];
0.0000 1      }
0.0000 1      void main(void)
              {
                      int i;
                      double a,b,x[size],y[size],y_calc[size];
0.0000 1              randomize();
0.0000 1              printf("Input Data: \n");
0.0000 1              for (i=0;i<size;i++)
                      {
0.0000 20                     x[i] = 10+i*10;
0.0000 20                     y[i] = 10+i*10 + random(20) - 10;
0.0000 20                     printf("x[%d] = %3.1f y[%d] = %3.1f\n",i,x[i],i,y[
                      }
0.0000 1              linfit1(x,y,&y_calc[0],&a,&b,size);
0.0000 1              printf("a: %3.1f, b: %3.1f\n",a,b);
0.0000 1              for (i=0;i<size;i++)
0.0000 20                     printf("y_calc = %3.1f\n",y_calc[i]);
0.0000 1      }
Соседние файлы в папке OTCHET