Реферат

Реферат Побудова кривих регресій методом парабол

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.11.2024


Міністерство освіти України

Львівський державний університет ім. І. Франка

Факультет прикладної математики

та інформатики

Кафедра теорії оптимальних

процесів.

Звіт

про виконання індивідуального завдання № 3

“Побудова кривих регресій методом парабол”

з курсу

"Теорія імовірностей та математична статистика"

Виконав: студенти групи ПМП-32

Ковальський Д., Шевчук А.

Керівник: Сеньо П.С.

Львів – 1998

Теоритичні відомості

Лінійна залежність є найпростішою і в більшості випадків є початковим, першим наближенням до істини. Часто потрібно встановити більш адекватну залежність між компонентами наприклад двомірного випадкового вектора, яка як правило не лінійна.

Т
ак як у вибіркових данних присутні випадковості, то початковий вигляд нелінійної залежності можна приблизно уявити побудувавши на міліметровому папері сукупність точок

Ми будемо шукати залежність у вигляді y = a0 + a1x + … + akxk , де а0, …, аk – початкові моменти.

Ця передумова обумовлюється теоремою Вейерштраса про наближення будь-якої функції многочленом відповідного степеня (многочленом Берштейна).

Складність полягає в тому, що як правило в статистиці многочлени степеня k > 4 не використовуються, а початкові моменти вище четвертого дають великі похибки, а експериментальних данних багато, отже не можна провести многочлен який би проходив через всі вибіркові точки. Тому параболу будемо будувати таку, щоб сума квадратів відхилень вибіркових значень була найменшою.

Розглянувши пари (xi,yi) скористаємося формулами:

Р
озв'язавши дану систему, отримаємо рівняння шуканої параболи.

Найбільшу величину похибки при апроксимації початкових данних шукатимемо за наступною формулою:



Приклад дії програми

Початкові данні:

x

o

1

2

3

4

y

1

1.5

1.7

2.1

5.9

При виборі степеня k=1 результат отримано наступний:

а0 = 0.36

а1 = 1.04

d = 4.776

Графік:



П
ри
k=2:

a0 = 1.3314; a1 = -0.9029; a2 = 0.4857; d= 1.4731

При k=3:

a0 = 0.9614; a1 = 1.7488; a2 =-1.3643; a3 =-0.3083; d= 0.1041

П

ри
k=4:

a0 = 1.2250; a1 = -0.1381; a2 =-0.0495; a3 =0.090; a4 =-0.0002; d= 0.7906

Текст програми (Borland Pascal 7.0):

uses crt, graph;

var xn,yn:array[1..30] of real; n:integer; chr:char; a: array [1..5] of real;

function stepin (x:real; i:integer):real;

var j:integer; temp:real;

begin

temp:=1;

for j:=1 to i do

begin

temp:=temp*x;

inc (i);

end;

stepin:=temp;

end;

procedure xyread;

var fl:text; i:integer;

begin

TextBackground(3);

TextColor(0);

clrscr;

assign (fl,'3.txt');

reset (fl);

writeln ('Програма знаходження кривих регресiй методом парабол');

writeln ('Шевчук А., Ковальський Д. ПМП-32, 1998');

{ writeln ('Esc for Exit');}

writeln;

writeln;

writeln (' x', ' y');

writeln ;

i:=1;

while not EOF (fl) do

begin

read (fl,xn[i]);

read (fl,yn[i]);

writeln ('x[',i,']=',xn[i]:0:2,' ',' y','[',i,']=',yn[i]:0:2);

inc (i); n:=i-1;

end;

writeln;

writeln ('Тиснiть ENTER для продовження');

close (fl);

repeat

chr:=readkey;

if ord(chr)=13 then break;

until false;

end;

procedure obchysl;

var k :integer; i,j,h:integer;

sx: array [1..6] of real;

sy: array [1..2] of real;

sxy: array [1..3] of real;

matr: array [1..5, 1..5] of real;

b: array [1..5] of real;

s: real;

d:real;

m,v:word;

gd,gm,ch,cv:integer;

x,y:real;

chr:char;

ex:boolean;

{процедура ўнўцўалўзацў• системи кординат}

procedure initgrah(m:word);

var i:integer;

begin

setbkcolor(white);

setcolor(magenta);

ch:=getmaxx div 2 ;

cv:=getmaxy div 2 ;

line(1,cv,getmaxx,cv);

line(getmaxx,cv,getmaxx-6,cv-3);

line(getmaxx,cv,getmaxx-6,cv+3);

line(ch,1,ch,getmaxy);

line(ch,1,ch-3,6);

line(ch,1,ch+3,6);

i:=0;

while ch+i*m<=getmaxx-6 do

begin

line(ch+i*m,cv+2,ch+i*m,cv-2);

line(ch-2,cv+i*m,ch+2,cv+i*m);

line(ch-i*m,cv+2,ch-i*m,cv-2);

line(ch-2,cv-i*m,ch+2,cv-i*m);

i:=i+1;

end;

end;

begin

writeln;

writeln;

writeln ('Крива регресii описуэться рiвнянням y=g(x), де');

