- •Курсовая работа
- •Пояснительная записка
- •Курсовая работа
- •Задание
- •Аннотация.
- •Оглавление.
- •Введение.
- •Постановка задачи.
- •Расчётные формулы.
- •Расчёт с помощью таблиц, выполненных средствами Microsoft Excel.
- •Описание переменных.
- •Программа расчета на языке программирования Turbo Pascal.
- •Результаты расчёта на языке программирования Turbo Pascal.
- •Результаты, полученные с помощью функции линейн.
- •Представление результатов в виде графиков.
- •Выводы.
- •Список используемой литературы.
Описание переменных.
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.