Pomoc matematikom: Prehľad MATLABu. Stručný popis MATLABu

  • 21.07.2019

Úvod

MATLAB(skratka pre angličtinu."Matričné ​​laboratórium" ) - balík aplikovaných programov na riešenie problémov technických výpočtov a programovacieho jazyka s rovnakým názvom, ktorý sa používa v tomto balíku. MATLAB ® používa ho viac ako 1 000 000 inžinierov a vedcov a beží na väčšine moderných operačných systémov.

Bol vyvinutý MATLAB ako programovací jazyk Autor: Cleve Mowler nakoniec 70. roky 20. storočia rokov, keď bol dekanom fakulty počítač vedy v Univerzita v Novom Mexiku... Účelom vývoja bola úloha dať študentom fakulty možnosť využívať softvérové ​​knižnice Linpack a EISPACK bez nutnosti študovať Fortrana... Čoskoro sa nový jazyk rozšíril medzi ďalšie univerzity a bol prijatý s veľkým záujmom vedcov pôsobiacich v oblasti aplikovanej matematiky. Verziu stále nájdete na internete 1982 rok napísané vo Fortrane, distribuuje open source... Inžinier John Little ( Angličtina John N. (Jack) Málo) sa s týmto jazykom zoznámili počas návštevy Cleve Mowlera Stanfordská univerzita v 1983 rok... Uvedomil si, že nový jazyk má veľký komerčný potenciál, a tak sa spojil s Cleve Mowlerom a Stevom Bungertom ( Angličtina Steve Bangert). Spoločne prepísali MATLAB C a založená v r 1984 spoločnosti MathWorks pre ďalší rozvoj. Tieto knižnice, prepísané v C, sú už dlho známe ako JACKPAC. MATLAB, pôvodne určený pre návrh riadiacich systémov (hlavná špecializácia Johna Littlea), si rýchlo získal popularitu v mnohých ďalších vedeckých a inžinierskych oblastiach. Široko sa využíval aj vo vzdelávaní, najmä pri vyučovaní lineárna algebra a numerické metódy.

MATLAB je interpretovaný programovací jazyk na vysokej úrovni, ktorý zahŕňa dátové štruktúry založené na matici, širokú škálu funkcií, integrované vývojové prostredie, objektovo orientované možnosti a rozhrania k programom napísaným v iných programovacích jazykoch.

V MATLABE sú napísané dva typy programov – funkcie a skripty. Funkcie majú vstupné a výstupné argumenty, ako aj vlastný pracovný priestor na ukladanie priebežných výsledkov výpočtov a premenných. Skripty zdieľajú spoločný pracovný priestor. Skripty aj funkcie nie sú skompilované do strojového kódu a sú uložené ako textové súbory.

Hlavnou črtou jazyka MATLAB sú široké možnosti práce s maticami, čo tvorcovia jazyka vyjadrili sloganom „mysli vo vektore“

MATLAB poskytuje používateľovi veľké množstvo (niekoľko stoviek) funkcií na analýzu údajov, ktoré pokrývajú takmer všetky oblasti matematiky, najmä:

    Matice a lineárna algebra - maticová algebra, lineárne rovnice, vlastné hodnoty a vektory, singularity, faktorizácia matice a iné.

    Polynómy a interpolácia polynómov, operácie s polynómami a ich odvodzovanie, interpolácia a extrapolácia kriviek a iné.

    Matematická štatistika a analýza dát - štatistické funkcie, štatistická regresia, digitálna filtrácia, FFT a iné.

    Spracovanie údajov je súbor špeciálnych funkcií vrátane vykresľovania, optimalizácie, nulového vyhľadávania, numerickej integrácie (v kvadratúre) a ďalších.

    Diferenciálne rovnice - riešenie diferenciálnych a diferenciálno-algebraických rovníc, diferenciálne rovnice s oneskorením, rovnice s obmedzeniami, parciálne diferenciálne rovnice a iné.

    Riedke matice sú špeciálna dátová trieda MATLABu používaná v špecializovaných aplikáciách.

    Celočíselná aritmetika – Vykonáva celočíselné aritmetické operácie v prostredí MATLAB.

1. Základné informácie

1.1. Pracovné prostredie MatLab

Ak chcete spustiť program, dvakrát kliknite na ikonu. Pracovné prostredie zobrazené na obrázku sa otvorí pred vami.

Pracovné prostredie MatLab 6.x obsahuje nasledujúce prvky:

    panel nástrojov s tlačidlami a rozbaľovacím zoznamom;

    okno s kartami Launch Pad a Pracovný priestor z ktorej máte prístup k rôznym modulom ToolBox a obsahu pracovného priestoru;

    okno s kartami História príkazov a Aktuálny adresár, určený na prezeranie a vyvolanie predtým zadaných príkazov, ako aj na nastavenie aktuálneho adresára;

    príkazové okno, ktoré obsahuje výzvu „a blikajúci vertikálny kurzor;

    stavový riadok.

Ak v pracovnom prostredí MatLab 6.x chýbajú niektoré okná zobrazené na obrázku, prejdite do menu vyhliadka vyberte vhodné položky: Príkazové okno, História príkazov, Aktuálny adresár, Pracovný priestor, Launch Pad.

Príkazy by sa mali zadávať do príkazového okna. Na označenie príkazového riadka nemusíte zadávať „znak“. Na zobrazenie pracovnej oblasti je vhodné použiť posúvače alebo klávesy. Domov,Koniec, na pohyb doľava alebo doprava a Strana hore,O stranu nižšie pre pohyb nahor alebo nadol. Ak náhle po pohybe v pracovnej oblasti príkazového okna príkazový riadok s blikajúcim kurzorom zmizol, stačí stlačiť Zadajte.

Je dôležité si zapamätať, že písanie akéhokoľvek príkazu alebo výrazu musí skončiť kliknutím na Zadajte, aby MatLab vykonal tento príkaz alebo vypočítal výraz.

1.2. Najjednoduchšie výpočty

Do príkazového riadka napíšte 1 + 2 a stlačte Zadajte... V dôsledku toho sa v príkazovom okne MatLab zobrazí nasledovné:

Ryža. 2 Grafické znázornenie analýzy hlavných komponentov

Čo urobil MatLab? Najprv vypočítala súčet 1 + 2, potom zapísala výsledok do špeciálnej premennej a vytlačila jeho hodnotu rovnajúcu sa 3 do príkazového okna. Pod odpoveďou je príkazový riadok s blikajúcim kurzorom, čo znamená, že MatLab je pripravený na ďalšie výpočty. Na príkazovom riadku môžete zadať nové výrazy a nájsť ich hodnoty. Ak potrebujete pokračovať v práci s predchádzajúcim výrazom, napríklad pre výpočet (1 + 2) /4,5, tak najjednoduchšie je použiť už existujúci výsledok, ktorý je uložený v premennej premenné. Typeans / 4,5 (používa sa desatinná čiarka) a stlačte Zadajte, ukázalo sa

Ryža. 3 Grafické znázornenie analýzy hlavných komponentov

1.3. Echo príkazy

Každý príkaz v MatLab sa opakuje. Vo vyššie uvedenom príklade je to odpoveď ans = 0,6667. Ozvena často sťažuje vnímanie práce programu a potom sa dá vypnúť. Aby to bolo možné, príkaz musí končiť bodkočiarkou. Napríklad

Ryža. 4 Príklad zadania funkcie ScoresPCA

1.4. Zachovanie pracovného prostredia. Mat súbory

Najjednoduchší spôsob uloženia všetkých hodnôt premenných je použitie v menu Súbor odstavec Uložiť Workspase ako. Súčasne sa zobrazí dialógové okno. Uložiť premenné pracovného priestoru, v ktorom by ste mali zadať adresár a názov súboru. Štandardne sa odporúča uložiť súbor do pracovného podadresára hlavného adresára MatLab. Program uloží výsledky práce do súboru s príponou mat. Teraz môžete MatLab zatvoriť. V ďalšej relácii, ak chcete obnoviť hodnoty premenných, otvorte tento uložený súbor pomocou podpoložky Otvorené Ponuka Súbor... Teraz sú opäť dostupné všetky premenné definované v predchádzajúcej relácii. Môžu byť použité v novo zadaných príkazoch.

    Kľúčové vlastnosti balíkaMatlab

    Súpravy nástrojov na balenieMatlab

    Štruktúra balíka a pracovné oknáMatlab

    Práca v príkazovom režime

    Základné prvky programovacieho jazykaMatlab

1. Hlavné vlastnosti balíka Matlab

MATLAB(skratka z anglického "Matrix Laboratory") je balík aplikovaných programov na riešenie problémov technických výpočtov a rovnomenný programovací jazyk použitý v tomto balíku. MATLAB používa viac ako 1 000 000 inžinierov a vedcov a beží na väčšine moderných operačných systémov vrátane Linuxu, Mac OS, Solaris (Solaris už nie je podporovaný v R2010b) a Microsoft Windows.

História. MATLAB vyvinul ako programovací jazyk Cleve Moler koncom 70-tych rokov, keď bol dekanom katedry informatiky na Univerzite v Novom Mexiku. Účelom vývoja bola úloha dať študentom fakulty možnosť využívať softvérové ​​knižnice Linpack a EISPACK bez nutnosti štúdia Fortranu. Čoskoro sa nový jazyk rozšíril na ďalšie univerzity a bol prijatý s veľkým záujmom vedcov pôsobiacich v oblasti aplikovanej matematiky. Na internete stále nájdete verziu Fortranu z roku 1982, ktorá je distribuovaná ako open source. Inžinier John N. (Jack) Little sa zoznámil s jazykom počas návštevy Clivea Mowlera na Stanfordskej univerzite v roku 1983. Uvedomil si, že nový jazyk má veľký komerčný potenciál, a tak sa spojil s Cleve Mowler a Steve Bangert. Spoločne prepísali MATLAB v C a v roku 1984 založili The MathWorks pre ďalší rozvoj. Tieto knižnice, prepísané v C, sú už dlho známe ako JACKPAC. MATLAB, pôvodne určený pre návrh riadiacich systémov (hlavná špecializácia Johna Littlea), si rýchlo získal popularitu v mnohých ďalších vedeckých a inžinierskych oblastiach. Široko sa využíval aj vo vzdelávaní, najmä pri výučbe lineárnej algebry a numerických metód.

Popis jazyka MATLAB. Jazyk MATLAB je na vysokej úrovni interpretovaný programovací jazyk vrátane na základe matice dátové štruktúry, široký rozsah funkcií, integrované vývojové prostredie, objektovo orientované možnosti a rozhrania k programom napísaným v iných programovacích jazykoch.

Programy napísané v MATLABE sú dvoch typov - funkcie a skripty.

Funkcie majú vstupné a výstupné argumenty, ako aj vlastný pracovný priestor na ukladanie priebežných výsledkov výpočtov a premenných.

Skripty zdieľajú spoločný pracovný priestor. Skripty aj funkcie nie sú skompilované do strojového kódu a sú uložené ako textové súbory.

Je možné uložiť aj tzv vopred analyzované programy - funkcie a skripty, spracované vo forme vhodnej na strojové vykonávanie. Vo všeobecnosti takéto programy bežia rýchlejšie ako bežné programy, najmä ak funkcia obsahuje príkazy na vytváranie grafov.

Hlavnou črtou jazyka MATLAB sú jeho rozsiahle možnosti práce s maticami, čo tvorcovia jazyka vyjadrili sloganom „think vector“ (angl. Myslieť si vektorizované).

Aplikácia MATLABu.

Matematika a výpočtová technika. MATLAB poskytuje používateľovi veľké množstvo (niekoľko stoviek) funkcií na analýzu údajov, ktoré pokrývajú takmer všetky oblasti matematiky, najmä:

    Matice a lineárna algebra - maticová algebra, lineárne rovnice, vlastné hodnoty a vektory, singularity, faktorizácia matice a iné.

    Polynómy a interpolácia - korene polynómov, operácie s polynómami a ich diferenciácia, interpolácia a extrapolácia kriviek a iné.

    Matematická štatistika a analýza dát - štatistické funkcie, štatistická regresia, číslicová filtrácia, rýchla Fourierova transformácia a iné.

    Spracovanie dát - súbor špeciálnych funkcií, medzi ktoré patrí vykresľovanie, optimalizácia, vyhľadávanie núl, numerická integrácia (v kvadratúre) a iné.

    Diferenciálne rovnice - riešenie diferenciálnych a diferenciálno-algebraických rovníc, diferenciálnych rovníc s oneskorením, rovníc s obmedzeniami, parciálnych diferenciálnych rovníc a iné.

    Riedke matice sú špeciálna dátová trieda MATLABu používaná v špecializovaných aplikáciách.

    Celočíselná aritmetika – Vykonáva celočíselné aritmetické operácie v prostredí MATLAB.

Vývoj algoritmov. MATLAB poskytuje pohodlné nástroje na vývoj algoritmov, vrátane tých na vysokej úrovni, ktoré využívajú koncepty objektovo orientovaného programovania. Obsahuje všetky potrebné nástroje IDE vrátane debuggera a profilera. Funkcie pre prácu s celočíselnými dátovými typmi uľahčujú vytváranie algoritmov pre mikrokontroléry a iné aplikácie tam, kde je to potrebné.

Vizualizácia dát. Balík MATLAB obsahuje veľké množstvo funkcií na vytváranie grafov, vrátane trojrozmernej, vizuálnej analýzy dát a vytvárania animovaných videí.

Vstavané vývojové prostredie vám umožňuje vytvárať grafické používateľské rozhrania s rôznymi ovládacími prvkami, ako sú tlačidlá, vstupné polia a iné.

Nezávislé aplikácie. Pomocou tohto komponentu je možné zostaviť programy MATLAB, konzolové aj grafické Kompilátor MATLAB do spustiteľných aplikácií alebo knižníc DLL nezávislých od MATLABu, ktoré však na spustenie na iných počítačoch vyžadujú bezplatné distribučné prostredie Runtime kompilátora MATLAB(MCR).

Externé rozhrania. Balík MATLAB obsahuje rôzne rozhrania pre prístup k externým rutinám napísaným v iných programovacích jazykoch, dátam, klientom a serverom komunikujúcim prostredníctvom technológií Component Object Model alebo Dynamic Data Exchange a periférnych zariadení, ktoré komunikujú priamo s MATLABom. Mnohé z týchto schopností sú známe ako MATLAB API.

COM. Balík MATLAB poskytuje prístup k funkciám, ktoré vám umožňujú vytvárať, manipulovať a mazať objekty COM (klientov aj serverov). Podporovaná je aj technológia ActiveX. Všetky objekty COM patria do špeciálnej triedy COM balíka MATLAB. Všetky programy, ktoré majú funkcie automatizácie (angl. automatizácia ovládač) môže pristupovať k MATLABu ako k automatizačnému serveru. automatizácia server).

.NET Balík MATLAB v systéme Microsoft Windows poskytuje prístup k softvéru .NET Framework. Z prostredia MATLAB je možné načítať .NET Assemblies a pracovať s objektmi tried .NET. MATLAB 7.11 (R2010b) podporuje .NET Framework verzie 2.0, 3.0, 3.5 a 4.0.

DDE. Balík MATLAB obsahuje funkcie, ktoré mu umožňujú prístup k iným aplikáciám v prostredí Windows, ako aj týmto aplikáciám na prístup k údajom MATLAB, prostredníctvom technológie Dynamic Data Exchange (DDE). Každá aplikácia, ktorá môže byť serverom DDE, má svoj vlastný jedinečný názov identifikátora. Pre MATLAB je tento názov - Matlab.

Webové služby. MATLAB poskytuje možnosť volať metódy webových služieb. Špeciálna funkcia vytvára triedu na základe metód API webovej služby.

MATLAB komunikuje s klientom webovej služby tak, že od neho prijíma balíky, spracováva ich a odosiela odpoveď. Podporované sú nasledujúce technológie: Simple Object Access Protocol (SOAP) a Web Services Description Language (WSDL).

COM port. Rozhranie sériového portu MATLAB poskytuje priamy prístup k periférnym zariadeniam, ako sú modemy, tlačiarne a vedecké zariadenia, ktoré sa pripájajú k počítaču cez sériový port (port COM). Rozhranie funguje tak, že vytvorí objekt špeciálnej triedy pre sériový port. Dostupné metódy tejto triedy umožňujú čítať a zapisovať dáta na sériový port, používať udalosti a obslužné programy udalostí a zapisovať informácie na disk počítača v reálnom čase. To je užitočné pre experimenty, simulácie v reálnom čase a iné aplikácie.

MEX súbory. Balík MATLAB obsahuje rozhranie na interakciu s externými aplikáciami napísanými v jazykoch C a Fortran. Táto interakcia sa vykonáva prostredníctvom súborov MEX. Je možné volať podprogramy napísané v C alebo Fortran z MATLABu, ako keby to boli vstavané funkcie balíka. Súbory MEX sú knižnice dynamických odkazov, ktoré je možné načítať a spustiť tlmočníkom zabudovaným do MATLABu. Procedúry MEX majú tiež schopnosť vyvolať vstavané príkazy MATLABu.

DLL. Generické rozhranie DLL pre MATLAB vám umožňuje volať funkcie nachádzajúce sa v bežných dynamických knižniciach priamo z MATLABu. Tieto funkcie musia mať rozhranie C.

Okrem toho má MATLAB možnosť pristupovať k svojim vstavaným funkciám cez rozhranie C, čo umožňuje použitie funkcií balíka v externých aplikáciách napísaných v jazyku C. Táto technológia v MATLABE je tzv. C motor.

Alternatívne balíčky. Existuje veľké množstvo softvérových balíkov na riešenie problémov numerickej analýzy. Mnohé z týchto balíkov sú slobodným softvérom.

Kompatibilné s MATLABom na úrovni programovacieho jazyka:

Podobná vo funkčnosti:

    APL a jej potomkovia: napr

    Python, keď sa používa so softvérovým balíkom Python (x, y), ako aj s knižnicami ako NumPy, SciPy a matplotlib, implementuje podobné schopnosti.

    IDL (angl. Interaktívne Údaje Jazyk, interaktívny jazyk na popis údajov), ktorý bol kedysi komerčným konkurentom MATLABu, teraz zostáva vážnym konkurentom v mnohých aplikačných oblastiach, hoci jeho podiel na trhu softvérových produktov na numerickú analýzu prudko klesol.

    Fortress, programovací jazyk vytvorený spoločnosťou Sun Microsystems, zdedí Fortran, ale nie je s ním kompatibilný.

    Ak je potrebné vyvinúť veľké projekty pre numerickú analýzu, je možné použiť univerzálne programovacie jazyky, ktoré podporujú statické typovanie a modulárnu štruktúru. Príklady zahŕňajú Modula-3, Haskell, Ada, Java. Zároveň sa odporúča využívať špecializované knižnice známe vo vedeckom a inžinierskom prostredí.

2. Matlab toolboxy

V Matlabe dôležitú úlohu zohrávajú špecializované skupiny programov tzv skrinky na náradie... Toolboxy sú komplexnou zbierkou funkcií (m-súborov) napísaných v MATLABE na riešenie špecifickej triedy problémov. Mathworks dodáva sady nástrojov, ktoré sa používajú v mnohých oblastiach vrátane nasledujúcich:

    Digitálne spracovanie signálov, obrazov a dát: DSP Toolbox, Nástroje na spracovanie obrazu, Wavelet Toolbox, Komunikačný nástroj, Filter Design Toolbox- súbory funkcií, ktoré umožňujú riešiť široké spektrum úloh na spracovanie signálov, obrazov, návrh digitálnych filtrov a komunikačných systémov.

    Riadiace systémy: Súprava nástrojov riadiacich systémov, µ-Nástroje na analýzu a syntézu, Robustná súprava nástrojov na ovládanie, Súprava nástrojov identifikácie systému, Ovládací panel LMI, Súprava nástrojov prediktívneho riadenia modelu, Model-Based Calibration Toolbox- súbory funkcií, ktoré uľahčujú analýzu a syntézu dynamických systémov, návrh, modelovanie a identifikáciu riadiacich systémov, vrátane moderných riadiacich algoritmov ako robustné riadenie, H∞-riadenie, LMN-syntéza, µ-syntéza, iné.

    Finančná analýza: GARCH Toolbox, Sada nástrojov s pevným príjmom, Nástroje finančných časových radov, Nástroje finančných derivátov, Finančný nástroj, Datafeed Toolbox- sady funkcií, ktoré vám umožňujú rýchlo a efektívne zhromažďovať, spracovávať a prenášať rôzne finančné informácie.

    Analýza a syntéza geografických máp vrátane trojrozmerných: Panel nástrojov na mapovanie.

    Zber a analýza experimentálnych údajov: Súbor nástrojov na získavanie údajov, Súprava nástrojov na získavanie obrázkov, Panel nástrojov na ovládanie prístroja, Odkaz na Code Composer Studio- sady funkcií, ktoré vám umožňujú ukladať a spracovávať údaje získané počas experimentov, a to aj v reálnom čase. Podporuje sa široká škála vedeckých a technických meracích zariadení.

    Vizualizácia a prezentácia dát: Súprava nástrojov virtuálnej reality- umožňuje vytvárať interaktívne svety a vizualizovať vedecké informácie pomocou technológií virtuálnej reality a VRML.

    Vývojové nástroje: MATLAB Builder pre COM, MATLAB Builder pre Excel, MATLAB Builder pre NET, Kompilátor MATLAB, Dizajn filtra HDL kodér- sady funkcií, ktoré umožňujú vytvárať nezávislé aplikácie z prostredia MATLAB.

    Interakcia s externými softvérovými produktmi: Generátor správ MATLAB, Odkaz na Excel, Súbor nástrojov databázy, Webový server MATLAB, Odkaz na ModelSim- sady funkcií, ktoré umožňujú ukladať dáta takým spôsobom, aby s nimi mohli pracovať iné programy.

    Databáza: Súbor nástrojov databázy- nástroje na prácu s databázami.

    Prírodovedné a matematické balíčky: Súprava nástrojov pre bioinformatiku, Curve Fitting Toolbox, Sada nástrojov s pevným bodom, Fuzzy Logic Toolbox, Genetický algoritmus a nástroj na priame vyhľadávanie, OPC Toolbox, Nástroj na optimalizáciu, Súbor nástrojov parciálnej diferenciálnej rovnice, Spline Toolbox, Štatistika Toolbox, RF Toolbox- množiny špecializovaných matematických funkcií, ktoré umožňujú riešiť široké spektrum vedeckých a inžinierskych problémov, vrátane vývoja genetických algoritmov, riešenia problémov v parciálnych deriváciách, celočíselných problémov, optimalizácie systému a pod.

    Neurálne siete: Súprava nástrojov neurónovej siete- nástroje na syntézu a analýzu neurónových sietí.

    Fuzzy logika: Fuzzy Logic Toolbox- nástroje na konštrukciu a analýzu fuzzy množín.

    Symbolický výpočet: Symbolický matematický nástroj- nástroje pre symbolické výpočty s možnosťou interakcie so symbolickým procesorom programu Maple.

Okrem vyššie uvedeného existujú tisíce ďalších súprav nástrojov MATLAB napísaných inými spoločnosťami a nadšencami.

). Medzi univerzálnymi nástrojmi používanými v chemometrii zaujíma špeciálne miesto balík MatLab. Jeho popularita je mimoriadne vysoká. Je to preto, že MatLab je výkonný a všestranný viacrozmerné spracovanie údajov. Samotná štruktúra balíka z neho robí pohodlný nástroj na vykonávanie maticových výpočtov. Rozsah problémov, ktoré je možné skúmať pomocou MatLab, zahŕňa: maticovú analýzu, spracovanie signálu a obrazu, neurónové siete a mnohé ďalšie. MatLab je vysokoúrovňový open source jazyk, ktorý umožňuje skúseným používateľom porozumieť naprogramovaným algoritmom. Jednoduchý vstavaný programovací jazyk uľahčuje vytváranie vlastných algoritmov. Za dlhé roky používania MatLabu vzniklo obrovské množstvo funkcií a ToolBox (balíčky špecializovaných nástrojov). Najpopulárnejší je PLS ToolBox od Eigenvector Research, Inc.

