Sred_GroupX, Sred_GroupY – средние арифметические значения величин X и Y для группированных данных.
SredX, SredY – средние арифметические значения величин X и Y для негруппированных данных.
R_Group – коэффициент корреляции, вычисленный по группированным данным.
R – коэффициент корреляции, вычисленный по негруппированным данным.
Sx, Sy – суммы, вычисленные по формулам (5) и (6).
Koef_Group1,Koef_Group2 – коэффициенты уравнения регрессии, вычисленные по группированным данным.
Koef1, Koef2 – коэффициенты уравнения регрессии, вычисленные по негруппированным данным.
Koef_Lin1, Koef_Lin2 – коэффициенты уравнения регрессии, вычисленные с помощью метода наименьших квадратов.
D, D1, D2 – переменные, содержащие значения главного и вспомогательных определителей для вычисления корней уравнения методом Крамера.
S_Ost, S_Poln – суммы квадратов, вычисляемые по формулам (8).
Koef_R – массив, содержащий значения коэффициентов детерминированности.
Также в подпрограммах были использованы переменные, которые использовались в основном как счетчики циклов и как хранилища различных значений для подсчета тех или иных физических величин.
5.2. Соответствие между блок-схемой и программой.
Программа, обеспечивающая выполнение алгоритма, полностью соответствует приведённая ниже блок-схема:
Рис.3 Основная блок-схема программы
5.3. Программа в Turbo Pascal.
Program kursrab;
Const
Road_Input='D:\vidal\Input.txt';
Road_Output='D:\vidal\Output.txt';
Road_Table='D:\vidal\Table.txt';
n=30; {Количество измерений}
k=6; {Количество интервалов}
Var
File_Input,File_Output,File_Table:Text;
Matrix:Array[1..2,1..n] of Real;
Matrix_Teor:Array[1..3,1..n] of Real; {Матрица теоретических значений}
Table:Array[1..6,1..6] of Byte;
i,j:Byte;
X_Min,X_Max,Y_Min,Y_Max:Real;
Hx,Hy:Real;
Sered_intX:Array[1..1,1..6] of Real;
Sered_intY:Array[1..6,1..1] of Real;
Nxi:Array[1..1,1..6] of Integer;
Nyj:Array[1..6,1..1] of Integer;
UsZnach_YXi:Array[1..1,1..6] of Real;
UsZnach_XYj:Array[1..6,1..1] of Real;
Sum1,Sum2,Sum3:Real;
Sred_GroupX,Sred_GroupY,SredX,SredY:Real;
R_Group,R:Real;
Sx,Sy:Real;
Koef_Group1,Koef_Group2,Koef1,Koef2,Koef_Lin1,Koef_Lin2:Real;
D,D1,D2:Real; {Главный и вспомогательные определители}
S_Ost,S_Poln:Real;
Koef_R:Array[1..3] of Real;
Procedure Program_Table;
Var
i,j,t,p:Byte;
H:Real;
X,Y:Real;
X1,X2,Y1,Y2:Real;
Begin
{1.Вычисление максимального и минимального значения x}
X_Min:=Matrix[1,1];
X_Max:=Matrix[1,1];
Y_Min:=Matrix[2,1];
Y_Max:=Matrix[2,1];
For i:=1 to n do
Begin
If Matrix[1,i] < X_Min then X_Min:=Matrix[1,i];
If Matrix[1,i] > X_Max then X_Max:=Matrix[1,i];
If Matrix[2,i] < Y_Min then Y_Min:=Matrix[2,i];
If Matrix[2,i] > Y_Max then Y_Max:=Matrix[2,i];
End;
{2.Находим длинну интервалов по x и по y}
Hx:=(X_Max-X_Min)/k;
Hy:=(Y_Max-Y_Min)/k;
{3.Заполнение корреляционной таблицы }
Y1:=Y_Min-1;Y2:=Y_Min+Hy;
X1:=X_Min-1;X2:=X_Min+Hx;
For j:=1 to 6 do
Begin
For i:=1 to 6 do
Begin
For p:=1 to n do
Begin
If ((Matrix[1,p] >= X1) and (Matrix[1,p] <= X2)) and
((Matrix[2,p] >= Y1) and (Matrix[2,p] <= Y2)) then
Table[j,i]:=Table[j,i]+1;
End;
X1:=X2;
X2:=X2+Hx;
End;
Y1:=Y2;
Y2:=Y2+Hy;
X1:=X_Min;X2:=X_Min+Hx;
End;
End;
Function Summ(Key:String):Real;
Var
i:Byte;
S,K:Real;
Begin {Function}
S:=0;
If key='x' then
Begin
For i:=1 to n do S:=S + Matrix[1,i];
Summ:=S;
End
Else If key='y' then
Begin
For i:=1 to n do S:=S + Matrix[2,i];
Summ:=S;
End
Else If key='xy' then
Begin
For i:=1 to n do S:=S + Matrix[1,i]*Matrix[2,i];
Summ:=S;
End
Else if key='x^2' then
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.