Programovací jazyk Matlab. MATLAB: Nástroj budoucnosti nebo drahá hračka vestavěné matematické funkce

Nyní možnosti systému výrazně převyšují možnosti původní verze Matrix Laboratory. Dnešní MATLAB, duchovní dítě The MathWorks, Inc., je vysoce účinný jazyk pro inženýrské a vědecké výpočty. Podporuje matematické výpočty, vědeckou grafickou vizualizaci a programování pomocí snadno naučitelného provozního prostředí. Nejznámější oblasti použití systému MATLAB:

Matematika a výpočetní technika;

Vývoj algoritmů;

Výpočetní experiment, simulační modelování, prototypování;

Analýza dat, výzkum a vizualizace výsledků;

Vědecká a technická grafika;

Vývoj aplikací včetně grafického uživatelského rozhraní.

MATLAB je interaktivní systém, jehož hlavním objektem je pole, u kterého není třeba explicitně specifikovat rozměr. To umožňuje řešit mnoho výpočetních problémů spojených s formulacemi vektor-matice.

Verze MATLAB 6.1 je předposledním počinem vývojářů (posledním byl MATLAB 6.5).

Systém MATLAB je operační prostředí i programovací jazyk. Jednou z největších předností systému je, že v MATLABu lze psát opakovaně použitelné programy. Uživatel si může sám psát specializované funkce a programy, které jsou kompilovány ve formě M-souborů. Proto vám aplikační softwarové balíčky - MATLAB Application Toolboxes, které jsou součástí rodiny produktů MATLAB, umožňují být na úrovni nejmodernějších světových výdobytků.

Operační prostředí systému MATLAB 6.1. Operační prostředí systému MATLAB 6.1 je sada rozhraní, která podporují komunikaci tohoto systému s vnějším světem prostřednictvím dialogu s uživatelem prostřednictvím příkazové řádky, editoru M-souborů, interakce s externími systémy Microsoft Word, Excel atd.

Po spuštění programu MATLAB se na displeji počítače objeví jeho hlavní okno obsahující Jídelní lístek, nástrojové pravítko s tlačítky a klientská strana okna s pozvánkou. Toto okno se obvykle nazývá příkazové okno Systémy MATLAB (obr. 1).

Jídelní lístek Soubor(obr. 2) kombinuje obvyklé funkce: Upravit zodpovědný za změny obsahu Okno příkazy (vrátit zpět, opakovat, vyjmout, kopírovat, vložit, vybrat vše, odstranit atd.) a pro vymazání některých oken MATLABu; Jídelní lístek Pohled– pro návrh pracovní plochy; Web menu – spouští webové stránky z Internetu; Jídelní lístek Okno– pracuje s editorem/ladicím programem M-souborů (uzavírá všechny M-soubory, činí jeden z nich aktuálním); Jídelní lístek Pomoc– Pracuje s referenční dokumentací a ukázkami.


Tato možnost si zaslouží zvláštní pozornost Předvolby... (výběr charakteristik), který po výběru otevře okno, které obsahuje vlevo strom objektů (obr. 3), vpravo jejich možné charakteristiky.

Přístrojová deska Příkazové okno systému MATLAB umožňuje snadný přístup k operacím s M-soubory: vytvoření nového M-souboru; otevření existujícího M-souboru; odstranění fragmentu; kopírování fragmentu; vložení fragmentu; obnovení pouze dokončené operace atd.

V klientská strana Příkazové okno MATLABu, po výzvě, můžete zadat různá čísla, názvy proměnných a operační znaky, které dohromady tvoří některé výrazy. Stisknutí Enter způsobí, že MATLAB vyhodnotí výraz, nebo pokud se nevyhodnotí, zopakuje jej. I když znak ";" na konci řádku potlačí výstup výsledku (echo výstup).

V klientské části příkazového okna MATLABu tak může uživatel okamžitě psát příkazy, které tvoří jednotlivé výpočty nebo celý program.

Byly tedy analyzovány konstrukční části příkazového okna MATLABu. Ale kromě nich existuje několik dalších prvků MATLABu, které pomáhají při práci:

Týmy- okno obsahující dříve zadané příkazy v okně příkazů („historie příkazů“).

Pracovní prostor je oblast paměti MATLAB, ve které jsou umístěny systémové proměnné. Obsah této oblasti lze zobrazit z příkazového řádku pomocí příkazů SZO(zobrazuje pouze názvy proměnných) a kdo je(zobrazuje informace o velikostech polí a typu proměnné) nebo v samostatném okně pod stejným názvem. V něm můžete provádět následující operace: načíst datový soubor, uložit Workspace as (příkazy umožňují otevřít a uložit obsah pracovního prostoru v binárním MAT souboru), odstranit vybrané proměnné; otevřete vybrané proměnné (kde můžete změnit jejich hodnotu). Kromě toho můžete v nabídce Upravit vymazat jak příkazové okno, tak historii příkazů a pracovní plochu (nebo spustit příkaz v okně příkazů: Průhledná).

Chcete-li uložit a spustit pracovní prostor, můžete použít příkazy načíst a uložit.

Příklad.

Ukládání do: matlab.mat

>> uložit my.mat

>> načíst my.mat

>> uložit můj2

>> načíst můj2

Aktuální katalog– okno, které je jakýmsi „průvodcem“ katalogy MATLABu.

Spusťte Editor– okno zobrazující strom strukturních prvků MATLABu a s ním nainstalovaného softwaru, které lze spustit poklepáním myši. Toto okno může vypadat například jako na obrázku 9.

Editor/debugger M-souborů– jedna z nejdůležitějších konstrukčních částí MATLABu, kterou lze otevřít výběrem příslušné možnosti v hlavním menu, na nástrojové liště nebo vyvolat z příkazové řádky příkazem edit nebo edit<имя М-файла>a umožňuje vytvářet a upravovat M-soubory.

Editor/debugger podporuje následující operace: vytvoření nového M-souboru; otevření existujícího M-souboru; uložení M-souboru na disk; odstranění fragmentu; kopírování fragmentu; vložení fragmentu; Pomoc; nastavit/vymazat kontrolní bod; pokračovat v provádění atd.

GUIDE je grafické uživatelské rozhraní, ve kterém se vytvářejí kompletní aplikace.

Interaktivní pracovní sezení. M-soubory. Interaktivní režim je uživatelský režim pro zadávání příkazů a výrazů z klávesnice, jehož provedení produkuje potřebné numerické výsledky, které lze snadno a rychle vizualizovat pomocí vestavěných grafických nástrojů balíku MATLAB. Použití tohoto režimu k vytvoření a uložení konkrétního programu však není možné. Tvůrci MATLABu proto kromě Příkazového okna, ve kterém je interaktivní režim implementován, identifikovali speciální soubory obsahující kódy jazyků MATLAB a nazvali je M-soubory (*.m). K vytvoření M-souboru použijte textový editor (M-file editor/debugger).

Práce v editoru M-souborů. Práce z příkazové řádky MatLab se stává obtížnou, pokud potřebujete zadávat mnoho příkazů a často je měnit. Nejpohodlnějším způsobem provádění příkazů je použití M-files, do kterých můžete psát příkazy, provádět je všechny najednou nebo po částech, ukládat je do souboru a používat je v budoucnu. Pracovat s M- editor je určen pro soubory M-soubory. Pomocí editoru můžete vytvářet vlastní funkce a volat je, a to i z příkazového řádku.

Rozbalte nabídku Soubor hlavního okna MatLabu a v položce Nový vyberte podpoložku M-soubor. V okně editoru se otevře nový soubor M-soubory (obr. 10). Napišme do souboru program pro výpočet aritmetického průměru.

proměnnou a a b, poté ji uložte pod názvem fun1.m. Porovnejte metody řešení problému uvedené v tabulce.

Vloženo na http://www.allbest.ru/

Úvod

Název balíku Matlab je zkratka pro angličtinu Matice Laboratoř(což znamená matricová laboratoř). Ve stejném termínu (tj. Matlab) se také nazývá programovací jazyk používaný pro kompilace programových kódů. Jak víte, programový kód může kompilovat nebo být vykládán. V prvním případě získáme výkonný (strojový) kód, který je vykonáván centrálním procesorem. Při interpretaci dochází k transformaci do mezikódu, který je spouštěn přímo systémem tlumočníka. Kompilovaný kód obvykle běží rychleji než interpretovaný kód. Interpretované programovací jazyky však bývají z hlediska syntaxe demokratičtější. Kód Matlab je interpretován. To však v žádném případě nedělá kompromisy pochybovat o výpočetních schopnostech Matlabu. Základ pro realizaci různé datové typy v Matlabu jsou matrice, což mnohé vysvětluje vlastnosti prostředí (a programovacího jazyka) Matlab. Na matrice my Budeme se odvolávat poměrně často, protože materiál v knize prezentujeme.

