Завдання:
Побудувати розрахункову формулу методом найменших ква-
дратів.
X
1.1
2.1
3.1
4.1
5.1
6.1
7.1
8.1
9.1
10.1

y
-9
-11
-14
-9
-5
-3
-1
1
2.1
4

# include <stdio.h>
# include <conio.h>
# include <math.h>
# define N 10
main()
{float s1=0,s2=0,s3=0,s4=0,s5=0,s6=0,s7=0;
float a1,a2,a3,x[N],y[N],d,da1,da2,da3,e=0; int i;
clrscr();
for(i=0;i<=N-1;i++)
scanf("%f",&x[i]);
for(i=0;i<=N-1;i++)
scanf("%f",&y[i]);
for(i=0;i<=N-1;i++)
{s1+=x[i];
s2+=pow(x[i],2);
s3+=pow(x[i],3);
s4+=pow(x[i],4);
s5+=y[i];
s6+=x[i]*y[i];
s7+=pow(x[i],2)*y[i];
}
d=N*s2*s4+s1*s3*s2+s2*s3*s1-s2*s2*s2-s3*s3*N-
-s4*s1*s1;
da1=s5*s2*s4+s1*s3*s7+s2*s3*s6-s2*s2*s7-s3*s3*s5-
-s4*s6*s1;
da2=N*s6*s4+s5*s3*s2+s2*s7*s1-s2*s6*s2-s3*s7*N-
-s4*s1*s5;
da3=N*s2*s7+s1*s6*s2+s5*s3*s1-s5*s2*s2-s6*s3*N-
-s7*s1*s1;
a1=da1/d;
a2=da2/d;
a3=da3/d;
for(i=0;i<=N-1;i++)
e+=pow(y[i]-a1-a2*x[i]-a3*x[i]*x[i],2);
printf("\n a1=%4.3f a2=%4.3f a3=%4.3f
e=%7.6f",a1,a2,a3,e);
getchar();
return 0;
}
a1=-15.085 a2=-11.065 a3=-4.367 e=7658.8965