Přechod na menu, Přechod na obsah, Přechod na patičku
     

C. Matematika

část C01–C05


C01 Aproximace empirických funkcí

Empirická funkce je závislost mezi dvěma proměnnými – jednou nezávislou (x) a druhou závislou (y), která je popsána jen tabulkou dvojic x, y. Takové dvojice získáme zpravidla měřením a můžeme je zpracovat několika metodami:

  1. interpretovat v původní číselné formě, což je obtížné a subjektivní,
  2. zobrazit jako korelační pole zakreslením jednotlivých dvojic nebo jako graf spojením jednotlivých bodů,
  3. závislost mezi daty aproximovat matematickou funkcí vhodného typu:
    • lineární závislostí y = a + b · x
    • polynomem stupně n y = a + b · x + c · x2 + … + j · xn
    • různými funkcemi (mocninnou, exponenciální, logaritmickou, hyperbolickou atd., viz další kapitoly).

Nejčastěji použijeme metodu nejmenších čtverců, která najde parametry aproximační funkce y = f(x) nalezením minima výrazu

V=\sum_{i=1}^n[x_i-f(x_i)]^2

Řešením této podmínky podle parametrů funkce f(x) dostaneme jejich hodnoty, jak ukážeme v dalších kapitolách. Součinitel korelace dovoluje vybrat aproximační funkci, která nejlépe koreluje s vloženými daty.


C02 Lineární regrese neboli aproximace lineární funkcí y = a + b. x

Má-li bodový diagram (korelační pole) závislosti y na x lineární trend, můžeme použít lineární aproximační funkci

y=a+b.x

Základní podmínkou metody nejmenších čtverců je

\sum_1^n(y-(a+b.x))^2=minimum

kde n je počet bodů nebo dvojic x, y. Algebraickými operacemi a parciální derivací podle a, b dostaneme charakteristické rovnice

b.\sum{x^2}+a.\sum{x}=\sum{x}.y
b.\sum{x}+a.n=\sum{y}

Tuto soustavu rovnic můžeme řešit pomocí determinantů a následujícím programem, ke kterému jsou připojeny regresní výpočty.

DATA 50,5.61,60,6.46,70,7.3,80,8.13,90,9,100,9.86
a:
READ x, y: ON ERROR GOTO b
sx = sx + x: kx = kx + x * x
sy = sy + y: ky = ky + y * y
xy = xy + x * y: n = n + 1: GOTO a
b:
px = sx / n: py = sy / n
s1 = SQR((kx – sx * sx / n) / (n – 1))
s2 = SQR((ky – sy * sy / n) / (n – 1))
c = (xy – sx * sy / n) / (n – 1)
r = c / (s1 * s2)
b = c / (s1 * s1)
a = py – b * px
PRINT "px,sx="; px, s1
PRINT "py,sy="; py, s2
PRINT "a,b,r="; a, b, r
e:
INPUT "x="; x
y = a + b * x
PRINT "y="; y
INPUT "dalsi x? a/n"; d$
IF d$ = "a" THEN GOTO e
END
Příklad:

mezičasy Carla Lewise
při světovém rekordu na 100 m
za 9,86 sek byly:
L(m) t(s)
00,14
101,88
202,97
303,88
404,77
505,61
606,46
707,30
808,13
909,00
1009,86
Z bodů 50 – 100 m dostaneme
regresní rovnici
t = 1,36238 + 0,084857.L(m)
r = 0,999974
a = 1,36 je časová ztráta
startem a rozbíháním
b = 0,084857 je strmost lin. části dat a převratná hodnota rychlosti mezi 50 a 100 m v = 11,4845 m/s.

C03 Korelační pole a graf regresní přímky

Naměříme-li nějakou lineární závislost pomocí dvojic dat x, y, můžeme potřebovat

  1. zobrazit příslušné korelační pole (bodový graf)
  2. proložit body regresní přímku, tj. vypočítat metodou nejmenších čtverců součinitele a, b regresní přímky
    y=a+b.x
  3. doplnit výsledky součinitelem korelace, který ukáže těsnost vazby, zatím co regresní součinitel b ukázal strmost této souvislosti.