Velká část funkčnosti aplikace Matlab je implementována prostřednictvím balíčky nástrojů(anglický termín sada nástrojů). Jedná se o kolekce funkcí a dalších utilit určených k řešení vysoce specializovaných problémů. Většina balíčků má úzké, specifické zaměření. Aplikace Matlab je určena (především) k provádění numerických výpočtů a vizualizaci výsledků. Balíček obsahuje obrovské množství utilit pro provádění nejrůznějších operací a umožňuje vytvářet vlastní plně funkční programové kódy. Zároveň lze v Matlabu provádět i symbolické výpočty. K tomuto účelu slouží prostředí MuPAD zabudované v Matlabu. Uživateli Matlabu se tak nabízí bohaté možnosti nejen v oblasti numerických, ale i symbolických výpočtů.

1. Jednoduché výpočty

Jednoduché neboli krok za krokem odkazuje na výpočty obvykle prováděné v příkazovém okně aplikace Matlab. Příslušná instrukce nebo příkaz se zadá do příkazového okna a poté se provede. Obrázek 1 ukazuje, jak může vypadat pracovní okno aplikace Matlab po spuštění. Zajímavostí je v tomto případě vnitřní okno (obvykle uprostřed pracovního okna aplikace) s názvem Příkazové okno- příkazové okno. V tomto okně můžete vidět indikátor vstupního řádku (ve formě dvojité šipky >> ). Chcete-li zadat příkaz, musí se kurzor přesunout za indikátor vstupního řádku a musí být zadána instrukce, aby byla provedena. Jinými slovy, musíte zadat výraz do vstupního řádku příkazového okna a stisknutím klávesy Enter spustit proces výpočtu tohoto výrazu. Výsledek výpočtu je zobrazen níže pod prováděným příkazem. Ve výchozím nastavení je výsledek uložen v systémové proměnné „ans“.

Obrázek 1

Obrázek 2 ukazuje příklad vyhodnocení několika aritmetických výrazů. V tomto případě jsou uvedeny výsledky výpočtu výrazů 1+2*3 a (5^2-4)/7. V prvním případě, jak se očekávalo, získáme jako výsledek hodnotu 7, ve druhém - hodnotu 3.

Obrázek 2

Základní aritmetické operátory v Matlabu jsou: operátor „+“ pro výpočet součtu, operátor „-“ pro výpočet rozdílu, operátor „*“ pro výpočet součinu, operátor „/“ pro výpočet podílu a Operátor „^“ pro umocnění.

V jejím obecném smyslu variabilní je oblast paměti, ke které lze přistupovat podle názvu a získat hodnotu uloženou v této oblasti a také ji změnit. V silně typovaných programovacích jazycích (jako je C++, Java nebo Pascal) je pro použití proměnné nutné ji nejprve deklarovat a uvést, o jaký typ se jedná. V Matlabu není potřeba nic takového dělat. Proměnné můžete okamžitě přiřadit hodnotu. Jako operátor přiřazení se používá rovnítko „=“. Název proměnné, ke které je přiřazena hodnota, je uveden vlevo od operátoru přiřazení a hodnota přiřazená proměnné je uvedena vpravo od operátoru přiřazení. Hodnota přiřazená proměnné při práci se skalárními veličinami může být číslo nebo výraz obsahující jiné proměnné. V tomto případě je nutné, aby těmto proměnným již byla přiřazena hodnota. Příklad použití skalárních proměnných ve výpočtech krok za krokem je uveden v pracovním dokumentu na obrázku 3.

Obrázek 3

První příkaz x=0,5*sin(0,1) přiřadí hodnotu proměnné „x“. V tomto případě byla k výpočtu sinusu použita vestavěná funkce Matlabu „sin()“. Výsledná hodnota přiřazená této proměnné se zobrazí pod vstupním řádkem ve formátu:

« variabilní =

význam"

Podobně jako v následujícím příkazu y=0.3*cos(0.2) je hodnota přiřazena proměnné „y“. Zde je "cos()" vestavěná funkce Matlabu pro výpočet kosinusu. Čtenáře také upozorňujeme na to, že při zadávání reálných čísel se zlomkovou desetinnou částí se jako oddělovač desetinných míst používá tečka.

Nakonec příkaz z=(x^2+y^2)^(1/3) přiřadí hodnotu proměnné „z“. Výraz, který určuje hodnotu proměnné „z“, zahrnuje proměnné „x“ a „y“. Protože však těmto proměnným byly dříve přiřazeny hodnoty, nedochází k chybě a hodnota proměnné „z“ je přiřazena správně.

Existují dvě základní operace, které jsou docela užitečné, zejména pro větší výpočty. Za prvé, v některých případech potřebujete zjistit, které proměnné pracovního prostoru se již používají, a za druhé, někdy musíte obrazně řečeno „odstranit proměnné z hracího pole“ - tedy uvolnit paměť alokovanou pro tyto proměnné. První operace se provádí pomocí příkazu „whos“. Pokud zadáte tento pokyn do příkazového řádku a stisknete klávesu Enter, zobrazí se seznam proměnných dostupných v pracovním prostoru s popisem některých jejich atributů.

Obrázek 4

V tomto případě se seznam skládá ze čtyř proměnných: tří deklarovaných uživatelských proměnných "x", "y" a "z" a systémové proměnné "ans". Vymazání prostoru proměnných se provádí pomocí instrukce „clear“, po které jsou odděleny mezerou uvedeny názvy proměnných, které mají být vymazány. Obrázek 5 ukazuje výsledek provedení příkazu "clear x y" následovaného příkazem "whos" pro kontrolu seznamu proměnných pracovního prostoru.

Obrázek 5

Protože příkaz „clear x y“ odstranil z pracovního prostoru proměnné „x“ a „y“, zůstaly v seznamu proměnných pouze proměnná „z“ a systémová proměnná „ans“. Přestože je hodnota proměnné „z“ přiřazena na základě hodnot proměnných „x“ a „y“, jejich odstranění z pracovního prostoru (nebo změna jejich hodnoty) nemá vliv na přiřazení proměnné „z“ . Chcete-li odstranit z pracovního prostoru každý proměnné používají příkaz „clear“ bez uvedení proměnných.

Předchozí příklady používaly skalární veličiny. Z hlediska základní ideologie a technické implementace jsou skaláry v Matlabu spíše exotické než běžné. Faktem je, že v Matlabu jsou základním datovým typem matice (neboli pole). V tomto ohledu je skalární „z pohledu Matlabu“ (abych tak řekl) maticí velikosti 1x Jak víte, pole lze indexovat, to znamená, že pro přístup k prvku pole zadáte název pole pole a jeho index (nebo indexy). Indexy jsou uvedeny za názvem matice (pole) v závorkách a odděleny čárkami. Ke skalární proměnné lze přistupovat buď jménem, ​​nebo zadáním indexů – v tomto případě je to (1,1). Příklad přístupu ke skalární veličině v normálním režimu a použití dvojice jednotkových indexů je na obrázku 6.

Příkaz „MyVar=10“ přiřadí do proměnné „MyVar“ hodnotu „10“. K proměnné můžete přistupovat buď jejím názvem „MyVar“ nebo v režimu přístupu k prvku matice „MyVar(1,1)“. V obou případech je jako výsledek vrácena hodnota skalární proměnné "MyVar".

Vzhledem k tomu, že všechny proměnné v Matlabu jsou a priori považovány za matice, není třeba při deklaraci matic dodržovat žádné speciální instrukce, kromě toho, že matici musí být dány hodnoty jejích prvků. To se provádí zcela jednoduše. Seznam prvků matice je uzavřen v hranatých závorkách, seznamy hodnot prvků řádku jsou odděleny čárkami nebo mezerami a seznamy různých hodnot sloupců jsou odděleny středníky. Například příkaz „A=“ určuje řádkový vektor (matice 1x3) s prvky „1“, „2“ a „3“.

Obrázek 6

Příkaz „B=“ určuje sloupcový vektor (matici 3x1) s prvky „4“, „5“ a „6“. Nakonec příkaz „C=“ specifikuje matici 3x2 (3 řádky a 2 sloupce). Příklady provádění těchto příkazů jsou uvedeny v dokumentu na obrázku 7.

Obrázek 7

