Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Программа на языке Turbo Pascal.

Постановка задачи. | Построение эмпирических формул методом наименьших квадратов | Линеаризация экспоненциальной зависимости. | Элементы теории корреляции. | Расчет данных. | Результаты коэффициентов линейной аппроксимации. | Результаты коэффициентов квадратичной аппроксимации. | Результаты коэффициентов экспоненциальной аппроксимации. | Вычисление остаточных сумм. | Построение графиков в Excel . |


Читайте также:
  1. I. Программа курса
  2. I. РАБОЧАЯ ПРОГРАММА
  3. III. Программа
  4. III. Программа и тестовые примеры
  5. III. Программа и тестовые примеры
  6. III. Программа и тестовые примеры
  7. III. Программа и тестовые примеры

program kursovik;

uses crt;

type mas_1=array[1..15] of real;

 

mas_2=array[1..3,1..3] of real;

mas_3=array[1..2,1..2] of real;

 

var f,f1:text;

 

apprLIN,

A1_apprLIN,

A2_apprLIN,

C_apprEXP,

A2_apprEXP:mas_3;

 

apprKVAD,

A1_apprKVAD,

A2_apprKVAD,

A3_apprKVAD:mas_2;

 

X,Y:mas_1;

 

i,j:byte;

 

A1LIN,A2LIN,

CEXP,A1EXP,A2EXP,

A1KVAD,A2KVAD,A3KVAD,

kor_lin, {коэффициент корреляции }

deter_lin, {коэф. детерминированности

линейной аппроксимации}

deter_kvad, {коэф. детерминированности

квадратичной аппроксимации}

deter_exp, {коэф. детерминированности

экспоненциальная аппроксимация}

x2, {сумма квадратов х}

x3, {сумма кубов х}

x4, {сумма четвертых степеней х}

xy, {сумма произведений х на у}

x2y, {сумма произведений квадрата х на у}

lny, {сумма логарифмов у }

xlny, {сумма произведений х на логарифм у}

xsum, {сумма х}

ysum, {сумма у}

xsr, {среднее значение х}

ysr, {среднее значение у}

 

S1, {(x_i-x)*(y_i-y)}

S2, {(x_i-x)^2}

S3, {(y_i-y)^2}

LIN, {лин}

KVAD, {квадрат}

EXPON:real; {экспоненц}

 

{ функция возведения в целую степень }

function stepen(chislo:real;pokazat:integer):real;

var result:real;

istep:byte;

begin

result:=1;

for istep:=1 to pokazat do

result:=result*chislo;

stepen:=result;

end;

{ функция, возращающая значение опредилителя 2-ого порядка}

function det_2(mat:mas_3): real;

var result:real;

begin

result:=mat[1,1]*mat[2,2]-mat[1,2]*mat[2,1];

det_2:=result;

end;

 

{ функция, возращающая значение опредилителя 3-его порядка}

function det_3(mat:mas_2):real;

var M_d:mas_3; {минор элемента ij}

k_det3,i0_det3,j0_det3,j_det3:byte;

result:real;

begin

result:=0;

for j_det3:=1 to 3 do

begin

for i0_det3:=1 to 2 do

begin

k_det3:=0;

for j0_det3:=1 to 2 do

begin

if j_det3=j0_det3 then k_det3:=1;

M_d[i0_det3,j0_det3]:=mat[i0_det3+1,j0_det3+k_det3];

end;

end;

result:=stepen(-1,1+j_det3)*det_2(M_d)*mat[1,j_det3]+result;

end;

det_3:=result;

end;

 

 