1. Základné informácie

1.1. Pracovné prostredie MatLab

Ak chcete spustiť program, dvakrát kliknite na ikonu. Pracovné prostredie zobrazené na obrázku sa otvorí pred vami.

Pracovné prostredie MatLab 6.x mierne odlišný od pracovného prostredia predchádzajúcich verzií, má pohodlnejšie rozhranie pre prístup k mnohým pomocným prvkom

Pracovné prostredie MatLab 6.x obsahuje nasledujúce prvky:

    panel nástrojov s tlačidlami a rozbaľovacím zoznamom;

    Okno s kartami Launch Pad a Pracovný priestor z ktorej máte prístup k rôznym modulom ToolBox a obsahu pracovného priestoru;

    okno s kartami História príkazov a Aktuálny adresár, určený na prezeranie a vyvolanie predtým zadaných príkazov, ako aj na nastavenie aktuálneho adresára;

    príkazové okno, ktoré obsahuje výzvu „a blikajúci vertikálny kurzor;

    stavový riadok.

Ak v pracovnom prostredí MatLab 6.x niektoré okná zobrazené na obrázku chýbajú, potom vyberte príslušné položky v ponuke Zobraziť: Príkazové okno, História príkazov, Aktuálny adresár, Pracovná plocha, Spúšťací panel.

Príkazy by sa mali zadávať do príkazového okna. Na označenie príkazového riadka nemusíte zadávať „znak“. Na zobrazenie pracovnej oblasti je vhodné použiť posúvače alebo klávesy Home, End na pohyb doľava alebo doprava a PageUp, PageDown na pohyb nahor alebo nadol. Ak náhle, po pohybe v pracovnej oblasti príkazového okna, príkazový riadok s blikajúcim kurzorom zmizol, stačí stlačiť Enter.

Je dôležité si zapamätať, že množina akéhokoľvek príkazu alebo výrazu musí skončiť stlačením klávesu Enter, aby MatLab vykonal tento príkaz alebo vypočítal výraz.

1.2. Najjednoduchšie výpočty

Do príkazového riadka zadajte 1 + 2 a stlačte kláves Enter. V dôsledku toho sa v príkazovom okne MatLab zobrazí nasledovné:

Ryža. 2 Grafické znázornenie analýzy hlavných komponentov

Čo urobil MatLab? Najprv vypočítala súčet 1 + 2, potom zapísala výsledok do špeciálnej premennej ans a vytlačila jeho hodnotu rovnajúcu sa 3 do príkazového okna. Pod odpoveďou je príkazový riadok s blikajúcim kurzorom, čo znamená, že MatLab je pripravený na ďalšie výpočty. Na príkazovom riadku môžete zadať nové výrazy a nájsť ich hodnoty. Ak potrebujete pokračovať v práci s predchádzajúcim výrazom, napríklad vypočítať (1 + 2) /4,5, tak najjednoduchšie je použiť už existujúci výsledok, ktorý je uložený v premennej ans. Napíšte ans / 4,5 (pri zadávaní desatinných zlomkov sa používa bodka) a stlačte Zadajte, ukázalo sa

Ryža. 3 Grafické znázornenie analýzy hlavných komponentov

1.3. Echo príkazy

Každý príkaz v MatLab sa opakuje. Vo vyššie uvedenom príklade je to odpoveď ans = 0,6667. Ozvena často sťažuje vnímanie práce programu a potom sa dá vypnúť. Aby to bolo možné, príkaz musí končiť bodkočiarkou. Napríklad

Ryža. 4 Príklad zadania funkcie ScoresPCA

1.4. Zachovanie pracovného prostredia. MAT súbory

Najjednoduchší spôsob, ako uložiť všetky hodnoty premenných, je použiť položku Uložiť pracovnú plochu ako v ponuke Súbor. Zobrazí sa dialógové okno Uložiť premenné pracovného priestoru, v ktorom musíte zadať názov adresára a súboru. Štandardne sa odporúča uložiť súbor do pracovného podadresára hlavného adresára MatLab. Program uloží výsledky práce do súboru s príponou mat. Teraz môžete MatLab zatvoriť. Ak chcete v ďalšej relácii obnoviť hodnoty premenných, otvorte tento uložený súbor pomocou podpoložky Otvoriť v ponuke Súbor. Teraz sú opäť dostupné všetky premenné definované v predchádzajúcej relácii. Môžu byť použité v novo zadaných príkazoch.

1.5. časopis

MatLab má schopnosť zapisovať spustiteľné príkazy a výsledky do textového súboru (udržiavať si protokol o práci), ktorý je možné následne prečítať alebo vytlačiť z textového editora. Ak chcete spustiť protokolovanie, použite príkaz denník... Ako argument príkazu denník musíte zadať názov súboru, v ktorom bude uložený pracovný protokol. Do tohto súboru sa zapíšu ďalšie príkazy a výsledky ich vykonania, napríklad postupnosť príkazov

vykonáva nasledujúce akcie:

    otvorí denník v súbore example-1.txt;

    vykonáva výpočty;

    uloží všetky premenné do súboru MAT work-1.mat;

    uloží protokol do súboru example-1.txt v podadresári work koreňového adresára MatLab a zatvorí MatLab;

Pozrite si obsah súboru example-1.txt v textovom editore. Súbor bude obsahovať nasledujúci text:

a1 = 3;
a2 = 2,5;
a3 = a1 + a2

Uložiť prácu - 1
skončiť

1.6. Systém pomoci

Okno pomocníka MatLab sa zobrazí po výbere možnosti Okno pomocníka v ponuke Pomocník alebo po kliknutí na tlačidlo s otázkou na paneli nástrojov. Rovnakú operáciu je možné vykonať zadaním príkazu helpwin... Ak chcete zobraziť okno pomocníka pre jednotlivé sekcie, napíšte helpwin téma... Okno pomocníka vám poskytuje rovnaké informácie ako príkaz help, ale rozhranie v okne poskytuje pohodlnejšie odkazy na ďalšie témy pomocníka. Pomocou adresy webovej stránky Math Works sa môžete prihlásiť na firemný server a získať najnovšie informácie o svojich otázkach. Na stránke technickej podpory sa môžete zoznámiť s novými softvérovými produktmi alebo nájsť odpoveď na svoje problémy.

2. Matrice

2.1. Skaláre, vektory a matice

V MatLab možno použiť skaláre, vektory a matice. Na zadanie skaláru stačí priradiť jeho hodnotu napríklad nejakej premennej

Všimnite si, že MatLab rozlišuje medzi veľkými a malými písmenami, takže p a P sú rôzne premenné. Ak chcete zadať polia (vektory alebo matice), ich prvky sú uzavreté v hranatých zátvorkách. Ak teda chcete zadať čiarový vektor 1 × 3, použite nasledujúci príkaz, v ktorom sú prvky čiary oddelené medzerami alebo čiarkami.

Pri zadávaní stĺpcového vektora oddeľte položky bodkočiarkou. Napríklad,

Je vhodné zadávať malé matice priamo z príkazového riadku. Pri písaní si maticu možno predstaviť ako stĺpcový vektor, ktorého každý prvok je riadkový vektor.

alebo maticu možno považovať za riadkový vektor, ktorého každý prvok je stĺpcový vektor.

2.2. Prístupové prvky

K prvkom matice sa pristupuje pomocou dvoch indexov – čísel riadkov a stĺpcov, uzavretých v zátvorkách, napríklad príkaz B (2,3) vráti prvok druhého riadku a tretieho stĺpca matice B. Ak chcete vybrať stĺpec alebo riadok z matice, použite číslo stĺpca alebo riadka matice ako jeden z indexov a nahraďte druhý index dvojbodkou. Napríklad druhý riadok matice A zapíšeme do vektora z

Bloky matíc môžete zvýrazniť aj pomocou dvojbodky. Napríklad vyberte z matice P blok označený farbou

Ak potrebujete zobraziť premenné pracovného prostredia, v príkazovom riadku musíte zadať príkaz ktovie .

Môžete vidieť, že pracovný priestor obsahuje jeden skalár (p), štyri matice (A, B, P, P1) a riadkový vektor (z).

2.3. Základné maticové operácie

Pri používaní maticových operácií nezabúdajte, že na sčítanie alebo odčítanie musia mať matice rovnakú veľkosť a pri násobení sa počet stĺpcov v prvej matici musí rovnať počtu riadkov v druhej matici. Sčítanie a odčítanie matíc, ako aj čísel a vektorov sa vykonáva pomocou znamienka plus a mínus

a násobenie je označené hviezdičkou *. Zaveďte maticu 3 × 2

Násobenie matice číslom sa tiež vykonáva pomocou hviezdičky a môžete násobiť číslom vpravo aj vľavo. Štvorcová matica sa zvýši na celé číslo pomocou operátora ^

Skontrolujte svoj výsledok vynásobením matice P samotnou.

2.4. Vytváranie špeciálnych matríc

Vyplnenie pravouhlej matice nulami vykonáva vstavaná funkcia nuly

Matica identity sa vytvorí pomocou funkcie oko

V dôsledku volania funkcie sa vytvorí matica pozostávajúca z jednotiek tie

MatLab poskytuje možnosť vyplniť matice náhodnými číslami. Výsledok funkcie rand je matica čísel rovnomerne rozložených medzi nulou a jednotkou a funkcie randn- matica čísel rozložená podľa normálneho zákona s nulovým priemerom a jednotkovým rozptylom.

Funkcia diag tvorí diagonálnu maticu z vektora diagonálnym usporiadaním prvkov.

2.5. Maticové výpočty

MatLab obsahuje mnoho rôznych funkcií pre prácu s maticami. Napríklad matica je transponovaná pomocou apostrofu "

Inverzná matica sa nájde pomocou funkcie inv pre štvorcové matice

3. Integrácia MatLab a Excel

Integrácia MatLab a Excel umožňuje užívateľovi Excelu prístup k mnohým funkciám MatLab na spracovanie dát, rôzne výpočty a vizualizáciu výsledku. Doplnok excllink.xla implementuje toto vylepšenie Excelu. Pre komunikáciu medzi MatLabom a Excelom sú definované špeciálne funkcie.

3.1. Konfigurácia Excelu

Pred konfiguráciou Excelu na spoluprácu s MatLab by ste sa mali uistiť, že Excel Link je súčasťou nainštalovanej verzie MatLab. Doplnkový súbor excllink.xla sa musí nachádzať v podadresári exclink hlavného adresára MatLab alebo v podadresári toolbox. Spustite Excel a v ponuke Nástroje vyberte položku Doplnky. Otvorí sa dialógové okno s informáciami o aktuálne dostupných doplnkoch. Pomocou tlačidla Prehľadávať zadajte cestu k súboru excllink.xla. Riadok sa zobrazí v zozname doplnkov v dialógovom okne Excel Link 2.0 na použitie s MatLab s nastavenou vlajkou. Kliknite na tlačidlo OK, požadovaný doplnok bol pridaný do Excelu.

Všimnite si, že Excel má teraz panel s nástrojmi Excel Link, ktorý obsahuje tri tlačidlá: putmatrix, getmatrix, evalstring. Tieto tlačidlá implementujú hlavné akcie potrebné na implementáciu vzťahu medzi Excelom a MatLab - výmena maticových údajov a vykonávanie príkazov MatLab z prostredia Excelu. Po reštartovaní Excelu sa automaticky pripojí doplnok excllink.xla.

Koordinovaná práca Excelu a MatLabu vyžaduje niekoľko ďalších nastavení, ktoré sú v Exceli štandardne akceptované (ale možno ich zmeniť). V ponuke Nástroje prejdite na Možnosti, otvorí sa dialógové okno Možnosti. Vyberte kartu Všeobecné a uistite sa, že príznak referenčného štýlu R1C1 je vypnutý, t.j. bunky sú očíslované A1, A2 atď. Na karte Upraviť musí byť nastavený príznak Presunúť výber po zadaní.

3.2. Výmena dát medzi MatLab a Excel

Spustite Excel, skontrolujte, či boli vykonané všetky potrebné nastavenia, ako je popísané v predchádzajúcej časti (MatLab musí byť zatvorený). Do buniek A1 až C3 zadajte maticu, na oddelenie desatinných miest použite bodku v súlade s požiadavkami Excelu.

Vyberte údaje bunky na hárku a stlačte tlačidlo putmatrix, zobrazí sa okno Excel s upozornením, že MatLab nebeží. Kliknite na OK, počkajte, kým sa MatLab otvorí.

Zobrazí sa dialógové okno Excel so vstupným riadkom určeným na definovanie názvu premennej pracovného prostredia MatLab, do ktorej sa majú exportovať údaje z vybraných buniek Excelu. Zadajte napríklad M a zatvorte okno tlačidlom OK. Prejdite do príkazového okna MatLab a uistite sa, že v produkčnom prostredí bola vytvorená premenná M, ktorá obsahuje pole tri krát tri:

Urobte nejaké operácie v MatLab s maticou M, napríklad ju zmeňte.

Zavolajte inv invertovať maticu, ako každý iný príkaz MatLab, môžete vykonať priamo z Excelu. Stlačením tlačidla evalstring, ktoré sa nachádza na paneli Excel Link, sa zobrazí dialógové okno, do ktorého vstupného riadku zadajte príkaz MatLab

IM = inv (M).

Výsledok je podobný ako pri vykonávaní príkazu v prostredí MatLab.

Vráťte sa do Excelu, nastavte bunku A5 ako aktuálnu a kliknite na tlačidlo getmatrix. Zobrazí sa dialógové okno so vstupným riadkom, ktorý vás požiada o zadanie názvu premennej, ktorá sa má importovať do Excelu. V tomto prípade je touto premennou IM. Kliknite na OK, bunky A5 až A7 sa vyplnia inverznými maticovými prvkami.

Ak chcete exportovať maticu do MatLabu, mali by ste vybrať príslušné bunky hárku Excel a na import stačí zadať jednu bunku, ktorá bude ľavým horným prvkom importovaného poľa. Ostatné prvky sa zapíšu do buniek hárka podľa veľkosti poľa, čím sa prepíšu údaje, ktoré obsahujú, takže pri importovaní polí by ste mali byť opatrní.

Vyššie uvedený prístup predstavuje najjednoduchší spôsob výmeny informácií medzi aplikáciami – pôvodné dáta sú obsiahnuté v Exceli, následne exportované do MatLabu, tam nejakým spôsobom spracované a výsledok je importovaný do Excelu. Používateľ prenáša údaje pomocou tlačidiel na paneli nástrojov Excel Link. Informácie môžu byť prezentované vo forme matice, t.j. obdĺžniková oblasť pracovného hárka. Bunky usporiadané v riadku alebo stĺpci sa exportujú do riadkových vektorov a stĺpcových vektorov MatLabu. Podobne funguje import riadkových vektorov a stĺpcových vektorov do Excelu.

4. Programovanie

4.1. M-súbory

Práca z príkazového riadku MatLab je náročná, ak potrebujete zadávať veľa príkazov a často ich meniť. Vedenie denníka s príkazom denník a zachovanie pracovného prostredia trochu uľahčuje prácu. Najpohodlnejší spôsob vykonávania skupín príkazov MatLab je použitie M-súborov, do ktorých môžete zadávať príkazy, spúšťať ich všetky naraz alebo po častiach, ukladať do súboru a použiť neskôr. Editor M-súborov je určený na prácu s M-súbormi. S jeho pomocou môžete vytvárať svoje vlastné funkcie a volať ich, a to aj z príkazového okna.

Otvorte menu Súbor hlavného okna MatLabu a v položke Nový vyberte podpoložku M-súbor. Nový súbor sa otvorí v okne editora M-file, ktoré je znázornené na obrázku.

V MatLab sú dva typy M-súborov: programový súbor ( Script M-Files) obsahujúci postupnosť príkazov a súborových funkcií ( Funkcia M-súbory), ktoré popisujú funkcie definované používateľom.

4.2. Súborový program

V editore zadajte príkazy, ktoré vedú k vytvoreniu dvoch grafov na jednom grafickom okne

Teraz uložte súbor s názvom mydemo.m do pracovného podadresára hlavného adresára MatLab výberom položky Uložiť ako v menu Súbor editora. Ak chcete spustiť všetky príkazy obsiahnuté v súbore na vykonanie, vyberte položku Spustiť v ponuke Debug. Na obrazovke sa zobrazí grafické okno. postava 1 obsahujúce grafy funkcií.

Výstup príkazov súborového programu do príkazového okna. Ak chcete potlačiť výstup, ukončite príkazy bodkočiarkou. Ak sa pri písaní vyskytne chyba a MatLab nedokáže rozpoznať príkaz, potom sa príkazy vykonávajú až do nesprávne zadaného príkazu, po ktorom sa v príkazovom okne zobrazí chybové hlásenie.

Veľmi pohodlnou funkciou, ktorú poskytuje editor M-file, je vykonávanie časti príkazov. Zatvorte grafické okno postava 1... Vyberajte myšou pri držaní ľavého tlačidla alebo šípkami pri držaní stlačeného tlačidla Shift, prvé štyri príkazy a vykonajte ich z položky Text. Upozorňujeme, že v grafickom okne je zobrazený iba jeden graf zodpovedajúci vykonaným príkazom:. Nezabudnite, že ak chcete vykonať niektoré príkazy, vyberte ich a stlačte kláves F9.

Jednotlivé bloky M-súboru môžu byť vybavené komentármi, ktoré sa počas vykonávania preskakujú, ale sú vhodné pri práci s M-súborom. Komentáre začínajú znakom percenta a sú automaticky zvýraznené zelenou farbou, napríklad:

Existujúci súbor M sa otvorí pomocou položky Otvoriť v ponuke Súbor pracovného prostredia alebo pomocou editora súborov M.

4.3. Funkcia súboru

Vyššie uvedený súborový program je len sekvenciou príkazov MatLab, nemá žiadne vstupné a výstupné argumenty. Ak chcete používať numerické metódy a pri programovaní vlastných aplikácií v MatLab, musíte byť schopní zostaviť funkcie súboru, ktoré vykonajú potrebné akcie so vstupnými argumentmi a vrátia výsledok akcie vo výstupných argumentoch. Pozrime sa na niekoľko jednoduchých príkladov, ktoré vám pomôžu pochopiť, ako pracovať s funkciami súborov.

Centrovanie sa často používa pri predspracovaní údajov viacrozmernej chemometrickej analýzy. Má zmysel napísať funkciu súboru raz a potom ju zavolať všade tam, kde je potrebné vycentrovať. Otvorte nový súbor v editore M-file a napíšte

Slovo funkcia v prvom riadku udáva, že tento súbor obsahuje súbor funkcií. Prvý riadok je hlavička funkcie, ktorá obsahuje názov funkcie a zoznam vstupných a výstupných argumentov. V príklade je názov funkcie centrovaný, jeden vstupný argument je X a jeden výstup je Xc. Za nadpisom nasledujú komentáre a potom telo funkcie (v tomto príklade pozostáva z dvoch riadkov), kde sa vypočíta jej hodnota. Je dôležité, aby sa vypočítaná hodnota zapísala do Xc. Nezabudnite vložiť bodkočiarku, aby ste zabránili zobrazovaniu nepotrebných informácií na obrazovke. Teraz uložte súbor do svojho pracovného adresára. Všimnite si, že výberom položky Uložiť alebo Uložiť ako v ponuke Súbor sa zobrazí dialógové okno uloženia súboru, ktorého pole Názov súboru už obsahuje centrovanie názvu. Nemeňte ho, uložte funkčný súbor do súboru s navrhovaným názvom!

Teraz môže byť vytvorená funkcia použitá rovnakým spôsobom ako vstavaný sin, cos a ďalšie. Vlastné funkcie je možné volať z programového súboru az inej súborovej funkcie. Skúste si sami napísať funkciu súboru, ktorá bude škálovať matice, t.j. vydeľte každý stĺpec štandardnou odchýlkou ​​pre daný stĺpec.

Môžete napísať súbor funkcií s niekoľkými vstupnými argumentmi, ktoré sú umiestnené v zozname oddelenom čiarkami. Môžete tiež vytvárať funkcie, ktoré vracajú viacero hodnôt. Na tento účel sa do zoznamu výstupných argumentov pridajú výstupné argumenty oddelené čiarkou a samotný zoznam sa uzavrie do hranatých zátvoriek. Dobrým príkladom je funkcia, ktorá prevádza čas v sekundách na hodiny, minúty a sekundy.

Pri volaní súborových funkcií s niekoľkými výstupnými argumentmi by sa mal výsledok zapísať do vektora zodpovedajúcej dĺžky.

4.4 Vytvorenie rozvrhu

MatLab má bohaté možnosti na vytváranie grafov vektorov a matíc, ako aj na vytváranie komentárov a tlač grafov. Poďme si popísať niekoľko dôležitých grafických funkcií.

Funkcia zápletka má rôzne podoby spojené so vstupnými parametrami, napríklad graf (y) vytvára po častiach lineárny graf závislosti prvkov y od ich indexov. Ak sú ako argumenty uvedené dva vektory, potom graf (x, y) vykreslí y verzus x. Ak chcete napríklad vykresliť funkciu sin od 0 do 2π, postupujte takto

Program vytvoril graf závislosti, ktorý sa zobrazuje v okne postava 1

MatLab automaticky priraďuje každému grafu vlastnú farbu (okrem prípadov, keď to robí používateľ), čo vám umožňuje rozlišovať medzi súbormi údajov.

Príkaz Počkaj umožňuje pridať krivky do existujúceho grafu. Funkcia podzápletka umožňuje zobraziť viacero grafov v jednom okne

4.5 Tlač grafov

Položka Tlačiť v ponuke Súbor a príkaz vytlačiť tlač grafiky MatLab. Ponuka Tlač zobrazí dialógové okno, ktoré vám umožní vybrať bežné štandardné možnosti tlače. Príkaz vytlačiť poskytuje väčšiu flexibilitu pri výstupe výstupu a umožňuje riadiť tlač z M-súborov. Výsledok možno odoslať priamo na predvolenú tlačiareň alebo uložiť do určeného súboru.

5. Vzorové programy

V tejto časti sú uvedené najbežnejšie algoritmy používané pri analýze viacrozmerných údajov. Uvažuje sa o najjednoduchších metódach transformácie dát, centrovania a škálovania, ako aj o algoritmoch na analýzu dát - PCA, PLS.

5.1. Centrovanie a škálovanie

Analýza často vyžaduje transformáciu pôvodných údajov. Najpoužívanejšie metódy transformácie údajov sú centrovanie a škálovanie každej premennej podľa štandardnej odchýlky. V kóde funkcie pre centrovanie bola uvedená matica. Nižšie je preto zobrazený iba kód funkcie, ktorá váhyúdajov. Upozorňujeme, že pôvodná matica musí byť vycentrovaná

funkcia Xs = zmena mierky (X)
% mierka: výstupná matica je Xs
% matice X musí byť vycentrované

Xs = X* inv (diag (std (X)));

% konca škálovania

5.2. SVD / PCA

Najpopulárnejšou metódou kompresie údajov vo viacrozmernej analýze je analýza hlavných komponentov (PCA). Matematicky je PCA rozklad pôvodnej matice X, t.j. jeho reprezentáciu ako súčin dvoch matíc T a P

X = TP t + E

Matrix T sa nazýva matica skóre, matica sa nazýva zvyšková matica.

Najjednoduchší spôsob, ako nájsť matice T a P- použiť SVD rozklad cez štandardnú funkciu MatLab tzv svd .

funkcia = pcasvd (X)

Svd (X);
T = U*D;
P = V;

% konca pcasvd

5.3 PCA / NIPALS

Na vytvorenie účtov a zaťažení PCA sa používa rekurentný algoritmus NIPALS, ktorý v každom kroku počíta jeden komponent. Najprv počiatočná matica X sa transformuje (aspoň - vycentruje; pozri) a zmení sa na matricu E 0 , a= 0. Potom sa použije nasledujúci algoritmus.

t 2. p t = t t Ea / t t t 3. p = p / (p t p) ½ 4. t = Ea p / p t p 5. Skontrolujte konvergenciu, ak nie, prejdite na 2

Po výpočte ďalšieho ( a th) komponenty, predpokladáme ta=t a pa=p E a+1 = Eat p a na a+1.

Kód algoritmu NIPALS môžu napísať čitatelia sami, v tomto návode autori uvádzajú svoju vlastnú verziu. Pri výpočte PCA môžete zadať počet hlavných komponentov (premenné čísloPC). Ak neviete, koľko komponentov je potrebných, napíšte na príkazový riadok = pcanipals (X) a potom program nastaví počet komponentov rovný najmenšiemu z rozmerov pôvodnej matice. X.

funkcia = pcanipals (X, čísloPC)

% výpočet počtu komponentov
= veľkosť (X); P =; T =;

Ak dĺžka (čísloPC)> 0
pc = čísloPC (1);
elseif (dĺžka (čísloPC) == 0) & X_r< X_c
pc = X_r;
inak
pc = X_c;
koniec;

pre k = 1: ks
P1 = rand (X_c, 1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)) "; P1 = P1 / norma (P1); T1 = X * P1; d = T1" * T1;

Zatiaľ čo d - d0 > 0,0001;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / norma (P1); T1 = X * P1; d0 = T1 "* T1;
P1 = (T1 "* X / (T1" * T1)); P1 = P1 / norma (P1); T1 = X * P1; d = T1"* T1;
koniec