K maticovým prvkům lze přistupovat obvyklým způsobem zadáním dvou indexů (číslo řádku a číslo sloupce, na jehož průsečíku se prvek nachází). Existuje také způsob kontaktu zobecněný index. Zobecněný index prvku matice je definován jako jeho pořadové číslo, pokud počítání začíná od levého horního prvku shora dolů a od levého sloupce doprava. Pokud tedy matice „X“ má rozměry „n“ krát „m“, pak prvek s indexy „i“ a „j“ může být adresován buď jako „X(i,j)“ nebo jako „X(n* (j-1)+i)". I když se druhý způsob indexování prvků může zdát trochu matoucí, odpovídá technickému způsobu indexování maticových prvků v paměti, takže výpočty jsou v tomto případě rychlejší. Obrázek 8 ukazuje fragment dokumentu, ve kterém jsou v různých režimech přístupné prvky matice „C“ definované dříve. Konkrétně příkazem „C(1)“ získáme hodnotu prvku „C(1,1)“ (hodnota1). Instrukce "C(5)" je odkaz na prvek "C(2,2)", jehož hodnota je "4".

Postavení 8

2. Aritmetické operace

Základní aritmetické operátory Matlabu umožňují provádět operace nejen se skalárními veličinami, ale také s maticemi. Navíc lze tvrdit, že většina operátorů se zaměřuje na provádění maticových operací. Jsou uvedeny hlavní aritmetické operátory Matlabu se stručným popisem výsledku jejich aplikace na operandy různých typů (pokud jsou platné).

Tabulka 1 Základní aritmetické operátory v Matlabu.

Operátor

Popis

Operátor sčítání. Operátor je binární. Operandy mohou být buď skalární nebo maticové hodnoty. U dvou skalárních operátorů se provádí sčítání. Pro dva maticové operandy (matice stejné velikosti) se provádí sčítání po prvcích: výsledkem je matice stejné dimenze jako matice operandů a její prvky jsou rovny součtu odpovídajících prvků sčítaných matic. . Pokud je jeden operand skalární a druhý matice, pak výsledkem je matice, jejíž každý prvek je roven součtu skalárního a odpovídajícího prvku maticového operandu.

Operátor odčítání. Binární operátor. Operandy mohou být skaláry, matice stejné velikosti nebo matice a skalár. U skalárů se vypočítá rozdíl. Pro maticové operandy se vypočítá matice, jejíž prvky se rovnají rozdílu maticových operandů odpovídajících prvkům. Je-li jeden operand matice a druhý skalár, pak je výsledkem matice, jejíž prvky se vypočítají jako rozdíl odpovídajícího prvku matice operandu a skaláru (s přihlédnutím k pořadí operandů). Můžete odečíst skalár od matice a matici od skaláru.

Operátor násobení. Binární operátor. Pokud jsou operandy skaláry, vypočítá se součin skalárů. Pro maticové operandy se vypočítá maticový součin. Je-li jeden operand matice a druhý skalár, výsledkem je matice, jejíž prvky jsou vypočteny jako součin odpovídajícího prvku maticového operandu a skaláru.

Operátor divize. Binární operátor. Pokud jsou oba operandy skaláry, pak se jako výsledek vrátí podíl dělení skaláru skalárem. Je-li prvním operandem matice a druhým skalár, výsledkem je matice, jejíž každý prvek se získá elementárním dělením matice operandu skalárem. Pokud jsou oba operandy čtvercové matice stejné úrovně, je výsledek vrácen jako součin matice - prvního operandu a matice inverzní k matici - druhého operandu.

Operátor umocňování. Binární operátor. První operand může být skalární nebo čtvercová matice. Pokud je první operand skalár, pak druhý může být jakýkoli skutečný skalár. Výsledkem je první operand zvýšený na výkon určený druhým operandem. Pokud je prvním operandem čtvercová matice, pak druhý operand musí být celé číslo (může být záporné). Výsledkem je matice vypočítaná zvýšením matice operandu na celočíselnou mocninu určenou druhým operandem.

Levý operátor divize. Binární operátor. Operandy

jsou čtvercové matice stejné úrovně. Výsledkem je matice rovna součinu maticové inverze k prvnímu maticovému operandu a druhému maticovému operandu.

Operátor násobení prvků. Binární operátor. Operandy jsou matice stejné velikosti. Výsledkem je matice, jejíž prvky jsou rovny součinu odpovídajících prvků matic operandů.

Operátor dělení prvků. Binární operátor. Operandy jsou matice stejné velikosti. Výsledkem je matice, jejíž prvky se vypočítají jako podíl dělení prvků matice - prvního argumentu - odpovídajícími prvky matice - druhého argumentu.

Elementwise operátor levého dělení. Binární operátor. Operandy jsou matice stejné velikosti. Výsledkem je matice stejné velikosti. Prvky matice - druhý operand - jsou rozděleny na odpovídající prvky matice - první operand.

Operátor pro výpočet konjugované matice. Unární operátor. Výsledkem je matice konjugovaná s operátorovou maticí.

Operátor transpozice. Unární operátor. Výsledkem je matice transponovaná do matice operandů.

Operátor umocňování podle prvků. Binární operátor.

Operandy mohou být skaláry nebo matice (v různých kombinacích). Pokud je prvním argumentem matice a druhým je skalár nebo matice stejné dimenze, pak výsledkem je matice, jejíž prvky se získají zvýšením prvků první matice na mocninu určenou druhým skalárním operandem nebo odpovídajícím prvky druhého operandu matice. Pokud je první operand skalární a druhý matice, pak výsledkem bude matice stejné velikosti jako matice operandu (druhé). Prvky výsledné matice se získají zvýšením skaláru (prvního operandu) na mocninu určenou odpovídajícím prvkem druhého (maticového) operandu.

Uvedené operátory téměř kompletně pokrývají celou škálu možných operací, které je třeba s maticemi provést. Některé příklady použití aritmetických operátorů s maticovými operandy jsou uvedeny v tabulce. 2. Matice „A“ a „B“ jsou v dokumentu inicializovány pomocí následujících příkazů (vstup uživatele je tučně):

>> A=

>> B=[-1,1;3,-2]

Tabulka 2 Příklady provádění aritmetických operací s maticemi.

Popis

Součin matric.

Počítáno podle pravidel pro výpočet matic v lineární algebře.

Maticové dělení.

Matice A se vynásobí inverzní hodnotou matice B.

Levostranné maticové násobení.

Inverzní matice A se vynásobí maticí B.

Elementární dělení matic.

Prvky matice A jsou rozděleny odpovídajícími prvky matice B.

Levostranné dělení elementů.

Prvky matice B jsou rozděleny odpovídajícími prvky matice A.

Násobení matice prvků.

Prvky matice A se vynásobí odpovídajícími prvky matice B.

Součet matic.

Počítá se podle pravidel pro výpočet součtu matic v lineární algebře (sčítají se odpovídající prvky matic A a B).

Rozdíl matic.

Počítá se podle pravidel pro výpočet rozdílu dvou matic (od prvků matice A se odečítají odpovídající prvky matice B).

Maticová transpozice.

Výsledkem je matice transponovaná do matice A.

Obrázek 9

Obrázek 10

Aritmetické operátory však zdaleka nejsou jediné operátory používané při výpočtech.

3. Logické a porovnávací operátory

Důležitou skupinou operátorů jsou logické operátory a operátory porovnání. Operandy v tomto případě mohou být buď skaláry nebo matice. Než začneme uvažovat o těchto operátorech, povšimněme si některých funkcí práce s logickými hodnotami.

Logické hodnoty obvykle znamenají datový typ, jehož proměnné mohou nabývat dvou hodnot - skutečný A lhát(„pravda“ a „nepravda“). V Matlabu je jakákoli číselná hodnota jiná než nula interpretována jako skutečný(nebo "true") a nenulové hodnoty jsou interpretovány jako lhát(nebo "false"). Ve skutečnosti se jedná o pravidlo pro převod číselných hodnot na logické hodnoty. Zpětný převod se provádí podle následujícího pravidla: boolean skutečný(nebo "true") se převede na číselnou hodnotu "1" a booleovskou hodnotu lhát(nebo "false") se převede na číselnou hodnotu "0".

Pokud je proměnné přiřazena hodnota „true“ nebo „false“, zobrazená hodnota bude „1“ nebo „0“.

Operandy pro operátory porovnání jsou číselné hodnoty. Jedná se o binární operátory. Pokud jsou oba operandy skalární, porovnání se provede podle pravidel pro porovnávání čísel. Pokud je poměr pravdivý, je vrácena hodnota „1“, pokud je poměr nepravdivý, je vrácena hodnota „0“. Pokud jsou operandy maticemi stejných ranků, porovnávají se odpovídající prvky matic (podle pravidel pro porovnávání číselných hodnot). Výsledkem je „logická matice“: její prvky jsou rovny 1 nebo 0 v závislosti na výsledku porovnání odpovídajících prvků původních matic. Pokud je jeden operand skalární a druhý matice, pak je každý prvek matice porovnán se skalárem. Porovnávací operátory jsou uvedeny v tabulce 3. kompilace binárního programování

Tabulka 3 Porovnávací operátory Matlabu.

Operátor

Popis

Operátor rovnosti.

Operátor, který kontroluje hodnoty operandů na nerovnosti.

Operátor, který testuje, zda je hodnota prvního operandu větší než hodnota druhého operandu.

Operátor, který testuje, zda je hodnota prvního operandu menší než hodnota druhého operandu.

Operátor, který kontroluje, zda hodnota prvního operandu není menší než hodnota druhého operandu.

Operátor, který kontroluje, zda hodnota prvního operandu není větší než hodnota druhého operandu.

Stejně jako v případě porovnávacích operátorů mohou být operandy logických operátorů buď skaláry nebo matice (obojí nebo jen jedna současně). Pokud jsou operandy skalární, provádějí se odpovídající logické operace podle pravidel pro převod číselných a logických hodnot popsaných výše. Jsou-li oba operandy maticemi stejné velikosti, provádějí se logické operace prvek po prvku. Vzhledem k tomu, že jeden operand je matice a druhý je skalární, je provedena logická operace pro každý prvek matice a skalár. Logické operátory Matlabu jsou uvedeny v tabulce 4.

Tabulka 4 Logické operátory Matlabu.

Porovnávací i logické operace vracejí hodnoty „0“ (nepravda) a „1“ (pravda) pro prvky matic nebo skalárů (v závislosti na typu operandů).

4. Komplexní čísla

V Matlabu můžete používat nejen reálná čísla, ale i komplexní čísla. Zadávání komplexních čísel do pracovní oblasti se provádí v souladu s pravidly pro reprezentaci komplexních čísel. Jako pomyslnou jednotku si můžete vybrat mezi proměnnými „i“ nebo „j“ bez předchozí deklarace. Pokud je však proměnné „i“ nebo „j“ přiřazena číselná hodnota, nelze odpovídající proměnnou použít jako imaginární jednotku.

>> z = 1+2i

>> z+j

>> (2-4i)* (1+z)

12 0000 - 4 0000i

>> i* z

Při zadávání komplexní hodnoty mezi imaginární část a imaginární jednotku lze operátor násobení vynechat. Ve výchozím nastavení se k zobrazení imaginární jednotky používá symbol „i“ (i když jej lze zadat jako „j“). Existuje řada funkcí, které usnadňují práci s komplexními čísly. Mezi nimi má smysl vyzdvihnout funkce „real()“ a „imag()“ pro výpočet reálné a imaginární části komplexního čísla, respektive funkci „conj()“ pro výpočet komplexně sdruženého čísla. stejně jako funkce „complex()“, která přebírá dva argumenty (reálnou a imaginární část), na jejichž základě je vytvořeno komplexní číslo.

>> komplexní(3,-2)

3,0000 - 2,0000i

>> conj(ans)

3,0000 + 2,0000i

>> skutečný (ans)

>> imag(2-4 i)

Nejen skalární veličiny, ale i matice mohou být složité.

Obrázek 11

5. Operátor pro vytváření rozsahu hodnot

Docela populární a často používaný v Matlabu je operátor „dvojtečka“, tedy „:“. Existuje několik možností jeho použití. Podívejme se na ty nejčastější. Pro vytvoření řádkového vektoru s hodnotami rovnoměrně rozloženými v určitém intervalu se používá operátor v následujícím formátu: „dolní mez rozsahu, operátor (tj. „:“) a horní mez rozsahu“ – např. : "x=a:b". Tím se vytvoří řádkový vektor (u výše uvedeného příkazu se vektor zapíše do proměnné „x“). První prvek vektoru se rovná spodní hranici zadaného rozsahu (hodnota "a"). Diskrétní krok změny hodnot vektorových prvků je roven jedné. Hodnota posledního prvku je určena horní hranicí zadaného rozsahu (v tomto případě "b"). Příkaz „x=1:10“ tedy vytvoří řádkový vektor s hodnotami „1, 2, 3 atd. až 10" včetně (uživatelský vstup je zvýrazněn tučně):

>> x = 1:10

1 2 3 4 5 6 7 8 9 10

Obrázek 12

Pokud potřebujete vytvořit řádkový vektor s posloupností hodnot a diskrétním krokem odlišným od jednoho, použijte stejný operátor „dvojtečka“ (tj. „:“), ale v mírně odlišném formátu: „the je uvedena spodní hranice rozsahu hodnot, operátor „dvojtečka“, diskrétní krok, opět operátor „dvojtečka“ a horní mez rozsahu“ - například: „y=a:m :b“. Vytvoří se řádkový vektor s první hodnotou - dolní hranicí rozsahu (pro daný příkaz je to „a“). Každý další prvek se získá přičtením k předchozímu prvku zadané jako diskrétní krok (v tomto případě „m“). Hodnoty prvků generovaného pole nepřesahují horní mez rozsahu (tj. „b“). Příklad tohoto použití operátoru dvojtečka je uveden níže (výňatek kódu z pracovního prostoru, uživatelský vstup tučně):

>> y=1:0,7:10

Sloupce 1 až 8

0000 7000 2.4000 3.1000 3.8000 4.5000 5.2000 5.9000

Sloupce 9 až 13

6.6000 7.3000 8.0000 8.7000 9.4000

Obrázek 13

V tomto případě se vytvoří řádkový vektor y s hodnotami od 1 do 10 s diskrétním krokem 0,7 - hodnoty 0, 7, 2,4 atd. až 9,4 včetně (další hypotetická hodnota v sekvenci 10,1 překračuje horní hranici rozsahu 10, není tedy zahrnuta do generovaného vektoru). Hlášení „Sloupce 1 až 8“ a „Sloupce 9 až 13“ se objeví automaticky v důsledku toho, že se výsledek provedení příkazu „y=1:0.7:10“ nevejde na jeden řádek, takže část vektor výsledku se přenese na další řádek. Tyto zprávy jsou určeny k usnadnění procesu indexové identifikace prvků.

Druhý způsob použití operátoru dvojtečka je při indexování prvků. Stejně jako v předchozím případě existuje několik formátů nebo pravidel pro použití operátoru dvojtečka v indexech.

Pokud je například operátor dvojtečka použit ve formátu "A(i:j,k)",

výsledkem je pak sloupcový vektor, který se skládá z prvků matice „A“ umístěných v „k-tém“ sloupci od „i-tého“ po „j-tý“ řádek včetně. Odkaz ve formátu "A(:,k)" vrátí celý "k-tý" sloupec matice "A" jako hodnotu.

Operátor dvojtečky můžete použít při zadávání dvou indexů najednou. Například příkaz „A(i:j,m:n)“ vrátí podmatici sestávající z řádků od „i-tého“ do „j-tého“ a současně sloupců od „m-tého“ do „n-tého“ .

Podívejme se na několik příkladů použití operátoru dvojtečka.

Konkrétně se původní matice "A" zadává příkazem:

A=

Následující příkazy používají operátor dvojtečky k extrahování podmatic z původní matice "A":

>> A(1:3;2)

>> A(3;2:4)

>> A(3:4;1:2)

Například příkaz „A(1:3,2)“ vrátí sloupcový vektor složený z prvků prvního až třetího řádku ve druhém sloupci matice „A“. Příkaz „A(3,2:4)“ vrací řádkový vektor, který se skládá z prvků třetího řádku od druhého do čtvrtého sloupce včetně matice „A“. Nakonec příkaz „A(3:4,1:2)“ vrátí podmatici matice „A“, jejíž levý horní prvek má indexy „(3,1)“ a pravý dolní prvek má indexy „(4,2)“.

6. Vestavěné matematické funkce

Matlab má ve výchozím nastavení k dispozici poměrně velké množství vestavěných funkcí. Jejich jádro tvoří matematické funkce, které se v praxi používají poměrně často. Některé z nich jsou uvedeny v tabulce 5.

Tabulka 5 Některé matematické funkce Matlabu.

Popis

Modul čísla (včetně komplexu) určený argumentem funkce.

Arc cosinus čísla určeného argumentem funkce.

Arc cosinus argumentu funkce. Výsledek je uveden ve stupních.

Inverzní tangens čísla určeného argumentem funkce.

Arkotangens argumentu funkce. Výsledek je uveden ve stupních.

Arkosekansa čísla určeného argumentem funkce.

Arkosekans argumentu funkce. Výsledek je uveden ve stupních.

Arcsekans čísla určeného argumentem funkce.

Arkásekans argumentu funkce. Výsledek je uveden ve stupních.

Arcsekant je hyperbolický k číslu určenému argumentem funkce.

Arkásina čísla určeného argumentem funkce.

Arkásina argumentu funkce. Výsledek je uveden ve stupních.

Arkussinus je hyperbolický k číslu určenému argumentem funkce.

Arkustangens čísla předávaného jako argument funkce.

Funkce má dva argumenty (například atan(y,x)). Výsledkem je směr (úhel v rozsahu hodnot od -p do p) k bodu s odpovídajícími souřadnicemi (v tomto případě bodu se souřadnicemi (y,x)). Pokud jsou argumenty složité, jejich imaginární části jsou ignorovány.

Arkustangens argumentu funkce. Výsledek je uveden ve stupních.

Arkustangens je hyperbolický od čísla předaného jako argument funkce.

Funkce pro zaokrouhlení argumentu ve směru plus nekonečno - zaokrouhlování se provádí na celočíselnou hodnotu, která není menší než argument.

Kosinus čísla předávaného jako argument funkce.

Kosinus argumentu funkce zadaný ve stupních.

Hyperbolický kosinus čísla předávaného jako argument funkce.

Kotangens čísla předávaného jako argument funkce.

Kotangens argumentu funkce zadaný ve stupních.

Hyperbolický kotangens čísla předávaného jako argument funkce.

Kosekans čísla předávaného jako argument funkce.

Kosekans argumentu funkce zadaný ve stupních

Hyperbolický kosekans čísla předaného jako argument funkce.

Exponenciála: Exponenciální funkce se základem Eulerovy konstanty a exponentem určeným argumentem funkce.

Příkaz ve tvaru expm1(x) vypočítá hodnotu exp(x) se zvýšenou přesností -

Funkce vrací řádkový vektor s prvočísly čísla (s přihlédnutím k jejich násobnosti) zadaným argumentem funkce.

Funkce pro výpočet faktoriálu čísla určeného argumentem funkce.

Funkce pro zaokrouhlení směrem k nule. Výsledkem je číslo získané zaokrouhlením argumentu funkce na nejbližší celé číslo směrem k nule.

Funkce zaokrouhlení argumentu na nejbližší celočíselnou hodnotu, která nepřesahuje argument, je zaokrouhlení směrem k mínus nekonečnu.

Funkce vrací největší společný dělitel celých čísel nebo celočíselných polí – argumenty funkce.

Druhá odmocnina součtu druhých mocnin absolutních hodnot argumentů předávaných funkci.

Funkce má dva argumenty. Výsledkem je celočíselná část rozdělení prvního argumentu na druhý. Můžete také zadat volbu - v jednoduchých závorkách název funkce, pomocí které se zaokrouhlování provádí.

Funkce vrací nejmenší společný násobek celých čísel nebo celých čísel jako argumenty funkce.

Přirozený logaritmus čísla určeného argumentem funkce.

Základ 10 logaritmus čísla určeného argumentem funkce.

Příkaz jako log1p(x) vypočítá hodnotu log(1+x) se zvýšenou přesností.

Logaritmus základu 2 čísla určeného argumentem funkce.

Funkce vrátí zbytek dělení hodnoty prvního argumentu funkce hodnotou druhého argumentu. Celá část oddělení je definována funkcí froor().

Funkce vrací binomické koeficienty jako svou hodnotu. Pokud je funkce volána ve formátu nchoosek (n,k), pak je jako výsledek vrácena hodnota: ,

Funkce vrátí jako svou hodnotu nejbližší celé číslo - mocninu dvou, která není menší než modul argumentu funkce.

Příkaz nthroot(x,n) vrací n-tý kořen (druhý argument) reálného čísla nebo prvků reálného pole x (první argument).

Funkci lze volat s jedním nebo dvěma argumenty. Pokud má funkce jeden argument (pole) a funkce je volána ve formátu pow2(x), je výsledkem pole mocnin dvou, přičemž exponenty jsou určeny polem x. Pokud je funkce volána se dvěma argumenty ve formátu pow2(x,y), výsledkem je x.*2.^y.

Funkce má dva argumenty. Jsou-li argumenty skalární, výsledkem je hodnota prvního argumentu umocněného na mocninu určenou druhým argumentem. Obecněji je výstup výkonu (A,B) "A.^B".

Funkce vygeneruje seznam prvočísel. Počet čísel je určen argumentem funkce.

Funkce vrátí zbytek dělení hodnoty prvního argumentu funkce hodnotou druhého argumentu. Celá část větve je určena funkcí fix().

Funkce, která zaokrouhlí argument na nejbližší celočíselnou hodnotu.

Sekans čísla určeného argumentem funkce.

Sekans argumentu funkce zadaný ve stupních.

Znaménko čísla určeného argumentem funkce (pro kladná čísla - jedna, pro záporná čísla - mínus jedna, pro nulu - nula).

Sinus čísla určeného argumentem funkce.

Sinus argumentu funkce zadaný ve stupních.

Druhá odmocnina čísla určeného argumentem funkce.

Popis

Tangenta čísla určeného argumentem funkce.

Tangenta argumentu funkce zadaná ve stupních.

Ačkoli většina funkcí uvedených výše je matematicky definována pro skalární veličiny, lze je obecně aplikovat také na maticové argumenty. V tomto případě je akce funkčního operátoru aplikována na každý z prvků matice. Pokud je například proměnná „A“ matice s prvky „A(i,j)“, pak v důsledku provedení příkazu „exp(A)“ získáme matici stejné úrovně a její prvky se počítají jako „exp(A(i,j) ))“. V některých případech je tento přístup nepřijatelný. Existují tzv. maticové funkce, jejichž argumenty jsou z definice matice (většinou čtvercové). Výsledek těchto funkcí je vypočítán pomocí algoritmů vyvinutých speciálně pro matice. Například Matlab má vestavěné maticové funkce pro exponent, logaritmus a druhou odmocninu. Jedná se o funkce „expm()“, „logm()“ a „sqrtm()“. Pokud je například "A" čtvercová matice, pak funkce "expm(A)" vypočítá exponenciálu matice. Podle definice se jedná o řadu:

Výsledkem je matice, která se vypočítává obvykle na základě vlastních čísel a vlastních vektorů matice "A". Logaritmus matice pro argument matice "A" vypočítaný instrukcí "logm(A)" je matice taková, že její exponent matice je roven matici "A". Jinými slovy, podle definice, pokud "B=logm(A)", pak "expm(B)=A" a funkce "logm()" je inverzní k funkci "expm()". Podobně, když vezmeme druhou odmocninu matice "A" pomocí funkce "sqrtm()", vznikne matice, která po umocnění dává matici "A". Pokud například „B=sqrtm(A)“, pak „B*B=A“.

Matlab má také širokou škálu speciálních funkcí, z nichž některé jsou uvedeny v tabulce 6.

Tabulka 6. Některé speciální matematické funkce Matlabu.

Popis

Vzdušná funkce.

Besselova funkce třetího druhu (Hankelova funkce).

Příkaz besseli(n,x) vrací upravenou Besselovu funkci prvního druhu (index n).

Příkaz besselj(n,x) vrací Besselovu funkci prvního druhu (index n), která je jedním z řešení Besselovy rovnice.

Příkaz besselk(n,x) vrací upravenou Besselovu funkci druhého druhu (index n), která je jedním z řešení upravené Besselovy rovnice. Pro celočíselné indexy se odpovídající výraz vypočítá jako limit.

Příkaz besselj(n,x) vrací Besselovu funkci druhého druhu (index n), která je jedním z řešení Besselovy rovnice. Pro celočíselné indexy se odpovídající výraz vypočítá jako limit.

Eulerova beta funkce.

Eulerova neúplná beta funkce.

Přirozený logaritmus Eulerovy beta funkce. Argumenty jsou předány funkci beta.

Eliptická Jacobiho funkce. Pokud je funkce volána se dvěma argumenty ve formátu ellipj(u,m), jsou jako výsledek vráceny hodnoty (vektor) pro funkce sn(u) , cn(u) A dn(u).

Funkce pro výpočet úplného eliptického integrálu prvního a druhého druhu (vektor hodnot).

Chybová funkce.

Chybová funkce (zbytková).

Chybová funkce (zbytková normalizována).

Inverzní funkce k chybové funkci erf().

Inverzní funkce k chybové funkci erfc().

Integrální exponent.

Eulerova gama funkce.

Neúplná funkce gama.

Přirozený logaritmus Eulerovy gama funkce. Argument funkce předává argument funkce gama.

Funkce pro výpočet asociovaných Legendreových polynomů. V důsledku volání funkce ve formátu legendre(n,x) je vrácen sloupcový vektor hodnot souvisejících Legendreových polynomů. m() Pn x Pro m= 0,1,2,...,n

Psi-polygamní funkce.

Stejně jako u základních matematických funkcí může většina speciálních funkcí brát matice jako argumenty. V tomto případě se funkce vypočítá pro každý z prvků matice.

7. Výstupní formát číselných dat

V některých případech je nutné změnit způsob zobrazení dat vyplývajících z uživatelských příkazů na obrazovce. Nejprve si všimneme, že výsledek příkazu v příkazovém okně nemusíte vůbec zobrazovat. K tomu stačí ukončit odpovídající příkaz středníkem (tj. „;“). V tomto případě se po stisknutí klávesy Enter příkaz provede, ale výsledek jeho provedení se v příkazovém okně nezobrazí. Tento režim je vhodný zejména v případech, kdy potřebujete provádět těžkopádné mezivýpočty, které jsou na jedné straně nutné k získání konečného výsledku a na druhé straně zahlcují pracovní prostor. Proto je rozumným východiskem z této situace skrytí výsledku příkazu. Formát číselného výstupu je explicitně specifikován pomocí příkazu "format". V příkazu pro definici výstupního formátu je za klíčovým slovem „format“ uveden formát, který se má použít. Přijatelné formáty se stručným popisem jsou uvedeny v tabulce 7.

Tabulka 7 Formáty čísel.

Popis

Formát zobrazení číselných dat, který zobrazuje čtyři číslice za desetinnou čárkou (formát dat s pevnou čárkou). Formát je výchozí.

Formát čísla, který zobrazuje 7, 14 nebo 15 číslic za desetinnou čárkou v závislosti na typu číselných dat (formát dat s pevnou čárkou).

Formát pro zobrazení číselných dat s mantisou a exponentem (formát dat s pohyblivou řádovou čárkou), který zobrazuje čtyři číslice za desetinnou čárkou.

Číselný formát zobrazení s mantisou a exponentem (formát dat s plovoucí desetinnou čárkou), který zobrazuje 7, 14 nebo 15 číslic za desetinnou čárkou v závislosti na typu číselných dat.

V závislosti na hodnotě se pro zobrazení používá formát s pohyblivou řádovou čárkou nebo s pevnou řádovou čárkou. Za desetinnou čárkou se zobrazí čtyři číslice.

V závislosti na hodnotě se pro zobrazení používá formát s pohyblivou řádovou čárkou nebo s pevnou řádovou čárkou. Za desetinnou čárkou se zobrazí 7, 14 nebo 15 číslic.

Technický formát se čtyřmi zobrazitelnými číslicemi za desetinnou čárkou a exponentem, který je násobkem tří.

Technický formát se 7, 14 nebo 15 zobrazitelnými číslicemi za desetinnou čárkou a exponentem, který je násobkem tří.

Formát, ve kterém kladná čísla zobrazují znaménko +, záporná čísla zobrazují znaménko - a nula zobrazuje mezeru.

Finanční formát, který zobrazuje dvě číslice za desetinnou čárkou.

Zobrazte čísla v hexadecimálním zápisu.

Zobrazení čísel jako racionálních zlomků.

Režim pro zobrazení výsledků výpočtů v kompaktní formě se zmenšenými mezerami mezi řádky.

Režim pro zobrazení výsledků výpočtů se zvětšenými intervaly mezi řádky. Používá se ve výchozím nastavení.

Níže je uveden příklad zobrazení čísla p v různých formátech (v příkazech se používá vestavěná konstanta „Matlab pi“):

>>

>> dlouhý formát

>>

3.141592653589793

>> dlouhý formát e

>>

3,141592653589793e+000

>> formát dlouhý eng

>>

3,14159265358979e+000

>> formátová banka

>>

>> formát krysa

>>

>> formát +

>>

Obrázek 14

Nastavení výstupního formátu ovlivňuje pouze způsob zobrazení číselných hodnot, nikoli přesnost jejich prezentace. Hlavním kritériem při výběru způsobu výstupu dat proto může být otázka pohodlí. Existuje jedna funkce, která sice přímo nesouvisí s určováním výstupního formátu číselných dat, ale její použití značně zjednodušuje proces interakce uživatele se systémem. Jedná se o funkci „clc“, která umožňuje vyčistit pracovní plochu od vstupních příkazů a výsledků jejich provádění.

PraktickýČást

1. Vytvořte řádkový vektor: počáteční prvek je - p, konečný prvek je p, krok je 0. Transponujte řádek do sloupce.

2. Vytvořte tři řádkové vektory o 5 prvcích fi =, kde n = 5 pro x = 2, 3, 4. Spojte tyto řádky do matice A (3 x 5).

3.Vytvořte tři sloupcové vektory z 5 prvků aritmetické posloupnosti. Prvek aritmetické progrese se vypočítá pomocí vzorce:

kde „an-1“ je předchozí prvek; "an" - následující.

Pět prvků vektoru je vytvořeno tak, že se začne prvním prvkem „a“ a pomocí aritmetického postupu „d“ se specifikují následující prvky:

Pro vektor prvního sloupce: a = 2; d = 1:

Pro druhý sloupcový vektor: a = 7; d = 2:

Pro vektor třetího sloupce: a = 10; d =-2:

4. Spojte tyto sloupcové vektory do matice B (5 X 3).

5. Transponujte matici B a spojte s maticí A do matice M(6 × 5).

6. Odstraňte druhý řádek z matice A.

7. U matice B resetujte třetí řádek a odstraňte poslední dva řádky.

8. Vytvořte matici H(2 × 2) výběrem prvních dvou řádků a sloupců matice M.

9. Pomocí funkce repmat vytvořte matici složenou z 2 x 3 matic H.

10. Vytvořte matice o rozměrech 3 x 3:

C - jednotky:

F - rovnoměrně rozložená náhodná čísla:

E - normálně rozdělená náhodná čísla:

11. Najděte minimální prvek v matici rovnoměrně rozložených čísel rozměru 3 x 5 pomocí funkce „reshape“.

1. Sestrojte grafy obálkových funkcí na intervalu [-1,-0,3] s krokem 0,005.

První graf znaku je červená plná čára a druhý je zelená přerušovaná čára se značkami x. Potom překryjte grafy diskrétních vzorků stejných funkcí do výsledných grafů, aniž byste vymazali předchozí výsledek.

2. Sestrojte grafy denních teplot; hodnoty vektorů času a teploty pro dva dny jsou uvedeny níže.

Čas – 0 4 7 9 10 11 12 13 13,5 14 14,5 15 16 17 18 20 22.

Teplota 10. - 14. května 15 14 16 18 17 20 22 24 28 25 20 16 13 13 14 13. Teplota 11. - 12. 12 13 13 14 16 18 20 20 20 25 1 2 1 2 1 25 2

Navrhněte grafy s nadpisem „Veškerá teplota“ a označte „Čas“ podél osy „X“; podél osy „Y“ „Teplota“; v legendě - „10 května“, „11 května“ a umístěte ji do levého dolního rohu.

3. Sestrojte 3-rozměrné grafy funkce:

z(X,y) = 4 hříchy (2р X) cos (5р y)(1 - X 2 )y(1 ?y)

na obdélníkové ploše "x [?1], y » s krokem 0,05 za použití všech metod probíraných v laboratorní práci, jejich umístění do samostatných oblastí na jednom okně. Názvy funkcí použitých ke konstrukci grafů by měly být uvedeny v záhlaví těchto grafů.

Publikováno na Allbest.ru

...

STÁTNÍ VYSOKÉ UČENÍ TECHNICKÉ TAMBOV


ODDĚLENÍ

"Informační procesy a řízení"

Metodický vývoj

na laboratorní lekci č.1

v disciplíně "Teorie rozhodování"

Název disciplíny

název tématu

Předmět: Studium jednorozměrných optimalizačních metod

Cíl práce:

Studium jednorozměrných optimalizačních metod a metod jejich algoritmické implementace v prostředí multifunkčního integrovaného automatizačního systému pro matematické a vědecko-technické výpočty MATLAB 7.1;

Srovnávací posouzení výše výpočetních nákladů metod: přímé skenování, dichotomie, „zlatý řez“ a Fibonacciho metoda.

Literatura:

1. Aoki M. Úvod do optimalizačních metod. M.: Nauka, 1977. 444 s.

2. Batiščev D.I. Optimální metody návrhu. M.: „Rádio a komunikace“, 1984. 248 s.

3. Bodrov V.I., Lazareva T.Ya., Martemyanov Yu.F. Matematické metody rozhodování: Proc. příspěvek. Tambov: nakladatelství Tamb. Stát těch. Univ., 2004. 124 s.

4. Polak E. Numerické optimalizační metody. M.: Mir, 1997. 376 s.

5. Himmelblau D. Aplikované nelineární programování. M.: Mir, 1975. 534 s.

6. Yudin D.B. Výpočtové metody teorie rozhodování. M.: Nauka, 1989. 316 s.

7. Ketkov Yu. L., Ketkov A. Yu., Shultz M. M. MATLAB 7: programování, numerické metody. - Petrohrad: BHV-Petersburg, 2005. - 752 s.

Vedením lekce

Laboratorní výuka v oboru „Teorie rozhodování“ je vedena s cílem prohloubit a upevnit teoretické znalosti získané studenty v různých typech hodin a v procesu samostatného studia výukového materiálu, získání dovedností v praktické implementaci matematických metod. rozhodování. Na základě výsledků laboratorních hodin by studenti měli

Teoretický materiál, na jehož základě bylo modelování provedeno, a také podstata fyzikálních procesů formalizovaných v programech;

Základní metody pro modelování relevantních procesů;

Vyberte a vyhodnoťte vliv hlavních parametrů na výsledek modelování;

Analyzujte a shrňte získané výsledky.

Absolvování laboratorních prací zahrnuje tři fáze: předběžná příprava na laboratorní lekci, samotná lekce a reportování z laboratorní lekce.

Cílem lekce je ukázat propojení teoretického materiálu s praxí a naučit studenty aplikovat teorii na řešení praktických problémů.

Laboratorní práce je strukturována tak, že nepředpokládá znalosti studentů o MATLABu. Každé cvičení začíná stručným popisem MATLABu, který poskytuje studentovi základní informace potřebné k dokončení aktivity.

Příprava na hodinu

V předvečer vyučování by studenti měli:

Přečtěte si příručku pro tuto laboratoř;

Zopakujte si látku z přednášky a prostudujte si navrhovanou literaturu na toto téma;

Prostudujte si postup provádění práce;

Připravte se na zodpovězení bezpečnostních otázek.

Postup při vedení lekce

V úvodní části hodiny je přijata studijní skupina, je uvedena návaznost na dříve probranou látku, oznámeno téma, účel, pořadí a vlastnosti této hodiny a zkontrolována připravenost studijní skupiny na hodinu.

Dále studenti začnou provádět výzkum v souladu s metodikou. V případě nejasných otázek týkajících se laboratorní lekce by se studenti měli obrátit na učitele, technický personál nebo instruktora počítačové laboratoře. Výsledky výzkumu a závěry jsou prezentovány ve formě laboratorní zprávy. Posudek je pracovním dokumentem studenta a předkládá se vedoucímu učiteli při obhajobě. Dále se obhajují protokoly z laboratorní lekce a na závěr se sečtou výsledky lekce.

Hlášení lekce

Studenti musí získat zápočet za laboratorní cvičení. Princip hlášení je individuální a lze jej provést ústně nebo písemně po absolvování hlavní části lekce. Při vydávání známky se zohledňuje: dostupnost, sečtělost a správnost formuláře vysvědčení, kvalita laboratorní práce a výsledky odpovědí na testové otázky. Studenti, kteří nezískali zápočet a nejsou na této laboratorní hodině, se o něm hlásí ve svém volném čase.

Stručný popis MATLABu

Systém MATLAB (Matrix Laboratory) se skládá z velkého množství speciálních programů, které umožňují řešit širokou škálu matematických a technických problémů z různých oblastí vědy. Jeho hlavním prvkem je jádro systému MATLAB. Kromě toho systém obsahuje asi 80 různých sad příkazů (tzv. „Toolboxů“), které odpovídají různým sekcím matematiky, matematické fyziky, designu, komunikací, ekonomie atd. Tato práce využívá základní programovací nástroje MATLABu: M-soubory – funkce, vestavěné funkce, operátory, příkazy atd.

Obr. 1. Plocha systému

Obrázek 1 ukazuje plochu systému. Panel nabídek (Soubor, Upravit atd.) je v mnoha ohledech podobný jako v editoru Microsoft Word. Řada ikon umístěná níže také provádí stejné operace jako v editoru Word (s výjimkou posledních 3). Plocha systému se skládá z několika oken, jejichž složení lze měnit pomocí příkazů nabídky Plocha počítače. Obrázek 1 v horním okně vlevo ukazuje obsah pracovního prostoru Pracovní prostor, který obsahuje popisy všech konstant a funkcí zadaných uživatelem během provozu. Ve spodním okně Historie příkazů Je uvedena posloupnost provedených příkazů. Velikosti oken se upravují tažením okraje myší. Hlavní okno plochy - Příkazové okno(příkazové okno). V příkazovém okně se za znakem ">>" napíše příkazový řádek, který se provede po stisku klávesy " Vstupte".

MATLAB umožňuje vytvářet programové soubory podobné jiným programovacím jazykům na vysoké úrovni. Navíc má vlastnosti výkonné programovatelné kalkulačky. V této práci je softwarová implementace vyhledávacích algoritmů prováděna pomocí souborů M-funkcí a z příkazového okna lze spouštět programy a zadávat počáteční data.

Formát čísla se nastavuje v nabídce Soubor(obr. 1) v řezu Předvolby pomocí funkce Numerický formát. Nejčastěji používané z 12 možných formátů jsou Krátký A Dlouho– formáty krátkých a dlouhých čísel.

Některé ze základních konceptů MATLABu jsou proměnné A prohlášení .

Variabilní označované jedním písmenem nebo sadou písmen a číslic začínajících na písmeno. Celkový počet písmen a číslic v sadě by neměl přesáhnout devatenáct. Prohlášení má následující podobu:

>>proměnná=výraz

Když zadáte příkaz, je proměnné přiřazen výraz, který následuje za znaménkem rovná se, nebo, pokud zahrnuje nějaké matematické operace, výsledek získaný po provedení těchto operací. Příkaz můžete zadat do M-souboru nebo do příkazového okna MATLABu. Znak ">>" je příkazový řádek, který se zobrazuje na obrazovce v příkazovém okně a označuje, že lze zadávat příkazy.

Hlavní aritmetické operátory jsou uvedeny v tabulce 1.1. Při provádění výpočtů v příkazovém okně po stisknutí " Vstupte"výsledek je přiřazen parametru" ans", pokud odpovídající výraz nemá přiřazen název, nebo jeho název - jinak (názvy proměnných, konstant a funkcí musí začínat písmenem (latinská písmena), mohou obsahovat čísla a podtržítko). Blokovat výstup výpočtu výsledek určitého výrazu za ním, musíte nastavit znaménko; (středník).

Tabulka 1.1

Nechť například chcete vyhodnotit výraz a výsledek přiřadit proměnné X. V tomto případě bude mít příkaz (program) následující tvar (v desetinných zlomcích je celočíselná část oddělena od zlomkové části tečkou):

>> x=log(1+5*((log10(100))^2-0,2*pi)/sqrt(1+2,71828^3))

Po uvedení výpisu, tzn. stisknutím klávesy Enter se výsledek ihned zobrazí níže. Pokud je potřeba výsledek zablokovat, tzn. nemusí být zobrazen na displeji, pak na konec výpisu musíte umístit znak “; "(středník). Předchozí výraz může být reprezentován v jiné formě:

>> a=(log10(100))^2;

>> b=sqrt(1+2,71828^3);

>> x=log(1+5*(a-0,2*pi)/b)

MATLAB má několik vestavěných proměnných: pi, eps, inf, i A j. Variabilní znamená číslo, eps=2 -52 =2,2204*10 -16 – chyba pro operace s čísly s pohyblivou řádovou čárkou, inf- nekonečno ( ), i A j- pomyslná jednotka ( i = j= ).

Pokud není zadán levý argument, je výsledek výrazu přiřazen společné proměnné ans.

Relační operátory (tabulka 1.2) se používají v podmíněných příkazech, smyčkových operátorech atd. při implementaci vyhledávacích algoritmů pomocí M-funkcí (podprogramy-funkce se zapisují do souborů s příponou .m).

Tabulka 1.2

Programy v systému MATLAB jsou tedy M-soubory textového formátu obsahující záznam programů ve formě programových kódů.

Vstupní jazyk MATLABu má pouze 9 operátorů používajících 14 funkčních slov. Odpovídající syntaktické struktury jsou uvedeny v tabulce. 1.3.

Tabulka 1.3

