abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 08:00 | Zajímavý článek

Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 80 tisíc vývojářů. Z Česka jich bylo 792. Ze Slovenska 252. Celkově bylo 91,67 % mužů a 5,31 % žen.

Ladislav Hagara | Komentářů: 7
dnes 07:00 | Zajímavý článek

Valentina Palmiotti ze společnosti Grapl v příspěvku na blogu podrobně rozebírá bezpečnostní chybu CVE-2021-3490 v Linuxu, konkrétně v eBPF, zneužitelnou k lokální eskalaci práv. Chyba byla v upstreamu opravena již v květnu.

Ladislav Hagara | Komentářů: 0
dnes 06:00 | Pozvánky

Od pátku 6. srpna do neděle 8. srpna proběhne online The Raku Conference, tj. konference věnovaná programovacímu jazyku Raku.

Ladislav Hagara | Komentářů: 0
včera 13:00 | IT novinky

Zítra končí bezpečnostní konference Black Hat USA 2021 (Twitter) a začíná bezpečnostní konference DEF CON 29 (Twitter). Kvůli COVID-19 letos probíhají obě konference hybridně, v Las Vegas i virtuálně. V rámci Black Hat budou vyhlášeny výsledky letošní Pwnie Awards (Twitter). Pwnie Awards oceňují to nejlepší, ale i to nejhorší z IT bezpečnosti (bezpečnostní Oscar a Malina v jednom). Viz nominace.

Ladislav Hagara | Komentářů: 0
včera 09:00 | Zajímavý článek Ladislav Hagara | Komentářů: 6
včera 08:00 | Pozvánky

MojeFedora.cz zve na online konferenci Nest with Fedora 2021 (Flock to Fedora). Konference proběhne od čtvrtka 5. srpna do soboty 7. srpna, vždy od 14:00. Na programu je řada zajímavých přednášek.

Ladislav Hagara | Komentářů: 0
včera 07:00 | Nová verze

CrossOver, komerční produkt založený na Wine, byl vydán ve verzi 21. Přehled novinek v ChangeLogu. Verze 21 je založena na Wine 6.0 s více než 8 300 vylepšeními.

Ladislav Hagara | Komentářů: 4
3.8. 16:22 | IT novinky

Byla vydána videohra o stínech minulosti Svoboda 1945: Liberation. Druhá světová válka skončila, ale ve vesnici Svoboda na česko-německém pohraničí mír nenastal. Přijeli jste rozhodnout desetiletí trvající spor. Komu věřit? Jak s tím souvisí vaše rodina? Vyzpovídejte svědky a odhalte pravdu o vlastní minulosti ve hře, jakou jste ještě nehráli.

Ladislav Hagara | Komentářů: 18
3.8. 15:22 | Komunita

Dnes 3. srpna od 20:00 a o týden 10. srpna od 20:00 proběhne online konference Qubes virtual mini-summit 2021 věnovaná operačnímu systému zaměřenému na bezpečnost Qubes OS (Wikipedie). Přednášky lze sledovat na YouTube.

Ladislav Hagara | Komentářů: 0
3.8. 07:00 | Nová verze

Po půl roce od vydání verze 2.33 byla vydána nová verze 2.34 knihovny glibc (GNU C Library). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
Jak synchronizujete data mezi zařízeními?
 (22%)
 (22%)
 (14%)
 (18%)
 (24%)
Celkem 78 hlasů
 Komentářů: 10, poslední dnes 15:58
Rozcestník



Octave - 1 (je to kalkulačka)

16. 1. 2006 | Jiří Poláček | Programování | 24088×

Octave je volně šiřitelný klon Matlabu běžně dostupný jako balíček i pro vaši oblíbenou distribuci. K dispozici je i verze pro Windows. Následující text představuje první seznámení s tímto systémem pro práci s maticemi, který je zároveň programovacím jazykem podobným Pascalu.

Poznámka: Článek původně vyšel v blogu naopak.

Základním komunikačním prostředkem v Octave je příkazová řádka, do které uživatel zapisuje své požadavky. V následujícím textu, zejména v ukázkách, bude příkazový řádek signalizován znaky „>>“ (tzv. prompt příkazového řádku lze nejrůzněji měnit nastavením obsahu proměnné PS1. Uvedený prompt získáme příkazem PS1=">> ", více možností nastavení je popsáno v nápovědě programu). Jistou představu o popisovaném programu zajisté vyvolá následující obrázek:

jak vypada octave

Nápověda v Octave

Vestavěnou nápovědu v Octave lze zobrazit pomocí příkazu help:

>> help

Na základě tohoto požadavku může program vypsat například následující text:

help is available for the topics listed below.

Additional help for built-in functions, operators, and variables
is available in the on-line version of the manual.  Use the command
`help -i topic' to search the manual index.

Help and information about Octave is also available on the WWW
at http://www.octave.org and via the help-octave@bevo.che.wisc.edu
mailing list.

Podrobnější nápovědu k vestavěným funkcím a rezervovaným slovům je možné vypsat příkazem help s odpovídajícím argumentem:

>> help fix

Jak sděluje úvodní text zabudované nápovědy, informace o Octave a další nápovědu je možné také získat na webových stránkách programu, konkrétně na adrese www.octave.org/doc.

Octave jako kalkulačka

Na té nejjednodušší úrovni lze Octave využít jako kalkulačku. Na příkazový řádek stačí zadat výraz, který se má spočítat. Po odeslání Octave vypíše výsledek:

>> 1+2*3
ans = 7
>> 4563*1.22
ans = 5566.9
>> (5-3)^2
ans = 4
>> 5**3
ans = 125

Aby bylo možné výraz vyhodnotit, musí samozřejmě být správně zkonstruován. Při vyhodnocování má podle běžných pravidel aritmetiky nejvyšší prioritu umocňování, pro které se používá znak „^“ (stříška) nebo dva těsně vedle sebe zapsané znaky hvězdička „**“; následuje násobení „*“ a dělení „/“; nejmenší prioritu mají sčítaní „+“ a odčítání „-“. Následuje-li po sobě více operandů se stejnou prioritou, vyhodnocuje se také obvyklým způsobem, tj. zleva doprava. Prioritu operandů lze upravit pomocí kulatých závorek (pouze kulaté závorky; není možné zde používat závorky hranaté [] a složené {}, ty Octave používá pro jiné účely). Pro druhou odmocninu existuje v Octave funkce sqrt, vhodnější však bývá použití umocňování na přepočítaný zlomek, tj. sqrt(9) vrátí tentýž výsledek jako 9^(1/2).

Zápis a zobrazování čísel v Octave

Při práci s reálnými čísly se jako oddělovač celé a desetinné části používá podle amerických zvyklostí tečka, nikoliv čárka. Zapisujeme-li reálné číslo v absolutní hodnotě menší než 1, například 0,589, lze nulu z celé části vynechat:

>> -.25+.5
ans = 0.25000

Pro zápis typicky hodně velkých (respektive hodně malých) čísel se používá tzv. exponenciální tvar, tj. zápis s mocninou čísla deset. Například číslo 1,458 · 1045 se v Octave zapíše (a vypíše) jako 1.458e45, oddělovačem mezi základem čísla a exponentem tedy je písmeno e. Vězme také, že Octave umí pracovat s komplexními čísly:

>> (5+2i) * (1-j)
ans = 7 - 3i

Písmena i a j v zápise mají stejnou hodnotu - znamenají imaginární jednotku a formálně v Octave figurují jako vestavěné konstanty, o kterých bude řeč dále.

Počet desetinných míst, který bude Octave zobrazovat u reálných čísel, se dá nastavit s pomocí příkazu format. Výchozí nastavení, které odpovídá parametru short, zobrazuje výsledek s pěti významnými ciframi, parametr long si vynutí 15 významných cifer a parametr bank zaokrouhluje na dvě desetinná místa:

>> r=sqrt(2);
>> format short
>> r
r = 1.4142
>> format long
>> r
r = 1.41421356237310
>> format bank
>> r
r = 1.41

Existují ještě další parametry, které umožňují výpis čísel v binární či hexadecimální podobě, vynucení si vědeckého zápisu s mantisou a další speciality - viz help format.

Ukládání výsledku do proměnných

Výsledek výpočtu si lze nejenom nechat zobrazit, ale také uložit do proměnné pro jeho pozdější využití. Proměnné v Octave vytváříme za chodu podle jejich potřeby, není nutné předem definovat jejich typ a velikost:

>> p=13
p = 13
>> P=12-6
P = 6

Předchozími dvěma příkazy byly vytvořeny dvě proměnné pojmenované p a P. Vzhledem k tomu, že Octave rozlišuje malá a velká písmena v názvech proměnných, jedná se o dvě různé proměnné. Do proměnné p bylo přímo uloženo číslo 13, do proměnné P pak výsledek výrazu 12-6. Stojí za povšimnutí, že výsledek výpočtu nyní nezačíná „ans =“, ale názvem proměnné, do které jsme výsledek uložili. Ono ans, které je možno chápat jako zkratku z anglického answer – odpověď, v Octave funguje jako název implicitní proměnné, do které se uloží každý poslední výsledek, u kterého nebylo specifikováno, do jaké proměnné by se měl uložit. Necháme-li si nyní vypsat obsah této proměnné, měli bychom dostat číslo 0,25 z příkladu z předchozí sekce:

>> ans
ans = 0.25000

Z příkladu je vidět, že aktuální obsah proměnné lze zjistit po odeslání jejího názvu. S vytvořenými proměnnými samozřejmě lze dále pracovat ve výrazech:

>> P+p
ans = 19
>> ans^2
ans = 361

Seznam doposud uživatelem vytvořených proměnných zjistíme příkazem who:

>> who
*** local user variables:
P  p

Vytvořenou proměnnou samozřejmě lze také zrušit, provádí se to příkazem clear následovaným seznamem proměnných, které se mají zrušit:

>> clear p P

Spuštění příkazu clear bez parametrů má za následek zrušení všech proměnných.

Konstanty

Kromě proměnné ans obsahuje Octave po spuštění ještě celou řadu dalších speciálních proměnných (jejich seznam je uveden v nápovědě programu, mnohé z nich se týkají programového prostředí a mají vliv na správný běh Octave), z nichž některé plní úlohu konstant, například těch matematických, jako jsou Ludolfovo číslo π, Eulerovo číslo e (Matlab tuto konstantu ve svém repertoáru nemá) apod.:

>> pi
pi = 3.1416
>> e
e = 2.7183
>> i
i = 0 + 1i
>> j
j = 0 + 1i
>> realmin
realmin =  2.2251e-308
>> realmax
realmax =  1.7977e+308
>> realmax + realmax
ans = Inf
>> Inf/Inf
ans = NaN

Konstanty i a j představují již zmiňovanou imaginární jednotku při práci s komplexními čísly; realmin ukazuje přesnost, s jakou je Octave schopno počítat; realmax nese hodnotu největšího čísla, s kterým je Octave schopno pracovat; Inf je vyjádřením nekonečna a konečně zkratka NaN znamená Not a Number - není číslo. Z uvedených příkladů je také vidět, kdy je možné poslední dvě jmenované konstanty získat jako výsledek výpočtu.

Je nanejvýš vhodné pro vlastní proměnné nepoužívat názvy těchto konstant, obzvláště v případech, že bychom jejich hodnoty potřebovali k výpočtu. Není totiž problém vytvořit si stejně pojmenovanou uživatelskou proměnnou:

>> pi=3+5
pi = 8

K původnímu obsahu konstanty se lze vrátit zrušením stejně pojmenované proměnné.

Základní matematické funkce

Stejně jako vědecké kalkulačky umí také Octave vracet funkční hodnoty běžných matematických funkcí, jako například:

>> sin(pi/2)
ans = 1

Funkce se volají svým jménem, argument se uvádí za jménem v kulatých závorkách. Pokud je třeba počítat s mocninu dané funkce, v matematice zapsáno jako sin2 x, v Octave je toto třeba zapsat takto:

>> (sin(x))^2

Uveďme přehled základních funkcí, kterými Octave disponuje:

  • sin, cos, tan - goniometrické funkce sinus, kosinus a tangens
  • sinh, cosh, tanh - hyperbolický sinus, kosinus a tangens
  • asin, acos, atan - cyklometrické funkce sinus, kosinus a tangens
  • asinh, acosh, atanh - cyklometrické hyperbolické funkce sinus, kosinus a tangens
  • round, fix - zaokrouhlení k nejbližšímu celému číslu, respektive k nule
  • ceil, floor - vrací nejbližší vyšší, respektive nižší celé číslo
  • exp, log, log10 - počítá exponenciál, přirozený a desítkový logaritmus
  • gcd, lcm - největší společný dělitel a nejmenší společný násobek
  • mod, rem - vrací modulo, respektive zbytek po dělení (u záporných čísel se výsledek liší)
  • abs - absolutní hodnota
  • real, imag - vrací reálnou, respektive imaginární část komplexního čísla
  • sqrt - druhá odmocnina
  • sign - vrací -1 pro záporná čísla, 0 pro nulu a +1 pro kladná čísla

Přehled všech dostupných funkcí lze nalézt v nápovědě programu.

Nejčtenější články posledního měsíce

Týden na ITBiz: Umělá inteligence pomůže přetíženým tísňovým linkám
Týden na ITBiz: Gartner čeká rychlý růst trhu s nástroji pro hyperautomatizaci
Týden na ScienceMag.cz: Algoritmus z ČVUT zkazil radost příznivcům UFO

Nejkomentovanější články posledního měsíce

Týden na ScienceMag.cz: Algoritmus z ČVUT zkazil radost příznivcům UFO
Týden na ScienceMag.cz: Supravodivost i bez vysokého tlaku
Distribuční novinky 27-28/2021
  všechny statistiky »

Seriál Octave (dílů: 16)

Octave - 1 (je to kalkulačka) (první díl)
»—> Octave - 2 (počítání s maticemi)
Octave - 16 (a co dál?) (poslední díl)

Související články

Octave - 2 (počítání s maticemi)
Octave - 3 (přístup k jednotlivým položkám matice)
Octave - 4 (je to pravda?)
Octave - 5 (práce s řetězci)
Octave - 6 (práce se soubory)
Octave - 7 (vlastní skripty a funkce)
Octave - 8 (větvení programu)
Octave - 9 (cykly)
Octave - 10 (zbylé řídicí struktury)
Octave - 11 (kreslíme grafy)
Octave - 12 (měřítko os a speciální grafy)
Octave - 13 (dokončení grafiky)
Octave - 14 (finance a statistika)
Octave - 15 (špetka matematiky)
Octave - 16 (a co dál?)
Vektorový elegán Ipe
Recenze: Kniha kódů a šifer
Awk & sed: Příručka pro dávkové zpracování textu
SETI@home
Jak se píše procesor
GnuCash - domácí účetnictví na úrovni
Použití gnuplot pro tvorbu grafů v PHP
Hra s písmenky - wxMaxima

Odkazy a zdroje

Octave
Matlab

Další články z této rubriky

LLVM a Clang – více než dobrá náhrada za GCC
Ze 4 s na 0,9 s – programovací jazyk Vala v praxi
Reverzujeme ovladače pro USB HID zařízení
Linux: systémové volání splice()
Programování v jazyce Vala - základní prvky jazyka
       

Hodnocení: 96 %

        špatnédobré        

Nástroje: Tisk bez diskuse

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

16.1.2006 00:23 coccyx
Rozbalit Rozbalit vše octave a premenne
octave vs. scilab :o) mne na octave vadilo ze nepodporoval vypocty so symbolmi(premennymi), ako je to teraz ... ?
16.1.2006 00:42 Jindřich 'GoldenShit' Plešinger | skóre: 16 | blog: Nevěřící | Dolní Bousov
Rozbalit Rozbalit vše Re: octave a premenne
Netuším zdali ti dostatečně dobře rozumím, ale octave je pouze numerická kalkulačka. Tak jako calc, bc, a jim podobní. Pro symbolické výpočty je vhodnějčí použít program Maxima a jeho grafický udělátor wxMaxima.
LINUKS = Lidová Nacionálně Ultralevicová Komunistická Strana
16.1.2006 01:00 coccyx
Rozbalit Rozbalit vše Re: octave a premenne
hej pochopil si to presne tak ako som to myslel :o) maxima je skvela vec ale ma syntax podobnu Mathematic-e. Ale syntaxou prikazov k matlabu je najblizsie octave no ale ta podpora symbolickych vypoctov niekedy dost chyba. Scilab je tiez klon matlabu, ale prikazy nie su moc matlab kompatibilne ale zase na druhu stranu ma nastroj podobny 'simulinku'. No asi bude najlepsie ked budu nainstalovane oba spolu a budu zit v symbioze ... :o)
16.1.2006 01:04 Jindřich 'GoldenShit' Plešinger | skóre: 16 | blog: Nevěřící | Dolní Bousov
Rozbalit Rozbalit vše Re: octave a premenne
Nebo používat to, co se bude vyvíjet (kdopak to ví?) a na onen nástroj si zvykat.
LINUKS = Lidová Nacionálně Ultralevicová Komunistická Strana
16.1.2006 00:49 Jindřich 'GoldenShit' Plešinger | skóre: 16 | blog: Nevěřící | Dolní Bousov
Rozbalit Rozbalit vše Re: octave a premenne
Octave nemá GUI, scilab ano. Octave GUI (GTK+) asi nikdy mít nebude, nějaké solidní, multiplatformní, stále vyvíjené a podporované, s tlačítky funkcí, možností znovu přepočítat napsaný program, exportem napsaného skriptu, ... . Ještě je tam nějakej rozdíl v licemcích, ale normální člověk to snad neřeší. Je to zdarma a basta.
LINUKS = Lidová Nacionálně Ultralevicová Komunistická Strana
Jiří Poláček avatar 16.1.2006 08:34 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: octave a premenne
Octave (alespoň pokud vím) nepodporuje symbolické výpočty. V tomto směru bych odkázal na yacas.
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
16.1.2006 16:06 Zdeněk Hurák | skóre: 7
Rozbalit Rozbalit vše Re: octave a premenne
Octave je mozno zkompilovat s knihovnou GiNaC (coby symbolicky toolbox v Octave-Forge), a pak zakladni symbolicke operace jsou mozne.
16.1.2006 11:25 orin
Rozbalit Rozbalit vše MuPAD
Ja som si na symbolicke vypocty oblubil MuPAD. Je to tusim shareware - kedysi bol sucastou SuSE, ale dnes je to tvrda komercia, s free trialom... (Aj ten sa da celkom pouzivat.)
16.1.2006 15:06 D.
Rozbalit Rozbalit vše Eulerovo cislo Matlab nezna?
Hehe, to me pobavilo, jak by asi pocital logaritmy? Co zkusit exp(1)? ;)

D.
16.1.2006 15:16 D.
Rozbalit Rozbalit vše Re: Eulerovo cislo Matlab nezna?
Aj, zapomnel jsem jadro prispevku. Skleroza pokracuje.

Takze: Octave se snazi priblizit Matlabu jak to jde. Kdo zna Matlab, ma prechod na Octave celkem bez problemu. Spoluprace s GNUplotem je taky dobre provedena a grafy se tvori vpodstate stejne jako v Matlabu (s par malymi rozdily - labely a title je nutne nadefinovat pred "plot"). Dokonce se na webu nachazeji toolboxy (opet analogie k Matlabu), ktere funkcnost Octave znacne rozsiruji. Takze pokud ma nekdo na grantu malo penez a staci mu jednoduche zpracovani experimentu, pak lze Octave jen doporucit.

D.
18.1.2006 09:54 filbar | skóre: 36 | blog: Denicek_programatora | Ostrava
Rozbalit Rozbalit vše Re: Octave - 1 (je to kalkulačka)
Je nějaká možnost jak do Octave zadat matici? Hledal jsem na internetu, ale nic se mi nepodařilo najít.
18.1.2006 10:15 me
Rozbalit Rozbalit vše Re: Octave - 1 (je to kalkulačka)
Zkuste se podivat poradne. Octave je o vypoctech s maticemi, snad o tom bude dalsi dil.
>> a=[1 2]; b=[3;4]; c=[5 6; 7 8];
>> a, b, c
Jiří Poláček avatar 19.1.2006 10:40 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: Octave - 1 (je to kalkulačka)
Ano, další díl, který už je připraven, je o počítání s maticemi.
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
18.1.2006 15:54 5
Rozbalit Rozbalit vše Re: Octave - 1 (je to kalkulačka)
rovnako ako v matlabe
18.1.2006 15:56 5
Rozbalit Rozbalit vše Re: Octave - 1 (je to kalkulačka)
rovnako ako v matlabe
18.1.2006 16:01 5
Rozbalit Rozbalit vše Re: Octave - 1 (je to kalkulačka)
mne sa na octave najviac paci skriptovanie, netreba mi spustanie nejakeho grafickeho workspace, len konkretne vypocty, pre mna uplne idealne
18.1.2006 17:54 Jindřich 'GoldenShit' Plešinger | skóre: 16 | blog: Nevěřící | Dolní Bousov
Rozbalit Rozbalit vše Re: Octave - 1 (je to kalkulačka)
Pouze ke skriptování je neexistence GUI u octave výhodou. Ale nemožnost tvožit v nativním IDE, krokovat, odlaďovat skript, ... za výhodu nepovažuju. Třeba maxima funguje jak v promptu, tak i existuje možnost použít několik grafických prostředí.
LINUKS = Lidová Nacionálně Ultralevicová Komunistická Strana
21.1.2006 11:19 GeBu | skóre: 27 | blog: zápisky
Rozbalit Rozbalit vše Re: Octave - 1 (je to kalkulačka)
Nainstaloval jsem si Octave do Windows (cygwin). Ale nevím jak rozběhat grafický výstup grafů (plot). Nemáte někdo radu?

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.