X = X - T1 * P1; P = kat (1, P, P1"); T =;
koniec

Ako vypočítať PCA pomocou doplnku Chemometrics je uvedené v návode

5.4 PLS1

Najpopulárnejšou metódou multivariačnej kalibrácie je metóda latentnej projekcie (PLS). Pri tejto metóde sa matica prediktora súčasne rozkladá X a matrice odozvy Y:

X=TP t + E Y=Uq t + F T=XW(P t W) –1

Projekcia je zostavená konzistentne - tak, aby sa maximalizovala korelácia medzi zodpovedajúcimi vektormi X-účty ta a Y-účty ua... Ak sa zablokujú údaje Y zahŕňa viacero odpovedí (t.j. K> 1), môžete vytvoriť dve projekcie počiatočných údajov - PLS1 a PLS2. V prvom prípade pre každú z odpovedí r k je skonštruovaný vlastný projekčný podpriestor. Zároveň účty T (U) a zaťaženie P (W, Q) závisí od toho, ktorá odpoveď sa použije. Tento prístup sa nazýva PLS1. Pre metódu PLS2 je vybudovaný iba jeden projekčný priestor, ktorý je spoločný pre všetky odpovede.

Podrobný popis metódy PLS je uvedený v tejto knihe Na zostavenie účtov a zaťažení PLS1 sa používa rekurentný algoritmus. Najprv počiatočné matice X a Y stred

= mc (X);
= mc (Y);

a menia sa na matricu E 0 a vektor f 0 , a= 0. Potom sa na ne aplikuje nasledujúci algoritmus

1. w t = fa t E a 2. w = w / (w t w) ½ 3. t = Ea w 4. q = t t fa / t t t 5. u = qfa / q 2 6. p t = t t Ea / t t t

Po výpočte ďalšieho ( a th) komponenty, predpokladáme ta=t a pa=p... Ak chcete získať ďalší komponent, musíte vypočítať zvyšky E a+1 = Eat p t a aplikujte na ne rovnaký algoritmus, ktorý nahradí index a na a+1.

Tu je kód pre tento algoritmus, prevzatý z knihy

funkcia = pls (x, y)
% PLS: vypočíta zložku PLS.
% Výstupné vektory sú w, t, u, q a p.
%
% Vyberte vektor z y ako počiatočný vektor u.

u = y (:, 1);

% Kritérium konvergencie je nastavené veľmi vysoko.
kri = 100;

% Príkazy odtiaľto do konca sa opakujú až do konvergencie.
while (kri> 1e - 10)

% Každý počiatočný vektor u sa uloží ako uold.
uold = u; w = (u "* x)"; w = w / norma (w);
t = x * w; q = (t "* y)" / (t "* t);
u = y * q / (q "* q);

% Konvergenčným kritériom je norma u-uold delená normou u.
kri = norma (uold - u) / norma (u);
koniec;

% Po konvergencii vypočítajte p.
p = (t "* x)" / (t "* t);

% Koniec pls

O výpočte PLS1 s doplnkom ChemometriaPridať popísané v príručke Metódy projekcie v systéme Excel.

5,5 PLS2

Pre PLS2 je algoritmus nasledujúci. Najprv počiatočné matice X a Y transformovať (aspoň - stred; pozri), a premenia sa na matice E 0 a F 0 , a= 0. Potom sa na ne aplikuje nasledujúci algoritmus.

1. Vyberte počiatočný vektor u 2. w t = u t E a 3. w = w / (w t w) ½ 4. t = Ea w 5. q t = t t Fa / t t t 6. u = Fa q/ q t q 7. Skontrolujte konvergenciu, ak nie, prejdite na 2 8. p t = t t Ea / t t t

Po výpočte ďalšieho ( a-th) Komponenty PLS2 musia byť vložené: ta=t, pa=p, wa=w, ua=u a q a = q... Ak chcete získať ďalší komponent, musíte vypočítať zvyšky E a+1 = Eat p t a Fa +1 = F atq t a aplikujte na ne rovnaký algoritmus, ktorý nahradí index a na a+1.

Tu je kód, ktorý je tiež požičaný z knihy.

funkcia = plsr (x, y, a)
% PLS: vypočíta zložku PLS.
% Výstupné matice sú W, T, U, Q a P.
% B obsahuje regresné koeficienty a SS súčty
% štvorcov pre zvyšky.
% a sú počty komponentov.
%
% Pre komponenty: použite všetky príkazy na ukončenie.

Pre i = 1: a
% Vypočítajte súčet druhých mocnín. Použite funkciu ss.
sx =;
sy =;

% Na výpočet jednej zložky použite funkciu pls.
= pls (x, y);

% Vypočítajte zvyšky.
x = x - t * p ";
y = y - t * q";

% Uložte vektory do matíc.
W =;
T =;
U =;
Q =;
P =;
koniec;

% Vypočítajte regresné koeficienty po slučke.
B = W * inv (P "* W) * Q";

% Pripočítajte konečnú zvyškovú SS k súčtu vektorov štvorcov.
sx =;
sy =;

% Vytvorte maticu ss vektorov pre X a Y.
SS =;

% Vypočítajte podiel použitého SS.
= veľkosť (SS);
tt = (SS * diag (SS (1,:). ^ (- 1)) - jednotky (a, b)) * (-1)

% Koniec plsr

funkcia = ss (x)
% SS: vypočíta súčet druhých mocnín matice X.
%

ss = súčet (súčet (x. * x));
% Koniec ss

O výpočte PLS2 s doplnkom ChemometriaPridať popísané v príručke Metódy projekcie v systéme Excel.

Záver

MatLab je veľmi populárny nástroj na analýzu dát. Podľa prieskumu ho využíva až tretina všetkých výskumníkov, kým program Unsrambler len 16 % vedcov. Hlavnou nevýhodou MatLabu je jeho vysoká cena. Okrem toho je MatLab dobrý na rutinné výpočty. Nedostatok interaktivity spôsobuje, že je nepohodlné vykonávať vyhľadávanie, výskumné výpočty pre nové, nepreskúmané súbory údajov.

MATLAB je vysokoúrovňový technický výpočtový jazyk, interaktívne prostredie na vývoj algoritmov a moderný nástroj na analýzu dát.
MATLAB v porovnaní s tradičnými programovacími jazykmi (C/C++, Java, Pascal, FORTRAN) umožňuje rádovo skrátiť čas na riešenie typických problémov a výrazne zjednodušiť vývoj nových algoritmov.
MATLAB je chrbtovou kosťou celej rodiny produktov MathWorks a je hlavným nástrojom na riešenie širokého spektra vedeckých a aplikovaných problémov, v oblastiach ako: objekty a vývoj riadiacich systémov, komunikačné systémy, spracovanie signálov a obrazov, meranie signálov a testovanie, finančné modelovanie, výpočtová biológia atď.
Jadro MATLAB maximálne uľahčuje prácu s maticami reálnych, komplexných a analytických dátových typov a s dátovými štruktúrami a vyhľadávacími tabuľkami. MATLAB obsahuje vstavané funkcie pre lineárnu algebru (LAPACK, BLAS), rýchlu Fourierovu transformáciu (FFTW), funkcie pre prácu s polynómami, funkcie základnej štatistiky a numerické riešenie diferenciálnych rovníc; rozšírené matematické knižnice pre Intel MKL. Všetky vstavané funkcie jadra MATLAB sú navrhnuté a optimalizované odborníkmi tak, aby fungovali rýchlejšie alebo rovnakým spôsobom ako ich ekvivalenty v C/C++.

Popis jazyka

MATLAB je vysokoúrovňový programovací jazyk, ktorý zahŕňa dátové štruktúry založené na matici, širokú škálu funkcií, integrované vývojové prostredie, objektovo orientované možnosti a rozhrania k programom napísaným v iných programovacích jazykoch.

V MATLABE sú napísané dva typy programov – funkcie a skripty. Funkcie majú vstupné a výstupné argumenty, ako aj vlastný pracovný priestor na ukladanie priebežných výsledkov výpočtov a premenných. Skripty zdieľajú spoločný pracovný priestor. Skripty ani funkcie nie sú interpretované do strojového kódu a sú uložené ako textové súbory. Je tiež možné uložiť takzvané predspracované programy - funkcie a skripty, spracované vo forme vhodnej pre strojové vykonávanie. Vo všeobecnosti takéto programy bežia rýchlejšie ako zvyčajne.

Hlavnou črtou jazyka MATLAB sú jeho rozsiahle možnosti práce s maticami, čo tvorcovia jazyka vyjadrili sloganom Think vectorized.

Matematika a výpočtová technika

MATLAB poskytuje používateľovi veľké množstvo (niekoľko stoviek) funkcií na analýzu údajov, ktoré pokrývajú takmer všetky oblasti matematiky, najmä:
Matice a lineárna algebra - maticová algebra, lineárne rovnice, vlastné hodnoty a vektory, singularity, faktorizácia matice a iné.
Polynómy a interpolácia - korene polynómov, operácie s polynómami a ich diferenciácia, interpolácia a extrapolácia kriviek a iné.
Matematická štatistika a analýza dát - štatistické funkcie, štatistická regresia, číslicová filtrácia, rýchla Fourierova transformácia a iné.
Spracovanie dát - súbor špeciálnych funkcií, medzi ktoré patrí vykresľovanie, optimalizácia, vyhľadávanie núl, numerická integrácia (v kvadratúre) a iné.
Diferenciálne rovnice - riešenie diferenciálnych a diferenciálno-algebraických rovníc, diferenciálnych rovníc s oneskorením, rovníc s obmedzeniami, parciálnych diferenciálnych rovníc a iné.
Riedke matice sú špeciálna dátová trieda MATLABu používaná v špecializovaných aplikáciách.
Celočíselná aritmetika – Vykonáva celočíselné aritmetické operácie v prostredí MATLAB.


Vývoj algoritmu

MATLAB poskytuje pohodlné nástroje na vývoj algoritmov, vrátane tých na vysokej úrovni, ktoré využívajú koncepty objektovo orientovaného programovania. Obsahuje všetky potrebné nástroje IDE vrátane debuggera a profilera. Funkcie pre prácu s celočíselnými dátovými typmi uľahčujú vytváranie algoritmov pre mikrokontroléry a iné aplikácie tam, kde je to potrebné.


Vizualizácia dát

Balík MATLAB obsahuje veľké množstvo funkcií na vykresľovanie grafov, vrátane trojrozmerných, vizuálnu analýzu dát a vytváranie animovaných videí.

Vstavané vývojové prostredie vám umožňuje vytvárať grafické používateľské rozhrania s rôznymi ovládacími prvkami, ako sú tlačidlá, vstupné polia a iné. Pomocou komponentu MATLAB Compiler je možné tieto grafické rozhrania previesť na samostatné aplikácie.


Externé rozhrania

Balík MATLAB obsahuje rôzne rozhrania pre prístup k externým rutinám napísaným v iných programovacích jazykoch, dátam, klientom a serverom komunikujúcim prostredníctvom technológií Component Object Model alebo Dynamic Data Exchange a periférnych zariadení, ktoré komunikujú priamo s MATLABom. Mnohé z týchto schopností sú známe ako MATLAB API.


COM

Balík MATLAB poskytuje prístup k funkciám, ktoré vám umožňujú vytvárať, manipulovať a mazať objekty COM (klientov aj serverov). Podporovaná je aj technológia ActiveX. Všetky objekty COM patria do špeciálnej triedy COM balíka MATLAB. Všetky programy, ktoré majú funkcie automatizácie, môžu pristupovať k MATLABu ako k automatizačnému serveru.


DDE

Balík MATLAB obsahuje funkcie, ktoré mu umožňujú prístup k iným aplikáciám v prostredí Windows, ako aj týmto aplikáciám na prístup k údajom MATLAB, prostredníctvom technológie Dynamic Data Exchange (DDE). Každá aplikácia, ktorá môže byť serverom DDE, má svoj vlastný jedinečný názov identifikátora. Pre MATLAB je tento názov Matlab.


Webové služby

MATLAB poskytuje možnosť volať metódy webových služieb. Špeciálna funkcia vytvára triedu na základe metód API webovej služby.

Matlab komunikuje s klientom webovej služby tak, že od neho prijíma zásielky, spracuje ich a odošle odpoveď. Podporované sú nasledujúce technológie: Simple Object Access Protocol (SOAP) a Web Services Description Language (WSDL).


COM port

Rozhranie sériového portu MATLAB poskytuje priamy prístup k periférnym zariadeniam, ako sú modemy, tlačiarne a vedecké zariadenia, ktoré sa pripájajú k počítaču cez sériový port (port COM). Rozhranie funguje tak, že vytvorí objekt špeciálnej triedy pre sériový port. Dostupné metódy tejto triedy umožňujú čítať a zapisovať dáta na sériový port, používať udalosti a obslužné programy udalostí a zapisovať informácie na disk počítača v reálnom čase. To je užitočné pre experimenty, simulácie v reálnom čase a iné aplikácie.


MEX súbory

Balík MATLAB obsahuje rozhranie na interakciu s externými aplikáciami napísanými v jazykoch C a Fortran. Táto interakcia sa vykonáva prostredníctvom súborov MEX. Je možné volať podprogramy napísané v C alebo Fortran z MATLABu, ako keby to boli vstavané funkcie balíka. Súbory MEX sú knižnice dynamických odkazov, ktoré je možné načítať a spustiť tlmočníkom zabudovaným do MATLABu.


DLL

Generické rozhranie DLL pre MATLAB vám umožňuje volať funkcie nachádzajúce sa v bežných dynamických knižniciach priamo z MATLABu. Tieto funkcie musia mať rozhranie C.

Okrem toho má MATLAB možnosť pristupovať k svojim vstavaným funkciám cez rozhranie C, čo umožňuje využitie funkcií balíka v externých aplikáciách napísaných v jazyku C. Táto technológia sa v MATLABE nazýva C Engine.


Súpravy nástrojov

Pre MATLAB je možné vytvárať špeciálne toolboxy, ktoré rozširujú jeho funkčnosť. Sady nástrojov sú kolekcie funkcií napísaných v MATLABE na riešenie špecifickej triedy problémov. Mathworks dodáva sady nástrojov, ktoré sa používajú v mnohých oblastiach vrátane nasledujúcich:
Digitálne spracovanie signálov, obrázkov a dát: DSP Toolbox, Image Processing Toolbox, Wavelet Toolbox, Communication Toolbox, Filter Design Toolbox - súbor funkcií, ktoré umožňujú riešiť široké spektrum problémov v oblasti spracovania signálov, obrázkov, návrhu digitálnych filtrov a komunikačné systémy.
Riadiace systémy: Control Systems Toolbox, µ-Analysis and Synthesis Toolbox, Robust Control Toolbox, System Identification Toolbox, LMI Control Toolbox, Model Predictive Control Toolbox, Model-Based Calibration Toolbox – sady funkcií, ktoré uľahčujú analýzu a syntézu dynamických systémov, návrh, modelovanie a identifikácia riadiacich systémov vrátane moderných riadiacich algoritmov ako robustné riadenie, H∞-riadenie, LMN-syntéza, µ-syntéza a iné.
Finančná analýza: GARCH Toolbox, Fixed Income Toolbox, Financial Time Series Toolbox, Financial Derivatives Toolbox, Financial Toolbox, Datafeed Toolbox – súbory funkcií, ktoré vám umožňujú rýchlo a efektívne zhromažďovať, spracovávať a prenášať rôzne finančné informácie.
Analýza a syntéza geografických máp, vrátane trojrozmerných: Mapping Toolbox.
Zber a analýza experimentálnych údajov: Data Acquisition Toolbox, Image Acquisition Toolbox, Instrument Control Toolbox, Link for Code Composer Studio - súbory funkcií, ktoré vám umožňujú ukladať a spracovávať údaje získané počas experimentov, a to aj v reálnom čase. Podporuje sa široká škála vedeckých a technických meracích zariadení.
Vizualizácia a prezentácia dát: Virtual Reality Toolbox – umožňuje vytvárať interaktívne svety a vizualizovať vedecké informácie pomocou technológií virtuálnej reality a VRML.
Vývojové nástroje: MATLAB Builder for COM, MATLAB Builder for Excel, MATLAB Compiler, Filter Design HDL Coder - sady funkcií, ktoré umožňujú vytvárať nezávislé aplikácie z prostredia MATLAB.
Interakcia s externými softvérovými produktmi: MATLAB Report Generator, Excel Link, Database Toolbox, MATLAB Web Server, Link for ModelSim - sady funkcií, ktoré umožňujú ukladať dáta v rôznych formách, aby s nimi mohli pracovať iné programy.
Databázy: Database Toolbox - nástroje na prácu s databázami.
Vedecké a matematické balíky: Bioinformatics Toolbox, Curve Fitting Toolbox, Fixed Point Toolbox, Fuzzy Logic Toolbox, Genetický algoritmus a nástroj pre priame vyhľadávanie, OPC Toolbox, Optimization Toolbox, Partial Differential Equation Toolbox, Spline Toolbox, Statistic Toolbox, RF Toolbox – sady špecializované matematické funkcie, ktoré umožňujú riešiť širokú škálu vedeckých a inžinierskych problémov, vrátane vývoja genetických algoritmov, riešenia problémov v parciálnych deriváciách, celočíselných problémov, optimalizácie systému a iných.
Neurónové siete: Nástroje neurónových sietí - Nástroje na syntézu a analýzu neurónových sietí.
Symbolic Math Toolbox Symbolic Math Toolbox - Symbolické výpočtové nástroje s možnosťou interakcie so symbolickým programom Maple.

Okrem vyššie uvedeného existujú tisíce ďalších súprav nástrojov MATLAB napísaných inými spoločnosťami a nadšencami.

Prednáška 3. Programovanie v prostredí MATLAB.

1. M-súbory. ................................................................... ................................................................... ...................................................

1.1. Práca v editore M-súbory. ................................................................... ................................................................... ...

1.2. Typy M-súborov. Programový súbor. ................................................................... .............................................

1.3. Funkcie súborov. ................................................................... ................................................................... ...................................

Funkcie súborov s jedným vstupným argumentom.......................................................................................

Funkcie súborov s viacerými vstupnými argumentmi........................................................................

Funkcie súborov s viacerými výstupnými argumentmi.....................................................................

1.4. Podfunkcie. ................................................................... ................................................................... ......................................

2. Riadiace konštrukcie programovacieho jazyka....................................................................

2.1. Operátori slučiek..............................................................................................................................

Pre slučku. ................................................................... ................................................................... ............................................

Kým slučka. ................................................................... ................................................................... ......................................

2.2. Operátori vetvenia....................................................................................................................

Podmienený operátor ak. ................................................................... ................................................................... ......................

Výpis prepnutia. ................................................................... ................................................................... .................................

2.3. Príkazy prerušenia, pokračovania a návratu. ................................................................... ...................................

2.4. O technikách racionálneho programovania v MATLABE........................................................

Mnohé matematické systémy boli vytvorené na základe predpokladu, že používateľ vyrieši svoje problémy s malým alebo žiadnym programovaním. Od samého začiatku však bolo jasné, že takáto cesta má nevýhody a vo všeobecnosti je chybná. Mnohé úlohy vyžadujú pokročilé programovacie nástroje, ktoré zjednodušujú písanie ich algoritmov a niekedy otvárajú nové metódy na ich vytváranie.

Na jednej strane MATLAB obsahuje obrovské množstvo vstavaných operátorov a funkcií (približujúcich sa k tisícke), ktoré úspešne riešia mnohé praktické problémy, na ktoré bolo predtým potrebné pripravovať pomerne zložité programy. Ide napríklad o funkcie na invertovanie alebo transponovanie matíc, výpočet hodnôt derivácie alebo integrálu atď. neustále zvyšuje. Ale na druhej strane, systém MATLAB bol od svojho vzniku vytváraný ako výkonný matematicky orientovaný programovací jazyk pre technické výpočty. vysoký stupeň. A mnohí to celkom správne považovali za dôležitú výhodu systému, čo naznačuje možnosť jeho aplikácie pri riešení nových, najzložitejších matematických problémov.

MATLAB má vstupný jazyk, ktorý sa podobá BASICu (s nádychom Fortranu a Pascalu). Písanie programov v systéme je tradičné, a preto ho pozná väčšina používateľov počítačov. Okrem toho systém umožňuje upravovať programy pomocou ľubovoľného textového editora známeho používateľovi. Má aj vlastný editor s debuggerom. Systémový jazyk MATLAB z hľadiska programovania matematických výpočtov je oveľa bohatší ako akýkoľvek univerzálny vysokoúrovňový programovací jazyk. Implementuje takmer všetky známe programovacie nástroje, vrátane objektovo orientovaného a vizuálneho programovania. To dáva skúseným programátorom obrovské možnosti sebavyjadrenia.

1. M-súbory.

V V predchádzajúcich prednáškach sme sa pozreli na pomerne jednoduché príklady, pre ktoré je potrebné zadať niekoľko príkazov do príkazového riadku. Pri zložitejších úlohách sa počet príkazov zvyšuje a práca na príkazovom riadku sa stáva neproduktívnou. Pomocou histórie príkazov,

šetrenie premenných pracovného prostredia alebo vedenie denníka s denníkom je zanedbateľné

zvýšiť produktivitu práce. Efektívnym riešením je navrhnúť si vlastné algoritmy vo forme programov (M-súborov), ktoré je možné spúšťať z pracovného prostredia alebo z editora. Vstavaný editor M-súborov v MATLABE vám umožňuje nielen písať text programu a spustiť ho celý alebo po častiach, ale aj ladiť algoritmus. Podrobná klasifikácia M-súborov je uvedená nižšie.

1.1. Pracujte v editore súborov M.

Na prípravu, úpravu a ladenie m-súborov sa používa špeciálny editor s viacerými oknami. Je navrhnutý ako typická aplikácia Windows. Editor je možné vyvolať príkazom edit z príkazového riadku alebo príkazom z hlavného menu Súbor | Nový | M-súbor. Potom si v okne editora môžete vytvoriť vlastný súbor, použiť nástroje na jeho ladenie a spustenie. Pred spustením súboru je potrebné ho zapísať na disk pomocou príkazu Súbor | Uložiť ako v ponuke editora.

Obrázok 1 zobrazuje okno editora/ladiaceho nástroja. Pripravený text súboru (ide o najjednoduchší a náš prvý program v programovacom jazyku MATLAB) je možné zapísať na disk. Ak to chcete urobiť, použite príkaz Uložiť ako, ktorý používa štandardné okno systému Windows na zapísanie súboru so zadaným názvom. Všimnite si, že názov M-súboru musí byť jedinečný a požiadavka na názov súboru je rovnaká ako pre názvy premenných prostredia MATLAB. Po zapísaní súboru na disk môžete spustiť príkaz Spustiť z panela s nástrojmi alebo z ponuky Debug alebo jednoducho kliknúť ., za účelom vykonania m-súboru.

Na prvý pohľad by sa mohlo zdať, že editor / debugger je len dodatočným článkom v reťazci užívateľ-MATLAB. V skutočnosti by sa text súboru mohol zadať do systémového okna a získať rovnaký výsledok. V skutočnosti však zohráva dôležitú úlohu editor / debugger. Umožňuje vám vytvoriť m-súbor (program) bez toho početného "shell", ktorý sprevádza prácu v príkazovom režime. Text takéhoto súboru je podrobený dôkladnej syntaktickej kontrole, pri ktorej sa identifikujú a odstránia mnohé užívateľské chyby. Editor teda poskytuje syntaktickú kontrolu nad súborom.

Editor má ďalšie dôležité nástroje na ladenie – umožňuje nastaviť špeciálne označenia v texte súboru, nazývané breakpointy. Po ich dosiahnutí sa výpočty pozastavia a používateľ môže vyhodnotiť medzivýsledky výpočtov (napríklad hodnoty premenných), skontrolovať správnosť cyklov atď. Nakoniec vám editor umožňuje zapisovať súbor v textovom formáte a zvečnite svoju prácu v súborovom systéme MATLAB.

Pre pohodlie práce s editorom / debuggerom sú programové riadky v ňom očíslované v poradí. Editor má viacero okien. Okno každého programu je navrhnuté ako záložka. Editor debuggeru uľahčuje prezeranie hodnôt premenných. Ak to chcete urobiť, stačí presunúť kurzor myši na názov premennej a držať ho - zobrazí sa tooltip s názvom premennej a jej hodnotou.

Veľmi výhodná funkcia editora M-súborov je vykonávanie niektorých príkazov. Na to použite príkaz Vyhodnotiť výber z kontextového menu alebo hlavného menu Text, prípadne len funkčný kláves ktoré vám umožňujú spustiť vybraný text programu.

Ryža. 1. Okno editora M-súborov.

1.2. Typy M-súborov. Programový súbor.

V MATLABE existujú dva typy M-súborov: Script M-Files, ktoré obsahujú postupnosť príkazov, a Function M-Files, ktoré popisujú užívateľom definované funkcie.

Súborové programy sú najjednoduchším typom M-súborov. Nemajú žiadne vstupné ani výstupné argumenty a pracujú s premennými, ktoré existujú v produkčnom prostredí, alebo môžu vytvárať nové premenné. Pri čítaní predchádzajúcej časti ste napísali súbor programu mydemo. Všetky premenné deklarované v súbore programu budú dostupné v produkčnom prostredí po jeho spustení. Spustite programový súbor mydemo zobrazený v zozname na obr. Prejdite do okna Pracovný priestor a uistite sa, že všetky premenné zadané v súbore M sa objavia v pracovnom priestore. Všetky premenné vytvorené počas vykonávania M-súboru zostávajú po jeho dokončení v pracovnom prostredí a možno ich použiť v iných súborových programoch a v príkazoch vykonávaných z príkazového riadku.

Súborový program je možné spustiť dvoma spôsobmi.

1. Z editora súborov M, ako je popísané vyššie.

2. Z príkazového riadku alebo iného file-program, v tomto prípade sa ako príkaz použije názov M-súboru (bez prípony). Použitie druhého spôsobu je oveľa pohodlnejšie, najmä ak sa vytvorený súbor programu bude neskôr opakovane používať. V skutočnosti sa vygenerovaný M-súbor stáva príkazom, ktorému MATLAB rozumie.

Zatvorte všetky grafické okná a do príkazového riadku napíšte mydemo, zobrazí sa grafické okno zodpovedajúce príkazom v súbore programu mydemo.m. Po zadaní príkazu mydemo MATLAB vykoná nasledujúce akcie.

1. Skontroluje, či zadaný príkaz je názov ktorúkoľvek z definovaných premenných

v Pracovné prostredie. Ak je zadaná premenná, zobrazí sa jej hodnota.

2. Ak je zadaná nepremenná, MATLAB vyhľadá zadaný príkaz medzi vstavanými funkciami. Ak sa ukáže, že príkaz je vstavaná funkcia, vykoná sa.

3. Ak je zadaná nepremenná a nezabudovaná funkcia, MATLAB začne hľadať M-súbor s názvom príkazu a príponou m. Hľadanie začína s aktuálny adresár(Aktuálny adresár); ak sa v ňom nenájde M-súbor, MATLAB vyhľadá adresáre špecifikované vo vyhľadávacej ceste (Path). (Na nastavenie aktuálneho adresára môžete použiť výberové okno s rovnakým názvom na paneli nástrojov alebo príkaz cd. Vyhľadávacie cesty sa nastavujú pomocou

pomocou príkazu Nastaviť cestu v ponuke Súbor alebo pomocou príkazu addpath).

Ak žiadna z vyššie uvedených akcií neviedla k úspechu, v príkazovom okne sa zobrazí správa, napríklad ak urobíte chybu.

Vyhľadávacia sekvencia MATLABu naznačuje, že je veľmi dôležité správne pomenovať svoj vlastný programový súbor pri jeho ukladaní do M-súboru. Po prvé, jeho názov sa nesmie zhodovať s názvom existujúcich funkcií v MATLABE. Či je meno zabraté alebo nie, môžete zistiť pomocou funkcie exist.

Po druhé, názov súboru nesmie začínať číslicou, znakmi "+" alebo "-" alebo v slove znakmi, ktoré môže MATLAB interpretovať ako chybu pri zadávaní výrazu. Napríklad, ak pomenujete M-súbor programovým súborom 5prog.m, potom keď ho spustíte z ponuky editora alebo dostať chybové hlásenie. To nie je prekvapujúce, pretože MATLAB očakáva, že budete mať 5 + prog (alebo 5, prog) na vyhodnotenie aritmetického výrazu pomocou prog (alebo pridajte 5 ako prvý prvok do vektora riadku prog). Správny názov by teda bol prog5.m (alebo aspoň p5rog.m), no začínajúci iba písmenom.

Upozorňujeme, že ak spustíte zvýraznené príkazy (všetky príkazy môžu byť zvýraznené) súboru M s nesprávnym názvom pomocou , potom nedôjde k žiadnej chybe. V skutočnosti prebieha sekvenčné vykonávanie príkazov, ktoré sa nelíši od ich vyvolávania z príkazového riadku, a nie od činnosti súborového programu.

Ešte jedna chyba je veľmi častá pri zadávaní názvu súborového programu, čo má na prvý pohľad nevysvetliteľné následky: program sa spustí iba raz. Reštartovanie nespustí program. Pozrime sa na túto situáciu na príklade súborového programu z Výpisu 5.1, ktorý ste uložili do súboru mydemo.m. Premenujte súbor na x.m a potom odstráňte všetky premenné pracovného priestoru z okna prehliadača premenných pracovného priestoru alebo z príkazového riadku:

>> vymazať všetko

Spustite súbor programu napríklad z editora stlačením ... Objaví sa grafické okno s dvoma grafmi, ktoré neveští nič dobré pre trik. Teraz zatvorte grafické okno a znova spustite program. Grafické okno sa už nevytvára, ale hodnoty poľa x sa zobrazujú v príkazovom okne v súlade s prvým odsekom vyššie uvedeného vyhľadávacieho algoritmu MATLAB. Tieto okolnosti by sa mali vziať do úvahy pri výbere názvu súboru-programu. Nemenej dôležitá otázka súvisí s tretím bodom vyhľadávacieho algoritmu MATLAB – aktuálnym adresárom a vyhľadávacími cestami. Vaše vlastné M-súbory sú zvyčajne uložené v adresároch používateľa. Aby ich MATLAB našiel, musíte nastaviť cesty, ktoré označujú umiestnenie M-súborov.

1.3. Funkcie súborov.

Vyššie uvedené súborové programy sú sekvenciou príkazov MATLABu; nemajú žiadne vstupné a výstupné argumenty. Na vyriešenie výpočtových problémov a písanie vlastných aplikácií v MATLABE často potrebujete naprogramovať funkcie súborov, ktoré vykonajú potrebné akcie so vstupnými argumentmi a vrátia výsledok vo výstupných argumentoch. Počet vstupných a výstupných argumentov závisí od riešeného problému – môže existovať iba jeden vstupný a jeden výstupný argument, niekoľko oboch alebo iba vstupné argumenty.

Je možné, že neexistujú žiadne vstupné a výstupné argumenty. Táto časť obsahuje niekoľko jednoduchých príkladov, ktoré vám pomôžu pochopiť, ako pracovať s funkciami súborov. Funkcie súborov, ako napríklad súborové programy, sa vytvárajú v editore súborov M.

Súborové funkcie s jedným vstupným argumentom.

Predpokladajme, že pri výpočtoch často potrebujete použiť funkčnú hodnotu:

- xx 2

Má zmysel napísať funkciu súboru raz a potom ju volať všade, kde je potrebné túto funkciu vypočítať pre daný argument. Ak to chcete urobiť, otvorte nový súbor v editore súborov M a zadajte text:

funkcia f = myfun (x)

Slovo funkcia v prvom riadku udáva, že tento súbor obsahuje súbor funkcií. Prvý riadok je hlavička funkcie, ktorý obsahuje názov funkcie a zoznamy vstupných a výstupných argumentov. Vstupné argumenty sú zapísané v zátvorkách za názvom funkcie. V našom príklade existuje iba jeden vstupný argument, x. Argument výstupu f sa zobrazí naľavo od znamienka rovnosti v hlavičke funkcie. Pri výbere názvu funkcie súboru je potrebné dbať na to, aby nedošlo ku konfliktom s obsadenými názvami v MATLABE. O podobnej otázke sme hovorili vyššie: ako uložiť súbor programu do súboru s jedinečným názvom. Rovnaký prístup, založený na volaní funkcie exist, môžete použiť na zadanie názvu funkcie súboru.

Za hlavičkou je umiestnené telo funkcie súboru - jeden alebo niekoľko operátorov (môže ich byť pomerne veľa), ktoré implementujú algoritmus na získanie hodnoty výstupných premenných zo vstupných. V našom príklade je algoritmus jednoduchý - pre dané x sa vypočíta aritmetický výraz a výsledok sa zapíše do f.

Teraz musíte súbor uložiť do pracovného adresára alebo na iné miesto, ktoré MATLAB pozná. Keď vyberiete položky Uložiť alebo Uložiť ako ... v ponuke Súbor, predvolený názov súboru je rovnaký ako názov funkcie myfun. Súbor funkcií musíte uložiť s týmto navrhovaným názvom. Teraz je možné vytvorenú funkciu použiť rovnakým spôsobom ako vstavaný sin, cos a ďalšie, napríklad z príkazového riadku:

>> y = myfun (1.3) y =

Pri vytváraní súborovej funkcie myfun sme potlačili výstup f do príkazového okna ukončením príkazu priradenia bodkočiarkou. Ak tak neurobíte, zobrazí sa pri volaní y = myfun (1.3). Spravidla je lepšie vyhnúť sa výstupom medzivýsledkov výpočtov do príkazového okna v rámci funkcie súboru.

Súborová funkcia zobrazená v predchádzajúcom príklade má jednu veľkú nevýhodu. Pokus o výpočet funkčných hodnôt z poľa má za následok chybu, nie pole hodnôt, ako je to v prípade vstavaných funkcií.

>> x =;

>> y = myfun (x)

??? Chyba pri použití ==> ^ Matica musí byť štvorcová.

Chyba v ==> C: \ MATLAB6p5 \ práca \ myfun.m

Na riadku 2 ==> f = exp (-x) * sqrt ((x ^ 2 + 1) / (x ^ 4 + 0,1));

Samozrejme, aby ste sa vyhli tejto chybe, musíte použiť operácie po elementoch. Najmä pre správnu činnosť našej funkcie je potrebné prepísať text funkcie v nasledujúcom tvare:

funkcia f = myfun (x)

f = exp (-x). * sqrt ((x. ^ 2 + 1) ./ (x. ^ 4 + 0.1));

Teraz môže byť argumentom funkcie myfun buď číslo alebo vektor alebo matica hodnôt, napríklad:

>> x =;

>> y = myfun (x)

Premenná y, do ktorej sa zapíše výsledok volania funkcie myfun, sa automaticky stáva vektorom požadovanej veľkosti.

Pozrime sa na príklad použitia funkcií. Funkciu myfun vykreslíme na segment pomocou súborového programu alebo z príkazového riadku:

>> x = 0: 0,5: 4;

>> y = myfun (x);

>> zápletka (x, y)

Riešenie výpočtových problémov pomocou MATLABu bude vyžadovať, aby ste boli schopní naprogramovať funkcie súborov, ktoré zodpovedajú danej úlohe (napríklad pravá strana systému diferenciálnych rovníc alebo integrand).

Teraz sa pozrieme len na jeden jednoduchý príklad toho, ako používanie súborových funkcií uľahčuje vizualizáciu matematických funkcií. Práve sme nakreslili pozemok pomocou plot. Všimnite si, že na výpočet vektora y nebolo potrebné volať myfun - môžete preň okamžite napísať výraz a potom zadať pár x a y inplot. Súborová funkcia myfun, ktorú máme k dispozícii, nám umožňuje volať špeciálnu funkciu fplot, ktorá potrebuje špecifikovať názov našej súborovej funkcie (v apostrofoch) alebo ukazovateľ na ňu (s operátorom @ pred názvom funkcie) a hranice segmentu na vykreslenie grafu (vo vektore dvoch prvkov)

>> fplot ("myfun",)

>> fplot (@myfun,)

Je potrebné pridať algoritmus funkcie fplot, ktorá automaticky vyberá krok argumentu a znižuje ho v oblastiach rýchlej zmeny skúmanej funkcie, čo dáva používateľovi dobré zobrazenie údajov.

Súborové funkcie s viacerými vstupnými argumentmi.

Zápis súborových funkcií s viacerými vstupnými argumentmi je prakticky rovnaký ako v prípade jedného argumentu. Všetky vstupné argumenty sú umiestnené v zozname oddelenom čiarkami. Nasledujúci príklad obsahuje funkciu súboru, ktorá vypočíta dĺžku vektora polomeru bodu v trojrozmernom priestore

medzery x 2 + y 2 + z 2.

funkcia r = polomer3 (x, y, z) r = sqrt (x. ^ 2 + y. ^ 2 + z. ^ 2);

>> R = polomer 3 (1, 1, 1)

Okrem funkcií s viacerými argumentmi vám MATLAB umožňuje vytvárať funkcie, ktoré vracajú viacero hodnôt, to znamená, že majú viacero výstupných argumentov.

Súborové funkcie s viacerými výstupnými argumentmi.

Súborové funkcie s viacerými výstupnými argumentmi sú užitočné na vyhodnotenie funkcií, ktoré vracajú viacero hodnôt (v matematike sa nazývajú vektorové funkcie). Výstupné argumenty sú pridané do zoznamu výstupných argumentov oddelené čiarkami a samotný zoznam je uzavretý v hranatých zátvorkách. Nasledujúci príklad poskytuje funkciu súboru hms na konverziu času zadaného v sekundách na hodiny, minúty a sekundy:

funkcia = hms (sec) hodina = podlaha (sec / 3600);

Pri volaní súborových funkcií s niekoľkými výstupnými argumentmi by sa mal výsledok zapísať do vektora vhodnej dĺžky:

>> = hms (10 000) H =

Ak pri použití tejto funkcie explicitne nešpecifikujete výstupné parametre, výsledkom volania funkcie bude iba prvý výstupný argument:

>> hms (10 000) ans =

Ak je zoznam výstupných argumentov prázdny, t.j. hlavička vyzerá takto: function myfun (a, b) alebo function = myfun (a, b),

potom funkcia súboru nevráti žiadne hodnoty. Tieto funkcie sú niekedy tiež užitočné.

Ďalšou užitočnou vlastnosťou funkcií MATLABu je možnosť získať o nich informácie pomocou príkazu help, napríklad help fplot. Pomocou tejto vlastnosti je možné poskytnúť aj vlastné funkcie súborov pomocou riadkov komentárov. Všetky riadky komentárov za hlavičkou a pred telom funkcie alebo prázdny riadok sa zobrazia v príkazovom okne s príkazom help. Napríklad pre našu funkciu môžete vytvoriť nápovedu:

funkcia = hms (s) % hms - previesť sekundy na hodiny, minúty a sekundy

% Funkcia hms slúži na preklad sekúnd

% v hodinách, minútach a sekundách.

% = hms (s)

hodina = podlaha (s / 3600);

minúta = podlaha ((s - hodina * 3600) / 60); sekunda = sek - hodina * 3600 - minúta * 60;

1.4. Podfunkcie.

Zoberme si iný druh funkcií - podfunkcie. Použitie podfunkcií je založené na oddelení časti algoritmu do samostatnej funkcie, ktorej text je obsiahnutý v rovnakom súbore ako hlavná funkcia. Pozrime sa na príklad.

jednoduchá funkcia;

% Základná funkcia a = 2 * pi;

fl = f (1,1, 2,1) f2 = f (3,1, 4,2) -a f3 = f (-2,8, 0,7) + a

funkcia z = f (x, y) % Podfunkcia

z = x^ 3 - 2 * y^ 3 - x * y + 9;

Prvá jednoduchá funkcia je hlavná funkcia v simple.m sú to jeho príkazy, ktoré sa vykonajú, ak používateľ vyvolá simple, napríklad z príkazového riadku. Každé volanie podfunkcie f v hlavnej funkcii vedie k prechodu na príkazy umiestnené v podfunkcii a potom k návratu k hlavnej funkcii.

Súbor funkcií môže obsahovať jednu alebo niekoľko podfunkcií s vlastnými vstupnými a výstupnými parametrami, ale môže existovať iba jedna hlavná funkcia. Nadpis novej podfunkcie je tiež znakom konca predchádzajúcej. Hlavná funkcia komunikuje s podfunkciami iba pomocou vstupných a výstupných parametrov. Premenné definované v podfunkciách a v hlavnej funkcii sú lokálne, sú dostupné v rámci svojej funkcie.

Jedným z možných použití premenných, ktoré sú spoločné pre všetky funkcie v M-súbore, je deklarovať tieto premenné na začiatku hlavnej funkcie a podfunkcie ako globálne pomocou globálneho so zoznamom názvov premenných oddelených medzerou.

2. Riadiace konštrukcie programovacieho jazyka.

Súborové funkcie a súborové programy, ktoré ste vytvorili v predchádzajúcich dvoch kapitolách, sú najjednoduchšími príkladmi programov. Všetky príkazy MATLABu v nich obsiahnuté sa vykonajú dôsledne. Na vyriešenie mnohých vážnejších problémov sú potrebné programy, v ktorých sa akcie cyklicky opakujú a v závislosti od určitých podmienok sa vykonávajú rôzne časti programu. Táto kapitola popisuje riadiace konštrukcie programovacieho jazyka MATLAB, ktoré možno použiť pri písaní súborových programov aj súborových funkcií.

2.1. Operátori slučiek.

Podobné a opakujúce sa akcie sa vykonávajú pomocou príkazov cyklu for a while. Cyklus for je navrhnutý tak, aby vykonal určitý počet opakovaných akcií, a while - for akcií, ktorých počet nie je vopred známy, ale je známa podmienka pre pokračovanie cyklu.

Pre slučku.

Použitie for sa vykonáva takto:

pre počet = začiatok: krok: konečný

príkazy MATLABu

Počet je tu premenná cyklu, začiatok je jej počiatočná hodnota, konečná je konečná hodnota, astep je krok, o ktorý sa počet zvyšuje pri každom ďalšom vstupe do cyklu. Cyklus sa skončí hneď, ako počet prekročí konečný počet. Premenná slučky môže nadobúdať nielen celočíselné hodnoty, ale aj skutočné hodnoty akéhokoľvek znamienka. Uveďme príklad použitia cyklu for. Nech je potrebné zobraziť grafy rodiny kriviek pre x, ktoré

daná funkciou y (x, a) = e - ax sinx, v závislosti od parametra a, pre hodnoty parametra a od -0,1 do

0,1 s krokom 0,02. Môžete samozrejme postupne vypočítať y (x, a) a vykresliť jeho grafy pre rôzne hodnoty a, ale oveľa pohodlnejšie je použiť cyklus for. Text súboru programu:

postava% vytvorí grafické okno

x = 0: pi / 30: 2 * pi; % vypočíta vektor hodnôt argumentov

% iterovanie hodnôt parametrov v slučke pre a = -0,1 : 0,02 : 0,1

% výpočet vektora funkčných hodnôt pre aktuálnu hodnotu ...

parameter

y = exp (-a * x). * sin (x); % pridať graf funkcie podržať

dej (x, y) koniec

Ako výsledok spustenia tohto súborového programu sa objaví grafické okno, znázornené na obr. 2, ktorý obsahuje požadovanú skupinu kriviek.

Ryža. 2. Rodina kriviek.

Cykly For môžu byť vnorené do seba, pričom premenné vnorených slučiek musia byť rôzne. Vnorené slučky sú praktické na plnenie matríc. Príklad vytvorenia Hilbertovej matice:

a = nuly (n); pre i = 1: n

pre j = 1: n

a (i, j) = 1 / (i + j-1);

Na záver tejto časti si všimneme ešte jednu vlastnosť slučky for, ktorá spolu so schopnosťou nastaviť počítadlo skutočnej slučky s konštantným krokom robí slučku for celkom univerzálnou. Pole hodnôt možno použiť ako hodnoty pre premennú cyklu:

pre počet = A

príkazy MATLABu

Ak je A riadkový vektor, potom počítanie postupne preberá hodnotu jeho prvkov pri každom vstupe do slučky. V prípade dvojrozmerného poľa A v i-tom kroku cyklu count obsahuje stĺpec A (:, i). Samozrejme, ak je A stĺpcový vektor, potom sa cyklus vykoná iba raz s počtom A.

Cyklus for je užitočný pre konečný počet vecí. Existujú algoritmy s neznámym počtom opakovaní, ktoré možno implementovať do flexibilnejšej slučky while.

Kým slučka.

Cyklus while slúži na organizáciu opakovaní rovnakého typu akcií v prípade, keď počet opakovaní nie je vopred známy a je určený splnením určitej podmienky. Uvažujme o príklade sériovej expanzie hriechu (x):

x 2k + 1

S (x) = ∑ (- 1)

(2000 + 1)!

k = 0

Samozrejme, nebude možné sčítať do nekonečna, ale množstvo môžete nahromadiť s danou presnosťou, napríklad 10-10. Je zrejmé, že počet členov série v tomto prípade nie je známy, takže použitie operátora for je nemožné. Cesta von je použiť cyklus while, ktorý beží tak dlho, kým sa vykoná podmienka cyklu:

podmienka opakovania slučky

príkazy MATLABu

V V tomto príklade je podmienkou opakovania cyklu modul aktuálneho členu

x 2 k + 1 (2 k + 1)! viac ako 10-10. Text funkcie súboru mysin, ktorý vypočítava súčet série na základe

recidívny vzťah:

k - 1

2 000 (2 000 + 1)

funkcia s = mysin (x)

% Výpočet sínusu sériovou expanziou

% Použitie: y = mysin (x),-pi< х < pi

% výpočet prvého členu súčtu pre k = O k = 0;

% výpočet pomocnej premennej

zatiaľ čo abs (u) > 1,0e-10 k = k + 1;

u = -u * x2 / (2 * k) / (2 * k + 1); s = s + u;