с Функції
Функція MASS (double * x, double * y, double ** sum, intN, intK, double * a, double * b) служить для обчислення коефіцієнтів для методу найменших квадратів, де * x, * y масиви вихідних даних, N - розмірність масиву, * а-шуканий коефіцієнт.
Функція Kof_kor (double * x, double * y, intn) служить для обчислення коефіцієнта кореляції * x, * y-масив вихідних даних, n - розмірність масиву.
Функція Ind_kor (double * a, double * x, double * y, intn) служить для обчислення індексу кореляції, де * a-коефіцієнтів методу найменших квадратів, * x, * y-масиви вихідних даних, n- розмірність масивів.
5. Характеристика даних та їх умовні позначення
Таблиця 2
Найменування даннихОбозначеніе в блок-схемеОбозначеніе в программеТіп переменнихРазмерность массіваnnintІсходний масив значень нагрузокx, x1x, x1doubleІсходний масив значень напряженійy, y1y, y1doubleВспомогательние переменниеi, ki, kintМассів значення навантажень, при якому необхідно визначити значення напряженіяssdoubleОжідаемое значення нагрузкіotv, otv1otv , otv1doubleПеременная вибору действіяjjintЧтеніе даних з файлаffifstreamЗапісь даних в файлf1f1ofstreamКоеффіціент найменших квадратовa, a1a, a1doubleКоеффіціент корреляцііkof_korkof_kordoubleІндекс корреляцііInd_korInd_kordoubleСуммарная квадратична ошібкаS, S1S, S1double
6. Текст програми
# include lt; iostream gt;
# include lt; fstream gt;
# include lt; math.h gt;
# include lt; conio.h gt;
# include lt; clocale gt; namespace std;
int MASS (double * x, double * y, double ** sum, int N, int K, double * a, double * b)
{int i, j, k, m; double z, c; (i=0; i lt; K + 1; i ++) (j=0; j lt; K + 1; j ++)
{[i] [j]=0; (k=0; k lt; N; k ++)
{sum [i] [j] +=pow (x [k], i + j);}
} (i=0; i lt; K + 1; i ++)
{b [i]=0; (k=0; k lt; N; k ++)
{b [i] +=pow (x [k], i) * y [k];}
} (i=0; i lt; K; i ++)
{m=i; (j=i + 1; j lt; K + 1; j ++)
{if (fabs (sum [m] [i]) lt; fabs (sum [j] [i])) m=j;} (k=i; k lt; K + 1; k ++)
{z=sum[m][k];sum[m][k]=sum[i][k];sum[i][k]=z;}=b[m];b[m]=b[i];b[i]=z;(j=i+1;jlt;K+1;j++)
{= - sum [j] [i]/sum [i] [i]; (k=i; k lt; K + 1; k ++)
{sum [j] [k]=sum [j] [k] + c * sum [i] [k];} [j]=b [j] + c * b [i ];}
} [K]=b [K]/sum [K] [K]; (i=K + 1-2; i gt;=0; i -)
{(k=i + 1; k lt; K + 1; k ++)
{b [i]=b [i] -a [k] * sum [i] [k];} [i]=b [i]/sum [i] [i];
} 0;
} Kof_kor (double * x, double * y, int n)
{int i;sred_x,sred_y,kof_kor,sum_x=0,sum_y=0,*otkl_x,*otkl_y,sum_otkl_x,sum_otkl_y;*proizv_rz,stand_otklon_x,stand_otklon_y,*otkl_x2,*otkl_y2,sum_proizv_rz=0;_x=new double [n]; otkl_y=new double [n]; proizv_rz=new double [n]; otkl_x2=new double [n]; otkl_y2=new double [n]; (i=0; i lt; n; i ++)
{sum_x +=x [i]; sum_y +=y [i];} _ x=sum_x/n; sred_y=sum_y/n; (i=0; i lt; n; i ++)
{otkl_x [i]=sred_x-x [i]; otkl_y [i]=sred_y-y [i];} (i=0; i lt; n; i ++)
{otkl_x2[i]=pow(otkl_x[i],2);otkl_y2[i]=pow(otkl_y[i],2);}(i=sum_otkl_x=sum_otkl_y=0;ilt;n;i++)
{sum_otkl_x+=otkl_x2[i];sum_otkl_y+=otkl_y2[i];}_otklon_x=pow(sum_otkl_x/n,1/2.);stand_otklon_y=pow(sum_otkl_y/n,1/2.);(i=0;ilt;n;i++)
{proizv_rz [i]=otkl_x [i] * otkl_y [i];} (i=0; i lt; n; i ++)
{sum_proizv_rz+=proizv_rz[i];}_kor=sum_proizv_rz/(stand_otklon_x*stand_otklon_y*n);kof_kor;
} Ind_kor (double * a, double * x, double * y, int n)
{int i; sred_y, * yY, * yM, Y, ym=0, yy=0, ind_kor;=new double [n]; yM=new double [n]; (i= 0; i lt; n; i ++)
{sred_y +=y [i];} _ y=sred_y/n; (i=0; i lt; n; i ++)
{=a[0]+a[1]*x[i]+a[2]*pow(x[i],2)+a[3]*pow(x[i],3);[i]=pow(y[i]-Y,2);yM[i]=pow(y[i]-sred_y,2);
} (i=0; i lt; n; i ++)
{yy +=yY [i]; ym +=yM [i];} _ kor=pow (fabs (1- (yy/ym)), 1/2.); ind_kor;
} main ()
{f; ofstream f1; n=6, k, N=4, i, j=1, n1=3; double **x_mass,*y,*x,*s,*a,*b,*y1,*x1,*a1,*otv,*otv1,kof_kor,ind_kor,*min_y,*min_y1,S=0,S1=0,OTVET;sred_y,*yY,*yM,Y,ym=0,yy=0;yY=ne...