Program EMA

1. Kto (alebo čo) je EMA?

EMA je akronym od anglických slov Easy Mathematical Analysis, čo sa dá preložiť napríklad ako „matematická analýza jednoducho“. Ak sa v ďalšom budem odkazovať na EMU, budem mať na mysli tento program EMA. Pôvodným zámerom bolo vytvoriť program, ktorý by riešil najčastejšie úlohy matematickej analýzy ako sú derivácie a integrály. Lenže postupom času sa z pôvodného plánu zrodila myšlienka naprogramovať software, ktorý by komplexnejšie ponímal úlohy rôznych oblastí matematiky. Ide o už spomínanú matematickú analýzu, algebru a teóriu čísel; teda oblastí, ktorým sa pri štúdiu matematiky venuje azda najväčšia pozornosť. Nosnou myšlienkou je fakt, že len malé percento študentov si pri štúdiu pomáha matematických softvérom. Dôvody sú rôzne a skúsim ich pomenovať. Nie každý matematik musí mať vzťah k počítačom, aj keď tieto vedy sú si veľmi blízke. Matematických programov, ktoré by si bežný človek mohol zaobstarať, nie je veľa. Samozrejme existujú profesionálne programy, ktorých možnosti sú niekoľkonásobne vyššie ako možnosti Emy, ale ich cena môže byť dosť vysoká. Musím podotknúť, že úlohy, ktoré EMA rieši boli vybraté vzhľadom na ich riešiteľnosť pomocou vlastných algoritmov a metód numerickej matematiky. Mojou snahou je ponúknuť program voľne šíriteľný a teda dostupný každému záujemcovi. EMA je založená skôr na výkon ako na vzhľad. Ak bude pomáhať pri výpočtoch v matematike alebo aj v iných vedách, splní svoj cieľ. V prípade problémov s programom je treba nastaviť v operačných systémoch Vista a Windows 7 kompatibilitu s Windows XP. Ak máte nejakú otázku k programu, prosím kontaktujte nás.
Stiahnite si program EMA, je zadarmo !

2. Pracovné prostredie programu

Po spustení programu sa zobrazí pracovná plocha, ktorá sa skladá z troch základných komponentov:
1. Horné menu slúžiace na spúšťanie výpočtových procedúr zoradené podľa daných oblastí
2. Ovládacie prvky vpravo hore
   2.1 Vyčisti – slúži na vyčistenie plochy (zmazanie vypísaného textu)
   2.2 Koniec – slúži na ukončenie práce s programom (aj kláves Esc)
3. Plocha na výpis výsledkov procedúr

Ovládanie celého programu je intuitívne a odvodené od ovládania z prostredia MS Windows.

3. Funkcie

Položka funkcie slúži na prácu s funkciou. Program si pamätá naposledy použitú funkciu a pri zadávaní ju automaticky ponúka. Pri zadávaní desatinných čísel používame ako oddeľovač bodku. Vieme pracovať s nasledujúcimi funkciami, ktoré sú uvedené v tabuľke:

Funkcia Použitie Povolená vstupná hodnota
Sínus sin(x) uhol v radiánoch
Kosínus cos(x) uhol v radiánoch
Tangens tan(x) uhol v radiánoch okrem pí/2 s periódou pí
Arkussínus Asin(x) reálne číslo z intervalu <-1;1>
Arkuscosínus Acos(x) reálne číslo z intervalu <-1;1>
Arkustangens Atan(x) reálne číslo
Absolútna hodnota Abs(x) reálne číslo
2x 2^(x) reálne číslo
ex exp(x) reálne číslo
pix pi^(x) reálne číslo
nx n^(x) reálne číslo
prirodzený logaritmus ln(x) kladné reálne číslo
dekadický logaritmus lg(x) kladné reálne číslo
druhá mocnina x^2 reálne číslo
n-tá mocnina x^n reálne číslo
druhá odmocnina sqrt(x) kladné reálne číslo

Upozornenie: Za parameter n sa volí celé číslo! Ak sa za vstupnú hodnotu zvolí iná ako povolená, program vypíše funkčnú hodnotu ako chybové hlásenie v tvare „-1.#IND00“. Ak sa do vstupu zvolí nepovolená funkcia, program vypíše funkčnú hodnotu rovnú nule.

3.1 Funkčná hodnota v bode

Slúži na výpočet funkčnej hodnoty v zadanom bode z definičného oboru funkcie. Ak zadáme bod mimo definičného oboru, výstupom bude chybové hlásenie v tvare „-1.#IND00“. Zadanie funkcie a bodu je zobrazené na obrázku:
Zadali sme kvadratickú funkciu x^2+3x+5 a zaujíma nás funkčná hodnota v bode 0,5. Po stlačení tlačidla OK prebehne výpočet a jeho výsledok (6,75) sa zobrazí na pracovnú plochu.

3.2 Nulový bod

Hľadanie nulového bodu je vlastne riešenie rovnice, ktorá vznikne, keď funkciu položíme rovnú nule. Alebo je to taký bod, v ktorom je funkčná hodnota rovná nule. Okrem funkcie musíme zadať aj tzv. nultú iteráciu. Je to vstupný bod rôzny od nuly, ktorý sa dosádza do rovnice. Presnosť, s akou algoritmus počíta, si môžeme nastaviť v ponuke Nastavenie.
Zadali sme kvadratickú funkciu x^2+2x+1 a nultú iteráciu rovnú jednej (prednastavená). Po stlačení tlačidla OK prebehne výpočet a jeho výsledok sa zobrazí na pracovnú plochu.
Je treba zdôrazniť, že nie všetky funkcie majú nulový bod v obore reálnych čísel. V takomto prípade nás na to program upozorní, alebo ako nulový bod vypíše hlásenie „-1.#IND00“

3.3 Derivácia

Ponuka derivácia slúži na výpočet derivácie funkcie. Vstupným parametrom je len zadaná funkcia.
Po stlačení tlačidla OK sa nám zobrazí výsledok. Derivácia zadanej funkcie sin3(x) + 2cos(x2):
Výsledok je v trochu nezrozumiteľnom tvare, ale to je spôsobené výpočtovým algoritmom, ktorý má presne stanovený formát. Môže nám však pomôcť pri „ručnom“ výpočte derivácie funkcie, pretože tvar výsledku nám zobrazuje aj akýsi „postup“. My sme skôr zvyknutý na tvar výsledku 3sin2(x)cos(x) – 4x sin(x2), ale pri trochu pozornosti je jasné, že výsledky sa rovnajú.

3.4 Určitý integrál

Výsledkom určitého integrálu na danom intervale je číslo. Toto číslo môžeme chápať aj ako obsah elementárnej oblasti E={ [x,y]; a <= x <= b ,0 <= y <= f(x) }, kde a,b sú krajné body intervalu. Vstupom algoritmu je funkcia, ktorej určitý integrál počítame a interval < a ; b > s podmienkou a < b } (ak a = b potom výsledkom je nula).
Výsledok výpočtu vidíme na obrázku. Presnosť výpočtu je priamo závislá od delenia intervalu, ktoré si môžeme nastaviť v ponuke nastavenie.

3.5 Dĺžka krivky

Dĺžka krivky je priama aplikácia určitého integrálu. Opäť zadávame funkciu a interval na ktorom dĺžku krivky meriame. Zvoľme tie isté hodnoty ako pri výpočte určitého integrálu. Výsledok je znázornený na obrázku.

4. Polynómy

Položka polynómy nám ponúka hľadanie racionálnych koreňov (aj násobných) polynómov patriacich Z[x]. Ako prvé musíme zadať stupeň polynómu, aby sme mohli začať zadávať samotné koeficienty pri príslušnej mocnine x. Maximálny stupeň polynómu, s ktorým môžeme pracovať je 99. Po zadaní koeficientu klikneme na tlačidlo ďalší a mocnina x sa zníži o jedna. Tvar polynómu sa nám priebežne zobrazuje, čo zvyšuje náš prehľad. Budeme pracovať s polynómom 6x5 + 5x4 + 6x3 + 4x2 – 17x + 6. Priebežný medzikrok zadávania polynómu je na obrázku.
Poznámka: Môže nastať prípad, že niektorá mocnina x sa v polynóme nenachádza. Vtedy samozrejme ako koeficient volíme nulu.
Ak sme zápis polynómu ukončili, resp. zadali koeficient pri x^0, stlačíme tlačidlo OK a prebehne výpočet, ktorého výsledok vidíme na obrázku:
Hoci hovoríme o racionálnych koreňoch na výstupe vidno riešenie v tvare reálnych čísel. Je to spôsobené tým, že algoritmus nedokáže vypísať racionálne čísla v tvare zlomku. Ale je jasno vidieť, že korene sú 2/3 a -3/2. Ostatné korene sú z oboru reálnych resp. komplexných čísel. Jeden reálny koreň môžeme zistiť tak, že polynóm vložíme ako funkciu a hľadáme nulový bod.

5. Rovnice

Táto položka umožňuje riešiť systém lineárnych rovníc. Presnejšie povedané sústavu n lineárnych rovníc o n neznámych, kde za n berieme prirodzené číslo od 1 do 10. Aby sme sa ľahšie orientovali medzi neznámymi a koeficientmi, zavedieme označenie:
x[1], x[2], x[3] … x[10] sú neznáme, a[i;j] je koeficient v i-tej rovnici pri j-tej neznámej a b[1], b[2] … b[10] sú pravé strany rovníc (1),(2), …, (10).Potom systém lineárnych rovníc bude vyzerať nasledovne (pre n=10):

a[1,1]*x[1] + a[1,2]*x[2] + a[1,3]*x[3] + … +a[1,10] = b[1]
a[2,1]*x[1] + a[2,2]*x[2] + a[2,3]*x[3] + … +a[2,10] = b[2]
a[3,1]*x[1] + a[3,2]*x[2] + a[3,3]*x[3] + … +a[3,10] = b[3]
.
.
.
a[10,1]*x[1] + a[10,2]*x[2] + a[10,3]*x[3] + … +a[10,10] = b[10]

Zadávanie rovníc prebieha nasledovne. Najprv musíme vyplniť položku o počte rovníc a následne sa riadiť algoritmom. Pre zadávanie sa používa označenie, aké je uvedené vyššie. Tvar každej jednej rovnice sa nám priebežne zobrazuje. Ako príklad si uvedieme tento systém:
x[1] + x[2] + 2*x[3] – x[4] + x[5] = 3
2*x[1] + 5*x[2] -3*x[3] -2*x[4] – x[5] = -5
3*x[1] + 4*x[2] -5*x[3] – x[4] + 2*x[5] = 18
3*x[1] + 5*x[2] + 2*x[3] -2*x[4] + x[5] = 3
3*x[1] + 6*x[2] + 2*x[3] +5*x[4] -2*x[5] = 1

Na obrázku je medzikrok zadávania 3. rovnice a koeficientu pri x[3].
Poznámka: Opäť treba upozorniť na to, že ak niektorá neznáma v rovnici nevystupuje, jej koeficient volíme rovný nule. Po úspešnom zadaní všetkých rovníc stlačíme OK a prebehne výpočet. Vypíše sa nám sústava nami zadaných rovníc a riešenie. V našom prípade x[1] = 3; x[2] = -1; x[3] = -1; x[4] = 2; x[5] = 5. Samozrejme, že môže nastať situácia, že sústava nemá riešenie alebo má nekonečne veľa riešení. V tom prípade nám to algoritmus oznámi.

6. Zisťuj

Položka Zisťuj ponúka 5 výpočtov pre prácu s číslami. Možno ich vidieť na obrázku.

6.1 Hodnota determinantu

Algoritmus na výpočet determinantu pracuje s determinantom stupňa maximálne desiateho. Treba si uvedomiť, že determinant n-tého stupňa obsahuje n2 čísel a každý si spočíta, že zadať determinant stupňa desiateho alebo väčší je riadna fuška. Prvok v i-tom riadku a j-tom stĺpci označíme d[i ; j]. Potom celý determinant stupňa 10 bude vyzerať nasledovne:
d[1;1] d[1;2] d[1;3] … d[1;10]
d[2;1] d[2;2] d[2;3] … d[2;10]
.
.
,
d[10;1] d[10;2] d[10;3] … d[10;10]

Pri zadávaní determinantu najskôr uvedieme jeho stupeň a potom jednotlivé riadky, ktoré sa nám priebežne zobrazujú. Ako príklad si uvedieme determinant 4. stupňa:
2; -5; 1; 2;
-3; 7; -1; 4;
5; -9; 2; 7;
4; -6; 1; 2;

Jeho jednotlivé položky sú oddelené bodkočiarkou, aby sme nestratili prehľad pri desatinnej bodke. Výsledkom (hodnotou) determinantu je číslo. Ak sa hodnota determinantu rovná nule, vieme, že niektoré riadky v determinante sú lineárne závislé. Preto táto procedúra môže slúžiť aj na zisťovanie lineárnej závislosti. Výsledok nášho príkladu je na obrázku.

6.2 Prvočíslo

Prvočíslo je také prirodzené číslo, ktoré je deliteľné len jednotkou a sebou samým. Už Euklides dokázal, že prvočísel je nekonečne veľa. Cieľom tejto položky nie je hľadať stále väčšie a väčšie prvočísla, ale slúži nám na overenie, či zadané číslo (určenej maximálnej veľkosti) je alebo nie je prvočíslo. Pre vstup volíme prirodzené čísla menšie ako 19×108. Myslím si, že pre praktické zisťovanie je táto hranica postačujúca. Ako príklad si uvedieme číslo 1236481.
Výstupom algoritmu je len hlásenie o tom, či zadané číslo je alebo nie je prvočíslo. V našom prípade číslo 1236481 je prvočíslo.

6.3 Rozklad čísla

Každé zložené číslo môžeme rozložiť na konečný súčin prvočísel. Ak sa v rozklade zloženého čísla niektoré prvočíslo opakuje napríklad n-krát, píšeme ho ako n-tú mocninu tohto prvočísla. Tým je zaručené, že každé prvočíslo vyskytujúce sa v rozklade sa tu nachádza práve raz umocnené na príslušnú mocninu. Môžeme vyjadriť všeobecný tvar rozkladu zloženého čísla z.
z=p1ß1.p2ß2…pkßk, kde p1 sú prvočísla a ßi sú ich príslušné mocniny pre i=1,2,…,k
Ako príklad si uvedieme číslo 1024100. Vstup je rovnaký ako pre zisťovanie prvočísla. Ak je zadané číslo prvočíslo, tak výpis nás o tom informuje. Ak je zložené, tak sa vykoná jeho rozklad

6.4 Najväčší spoločný deliteľ

Spoločný deliteľ n-čísel je také číslo, ktoré delí každé z týchto n-čísel. Ak existuje viac takýchto spoločných deliteľov, tak najväčšieho z nich budeme označovať najväčší spoločný deliteľ n-čísel, ďalej NSD. Algoritmus nám umožňuje počítať NSD až zo 100 čísel. Ako príklad si uvedieme NSD troch čísel 144, 36, 24. Pri vstupe zvolíme počet čísel (3) a postupne zadávame čísla. Je treba povedať, že na poradí zadávaných čísel nezáleží. Zostupné usporiadanie v našom príklade výsledok neovplyvní.

6.5 Najmenší spoločný násobok

Spoločný násobok n-čísel je také číslo, ktoré každé jedno z týchto n-čísel delí. Takýchto spoločných násobkov existuje nekonečne veľa a najmenší takýto násobok budeme nazývať najmenší spoločný násobok n-čísel, ďalej NSN. Algoritmus nám umožňuje počítať NSN až zo 100 čísel. Ako príklad si vypočítame NSN zo 4 čísel 144, 96, 60, 9. Na poradí zadávaných čísel nezáleží. Pri vstupe zvolíme počet čísel (4) a postupne zadávame čísla.

7. Nastavenie

Táto položka slúži na nastavenie výpočtových parametrov presnosť a delenie. Presnosť sa používa pri hľadaní nulového bodu funkcie. Platí, že čím menšia hodnota parametra presnosť, tým presnejší výsledok (ale aj dlhší výpočet). Delenie znamená delenie zadaného intervalu a používa pri výpočte určitého intergrálu a dĺžky krivky. Tu platí opak. Čím väčšia hodnota parametra delenie, tým presnejší výsledok (ale aj dlhší výpočet). Nastavené hodnoty sa ukladajú do externého súboru a preto sa nemenia pri opätovnom spustení programu. Po kliknutí na tlačidlo „Štandartné“ sa prestavia hodnoty na 0.001 resp. 10 000.

8. Technické prostriedky

EMA je program, ktorý na svoje spustenie potrebuje ľubovoľný počítač pracujúci na operačnom systéme Windows 98, ME, 2000, XP, Vista, 7. V prípade problémov s programom je treba nastaviť v operačných systémoch Vista a Windows 7 kompatibilitu s Win XP:
Kliknime pravým tlačidlom myši na ikonu programu, vyberme z ponuky Vlastnosti->Kompabilita. Označíme možnosť „Tento program spustiť v režime kompatibilnom so systémom“ a vyberieme Windows XP (Service Pack 3).
EMA bola naprogramovaná v prostredí Microsoft Visual C++ 6.0 Introductory Edition a je distribuovaná ako program typu freeware. Akékoľvek komerčné využitie treba hlásiť autorovi. Ak máte záujem o zdrojové kódy, po dohode Vám ich sprístupním.

Ďakujeme za používanie programu EMA.

Mgr. Miroslav Rosival


Novinky

Programujeme pre Vás

Programujeme pre Vás