writeln ('g(x)=a[0] + a[1]*x + ... + a[k]*x^k');

writeln ('Введiть cтепiнь k (k < = 4):');

readln (k);

for i:=k+1 to 5 do

a[i]:=0;

for i:=1 to 6 do

begin

sx[i]:=0;

for j:=1 to n do

sx[i]:=sx[i] + stepin (xn[j], i);

end;

for i:=1 to 2 do

begin

sy[i]:=0;

for j:=1 to n do

sy[i]:=sy[i] + stepin (yn[j], i);

end;

for i:=1 to 3 do

begin

sxy[i]:=0;

for j:=1 to n do

sxy[i]:=sxy[i] + yn[j] * stepin (xn[j], i);

end;

b[1]:=sy[1];

for j:=2 to k+1 do

matr[1,j]:=sx[j-1];

for i:=2 to k+1 do

b[i]:=sxy[i-1];

for i:=2 to k+1 do

for j:=1 to k+1 do

matr[i,j]:=sx[j+i-2];

matr[1,1]:=n;

{ МЕТОД ГАУСА РОЗВ'ЯЗАННЯ С.Л.А.Р. }

{ прямий хiд методу гауса }

for i:=1 to k do

for j:=i+1 to k+1 do

begin

matr[j,i]:= -matr[j,i]/matr[i,i];

for h:=i+1 to k+1 do

matr[j,h]:=matr[j,h]+matr[j,i]*matr[i,h];

b[j]:=b[j]+matr[j,i]*b[i];

end;

{ обернений хiд методу гауса }

for i:=k+1 downto 1 do

begin

s:=b[i];

for j:=i+1 to k+1 do s:=s-a[j]*matr[i,j];

a[i]:=s/matr[i,i];

end;

writeln ('Моменти:');

for i:=1 to k+1 do

writeln ('a[',i-1,']=',a[i]:0:4);

d:=sy[2]-a[1]*sy[1]-a[2]*sxy[1]-a[3]*sxy[2]-a[4]*sxy[3];

writeln ('Похибка:');

writeln ('d = ',d:0:4);

writeln ('Enter для перегляду графiка');

repeat

chr:=readkey;

if ord(chr)=13 then break;

until false;

m:=50;v:=160;ex:=false;

repeat

gd:=detect;

initgraph(gd,gm,'');

initgrah(m);

highvideo;

setcolor(green);

for i:=1 to n do

begin

line (round(ch+abs(xn[i]*m))-3, round(cv-yn[i]*m)+3,round(ch+abs(xn[i]*m))+3, round(cv-yn[i]*m)-3);

line (round(ch+abs(xn[i]*m))+3, round(cv-yn[i]*m)+3,round(ch+abs(xn[i]*m))-3, round(cv-yn[i]*m)-3);

end;

setcolor(magenta);

{лўва частина графўка}

for i:=(-v) to 0 do

begin

x:=i/20;

y:=a[1] + a[2]*x + a[3]*x*x + a[4]*x*x*x +a[5]*x*x*x*x;

if abs(ch-abs(x)*m) <32500 then

if abs(cv-y*m)<32500 then

lineto(round(ch-abs(x)*m),round(cv-y*m));

end;

{права частина графўка}

for i:=0 to v do

begin

x:=i/20;

y:=a[1] + a[2]*x + a[3]*x*x + a[4]*x*x*x +a[5]*x*x*x*x;

if abs(ch+abs(x)*m) <32500then

if abs(cv-y*m)<32500 then

lineto(round(ch+abs(x)*m),round(cv-y*m));

end;

outtextxy(30,30,'graphic');

{маштабування графўка}

repeat

chr:=readkey;

case ord(chr) of

{збўльшення графўка}

43:begin

case m of

400:outtextxy(40,40,'no more big');

10..390:begin

m:=m+10;

v:=20*trunc(400/m);

break;

end;

end;

end;

{зменшення графўка}

45:begin

case m of

10:outtextxy(40,40,'no more small');

10..1000:begin

m:=m-10;

v:=20*trunc(400/m);

break;

end;

end;

end;

{повернення в меню}

27:begin

ex:=true;

break;

end;

end;

until false;

closegraph;

if ex=true then break;

until false;

closegraph;

end;

BEGIN

xyread;

obchysl;

END.

Список літератури

1. Крамер Гарольд. Математические методы статистики. М.: Мир, 1976.

2. Бух Арлей. Введение в теорию вероятностей и математическую статистику. М., 1951.


1. Реферат на тему The Man Who Counts The Killings Essay
2. Курсовая на тему Разработка технологического процесса изготовления детали Основа излучателя
3. Реферат Птицы средней полосы России
4. Реферат Философия, ее предназначение, сущность и функции
5. Реферат Проблемы развития детского мышления в условиях зрительной патологии ранний и младший дошкольный
6. Диплом на тему Проектирование рыбоконсервного завода
7. Реферат на тему The Mighty Ducks Levels Of Development Essay
8. Реферат Добыча газа
9. Сочинение на тему Спорт
10. Реферат Польща 2