Formát operátora Vysvětlení
var = expr Operátor přiřazení. Vypočítá hodnoty výrazu expr a uloží výsledky výpočtů do proměnné var
ifcondition_1 statement_1 end Podmíněný operátor. Je-li podmínka_1 pravdivá, pak se vykonají operátory skupiny_1, je-li podmínka_2 pravdivá, pak skupinové operátory_2, ... Pokud jsou všechny zadané podmínky nepravdivé, provedou se operátory umístěné mezi else a end
switchexpr casevail operator_1 caseval2 operator_2 . . . . . . . . . [othervise statement] end Přepnout podle hodnoty výrazu expr. Pokud se shoduje s hodnotou vail , provede se skupina operator_1, pokud se shoduje s hodnotou val2, provede se skupina operator_2, ... Pokud se hodnota expr neshoduje s žádnou z uvedených hodnot, pak se operátory umístěné mezi othervise a end jsou provedeny
forvar=el:e3 koncové příkazy Cyklus typu aritmetické progrese, ve kterém se proměnná var s každým opakováním těla smyčky změní z počáteční hodnoty el s krokem e2 na konečnou hodnotu e3
whilecondition příkazy končí Smyčka s předběžnou podmínkou, která se opakuje, dokud není zadaná podmínka splněna
try statement_1 catch statement 2 end Pokus o provedení skupinových operátorů_1. V případě, že v důsledku jejich provedení dojde k výjimce, je řízení přeneseno na skupinu operátorů_2 (řešení poruchových situací). Pokud nedojde k žádné chybě, skupina operator_2 se neprovede
přestávka Včasný odchod z řídicích struktur jako pro , while, switch, try - catch
funkce f1 funkce f2 (x1,x2, . . .) funkce y=f3(xl,x2,...) funkce =f4(xl,x2, . . .) Hlavička funkce (xl, x2, ... - vstupní parametry; y, yl, y2, ... - výstupní parametry)
vrátit se Předčasné opuštění těla funkce

Při psaní funkčních programů se vyžaduje, aby se název M-souboru, ve kterém je program uložen, nutně shodoval s názvem funkce.

Všechny proměnné vyskytující se v těle funkce, s výjimkou globálních proměnných (deklarovaných globálním operátorem), vstupních parametrů a výstupních parametrů, jsou považovány za lokální. Tvoří místní pracovní prostor a jsou dostupné pouze v těle funkce, která je vygenerovala, a žádné jiné funkce je nemohou používat.

Jazyk MATLAB neobsahuje operátor jít do. V tomto ohledu nejsou v textech m-souborů žádné popisky operátorů. K identifikaci linek, na kterých dochází k nouzové situaci, se používají interní čísla, která jsou automaticky přidělována systémem.

Navzdory poměrně vysoké popularitě jazyka MATLAB má většina vývojářů potíže s pochopením jeho syntaxe a schopností. Jde o to, že jazyk přímo souvisí s populárním softwarovým produktem, jehož náklady mohou dosáhnout úžasných hodnot. Hlavní otázka tedy zní: je samotný jazyk Matlab tak dobrý? A může to být pro vás užitečné?

Používání

Začněme nikoli standardní exkurzí do historie a diskuzí o kladech a záporech jazyka, ale softwarovým prostředím MATLAB/Simulink – jediným místem, kde může být hrdina tohoto textu užitečný. Jen si představte grafický editor, ve kterém můžete realizovat jakýkoli svůj nápad, aniž byste za sebou měli několikaletou praxi a příslušné vzdělání. A když jednou vytvoříte diagram interakce mezi nástroji, získáte vysoce kvalitní skript pro opakované použití.

Právě takovým editorem ve světě dat je MATLAB. Rozsah jeho použití je nekonečně široký: IoT, finance, medicína, vesmír, automatizace, robotika, bezdrátové systémy a mnoho, mnoho dalšího. Obecně jsou téměř neomezené možnosti sběru a vizualizace dat, stejně jako prognózování, ovšem pouze v případě, že máte možnost zakoupit příslušný balíček.

Co se týče ceny, horní hranice téměř neexistuje, ale spodní hranice se pohybuje kolem 99 dolarů. Abyste za relativně málo peněz urvali tak výkonný produkt, musíte být vysokoškolák. A samozřejmě dostanete poměrně omezený produkt.

Vlastnosti jazyka

Jazyk MATLAB je nástroj, který poskytuje interakci mezi operátorem (často ani programátorem) se všemi dostupnými možnostmi pro analýzu, sběr a prezentaci dat. Má zjevné klady a zápory charakteristické pro jazyk žijící v uzavřeném ekosystému.

nedostatky:

    Pomalý a přetížený jazyk s operátory, příkazy a funkcemi, jehož hlavním účelem je zlepšit vizuální vnímání.

    Úzce zaměřený. Neexistuje žádná jiná softwarová platforma, kde by byl MATLAB užitečný.

    Vysoká cena softwaru. Pokud nejste student, buď se připravte na vyprázdnění kapsy nebo překročení hranice zákona. A i když jste student, cena je slušná.

    Nízká poptávka. I přes velký zájem o MATLAB téměř ve všech oborech jej skutečně a legálně využívá jen málokdo.

výhody:

    Jazyk se snadno učí a má jednoduchou a srozumitelnou syntaxi.

    Obrovské příležitosti. To je ale spíše výhoda produktu jako celku.

    K častým aktualizacím, obvykle znatelným pozitivním transformacím dochází alespoň několikrát do roka.

    Softwarové prostředí umožňuje převést jej na „rychlý“ kód v C, C++.

cílové publikum

Samozřejmě ne každý potřebuje MATLAB. I přes jeho širokou škálu aplikací je těžké si představit, že by běžný vývojář aplikací potřeboval znalost tohoto jazyka. MATLAB je mimořádně užitečný v oblastech, které vyžadují obzvláště robustní zpracování dat, jako jsou systémy autopilota v automobilech nebo systémy letecké avioniky.

Tedy pokud nejste moc programátor, ale tak či onak vaše profese souvisí s potřebou programového zpracování dat, pak vám produkt MATLAB/Simulink s příslušným jazykem může výrazně zjednodušit každodenní úkoly.

Literatura

Recenzi jazyka uzavíráme jako vždy seznamem naučné literatury. Samozřejmě mezi nimi nenajdete knihy výhradně o jazyce, ale to jen usnadní vnímání jazyka:

Máte zkušenosti s MATLABEM? A který?

Pro ty, kteří se chtějí stát programátorem - .

Přehled funkcí

MatLab z angličtiny. Matrix Laboratory je jak balíček aplikačních programů pro řešení problémů inženýrských a technických výpočtů, tak stejnojmenný programovací jazyk používaný v tomto balíčku.

MatLab je přizpůsoben pro použití na většině moderních operačních systémů, včetně Linuxu, Mac OS, Solaris a Microsoft Windows.

MATLAB jako programovací jazyk vyvinul Cleve Moler na konci 70. let. Cílem vývoje bylo dát studentům fakulty možnost využívat softwarové knihovny Linpack a EISPACK bez nutnosti studia Fortranu. Později Mowler ve spolupráci s J. Littleem a S. Bangertem přepsal MATLAB v C a v roce 1984 založil společnost The MathWorks, aby jej dále rozvíjel. MATLAB byl původně určen pro návrh řídicích systémů, ale rychle si získal oblibu v mnoha dalších vědeckých a technických oborech. To bylo také široce používáno ve vzdělávání, zejména pro výuku lineární algebry a numerických metod.

Moderní MatLab je interaktivní systém, ve kterém je hlavním datovým prvkem pole. To vám umožňuje programově implementovat numerické metody, které intenzivně využívají operace s maticemi a vektory, několikrát rychleji než při psaní podobných programů ve „skalárních“ programovacích jazycích jako C, C++, Fortran atd.

Důležitou výhodou MatLabu je otevřenost kódu funkce, která umožňuje zkušeným uživatelům kód měnit, vylepšovat nebo přizpůsobovat svým úkolům. MatLab jako programovací jazyk kombinuje jednoduchost Fortranu a flexibilitu C, i když z formálního hlediska je MatLab tlumočník. Nutno podotknout, že MatLab API komunikuje s programy napsanými v C a Fortranu, což umožňuje volat funkce MatLabu z kódu C\Fortran a naopak.

MatLab má rozsáhlé možnosti pro vizualizaci 2- a 3-rozměrných dat. Vysoce kvalitní grafické funkce a grafické rozhraní snižují námahu uživatele na minimum a zároveň poskytují vysoce kvalitní obrázky. Nechybí ani přístup k nízkoúrovňovým funkcím pro „pokročilé“ uživatele, což dále rozšiřuje grafické možnosti systému.



Související články: