Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream f("distributie.txt");
- void citire_distributie(int n,float x[],float y[]);
- float aproximatie_Lagrange(int n,float x[],float y[],float z);
- void coeficienti_regresie(int n,float x[],float y[],float *a,float *b);
- float aproximatie_regresie(float a,float b,float z);
- int main()
- {
- int n;
- float x[10],y[10],z,a,b;
- f>>n;
- citire_distributie(n,x,y);
- f>>z;
- /*
- cout<<"Valoarea aproximativa a lui "<<z<<" este "<<aproximatie_Lagrange(n,x,y,z);
- */
- coeficienti_regresie(n,x,y,&a,&b);
- cout<<"a="<<a<<endl<<"b="<<b<<endl;
- cout<<"Valoarea aproximativa in "<<z<<" prin regresie liniara este "<<aproximatie_regresie(a,b,z)<<endl;
- return 0;
- }
- void citire_distributie(int n,float x[],float y[])
- {
- int i;
- for(i=0;i<=n;i++)
- f>>x[i]>>y[i];
- }
- float aproximatie_Lagrange(int n,float x[],float y[],float z)
- {
- float s=0,p;
- int i,j;
- for(i=0;i<=n;i++)
- {
- p=y[i];
- for(j=0;j<=n;j++)
- if(i!=j)
- p=p*(z-x[j])/(x[i]-x[j]);
- s+=p;
- }
- return s;
- }
- void coeficienti_regresie(int n,float x[],float y[],float *a,float *b)
- {
- float Sx=0,Sy=0,Sxy=0,Sxx=0,d;
- int i;
- for(i=0;i<=n;i++)
- {
- Sx+=x[i];
- Sy+=y[i];
- Sxy+=(x[i]*y[i]);
- Sxx+=(x[i]*x[i]);
- }
- d=(n+1)*Sxx-Sx*Sx;
- if(d)
- {
- *a=((n+1)*Sxy-Sx*Sy)/d;
- *b=(Sy*Sxx-Sxy*Sx)/d;
- }
- }
- float aproximatie_regresie(float a,float b,float z)
- {
- return a*z+b;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement