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

C. Matematika

část C11–C16


C11 Funkce hustoty a Abbottova křivka empirické funkce

Má-li empirická funkce y = f(x) omezený rozsah funkčních hodnot, takže ymin < y < ymax, je možné sestrojit funkci hustoty hodnot y a Abbottovu křivku této funkce následujícím způsobem:

  1. rozdělíme interval y na n částí o šířce d = (ymax - ymin) / n
  2. osu nezávislé proměnné x nebo t rozdělíme na dostatečně malé intervaly dx (dt)
  3. spočítáme, v kolíka intervalech dx nebo dt je hodnota y v určitém intervalu y. Četnosti v těchto intervalech tvoří funkci hustoty. Pozn.: tzv. úrovňové čítače mohou stanovit tyto četnosti během měření.
  4. postupným sčítáním četností od nejvyšší úrovně dolů dostaneme souřadnice Abbottovy křivky.

Všechny tyto operace a grafické zobrazení výsledků provede následující program.



Literatura

  1. Abbott F. J. – Firestone F. A.: Specifying surface quality. Mechanical Engineering 55, 1933, str. 569–572
  2. Technisches Messen 1980, č. 10, str. 361–368

DATA 5,5,6,8,10,14,18,23,28,32,35,37,39,40,40,38,37,37,38,39,41
DATA 44,48,51,54,55,55,51,46,38,31,28,26,25,24,20,13,10
ma = 0: mi = 100000!: CLS
a:
READ y: ON ERROR GOTO v
IF y > ma THEN LET ma = y
IF y < mi THEN LET mi = y
n = n + 1: GOTO a
v:
INPUT "počet úrovní "; m
RESTORE: DIM u(m), s(m): d = (ma – mi) / m
FOR i = 1 TO n
READ y: a = (y – mi) / d
u(a) = u(a) + 1: NEXT i
FOR i = m – 1 TO 0 STEP -1
s = s + u(i): s(i) = s
LPRINT i, u(i), s(i): NEXT i
SCREEN 10: CLS: KEY OFF
LINE (20, 20)-(20, 300)
LINE (350, 20)-(350, 300)
LINE (500, 20)-(500, 300)
LINE (20, 300)-(640, 300)
RESTORE
dx = 330 / n: du = 15: su = 2.5
my = 200 / (ma – mi): mh = my * ma / (m + 1)
FOR i = 0 TO n – 1
READ y: CIRCLE (20 + i * dx, 300 – (y – mi) * my), 2
NEXT i:
FOR i = 1 TO m
CIRCLE (350 + u(i) * du, 300 – i * mh), 2, 9
CIRCLE (500 + s(i) * su, 300 – i * mh), 2, 12
NEXT i
END
Příklad:

z dat v prvních dvou řádcích programu dostaneme:
úroveňpočetsoučet
933
825
7813
6417
5421
4425
3227
2229
1332
0335
a následující graf.
Zvětšit obrázek Obr. C11: Graf zobrazený programem
Obr. C11: Graf zobrazený programem

C12 Harmonická analýza empirické křivky

V cyklických sportech existuje řada veličin (síla, rychlost, rychlení atd.), jejichž časový průběh je téměř periodický a lze jej změřit. Získaná křivka je téměř periodická, protože se opakuje s periodou T a její tvar se opakuje s pravidelností, úměrnou výkonnosti sportovce. Proto je cennou informací o sportovní technice, a výsledky analýzy takové křivky dovolují srovnávat techniku sportovců exaktním způsobem.

Analýzou periodických křivek se zabýval francouzský matematik Fourier (1786–1830), který zjistil, že libovolný periodický průběh lze popsat trigonometrickou řadou

y=a_0+a_1.sin({\omega}t+f_1)+a_2.sin({\omega}t+f_2)+…+a_n.sin(n{\omega}t+f_n)

kde

a0 stálá složka y (aritmetický průměr všech hodnot y)

ω = 2p/T základní úhlová rychlost

T trvání jedné periody

a1 … an amplitudy jednotlivých harmonických složek

f1 … fn fázové úhly jednotlivých harmonických složek


Tzv. Fourierova analýza je vlastně výpočet amplitud a fázových úhlů ze souřadnic y, získaných vzorkováním křivky v dostatečně malých pravidelných odstupech. Tento výpočet provedeme následujícím programem, který fázové úhly normuje tak, aby f1 = 0.

Nakonec program nakreslí vektorový diagram harmonických složek který dovoluje snadnější srovnávání jednotlivých sportovců. Diagram můžeme vytisknout klávesou PrtSc.

DATA.25,1.4,2,3,3.3,3,2.4,2.1,2.2,2.8,3.4,4.05,3.8,3.3
DATA 2.7,2.6,2.65,2.85,3,2.6,2,1.5,1.2,1.15
INPUT "jméno,datum,disciplina "; n$, d$, c$: LPRINT n$, d$, c$: LPRINT
DIM y(50), c(25), f(25): s = 0: n = 1: pi = 3.14159265#
a:
READ y(n): ON ERROR GOTO b
s = s + y(n): n = n + 1: GOTO a
b:
n = n – 1: c0 = s / n
LPRINT "c0="; c0: LPRINT
d = 2 * pi / n: h = 0
c:
a = 0: b = 0: e = 0: h = h + 1
FOR i = 1 TO n
a = a + y(i) * COS(h * e)
b = b + y(i) * SIN(h * e)
e = e + d: NEXT i
v = SQR(a * a + b * b)
IF b = 0 THEN LET u = pi / 2 * SGN(a): GOTO d
u = ATN(a / b) – pi * (b < 0)
d:
c(h) = 2 * v / n: f(h) = u
LPRINT "c,f"; h; "="; c(h), f(h) * 180 / pi
IF h < n / 2 – 1 THEN GOTO c
LPRINT: LPRINT "redukce fází na f(1)=0"
FOR h = 2 TO n / 2
f(h) = f(h) – h * f(1)
e:
IF f(h) < 0 THEN f(h) = f(h) + 2 * pi: GOTO e
f(h) = f(h) – 2 * pi * INT(f(h) / (2 * pi))
LPRINT "f("; h; ")="; f(h) * 180 / pi
NEXT h: f(1) = 0: LPRINT
LPRINT "modrá = 1"
LPRINT "zelená = 2"
LPRINT "tyrkys = 3"
LPRINT "červená = 4"
LPRINT "fialová = 5"
LPRINT "hnědá = 6"
LPRINT "bílá = 7"
LPRINT "šedá = 8"
SCREEN 9: CLS
FOR h = 1 TO n / 2
LINE (100, 160)-(100 + c(h) * 400 * COS(f(h)), 160 – c(h) * 400 * SIN(f(h))), h
NEXT h
END
Příklad:

z dat v prvním řádku programu dostaneme:

c0= 2.510417

c,f 1 =.8451707 -78.57519
c,f 2 =.2911244 -22.51807
c,f 3 =.627077 -55.60263
c,f 4 =.257225 159.8265
c,f 5 = 7.802891E-02 167.1409
c,f 6 = 6.833781E-02 142.4315
c,f 7 = 2.559826E-02 32.39182
c,f 8 = 3.333294E-02 90.00003
c,f 9 = 0.0187169 75.38255
c,f 10= 1.777586E-02 -83.84866
c,f 11= 2.980548E-02 48.56192

redukce fází pro f(1)=0
f(2) = 134.6323
f(3) = 180.1229
f(4) = 114.1272
f(5) = 200.0169
f(6) = 253.8827
f(7) = 222.4181
f(8) = 358.6016
f(9) = 62.55928
f(10)= 341.9032
f(11)= 192.889

C13 Rychlá Fourierova tranformace (FFT)

V předchozí kapitole jsme popsali harmonickou analýzu křivky, dané libovolným počtem vzorků pro jednu periodu. Pro velký počet vzorků by trvala harmonická analýza dlouho, a proto byla objevena tzv. rychlá Fourierova transformace (FFT – Fast Fourier Transform). Na rozdíl od předchozí analýzy vyžaduje, aby počet vzorků byl 2n, kde n je celé číslo, tedy 22 = 4, 23 = 8, 24  = 16, 25 = 32, 26 = 64 atd. Splňuje-li počet vzorků tuto podmínku, je možno použít rychlou Fourierovu transformaci k výpočtu harmonických složek původní periodické funkce. Existují dvě možnosti:

  • A. vědecké kalkulátory Hewlett Packard HP-48, HP-49 mají FFT vestavěnu (MTH – NEXT). Data vepíšeme do tabulkového procesoru MATRIX a stiskneme FFT. Dostaneme výsledky v komplexních číslech, které snadno převedeme do POLAR, případně změníme radiány na stupně (RAD).
  • B. tabulkový procesor Microsoft EXCEL obsahuje FFT v oddíle NÁSTROJE. Použití je následující:
    1. spustíme EXCEL myší na ikoně EXCEL
    2. do sloupce tabulky vepíšeme analyzované vzorky y1, y2, …, ya, na příklad pro 16 vzorků použijeme B2:B17.
    3. myší volíme NÁSTROJE – ANALÝZA DAT – HARMONICKÁ ANALÝZA, ENTER
    4. vepíšeme vstupní oblast B2:B17, výstupní oblast C2:C17 OK
    5. FFT je hotova, výsledky jsou v komplexních číslech x + iy.
    6. převod do polárního tvaru: myší označíme D2:D17
    7. do D2 vepíšeme fx: Inženýrská analýza: =ImAbs(C2) ENTER
    8. myší volíme ÚPRAVY – VYPLNIT – DOLU, ENTER převede zbytek sloupce
    9. myší označíme E2:E17
    10. do E2 vepíšeme fx: =ImArgument(D2), ENTER
    11. myší volíme ÚPRAVY – VYPLNIT – DOLU, ENTER převede zbytek sloupce
    12. myší označíme F2:F17
    13. do F2 vepíšeme =E2/16, ENTER přepočítá na skutečnou hodnotu amplitudy, které byly 2n –krát větší
    14. myší volíme ÚPRAVY – VYPLNIT – DOLU, ENTER přepočítá zbytek sloupce
    15. myší označíme G2:G17
    16. do G2 vepíšeme fx: Matematické funkce: =DEGREES(F2), ENTER
    17. myší volíme ÚPRAVY – VYPLNIT – DOLU, ENTER přepočítá zbytek sloupce z radiánů na stupně
    18. tabulku doplníme hlavičkami v řádce 1:
      • nad sloupec B vepíšeme y
      • nad sloupec C vepíšeme FFT
      • nad sloupec D vepíšeme ABS
      • nad sloupec E vepíšeme ARG(RAD)
      • nad sloupec F vepíšeme ABS/16
      • nad sloupec G vepíšeme ARG(DEG)
    19. myší volíme písmo, velikost písma, potvrdíme OK
    20. myší volíme ikonu tiskárny, tabulka se vytiskne.

C14 Použití matic ve sportu

Způsob, kterým se zpracují prvky matic při jejich násobení dovoluje použít součin dvou matic k rychlému výpočtu bodů z tabulky vítězství, remíz a porážek na příklad v kopané a hokeji. První matici tvoří tabulka vítězství, remíz a porážek, která má proto rozměr n × 3 pro n mužstev. Druhou matici tvoří jednosloupcový vektor 3 × 1, v němž jsou body za vítězství, remízu a porážku: 2, 1, 0.

Příklad:

výsledek soutěže je zapsán tabulkou:
vítězství remízy porážky 2

1

0
body
17 3 5 37
11 11 3 33
13 5 7 31
12 6 7 30
13 4 8 30
9 10 6 28
11 6 8 28
9 5 11 23
6 5 11 21
8 5 12 21
9 3 13 21
6 8 11 20
3 8 14 14
3 7 15 13
Po výpočtu bodů je nutno použít další pravidla pro stanovení pořadí družstev se stejným počtem bodů.
Pozn.: počet sloupců první matice se musí rovnat počtu řádků druhé matice.

Literatura

  1. Jelínek M.: Matice. SPN, Praha, 1976, str. 39–40

DATA 17,3,5
DATA 11,11,3
DATA 13,5,7
DATA 12,6,7
DATA 13,4,8
DATA 9,10,6
DATA 11,6,8
DATA 9,5,11
DATA 6,5,11
DATA 8,5,12
DATA 9,3,13
DATA 6,8,11
DATA 3,8,14
DATA 3,7,15
DATA 2,1,0
INPUT "r1,s1=r2,s2 "; m, n, l
DIM a(m, n), b(n, l), c(m, l)
FOR i = 1 TO m: FOR j = 1 TO n
READ a(i, j): NEXT j: NEXT i
FOR i = 1 TO n: FOR j = 1 TO l
READ b(i, j): NEXT j: NEXT i
FOR k = 1 TO m: FOR j = 1 TO l: s = 0
FOR i = 1 TO n: s = s + a(k, i) * b(i, j): NEXT i
c(k, j) = s: NEXT j: NEXT k
FOR k = 1 TO m: FOR j = 1 TO l
PRINT c(k, j);: NEXT j: PRINT: NEXT k
END

Vidíme, že za matici vítězství, remíz a porážek je připsán vektor bodů 2,1,0. Po spuštění programu vložíme r1,s1=r2,s2 14,3,1 a ENTER dá výsledek.


C15 Numerické řešení diferenciální rovnice

Biomechanická analýza sportovního pohybu může vést ke vzniku matematického modelu a ten může dát tzv. pohybovou rovnici.

Pokud taková rovnice obsahuje dráhu, rychlost, zrychlení nebo síly či jiné mechanické veličiny, jde o diferenciální rovnici, protože jmenované veličiny jsou k sobě ve vztahu proměnné a některých jejích derivací. Řešením takové rovnice není kořen, ale funkce, která dosazena do této rovnice spolu s příslušnými derivacemi tuto rovnici splňuje.

Řešení diferenciálních rovnic může být někdy snadné, jindy obtížné nebo dokonce nemožné, snažíme-li se rovnici řešit analyticky, obecně, ve tvaru funkce. Existuje ale ještě další metoda řešení, které nazýváme číselné (numerické), protože dává číselné tabulky hodnot proměnných nezávislých i závislých. Existuje řada metod numerického řešení diferenciálních rovnic, z nichž asi nejznámější a nejpropracovanější jsou metody dvou německých matematiků Rungeho (1895) a Kutty (1901). Ti navrhli různě komplikované a přesné metody pro různé typy rovnic. Jejich výhodou je, že mohou vyřešit i rovnice, analyticky neřešitelné.

Ukážeme si na příkladu splývání plavce po obrátce vznik, řešení a výsledky diferenciální rovnice analytické, pak uvedeme program pro numerickou integraci diferenciální rovnice II. řádu (s druhou derivací) metodou Runge – Kutta 4. řádu (se 4 korekcemi). Srovnáním obou řešení uvidíme, že numerické řešení dosahuje velmi vysoké přesnosti.


Příklad: plavec po obrátce se odrazí a vzdaluje se od stěny počáteční rychlostí v0. Ještě než začne aktivně plavat, překonává odpor Fo = k.v2, a zpomaluje se se zpomalením a. Proto vzniká setrvačná síla Fs = m.a. Podle principu akce a reakce musí být tyto vodorovné síly v rovnováze, takže platí pohybová rovnice sil

F_o+F_s=0 (1)

Dosazením

k.v^2+m.a=0 (2)

Odvodíme-li rychlost v a zpomalení a od dráhy y jako derivace podle času, bude rovnice

k.y'^2+m.y''=0 (3)

To je diferenciální rovnice 2. řádu, protože obsahuje druhou derivaci dráhy podle času:

y''=-k/m.y'^2 (4)

Dosazením

dv/dt=-k/m.v^2 (5)

Můžeme separovat proměnné na obě strany rovnítka

dv/v^2=-k/m.dt

integrací

1/v=k/m.t+c (6)

Pro t = 0 je v = v0, takže integrační konstanta c = 1 / v0, a rovnice bude

1/v=k/m.t+1/v_0=(k.v_0.t+m)/m.v_0

a rychlost

v=m.v_0/(k.v_0.t+m) (7)

S tímto vzorcem můžeme počítat časový průběh rychlosti v(t), známe-li odpor vody Fo při některé rychlosti v, protože z nich můžeme stanovit k = F/ v2 · Z rovnice (7) bude

dy/dt=m.v_0/(k.v_0.t+m)

dostaneme po separaci proměnných další integrací

y=m/k.ln(1+k/m.v_0.t) (8)

Tento výraz dovoluje počítat usplývanou dráhu. Obě veličiny, dráhu a rychlost, analyticky vyjádřené jako funkce času můžeme srovnat s výsledky numerického řešení rovnice (4), provedeného následujícím programem pro metodu Runge – Kutta.


