Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
№15.rtf
Скачиваний:
1
Добавлен:
14.11.2019
Размер:
1.2 Mб
Скачать

Описание переменных.

in_file, Out_file:text; - текстовые переменные для работы с вводом\выводом из фаила\в фаил

x,y,x2,xy,x3,x4,x2y,lny,xlny,

xxcpyycp,xxcp2,yycp2,

lin,kv,ex:mass; -переменные для поведения действий над исходными данными (одномерные массивы [1..15])

apra,aprb,aprc,

mo1,mo3,

rez1,rez3:mas;-переменные в которых хранятся 2 обратные матрицы используемые при расчете коэффициентов (mo1,mo3), исходные матрицы состоящие из соответственных сумм(apra,aprb,aprc).

sx,sy,sx2,sxy,sx3,sx4,sx2y,slny,sxlny,xcp,ycp,

sxxcpyycp,sxxcp2,syycp2,slin,skv,sex,

aa1,aa2,ab1,ab2,ab3,cc,ac1,ac2,

kof,kofl,kofk,kofe,opr,opr_1,opr_2,opr_3:real; - переменные служащие для хранения сумм, коэффициентов в уравнениях аппроксимации, коэффициентов корреляции, детерминированности(линейная, квадратическая, экспоненциальная апроксимации), значения определителей используемых при действиях над матрицами

i: integer;- переменная-счетчик используемая для работы с циклами типа for…to…do

Программа расчета на языке программирования Turbo Pascal.

program files;

type

mass=array [1..15] of real;

mas=array [1..5,1..5] of real;

var

in_file, Out_file:text;

x,y,x2,xy,x3,x4,x2y,lny,xlny,

xxcpyycp,xxcp2,yycp2,

lin,kv,ex:mass;

apra,aprb,aprc,

mo1,mo3,

rez1,rez3:mas;

sx,sy,sx2,sxy,sx3,sx4,sx2y,slny,sxlny,xcp,ycp,

sxxcpyycp,sxxcp2,syycp2,slin,skv,sex,

aa1,aa2,ab1,ab2,ab3,cc,ac1,ac2,

kof,kofl,kofk,kofe,opr,opr_1,opr_2,opr_3:real;

i: integer;

{++++++++++++++procedures++++++++++++++++++++++++++++++++}

procedure mult(p,q:mas;m,l,n:integer;var r:mas);

var

i,j,k:integer;

sum:real;

begin

for i:=1 to m do

for j:=1 to n do

begin

sum:=0;

for k:=1 to l do sum:=sum+p[i,k]*q[k,j];

r[i,j]:=sum

end

end;

{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

begin

assign(in_file,'e:\pascal\kurs\input.txt');

reset(in_file);

assign(out_file,'e:\pascal\kurs\output.txt');

rewrite(out_file);

{============schitivanie isxodnix dannix iz faila=============}

for i:=1 to 15 do

read(in_file,x[i]);

for i:=1 to 15 do

read(in_file,y[i]);

{=========konec schitivania==================================}

{+++++++++++++++++++tab1+summi++++++++++++++++++++++++++++++++}

for i:=1 to 15 do

begin

sx:=sx+x[i];

sy:=sy+y[i];

x2[i]:=x[i]*x[i];

sx2:=sx2+x2[i];

xy[i]:=x[i]*y[i];

sxy:=sxy+xy[i];

x3[i]:=x[i]*x[i]*x[i];

sx3:=sx3+x3[i];

x4[i]:=x3[i]*x[i];

sx4:=sx4+x4[i];

x2y[i]:=x2[i]*y[i];

sx2y:=sx2y+x2y[i];

lny[i]:=ln(y[i]);

slny:=slny+lny[i];

xlny[i]:=lny[i]*x[i];

sxlny:=sxlny+xlny[i];

end;

{++++++++++++++++x y crednie++++++++++++++++++++++++++++++++++++++++++++}

xcp:=sx/15;

ycp:=sy/15;

{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

{++++++++++++++++++approkcimacia++++++++++++++++++++++++++++++++++++++++}

{====begin linein============}

apra[1,1]:=15; apra[1,2]:=sx; apra[1,3]:=sy;

apra[2,1]:=sx; apra[2,2]:=sx2; apra[2,3]:=sxy;

mo1[1,1]:=apra[2,2]/(apra[1,1]*apra[2,2]-apra[1,2]*apra[2,1]);

mo1[2,1]:=apra[2,1]/(apra[1,2]*apra[2,1]-apra[1,1]*apra[2,2]);

mo1[1,2]:=apra[1,2]/(apra[1,2]*apra[2,1]-apra[1,1]*apra[2,2]);

mo1[2,2]:=apra[1,1]/(apra[1,1]*apra[2,2]-apra[1,2]*apra[2,1]);

mult(mo1,apra,3,3,3,rez1);

aa1:=rez1[1,3];

aa2:=rez1[2,3];

{======end linein============}

{========begin kvadratich=====}

aprb[1,1]:=15; aprb[1,2]:=sx; aprb[1,3]:=sx2; aprb[1,4]:=sy;

aprb[2,1]:=sx; aprb[2,2]:=sx2; aprb[2,3]:=sx3;aprb[2,4]:=sxy;

aprb[3,1]:=sx2; aprb[3,2]:=sx3; aprb[3,3]:=sx4;aprb[3,4]:=sx2y;

OPR:=15*sx2*sx4+sx*sx3*sx2+sx*sx3*sx2-sx2*sx2*sx2-sx*sx*sx4-15*sx3*sx3;

OPR_1:=sy*sx2*sx4+sxy*sx3*sx2+sx*sx3*sx2y-sx2y*sx2*sx2-sx3*sx3*sy-sxy*sx*sx4;

OPR_2:=15*sxy*sx4+sy*sx3*sx2+sx*sx2y*sx2-sx2*sx2*sxy-15*sx2y*sx3-sy*sx*sx4;

OPR_3:=15*sx2*sx2y+sxy*sx*sx2+sx*sx3*sy-sy*sx2*sx2-sx*sx*sx2y-15*sxy*sx3;

ab1:=opr_1/opr;

ab2:=opr_2/opr;

ab3:=opr_3/opr;

{=======end kvadratich=======}

{=======begin expon==========}

aprc[1,1]:=15; aprc[1,2]:=sx; aprc[1,3]:=slny;

aprc[2,1]:=sx; aprc[2,2]:=sx2; aprc[2,3]:=sxlny;

mo3[1,1]:=aprc[2,2]/(aprc[1,1]*aprc[2,2]-aprc[1,2]*aprc[2,1]);

mo3[2,1]:=aprc[2,1]/(aprc[1,2]*aprc[2,1]-aprc[1,1]*aprc[2,2]);

mo3[1,2]:=aprc[1,2]/(aprc[1,2]*aprc[2,1]-aprc[1,1]*aprc[2,2]);

mo3[2,2]:=aprc[1,1]/(aprc[1,1]*aprc[2,2]-aprc[1,2]*aprc[2,1]);

mult(mo3,aprc,3,3,3,rez3);

cc:=rez3[1,3];

ac2:=rez3[2,3];

ac1:=exp(cc);

{======end expon=============}

{++++++++++++++tabl 2+ summi+++++++++++++++++++++++++++++++++++++++++++++}

for i:=1 to 15 do

begin

xxcpyycp[i]:=(x[i]-xcp)*(y[i]-ycp);

sxxcpyycp:=sxxcpyycp+xxcpyycp[i];

xxcp2[i]:=(x[i]-xcp)*(x[i]-xcp);

sxxcp2:=sxxcp2+xxcp2[i];

yycp2[i]:=(y[i]-ycp)*(y[i]-ycp);

syycp2:=syycp2+yycp2[i];

lin[i]:=(aa1+(aa2*x[i])-y[i])*(aa1+(aa2*x[i])-y[i]);

slin:=slin+lin[i];

kv[i]:=sqr(ab1+ab2*x[i]+ab3*x[i]*x[i]-y[i]);

skv:=skv+kv[i];

ex[i]:=(ac1*exp(ac2*x[i])-y[i])*(ac1*exp(ac2*x[i])-y[i]) ;

sex:=sex+ex[i];

end;

{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

{+++++++++++++++++++koefficenti+++++++++++++++++++++++++++++++}

kof:=sxxcpyycp/sqrt(sxxcp2*syycp2);

kofl:=1-slin/syycp2;

kofk:=1-skv/syycp2;

kofe:=1-sex/syycp2;

{+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

{============zapis v fail=====================================}

writeln(out_file);

writeln(out_file,'x: ');

for i:=1 to 15 do

write(out_file,x[i]:5:2,' | ');

writeln(out_file);

writeln(out_file,'y: ');

for i:=1 to 15 do

write(out_file,y[i]:5:2,' | ');

writeln(out_file);

writeln(out_file,kof:10:7, ' -Коэффициент коорреляции ');

writeln(out_file,kofl:10:7,' -Коэффициент детерминированности(линейная апроксимация) ');

writeln(out_file,kofk:10:7,'-Коэффициент детерминированности(квадратическая апроксимация) ');

writeln(out_file,kofe:10:7,'-Коэффициент детерминированности(экспоненциальная апроксимация) ');

writeln(out_file);

writeln(out_file, 'коэффиценты в уравнении для линейнои апроксимации');

writeln(out_file,'a1= ',aa1:10:7,' a2= ',aa2:10:7);

writeln(out_file, 'коэффиценты в уравнении для квадратическои апроксимации');

writeln(out_file,'a1= ',ab1:10:7,' a2= ',ab2:10:7,' a3= ',ab3:10:7);

writeln(out_file, 'коэффиценты в уравнении для экспоненциальной апроксимации');

writeln(out_file,'a1= ',ac1:10:7,' a2= ',ac2:10:7,' c= ',cc:10:7);

writeln(out_file);

close(in_file);

close(out_file);

{=============================================================}

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]