Magentax

Regresie Trigo

Jan 19th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <math.h>
  5. #define NRMAX   10
  6.  
  7. #define pi 3.141592
  8.  
  9. void regtrig (int m, float x[NRMAX], float y[NRMAX], float omega, float *a, float *b)
  10. {
  11.     float sy,scos2x,scosx,sycosx;
  12.     int i;
  13.  
  14.     sy=0;   scos2x=0;   scosx=0;    sycosx=0;
  15.     for (i=0;i<m;i++)
  16.         {
  17.             sy=sy+y[i];
  18.             scos2x=scos2x+(cos(omega*x[i])*cos(omega*x[i]));
  19.             scosx=scosx+cos(omega*x[i]);
  20.             sycosx=sycosx+(y[i]*cos(omega*x[i]));
  21.         }
  22.         *a=(sy*scos2x-scosx*sycosx)/(m*scos2x-scosx*scosx);
  23.         *b=(m*sycosx-scosx*sy)/(m*scos2x-scosx*scosx);
  24. }
  25.  
  26. int main (void)
  27. {
  28.     int i,m;
  29.     float a,b,omega;
  30.     float   X[NRMAX] = {0,pi/2, pi, 3*pi/2, 2*pi},
  31.             Y[NRMAX] = {2, 1, 0, 1, 2};
  32.  
  33.     printf("REGRESIA TRIGONOMETRICA");
  34.     printf("\nIntroduceti numarul experientelor:");
  35.     scanf("%d",&m);
  36.     printf("omega=");
  37.     scanf("%f",&omega);
  38. /*
  39.     printf("\nIntroduceti abscisele si ordonatele functiei:");
  40.     for (i=0;i<m;i++)
  41.         {
  42.             printf("\nX[%d]=",i);
  43.             scanf("%f",&X[i]);
  44.             printf("Y[%d]=",i);
  45.             scanf("%f",&Y[i]);
  46.         }
  47. */
  48.     regtrig(m,X,Y,omega,&a,&b);
  49.     printf("Rezultatul regresiei trigonometrice este: a=%f; b=%f",a,b);
  50.  
  51.     getch();
  52.     return 1;
  53. }
Add Comment
Please, Sign In to add comment