Literatura

  1. Rychnovský R.: Obyčejné diferenciální rovnice a jejich řešení. Praha, SNTL – Práce, 1972
  2. Abramowitz M. – Irene A. Stegun: Handbook of Mathematical Functions, NDS, 1964, vzorec 25.5.20

INPUT "x0,y0,y!0,h="; x0, y0, z0, h
INPUT "xmax="; xm
a:
x = x0: y = y0: z = z0
GOSUB fun: k1 = h * f: PRINT x, y, z, f
x = x0 + h / 2
y = y0 + z0 * h / 2 + k1 * h / 8
z = z0 + k1 / 2
GOSUB fun: k2 = h * f
z = z0 + k2 / 2
GOSUB fun: k3 = h * f
x = x0 + h
y = y0 + z0 * h + k3 * h / 2
y = y0 + k3
GOSUB fun: k4 = h * f
x0 = x
y0 = y0 + h * (z0 + (k1 + k2 + k3) / 6)
z0 = z0 + (k1 + 2 * (k2 + k3) + k4) / 6
IF x < xm THEN GOTO a
END
fun:
f = -z * z / 3
RETURN
END
Před spuštěním programu vepíšeme za label fun: upravený výraz pro
x" = -k/m. x´2 ve zkrácené formě: f = – z*z / 3
Po spuštění programu vložíme
x0 (= t0)´= 0 (s)
y0 (= L0) = 0 (m)
y´0(= v0) = 4 (m/s)
h (= dt) = 0,1 (s)
a dostaneme numerické řešení. K uvedeným dobám x (=t) počítáme podle vzorců, získaných analytickým řešením dráhy a rychlosti, připíšeme je na shodné řádky a můžeme porovnávat přesnost numerického řešení:
tx(anal]x(numer]v(anal)v(numer)a(anal)a(numer)
0 0 0 4 4 -5,333333-5,333333
0,10,37548940,37548153,529412 3,529416 -4,152248-4,152258
0,20,70916620,709154 3,157895 3,157900 -3,324100-3,324111
0,31,009417 1,009403 2,857143 2,857148 -2,721088-2,721099
0,41,282332 1,282317 2,608696 2,608701 -2,268432-2,268440
0,51,532477 1,532461 2,42,400000 -1,92 -1,920008
0,61,76336 1,763344 2,222222 2,222226 -1,646090-1,646096
0,71,977737 1,977721 2,068965 2,068969 -1,426872-1,426878
0,82,177811 2,177795 1,935484 1,935487 -1,248699-1,248704
0,92,365372 2,365356 1,818182 1,818185 -1,101929-1,101932
1,02,541893 2,541878 1,714286 1,714289 -0,979592-0,979595

C16 Diferenční rovnice v mechanice

Působí-li na volné těleso o hmotnosti m proměnlivá síla F stálého směru, a můžeme-li tuto sílu zapsat ve stejně dlouhých intervalech času, dostatečně krátkých, můžeme přibližně řešit průběh zrychlení, rychlosti a dráhy pomocí jednoduchých diferenčních rovnic:

pomocí druhého Newtonova principu počítáme zrychlení a = F / m

pomocí zrychlení změněnou rychlost vi+1 = vi + a · Δt

pomocí rychlosti změněnou dráhu si+1 = si + v · Δt

Abychom dosáhli dostatečnou přesnost, měl by interval mezi sousedními silami, rychlostmi i drahami být kratší nežli 0,05 sek.

Všechny tyto výpočty provede program:

DATA F1,F2,F3,… FN
INPUT "hmotnost(kg),počát.rychlost(m/s),krok času(s)=";m,v,d
LPRINT m,v,d: LPRINT
LPRINT tab(7)"T"; tab(16)"F";tab(25)"A";tab(34)"V";tab(43)"S": lprint
V:
READ f: ON ERROR GOTO K
a=f/m: v=v+a*d: s=s*d: LPRINT USING "#####.###";t;f;a;v;s
t=t+d: GOTO V
K:
END
Do řádku "data" vepíšeme ekvidistantní hodnoty sil F v newtonech, program spustíme a vložíme hmotnost objektu v kg, jeho počáteční rychlost v m/s a krok času v s. Vytiskne se tabulka vypočítaných hodnot. Použijeme-li příkaz "print" místo "lprint" v řádku mezi labely V a K, dostaneme tabulku na obrazovce monitoru.
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.