Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.
Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.
Meta převezme sociální síť pro umělou inteligenci (AI) Moltbook. Tvůrci Moltbooku – Matt Schlicht a Ben Parr – se díky dohodě stanou součástí Meta Superintelligence Labs (MSL). Meta MSL založila s cílem sjednotit své aktivity na poli AI a vyvinout takovou umělou inteligenci, která překoná lidské schopnosti v mnoha oblastech. Fungovat by měla ne jako centralizovaný nástroj, ale jako osobní asistent pro každého uživatele.
Byla vydána betaverze Fedora Linuxu 44 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 14. dubna.
Open source router Turris Omnia NG Wired je v prodeji. Jedná se o Turris Omnia NG bez Wi-Fi. Je připraven pro zamontování do racku.
Sníh roztál a roztávají i bastlíři. Žene se na nás celá řada konferencí a seminářů technického rázu. Zajímá vás, jaké? Pak se připojte k 60. Virtuální Bastlírně, tedy k veřejné diskuzi bastlířů, techniků, učitelů i vědců. Jako vždy přijde na přetřes spousta novinek ze světa hardwaru, softwaru i bizáru. Na začátek lze očekávat hardwarová témata, tedy například nový KiCAD 10, nové akcelerátory LLM s nízkou spotřebou, nejvíce fosforeskující
… více »IuRe (Iuridicum Remedium) v rámci programu Digitální svobody zveřejnila analýzu dopadů a efektivity systémů ověřování věku v digitálním prostoru, která srovnává implementace ověřování věku v Austrálii, Velké Británii a Evropské unii.
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.3 (𝕏, Mastodon). Přehled novinek a vylepšení v poznámkách k vydání.
Byla vydána nová verze 14.4 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Databáze DuckDB (Wikipedie) byla vydána ve verzi 1.5.0. S kódovým názvem Variegata (husice rajská). Přináší řadu vylepšení, včetně nového ergonomičtějšího CLI klienta nebo podporu pro typ VARIANT a vestavěný typ GEOMETRY.
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