Метод найменших квадратів (Лабораторна робота № 5), страница 2

 }

for(i=0;i<N;i++)

 {

              xar+=x[i];

 }

xar/=N;

for(i=0;i<N;i++)

 {

              yar+=y[i];

 }

yar/=N;

for(i=0;i<N;i++)

 {

              xga+=1.0/x[i];

 }

xga=N/xga;

for(i=0;i<N;i++)

 {

              yga+=1.0/y[i];

 }

yga=N/yga;

for(i=0;i<N;i++)

 {

              xge*=x[i];

 }

xge=pow(xge,1.0/N);

for(i=0;i<N;i++)

 {

              yge*=y[i];

 }

yge=pow(yge,1.0/N);

printf("xar=%f xge=%f xga=%f yar=%f yge=%f yga=%f",xar,xge,xga,yar,yge,yga);

printf("\n  Xcp  |   Ycp |   Y^  |\n");

for (i=0;i<N;i++)

{while(xar>=x[i]&&xar<=x[i+1])

{yy=((xar-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xar,yar,yy,min=my[0]=fabs((yar-yy)/yy));

break;}}

for (i=0;i<N;i++)

{while(xge>=x[i]&&xge<=x[i+1])

{yy=((xge-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xge,yar,yy,my[1]=fabs((yar-yy)/yy));;break;}}

for (i=0;i<N;i++)

{while(xga>=x[i]&&xga<=x[i+1]){yy=((xga-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xga,yar,yy,my[2]=fabs((yar-yy)/yy));;break;}}

for (i=0;i<N;i++)

{while(xar>=x[i]&&xar<=x[i+1]){yy=((xar-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xar,yge,yy,my[3]=fabs((yge-yy)/yy));;break;}}

for (i=0;i<N;i++)

{while(xge>=x[i]&&xge<=x[i+1]){yy=((xge-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xge,yge,yy,my[4]=fabs((yge-yy)/yy));;break;}}

for (i=0;i<N;i++)

{while(xga>=x[i]&&xga<=x[i+1]){yy=((xga-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xga,yge,yy,my[5]=fabs((yge-yy)/yy));;break;}}

for (i=0;i<N;i++)

{while(xar>=x[i]&&xar<=x[i+1]){yy=((xar-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xar,yga,yy,my[6]=fabs((yga-yy)/yy));;break;}}

for (i=0;i<N;i++)

{while(xge>=x[i]&&xge<=x[i+1]){yy=((xge-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xge,yga,yy,my[7]=fabs((yga-yy)/yy));;break;}}

for (i=0;i<N;i++)

{while(xga>=x[i]&&xga<=x[i+1]){yy=((xga-x[i])/(x[i+1]-x[i]))*(y[i+1]-y[i])+y[i];

printf("%7.4f|%7.4f|%7.4f|%7.4f\n",xga,yga,yy,my[8]=fabs((yga-yy)/yy));;break;}}

for(i=0;i<N;i++)

 {

              lx[i]=log(x[i]);

              ly[i]=log(y[i]);

              x1[i]=1/x[i];

              y1[i]=1/y[i];

 }

for(i=1;i<N;i++)

 {

               if(my[i]<min)

               {

                            min=my[i];

                            k=i+1;

               }

 }

printf("k=%i",k);

 printf("\nOtrimana funkciya:");

switch(k)

                             {

                             case 1:

                            a1=A1(x,y);