{{{{{{ОСНОВНАЯ ПРОГРАММА}

begin

{ чтение исходных данных из файла }

assign(f,'parametr.txt');

reset(f);

readln(f);

for i:=1 to 15 do readln(f,x[i],y[i]);

close(f);

 

{ вычисление необходимых в расчетах параметров}

xsum:=0;ysum:=0;x2:=0;x3:=0;x4:=0;xy:=0;x2y:=0;

for i:=1 to 15 do

begin

x2:=x2+((X[i])*(X[i])); {сумма квадратов х}

x3:=x3+((X[i])*(X[i])*(X[i])); {сумма кубов х}

x4:=x4+((X[i])*(X[i])*(X[i])*(X[i])); {сумма четвертых степеней х}

xy:=xy+X[i]*Y[i]; {сумма произведений х на у}

x2y:=x2y+((X[i])*(X[i])*Y[i]); {сумма произведений квадрата х на у}

lny:=lny+ln(Y[i]); {сумма логарифмов у }

xlny:=xlny+X[i]*ln(Y[i]); {сумма произведений х на логарифм у}

xsum:=xsum+X[i];

ysum:=ysum+Y[i];

end;

xsr:=xsum/15; {среднее значение х}

ysr:=ysum/15; {среднее значение у}

 

{ВЫЧИСЛЕНИЕ КОЭФФИЦИЕНТОВ ПРОИЗВОДИТЬСЯ ПО ФОРМУЛЕ КРАМЕРА}

{ЛИНЕЙНАЯ АППРОКСИМАЦИЯ}

apprLIN[1,1]:=15; {матрица коэффициентов}

apprLIN[1,2]:=xsum;

apprLIN[2,1]:=xsum;

apprLIN[2,2]:=x2;

A1_apprLIN:=apprLIN;

A1_apprLIN[1,1]:=ysum;

A1_apprLIN[2,1]:=xy;

A2_apprLIN:=apprLIN;

A2_apprLIN[1,2]:=ysum;

A2_apprLIN[2,2]:=xy;

A1LIN:=det_2(A1_apprLIN)/det_2(apprLIN);

A2LIN:=det_2(A2_apprLIN)/det_2(apprLIN);

 

{КВАДРАТИЧНАЯ АППРОКСИМАЦИЯ}

apprKVAD[1,1]:=15; {матрица коэффициентов}

apprKVAD[1,2]:=xsum;

apprKVAD[1,3]:=x2;

apprKVAD[2,1]:=xsum;

apprKVAD[2,2]:=x2;

apprKVAD[2,3]:=x3;

apprKVAD[3,1]:=x2;

apprKVAD[3,2]:=x3;

apprKVAD[3,3]:=x4;

A1_apprKVAD:=apprKVAD;

A1_apprKVAD[1,1]:=ysum;

A1_apprKVAD[2,1]:=xy;

A1_apprKVAD[3,1]:=x2y;

A2_apprKVAD:=apprKVAD;

A2_apprKVAD[1,2]:=ysum;

A2_apprKVAD[2,2]:=xy;

A2_apprKVAD[3,2]:=x2y;

A3_apprKVAD:=apprKVAD;

A3_apprKVAD[1,3]:=ysum;

A3_apprKVAD[2,3]:=xy;

A3_apprKVAD[3,3]:=x2y;

A1KVAD:=det_3(A1_apprKVAD)/det_3(apprKVAD);

A2KVAD:=det_3(A2_apprKVAD)/det_3(apprKVAD);

A3KVAD:=det_3(A3_apprKVAD)/det_3(apprKVAD);

 

{ЭКСПОНЕНЦИАЛЬНАЯ АППРОКСИМАЦИЯ}

{матрица коэффициентов совпадает с матрицей коэффициентов

при линейной аппроксимации}

C_apprEXP:=apprLIN;

C_apprEXP[1,1]:=lny;

C_apprEXP[2,1]:=xlny;

A2_apprEXP:=apprLIN;

A2_apprEXP[1,2]:=lny;

A2_apprEXP[2,2]:=xlny;

CEXP:=det_2(C_apprEXP)/det_2(apprLIN);

A2EXP:=det_2(A2_apprEXP)/det_2(apprLIN);

A1EXP:=exp(CEXP);

 

{ коэффициент корреляции }

for i:=1 to 15 do

begin

S1:=S1+(X[i]-xsr)*(Y[i]-ysr);

S2:=S2+stepen((X[i]-xsr),2);

S3:=S3+stepen((Y[i]-ysr),2);

end;

kor_lin:=S1/(sqrt(S2)*sqrt(S3));

 

{ коэффициент детерминированности}

 

for i:=1 to 15 do

begin

LIN:=LIN+sqr(A1LIN+A2LIN*X[i]-Y[i]);

KVAD:=KVAD+sqr(A1KVAD+A2KVAD*X[i]+A3KVAD*stepen(X[i],2)-Y[i]);

EXPON:=EXPON+sqr(A1EXP*exp(A2EXP*X[i])-Y[i]);

end;

deter_lin:=1-LIN/S3; {линейная аппроксииация}

deter_kvad:=1-KVAD/S3;{квадратичная аппроксимация}

deter_exp:=1-EXPON/S3; {экспоненциальная аппроксимация}

 

{ВЫВОД РЕЗУЛЬТАТОВ}

clrscr;

writeln('ЛИНЕЙНАЯ АППРОКСИМАЦИЯ');

writeln(' 1.коэффициенты:');

writeln(' A1=',A1LIN:10:5);

writeln(' A2=',A2LIN:10:5);

writeln(' 2.коэф. корреляции:',kor_lin:10:5);

writeln(' 3.коэф. детерминированности:',deter_lin:10:6);

writeln;

{}

writeln('КВАДРАТИЧНАЯ АППРОКСИМАЦИЯ');

writeln(' 1.коэффициенты:');

writeln(' A1=',A1KVAD:10:5);

writeln(' A2=',A2KVAD:10:5);

writeln(' A3=',A3KVAD:10:5);

writeln(' 2.коэф. детерминированности:',deter_kvad:10:5);

writeln;

{}

writeln('ЭКСПОНЕНЦИАЛЬНАЯ АППРОКСИМАЦИЯ');

writeln(' 1.коэффициенты:');

writeln(' A1=',A1EXP:10:5);

writeln(' C= ',CEXP:10:5);

writeln(' A2=',A2EXP:10:5);

writeln(' 2.коэф. детерминированности:',deter_exp:10:5);

writeln;

{ вывод результатов в файл}

assign(f1,'pararez.txt');

rewrite(f1);

writeln(f1,'ЛИНЕЙНАЯ АППРОКСИМАЦИЯ');

writeln(f1,' 1.коэффициенты:');

writeln(f1,' A1=',A1LIN:10:5);

writeln(f1,' A2=',A2LIN:10:5);

writeln(f1,' 2.коэф. корреляции:',kor_lin:10:5);

writeln(f1,' 3.коэф. детерминированности:',deter_lin:10:5);

writeln(f1);

{}

writeln(f1,'КВАДРАТИЧНАЯ АППРОКСИМАЦИЯ');

writeln(f1,' 1.коэффициенты:');

writeln(f1,' A1=',A1KVAD:10:5);

writeln(f1,' A2=',A2KVAD:10:5);

writeln(f1,' A3=',A3KVAD:10:5);

writeln(f1,' 2.коэф. детерминированности:',deter_kvad:10:5);

writeln(f1);

{}

writeln(f1,'ЭКСПОНЕНЦИАЛЬНАЯ АППРОКСИМАЦИЯ');

writeln(f1,' 1.коэффициенты:');

writeln(f1,' A1=',A1EXP:10:5);

writeln(f1,' C=',CEXP:10:5);

writeln(f1,' A2=',A2EXP:10:5);

writeln(f1,' 2.коэф. детерминированности:',deter_exp:10:5);

writeln(f1);

close(f1);

 

end.


Дата добавления: 2015-07-19; просмотров: 62 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Получение числовых характеристик зависимости.| Результаты работы программы.

mybiblioteka.su - 2015-2024 год. (0.015 сек.)