DATA 100,110,120,107,140,115,160,125,180,132,200,138
DATA 220,147,240,152,260,154,280,159,300,165,320,167
DATA 340,173,360,175,380,179,400,182
CLS: INPUT "xmin,xmax="; x1, x2
INPUT "ymin,ymax="; y1, y2
CLS: SCREEN 10: KEY OFF
LINE (50, 10)-(50, 300): LINE -(640, 300)
FOR x = x1 TO x2 STEP (x2 – x1) / 10
v = 50 + (x – x1) / (x2 – x1) * 500
LINE (v, 300)-(v, 305)
LOCATE 23, v / 8 – 1: PRINT x;: NEXT x
FOR y = y1 TO y2 STEP (y2 – y1) / 10
s = 300 – (y – y1) / (y2 – y1) * 280
LINE (50, s)-(52, s)
LOCATE s / 14 + 1, 2: PRINT y: NEXT y
p:
READ x, y: ON ERROR GOTO q
CIRCLE (50 + (x – x1) / (x2 – x1) * 500, 300 – (y – y1) / (y2 – y1) * 280), 3
sx = sx + x: kx = kx + x * x: sy = sy + y: ky = ky + y * y
xy = xy + x * y: n = n + 1: GOTO p
q:
s1 = kx – sx * sx / n: s2 = ky – sy * sy / n
c = xy – sx * sy / n: b = c / s1: a = (sy – b * sx) / n
y3 = a + b * x1: y4 = a + b * x2
LINE (50, 300 – (y3 – y1) / (y2 – y1) * 280)-(550, 300 – (y4 – y1) / (y2 – y1) * 280)
LOCATE 20, 30: PRINT "a,b="; a; b
r = c / SQR(s1 * s2): LOCATE 21, 30: PRINT "r="; r
END
Příklad:

z dat v řádcích DATA dostaneme a= 83,93382 (úsek na ose y)
b=.2592647 (strmost regresní přímky)
r=.9869513
a na obrazovce bude následující graf. Ten vytiskneme klávesou PrtSc.

C04 Aproximace empirické funkce polynomem druhého stupně

Máme-li empirická data o vztahu y = f(x), který je kvadratický, (např. odpor vody nebo vzduchu v závislosti na rychlosti), můžeme použít k aproximaci kvadratický polynom

y=a+b.x+c.x^2

Součinitele a, b, c lze určit metodou nejmenších čtverců, která vychází z podmínky minimalizace výrazu

\sum_1^n{(y-(a+b.x+c.x^2))^2}

n … počet párů dat (x, y)

Algebraickými operacemi a parciální derivací výrazu podle a, b, c dostaneme charakteristické rovnice

c.\sum{x^4}+b.\sum{x^3}+a.\sum{x^2}=\sum{xy^2}
c.\sum{x^3}+b.\sum{x^2}+a.\sum{x}=\sum{x.y}
c.\sum{x^2}+b.\sum{x}+a.n=\sum{x}

Tyto rovnice vyřešíme pomocí uvedených sumací metodou determinantů následujícím programem, který vypočítá i potřebné sumace.

DATA 1,68,2,59.6,3,56.9
s:
READ x, y: ON ERROR GOTO t
d = d + x: k = x * x
e = e + k: f = f + k * x
g = g + k * k: h = h + y
i = i + x * y: j = j + k * y
n = n + 1: GOTO s
t:
l = e – d * d / n
m = i – d * h / n
c = f – d * e / n
p = j – e * h / n
q = g – e * e / n
r = l * q – o * o
a = (p * l – m * o) / r
b = (m * q – p * o) / r
c = (h – b * d – a * e) / n
PRINT "a,b,c="; a; " "; b; " "; c
u:
INPUT "x="; x
y = (a * x + b) * x + c
PRINT "y="; y
INPUT "dalsi y? a/n"; z$
IF z$ = "a" THEN GOTO u
END
Příklad:

z dat v řádku DATA dostaneme a= 2,850031
b= -16,95013
c= 82,10011
a můžeme počítat regresně.

C05 Aproximace empirické funkce polynomem zvoleného stupně

Má-li empirická funkce složitější průběh, nelze ji uspokojivě aproximovat jednoduchými dvouparametrovými funkcemi ani polynomem druhého stupně. Použijeme-li aproximaci polynomem vyššího stupně, vznikne problém s volbou tohoto stupně. Příliš vysoký stupeň polynomu vede k oscilacím regresních hodnot mezi vloženými body empirické funkce. Proto je nutné vyzkoušet několik stupňů a vybrat regresními výpočty nejlepší.

Při metodě nejmenších čtverců najdeme součinitele polynomu řešením charakteristických rovnic, obsahujících sumace až do x2n

a.\sum{x^2n}+b.\sum{x^{2n-1}}+c.\sum{x^{2n-2}}…=\sum{x^n}.y
a.\sum{x^{2n-1}}+b.\sum{x^{2n-2}}+c.\sum{x^{2n-3}}…=\sum{x^{n-1}}.y
a.\sum{x^n}+b.\sum{x^{n-1}}+c.\sum{x^{n-2}}…+j.n=\sum{y}

Následující program provede všechny potřebné sumace, vyřeší charakteristické rovnice podle a, b, c, … maticovou metodou a nakonec umožní regresní výpočty podle výsledného polynomu.

DATA 40,4.79,60,6.48,80,8.18,100,9.92
INPUT "pocet dvojic,stupen polynomu="; m, n
DIM a(n + 1, n + 2), m(2 * n), p(n)
FOR i = 0 TO n: FOR j = 1 TO m
READ x, y: IF x = 0 THEN x =.000001
m(i) = m(i) + x ^ i: p(i) = p(i) + y * x ^ i: NEXT j
RESTORE: NEXT i: RESTORE
FOR i = n + 1 TO 2 * n: FOR j = 1 TO m
READ x, y: m(i) = m(i) + x ^ i: NEXT j: RESTORE: NEXT i
FOR r = 1 TO n + 1: FOR s = 1 TO n + 1
a(r, s) = m(r + s – 2): NEXT s: NEXT r
FOR r = 1 TO n + 1: a(r, n + 2) = p(r – 1): NEXT r
FOR s = 1 TO n + 1: FOR r = 1 TO n + 1
IF r = s OR a(r, s) = 0 THEN GOTO a
p = a(s, s) / a(r, s)
FOR t = 1 TO n + 2: a(r, t) = p * a(r, t) – a(s, t): NEXT t
a:
NEXT r: NEXT s
FOR r = 1 TO n + 1: a(r, n + 2) = a(r, n + 2) / a(r, r): NEXT r
FOR r = 0 TO n
PRINT "a"; r; "="; a(r + 1, n + 2): NEXT r
b:
INPUT "x="; x: p = a(n + 1, n + 2)
FOR i = n TO 1 STEP -1
p = p * x + a(i, n + 2): NEXT i
PRINT "p="; p
INPUT "dalsi x? a/n"; c$
IF c$ = "a" THEN GOTO b
END
Příklad:

data v programu jsou mezičasy C.Lewise na 100m na OH 1988. Zvolíme-li stupeň polynomu a = 3, dostaneme
a0 = 1,3199971
a1 = 0,089750244
a2 = 1,0000377E-4
a3 = 6,2501783E-7

Tato aproximace vyhovuje, protože vrací vložená data a neosciluje mezi nimi. Pro n = 4 je výsledná aproximace nevyhovující. a0 je časová ztráta startem a rozběhem, a1 je převratná hodnota rychlosti v = 11,142 m/s, další součinitele polynomu jsou korekční na nerovnoměrnost rychlosti.
autor: Ing. Josef Kopřiva, recenzent: Mgr. Martin Sebera, Ph.D. |
Fakulta sportovních studií, Masarykova univerzita |
Návrat na úvodní stránku webu, přístupnost |
Stránky Fakulty sportovních studií MU
| Technická spolupráce:
| Servisní středisko pro e-learning na MU
| Fakulta informatiky Masarykovy univerzity, 2011

Technické řešení této výukové pomůcky je spolufinancováno Evropským sociálním fondem a státním rozpočtem České republiky.