- •Курсовая работа
- •Пояснительная записка
- •Курсовая работа
- •Задание
- •Аннотация.
- •Abstract.
- •Оглавление.
- •Введение.
- •Постановка задачи.
- •Расчётные формулы.
- •Расчёт с помощью таблиц, выполненных средствами Microsoft Excel.
- •Результаты, полученные с помощью функции линейн.
- •Представление результатов в виде графиков.
- •Оценка значимости линейной аппроксимации.
- •Получение числовых характеристик квадратичной зависимости.
- •Оценка значимости квадратичной аппроксимации.
- •Получение числовых характеристик экспоненциальной зависимости.
- •Оценка значимости экспоненциальной аппроксимации.
- •Программа расчета на языке программирования Turbo Pascal.
- •Приложение 1: Таблица значений.
- •Список используемой литературы.
Программа расчета на языке программирования Turbo Pascal.
PROGRAM Kurs5_1;
Uses crt; { Подключение вспомогательных модулей }
var { Переменные }
xi,yi : array [1..30] of real;
i,n,j:integer; { Целые }
alyn1,alyn2:real; { Вещественные }
akvadr1,akvadr2,akvadr3:real;
aexp1,aexp2:real;
xcp,ycp,x,y:real;
Sxi,Syi,Sxxi,Sxyi,Sxxxi,Sxxxxi,Sxxyi,Sxlnyi,Slnyi:real;
rrlyn,rrkvadr,rrexp,ro:real;
Soctl,Spolnl,Socts,Spolns,Socte,Spolne:real;
Sro1,Sro2,Sro3:real;
Doctl,Docts,Docte:real;
FLynT,FKvadrT,FExpT,Flyn,Fkvadr,Fexp,salyn1,salyn2,sakvadr1,sakvadr2,
sakvadr3,saexp1,saexp2:real;
tslyn,tskvadr,tsexp,talyn1,talyn2,takvadr1,takvadr2,takvadr3,taexp1,
taexp2:real;
tlyn,tlyn1,tlyn2,tkvadr,tkvadr1,tkvadr2,tkvadr3,texp,texp1,texp2:string;
MMM,f, datafile :text;
BEGIN { Начало программы }
ClrScr; { Очистка экрана }
{ Ввод данных: n,x[i],y[i],F,t}
writeln( ' Введите табличное значение F-критерия Фишера
readln(FLynT);
writeln( ' Введите табличное значение t-критерия Стьюдента
readln(tslyn);
writeln( ' Введите табличное значение F-критерия Фишера
readln(FKvadrT);
writeln( ' Введите табличное значение t-критерия Стьюдента
readln(tskvadr);
writeln( ' Введите табличное значение F-критерия Фишера
readln(FExpT);
writeln( ' Введите табличное значение t-критерия Стьюдента
readln(tsexp);
n:=25;
Assign (datafile,'data.in');
Reset(datafile);
for j:=0 to 25 do
readln(datafile,xi[j]);
for j:=0 to 25 do
readln(datafile,yi[j]);
{ Организация и открытие канала вывода МММ - файла D:\kurs }
Assign(MMM,'data.out');
rewrite(MMM);
Sxi:=0; { Расчетная часть }
Syi:=0;
Sxxi:=0;
Sxyi:=0;
Sxxxi:=0;
Sxxxxi:=0;
Sxxyi:=0;
Sxlnyi:=0;
Slnyi:=0;
for i:=1 to n do
begin
Sxi:=Sxi+xi[i];
Syi:=Syi+yi[i];
Sxxi:=Sxxi+xi[i]*xi[i];
Sxyi:=Sxyi+xi[i]*yi[i];
Sxxxi:=Sxxxi+xi[i]*xi[i]*xi[i];
Sxxxxi:=Sxxxxi+xi[i]*xi[i]*xi[i]*xi[i];
Sxxyi:=Sxxyi+xi[i]*xi[i]*yi[i];
Sxlnyi:=Sxlnyi+xi[i]*ln(yi[i]);
Slnyi:=Slnyi+ln(yi[i]);
end;
{ Расчет линейной апроксимации }
xcp:=Sxi/n;
ycp:=Syi/n;
Sro1:=0;
Sro2:=0;
Sro3:=0;
for i:=1 to n do
begin
Sro1:=Sro1+((xi[i]-xcp)*(yi[i]-ycp));
Sro2:=Sro2+sqr(xi[i]-xcp);
Sro3:=Sro3+sqr(yi[i]-ycp);
end;
ro:=Sro1/sqrt(Sro2*Sro3);
alyn2:=(n*Sxyi-Syi*Sxi)/(n*Sxxi-Sxi*Sxi);
alyn1:=(Syi-alyn2*Sxi)/n;
Soctl:=0;
Spolnl:=0;
for i:=1 to n do
begin
Soctl:=Soctl+sqr(yi[i]-(alyn1+(alyn2*xi[i])));
Spolnl:=Spolnl+(yi[i]-ycp)*(yi[i]-ycp);
end;
rrlyn:=1-(Soctl/Spolnl);
{ Оценка значимости коэффицентов линейной апроксимации }
Flyn:=rrlyn/(1-rrlyn)*(n-2);
Doctl:=Soctl/(n-2);
salyn1:=sqrt((Doctl*Sxxi)/(n*Sro2));
talyn1:=abs(alyn1)/salyn1;
salyn2:=sqrt(Doctl/Sro2);
talyn2:=abs(alyn2)/salyn2;
if Flyn>=FLynT then tlyn:= 'коэффицент значим'
else tlyn:= 'коэффицент не значим';
if talyn1>=tslyn then tlyn1:= 'коэффицент значим'
else tlyn1:= 'коэффицент не значим';
if talyn2>=tslyn then tlyn2:= 'коэффицент значим'
else tlyn2:= 'коэффицент не значим';
{ Расчет квадратичной апроксимации }
akvadr3:=(((n*Sxxyi-Syi*Sxxi)*(n*Sxxi-Sxi*Sxi)-(n*Sxyi-Syi*Sxi)*
(n*Sxxxi-Sxi*Sxxi)))/(((n*Sxxxxi-Sxxi*Sxxi)*(n*Sxxi-Sxi*Sxi)-
(n*Sxxxi-Sxxi*Sxi)*(n*Sxxxi-Sxxi*Sxi)));
akvadr2:=(n*Sxyi-(Syi*Sxi)-(akvadr3*(n*Sxxxi-(Sxxi*Sxi))))/(n*Sxxi-(Sxi*Sxi)
akvadr1:=(Syi-akvadr2*Sxi-akvadr3*Sxxi)/n;
Socts:=0;
Spolns:=0;
for i:=1 to n do
begin
Socts:=Socts+sqr(yi[i]-(akvadr1+akvadr2*xi[i]+akvadr3*xi[i]*xi[i]));
Spolns:=Spolns+sqr(yi[i]-ycp);
end;
rrkvadr:=1-(Socts/Spolns);
{ Оценка значимости коэффицентов квадратичной апроксимации }
Fkvadr:=rrkvadr/(1-rrkvadr)*((n-3)/2);
Docts:=Socts/(n-2);
sakvadr1:=sqrt((Docts*Sxxi)/(n*Sro2));
sakvadr2:=sqrt(Docts/Sro2);
sakvadr3:=0.3;
takvadr1:=abs(akvadr1)/sakvadr1;
takvadr2:=abs(akvadr2)/sakvadr2;
takvadr3:=abs(akvadr3)/sakvadr3;
if Fkvadr>=FKvadrT then tkvadr:= 'коэффицент значим'
else tkvadr:= 'коэффицент не значим';
if takvadr1>=tskvadr then tkvadr1:= 'коэффицент значим'
else tkvadr1:= 'коэффицент не значим';
if takvadr2>=tskvadr then tkvadr2:= 'коэффицент значим'
else tkvadr2:= 'коэффицент не значим';
if takvadr3>=tskvadr then tkvadr3:= 'коэффицент значим'
else tkvadr3:= 'коэффицент не значим';
{ Расчет экспоненциальной апроксимации }
aexp2:=(n*Sxlnyi-Sxi*Slnyi)/(n*Sxxi-Sxi*Sxi);
aexp1:=exp((Slnyi-aexp2*Sxi)/n);
Socte:=0;
Spolne:=0;
for i:=1 to n do
begin Socte:=Socte+sqr(yi[i]-(aexp1+aexp2*xi[i]));
Spolne:=Spolne+sqr(yi[i]-ycp);
end;
rrexp:=1-(Socte/Spolne);
{ Оценка значимости коэффицентов экспоненциальной апроксимации }
Fexp:=rrexp/(1-rrexp)*(n-2);
Docte:=Socte/(n-2);
saexp1:=sqrt((Docte*Sxxi)/(n*Sro2));
taexp1:=abs(aexp1)/saexp1;
saexp2:=sqrt(Docte/Sro2);
taexp2:=abs(aexp2)/saexp2;
if Fexp>=FExpT then texp:= 'коэффицент значим'
else texp:= 'коэффицент не значим';
if taexp1>=tsexp then texp1:= 'коэффицент значим'
else texp:= 'коэффицент не значим';
if taexp2>=tsexp then texp2:= 'коэффицент значим'
else texp2:= 'коэффицент не значим';
writeln(' Таблица результатов '); { Вывод результатов на экран и в файл D:\kurs }
writeln(MMM,' Таблица результатов ');
writeln(' Коэффициент корреляции (ro)= ',ro:50:4);
writeln(MMM,' ro ',ro:11:4);
writeln(' Коэффициент детерминированности лин.(rrlyn)= ',rrlyn:50:4,' ',tl
writeln(MMM,' rrlyn ',rrlyn:11:4,' ',tlyn);
writeln(' Коэффициент детерминированности квадр. (rrkvadr)= ',rrkvadr:50:4
writeln(MMM,' rrkvadr ',rrkvadr:10:4,' ',tkvadr);
writeln(' Коэффициент детерминированности эксп. (rrexp)= ',rrexp:50:4,' ',
writeln(MMM,' rrexp ',rrexp:11:46,' ',texp);
writeln(' xcp= ',xcp:50:4); writeln(MMM,' xcp ',xcp:11:4);
writeln(' ycp= ',ycp:50:4); writeln(MMM,' ycp ',ycp:11:4);
writeln(' alyn1= ',alyn1:11:4,' ',tlyn1); writeln(MMM,' alyn1 ',alyn1:11:
writeln(' alyn2= ',alyn2:11:4,' ',tlyn2); writeln(MMM,' alyn2 ',alyn2:11:
writeln(' akvadr1= ',akvadr1:11:4,' ',tkvadr1);
writeln(MMM,' akvadr1 ',akvadr1:11:4,' ',tkvadr1);
writeln(' akvadr2= ',akvadr2:11:4,' ',tkvadr2);
writeln(MMM,' akvadr2 ',akvadr2:11:4,' ',tkvadr2);
writeln(' akvadr3= ',akvadr3:11:4,' ',tkvadr3);
writeln(MMM,' akvadr3 ',akvadr3:11:4,' ',tkvadr3);
writeln(' aexp1= ',aexp1:11:4,' ',texp1);
writeln(MMM,' aexp1 ',aexp1:11:4,' ',texp1);
writeln(' aexp2= ',aexp2:11:4,' ',texp2);
writeln(MMM,' aexp2 ',aexp2:11:4,' ',texp2)
close(MMM); { Закрытие канала вывода МММ }
END.