Тести та шпаргалки

Криві регресії Побудова методом параболи


Криві регресії Побудова методом параболиКриві регресії Побудова методом параболиКриві регресії Побудова методом параболиМіністерство освіти України

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

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

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

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

процесів.

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

«Побудова кривих регресії методом парабол»

звичайно

«Теорія аморальності та математична статистика»

Віконав: учні групи ПМП-32

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

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

Львів – 1998

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

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

Криві регресії Побудова методом параболиОтже, як і у вібраційних даних, існує дисперсія, тоді вигляд качанів нелінійного паралу можна приблизно виявити, наводячи точки на міліметровому папері

Будемо шукати пасту на місці y=a0 +aодинx + … + aкxк де а0…, ак — моменти бутонів.

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

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

Подивившись на ставку (xя,yя) прискорений за формулами:

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

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

Криві регресії Побудова методом параболи

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

Поштові дані:

x

о

один

2

3

чотири

у

один

1.5

1.7

2.1

5.9

В вибрати ступінь k=1 результат наступу:

а0 = 0,36

аодин = 1,04

d = 4,776

Графікядо:

В k=2:

а0 = 1,3314; аодин = -0,9029; а2 = 0,4857; d= 1,4731

В k=3:

а0 = 0,9614; аодин = 1,7488; а2 =-1,3643; а3 =-0,3083; d=0,1041

В k=4:

а0 = 1,2250; аодин = -0,1381; а2 =-0,0495; а3 =0,090; ачотири =-0,0002; d=0,7906

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

використовує crt, graph;

varxn,yn:масив[1..30] реальних; n:ціле число; chr:char; a: масив [1..5] реальних;

функція stepin(x:real; i:integer):real;

varj:integer; temp:real;

почати

temp:=1;

для j:=1 я роблю

почати

temp:=temp*x;

inc(i);

кінець;

stepin:=temp;

кінець;

процедура xyread;

varfl:текст; i: ціле;

почати

Текстовий фон (3);

TextColor(0);

clrscr;

призначити(fl,’3.txt’);

reset(fl);

writeln(‘Програма кривої параболічної регресії’);

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

{ writeln(‘Esc для виходу’);}

writeln;

writeln;

writeln(‘x’, ‘y’);

writeln ;

i:=1;

поки не EOF (fl) робити

почати

прочитати (fl,xn[i]);

прочитати (fl,yn[i]);

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

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

кінець;

writeln;

writeln(‘Введіть ENTER, щоб продовжити’);

закрити (fl);

повторити

chr:=ключ читання;

якщо ord(chr)=13, то розрив;

до false;

кінець;

процедура обчисл;

vark :ціле число; i,j,h:ціле;

sx: масив [1..6] реальних;

sy: масив [1..2] реальних;

sxy: масив [1..3] реальних;

matr: масив [1..5, 1..5] реальних;

b: масив [1..5] реальних;

s: справжній;

d:реальний;

m,v:слово;

gd,gm,ch,cv:ціле;

x,y:дійсний;

chr:char;

ex:boolean;

{процедура ўnўtsўalўzatsў• система координат}

процедура initgrah(m:word);

var i:integer;

почати

setbkcolor (білий);

setcolor (пурпурний);

ch:=getmaxx div 2;

cv:=getmaxy div 2;

рядок(1,cv,getmaxx,cv);

рядок(getmaxx,cv,getmaxx-6,cv-3);

рядок(getmaxx,cv,getmaxx-6,cv+3);

рядок(ch,1,ch,getmaxy);

лінія(ch,1,ch-3,6);

рядок(ch,1,ch+3,6);

i:=0;

тоді як ch+i*m

почати

лінія(ch+i*m,cv+2,ch+i*m,cv-2);

лінія(ch-2,cv+i*m,ch+2,cv+i*m);

лінія(ch-i*m,cv+2,ch-i*m,cv-2);

лінія(ch-2,cv-i*m,ch+2,cv-i*m);

i:=i+1;

кінець;

кінець;

почати

writeln;

writeln;

writeln (‘Крива регресії для опису y=g(x), de’);

writeln(‘g(x)=a[0] +a[1]*x + … + a[k]*x^k’);

writeln (‘Введіть ступінь k (k

readln(k);

для i:=k+1 до 5 до

а[i]:=0;

для i:=1 до 6 до

почати

sx[i]:=0;

для j:=1 до n робити

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

кінець;

для i:=1 до 2 зробити

почати

sy[i]:=0;

для j:=1 до n робити

sy[i]:=sy[i] + Степін(ін[j],i);

кінець;

для i:=1 до 3 зробити

почати

sxy[i]:=0;

для j:=1 до n робити

sxy[i]:=sxy[i] + yn[j] *степін(xn[j],i);

кінець;

б[1]:=sy[1];

для j:=2 до k+1 робити

матр[1,j]:=sx[j-1];

для i:=2 до k+1 робити

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

для i:=2 до k+1 робити

для j:=1 до k+1 робити

матр[i,j]:=sx[j+i-2];

матр[1,1]:=n;

{ МЕТОД ГАУСА }

{прямий метод HID-Gauss}

для i:=1 до k зробити

для j:=i+1 до k+1 робити

почати

матр[j,i]:= -матр[j,i]/матр[i,i];

для h:=i+1 до k+1 робити

матр[j,h]:=matr[j,h]+матр[j,i]*матр[i,h];

б[j]:=b[j]+матр[j,i]*б[i];

кінець;

{ обгортка прихована до методу Гауса }

для i:=k+1 до 1 зробити

почати

s:=b[i];

для j:=i+1 до k+1 виконайте s:=sa[j]*матр[i,j];

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

кінець;

writeln(‘Момент:’);

для i:=1 до k+1 робити

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

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

writeln(‘Помилка:’);

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

writeln(‘Введіть, щоб переглянути графік’);

повторити

chr:=ключ читання;

якщо ord(chr)=13, то розрив;

до false;

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

повторити

gd:=виявити;

initgraph(gd,gm,»);

initgrah(m);

highvideo;

setcolor (зелений);

для i:=1 до n робити

почати

лінія (кругла(ch+abs(xn[i]*m))-3, round(cv-yn[i]*m)+3, круглий(ch+abs(xn[i]*m))+3, раунд(cv-yn[i]*m)-3);

лінія (кругла(ch+abs(xn[i]*m))+3, раунд(cv-yn[i]*m)+3, круглий(ch+abs(xn[i]*m))-3, round(cv-yn[i]*m)-3);

кінець;

setcolor (пурпурний);

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

for i:=(-v) to 0 do

почати

x:=i/20;

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

якщо abs(ch-abs(x)*m)

якщо abs(cv-y*m)

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

кінець;

{права на графіку}

для i:=0 до v робити

почати

x:=i/20;

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

якщо abs(ch+abs(x)*m)

якщо abs(cv-y*m)

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

кінець;

outtextxy(30,30,’графічний’);

{масштабування графіки}

повторити

chr:=ключ читання;

випадок поряд (chr) of

{перебільшена графіка}

43: початок

випадок м

400:outtextxy(40,40,’не більше великого’);

10..390:початок

m:=m+10;

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

перерву;

кінець;

кінець;

кінець;

{змінена графіка}

45: початок

випадок м

10:outtextxy(40,40,’не більше маленького’);

10..1000:початок

m:=m-10;

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

перерву;

кінець;

кінець;

кінець;

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

27: початок

ex:=true;

перерву;

кінець;

кінець;

до false;

closegraph;

якщо ex=true then break;

до false;

closegraph;

кінець;

ПОЧАТОК

xyread;

обчисл;

КІНЕЦЬ.

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *