Byla vydána nová stabilní verze 7.6 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 140. Přehled novinek i s náhledy v příspěvku na blogu.
Byla vydána verze 1.90.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
GNUnet (Wikipedie) byl vydán v nové major verzi 0.25.0. Jedná se o framework pro decentralizované peer-to-peer síťování, na kterém je postavena řada aplikací.
Byla vydána nová major verze 7.0 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově je postavena je na Debianu 13 (Trixie) a GNOME 48 (Bengaluru). Další novinky v příslušném seznamu.
Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.
Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.
Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.
Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).
Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.
Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.
V hned druhém pokračování povídání o systému Octave vyjde najevo, proč Matlab získal své jméno jako zkratku z MATrix LABoratory - laboratoř pro práci s maticemi. Než se však vrhneme na násobení matic, povíme si pár slov k historii příkazů a jejich vyhodnocování.
Asi nepřekvapí, ale určitě ani nezarmoutí fakt, že Octave disponuje vestavěnou historií příkazů - pomocí kurzorových šipek nahoru a dolů lze listovat seznamem dříve zadaných příkazů, které lze editovat a opravené nechat spočítat znovu. V linuxových verzích Octave lze také zpětně hledat v historii příkazů přes klávesové zkratky Ctrl-R a Ctrl-S:
>>
(reverse-i-search)`sin': (sin(x))^2
V Octave je možné zapsat a nechat vyhodnotit více výrazů najednou - píšeme je za sebe na řádek, přičemž v úvahu přichází dva oddělovače, čárka a středník:
>> A=1+1, B=3*4; C=8/4
A = 2
C = 2
>> B
B = 12
V obou případech se výraz vyhodnotí, avšak pouze při ukončení čárkou se též vypíše výsledek. Neuvedení oddělovače za posledním příkazem na řádce je ekvivalentní se zakončení výrazu čárkou, tj. výsledek se vypíše. Skutečnost, že se v příkladě provedl i příkaz ukončený středníkem, dokazuje výraz, kdy jsme si nechali vypsat obsah proměnné B. Středníkem ukončujeme zejména příkazy v programech, které vrací „nezajímavé“ mezivýsledky výpočtu. Chceme-li zapsat výraz či více výrazů na více řádků, můžeme s úspěchem použít znak zpětné lomítko „\“ následovaný znakem nový řádek (tj. stisknutí klávesy Enter) - v zápisu příkazu pokračujeme na dalším řádku:
>> 1 + \
> 2 \
> + 3
ans = 6
Speciální význam v Octave má také znak procento „%“. Uvozuje komentář - jinými slovy vše, co bude zapsáno za tímto znakem na stejném řádku, Octave ignoruje. Komentáře slouží zejména k lepší orientaci v programech uživatelem:
>> c=(a^2 + b^2)^(1/2) % Zde využíváme Pythagorovy věty
Pro výpis uživatelem vytvořených proměnných lze kromě příkazu who použít také příkaz whos, který vrací podrobnější informace:
>> whos prot type rows cols name ==== ==== ==== ==== ==== rwd scalar 1 1 P rwd scalar 1 1 p
Pro nás jsou teď zajímavé sloupce rows
a cols
udávající počet řádků a sloupců proměnné. Jak již bylo naznačeno v úvodu,
Octave podle vzoru Matlabu chápe každou proměnnou jako matici určité
velikosti. Proměnné obsahující jedno číslo jsou tak brány jako matice
velikosti 1×1 - s těmi se však počítá úplně stejně jako s normálními
čísly. Pokud budeme chtít pracovat s maticemi o větším počtu řádků či
sloupců, přijdou na řadu hranaté závorky:
>>M=[0 1 2;1,2,3 > 4 5,6] M = 0 1 2 1 2 3 4 5 6
Při takovémto zadávání matice na příkazové řádce hranaté závorky vymezují prostor pro zápis jejího obsahu, hodnoty na řádku se oddělují mezerou nebo čárkou, řádky pak středníkem nebo novým řádkem (klávesou Enter - do výskytu uzavírající závorky Octave výraz nevyhodnocuje).
Matici lze skládat také z „větších“ objektů, než jsou skaláry, tj. z vektorů a menších matic. Při zadávání je pouze nutno dbát na to, aby ve výsledku měla matice stejný počet sloupců v každém řádku, tj. aby někde něco nechybělo či nepřebývalo:
>> N=[1 2;3]
error: number of columns must match (1 != 2)
Nyní složme velkou matici ze tří menších objektů:
>> A=[1 2; 3 4; 5 6], B=[-1 -3; 9 9], V=[0, 50] A = 1 2 3 4 5 6 B = -1 -3 9 9 V = 0 50 >> VelkaMatice = [A, [B; V]] VelkaMatice = 1 2 -1 -3 3 4 9 9 5 6 0 50
Z podstaty věci je možné (a formálně korektnější) psát i samostatná čísla v maticových závorkách:
>> [6]*[10]
ans = 60
Pro přehlednost a úsporu psaní si je však každý rád odpustí, jak tomu je v ostatních příkladech v tomto textu. Je také možné vytvořit - na první pohled poněkud překvapivě - prázdnou matici, která má nulový počet řádků a sloupců:
>> N=[]
N = [](0x0)
Prázdné matice mají své uplatnění při rušení řádků či sloupců ve větších maticích, viz dále.
Podle očekávání Octave umí s maticemi nativně provádět běžné numerické operace, tj. zejména velikostně si odpovídající matice sčítat, respektive odčítat a násobit:
>> [1 2;-3 -2] + [-1,-3;4,3] ans = 0 -1 1 1 >> [4;-2] * [-1,2] ans = -4 8 2 -4
Nechybí ani možnost umocňovat matici reálným číslem; významná je zejména operace umocňování na minus prvou (M-1), kterou získáme matici inverzní k původní matici:
>> M=[-1 0 2; 4 2 1; -1 -1 -2]; M^-1 ans = 3 2 4 -7 -4 -9 2 1 2 >> M * M^-1 ans = 1 0 0 0 1 0 0 0 1
K základním maticovým operacím patří také transpozice, tj. přeměna řádků na sloupce a naopak. V Octave ji vyznačujeme apostrofem - „'“:
>> M' ans = -1 4 -1 0 2 -1 2 1 -2
Octave také umí matice dělit, a to hned dvěma způsoby: levostranně pomocí operátoru „\“ a pravostranně pomocí „/“. Formálně to u čtvercových regulárních matic odpovídá násobení jedné matice s druhou inverzní, tj. A\B ≈ A-1·B a A/B ≈ A·B-1. Jelikož výpočet probíhá přímo, je možné levostranně dělit matice se stejným počtem řádků a pravostranně matice se stejným počtem sloupců:
>> [-1 -4 0; 2 -3 1] \ [2 3; -1 -1] ans = -0.81159 -1.05797 -0.29710 -0.48551 -0.26812 -0.34058 >> [-1 -4; 2 -3 ] / [2 3; -1 -1; 6 -7] ans = -0.833333 0.333333 0.166667 -0.111390 0.033501 0.376047
Dělení matic se využívá například při řešení soustavy lineárních rovnic. Pro názornost dodejme ještě, že levostranné dělení běžných čísel odpovídá zápisu zlomku, kdy nejdřív uvedeme jmenovatele a teprve poté čitatele:
>> 5 \ 35
ans = 7
Pozor na to, že znak zpětné lomítko se také používá pro zápis výrazu/výrazů na vícero řádků, jak již bylo uvedeno dříve.
Podle očekávání se také Octave chová při operacích s maticemi a skaláry - operace se provede se skalárem a s každým prvkem matice, výsledkem je matice stejných rozměrů. Například násobení matice skalárem a součet matice a skaláru:
>> 2 * [1,2;-2,4] ans = 2 4 -4 8 >> [1,2;-2,4] + 4 ans = 5 6 2 8
Někdy je zapotřebí u násobení matic provést tuto operaci tzv. po prvcích, tj. stejným způsobem, jak se provádí součet matic. Násobit po prvcích je možno pouze matice se stejným počtem řádků a sloupců a výsledek je opět stejně rozměrná matice s odpovídajícími výsledky na daných pozicích. Násobení po prvcích dáme najevo předřazením symbolu tečka před vlastní symbol násobení - hvězdičku:
>> [1 -1; 2 3] .* [7 5; 1 -1] ans = 7 -5 2 -3
Porovnejte s výsledkem standardního násobení matic:
>> [1 -1; 2 3] * [7 5; 1 -1] ans = 6 6 17 7
Analogickým způsobem lze pomocí tečky před vlastním operátorem zařídit též dělení a umocňování po prvcích. Tečku lze zapsat i před sčítání a odečítání, z praktického hlediska to ale nemá význam - tyto operace se provádí pouze v režimu „po prvcích“:
>> [4 9; 12 -27] ./ [2 3; 6 9] ans = 2 3 2 -3 >> [1 -1; 2 3].^3 ans = 1 -1 8 27
Pro srovnání:
>> [1 -1; 2 3]^3 ans = -9 -11 22 13
Nakonec uveďme pár základních funkcí, které se nám při práci s maticemi mohou hodit:
-1
, tak ve směru hodinových ručiček, hodnota 1
znamená proti směru hodinových ručiček:>> rot90([1 2; 3 4],-1) ans = 3 1 4 2 >> rot90([1 2; 3 4],1) ans = 2 4 1 3
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Diskuse byla administrátory uzamčena