Kontakty

Jednorozmerné polia MATLAB. Matlab ilustrovaný tutoriál deklarácie matlabového poľa

TÉMA 5. IMPLEMENTÁCIA SOFTVÉRU MATEMATICKÝCH MODELOV
Moderné matematické modely sú zložité a na výpočty je potrebné použiť počítač. Algoritmy alebo metódy výpočtu uvedené v predchádzajúcej kapitole by preto mali byť preložené do programovacieho jazyka. V súčasnosti sú pre vedecký rozvoj obľúbené jazyky ako FORTRAN, SI, PASKAL. Ale pre široký okruh používateľov sú tieto jazyky považované za komplexné, a preto sa rozšírili systémy ako EXCEL, MATLAB, MATHCAD, MAPLE atď., Ktoré sú pre odborníkov v danej oblasti zrozumiteľnejšie. Zameriame sa na systém MATLAB, ktorý sa používa v laboratórnej práci tohto tutoriálu.
^ 5.1 Stručný popis MATLABu
MATLAB (skratka z MATrix LABoratory) bol vyvinutý spoločnosťou The MathWorks, Inc. (USA, Natick, Massachusetts) a je interaktívnym systémom na vykonávanie inžinierskych a vedeckých výpočtov, ktorý je zameraný na prácu s dátovými poľami, umožňuje prístup k programom napísaným v jazyku Fortran, C ++. Systém podporuje operácie s vektormi, maticami a dátovými poľami, podporuje prácu s algebraickými polynómami, riešenie diferenciálnych a diferenciálnych rovníc, riešenie nelineárnych rovníc a problémov s optimalizáciou atď., Ako aj vytváranie rôznych typov grafov, trojrozmerných povrchov a vodorovných čiar .

Operačné prostredie systému MATLAB obsahuje príkazové okno, panel s nástrojmi, podsystémy na zobrazenie pracovnej oblasti a prístupových ciest, editor / ladiaci program pre súbory M atď. Užívateľ môže programy písať sám pomocou editora súborov M, ktorý sú formátované ako súbory M (súbory M majú príponu .m). Každý program musí byť vytvorený, upravený (t.j. opravený) a spustený (t.j. vypočítaný).

V ponuke vytvorte nový program ^ Súbor vyberte možnosť Nový a potom Súbor M; v dôsledku toho sa otvorí okno editora súborov M. V tomto okne je napísaný text programu. Po zadaní tohto textu by ste mali program uložiť s názvom (na to v ponuke Súbor je vybratá možnosť Uložiť ako).

Program spustíte tak, že prejdete do príkazového okna a na príkazovom riadku, ktorý je na obrazovke označený symbolmi >> zadajte názov súboru M.

Ak chcete upraviť už vytvorený súbor M, musíte sa vrátiť z príkazového okna do okna editora s textom programu.

^

Formovanie polí v MATLABe

V MATLABe sú hlavným objektom polia (matice a vektory), pre ktoré nemusíte explicitne určovať rozmery. Na vytvorenie číselného poľa sú čísla uvedené v hranatých zátvorkách, oddeľovač medzi číslami sú medzery. Na oddelenie riadkov matice použite symbol ; . Príklad.

Matica A = z 3 riadkov a 2 stĺpcov je zapísaná ako: A =.

Na vytvorenie polí použite symbol : . Príklad.

Nastaviť vektor S, pozostávajúci z čísel od 0 do 0,5 s krokom 0,1: С = 0: 0,1: 0,5. Na obrazovke sa zobrazí nasledujúci riadok:

С = 0 0,1 0,2 0,3 0,4 0,5

Ak je krok 1, nie je špecifikované, napríklad na nastavenie vektora B, pozostávajúceho z čísiel 3, 4, 5, 6, 7, môžete napísať: B = 3: 7. Potom sa zobrazí obrazovka :

B = 3 4 5 6 7
Symbol : používa sa aj na výber podblokov poľa. Príklad. Vyberte prvý stĺpec matice A =: A ( : , 1).
Polia môžu byť zreťazené. Nechaj byť X= 1, 2, 3, 4 a r= 5, 6, 7, 8. Potom fragment programu na vytvorenie kombinovaného poľa z bude nasledovné:

X = 1:4;

r = 5:8;

z = [X; r]

na obrazovke sa zobrazí: z =

Aritmetické operácie. Používajú sa operátory aritmetického sčítania + , odčítanie , násobenie * , rozdelenie / , umocnenie ^.

p1) . 'Elementárna transpozícia (riadky sú nahradené stĺpcami, pre zložité

komplexná konjugácia sa nevykonáva).

Nechajme napríklad A =, potom A . ′ = .

p1) .^ elementárne umocnenie, A . ^ B.

Nechajme napríklad A =, potom A . ^2 =
.

p1) ′ - transpozícia matice. V prípade zložitých matíc je transpozícia doplnená o

komplexná konjugácia.

Nechajme napríklad A =, potom A '=
.

p1) ^ zvýšenie matice na mocninu, A ^ p (iba pre štvorcové matice a pre celé čísla p). Nechajme napríklad maticu A =
... Potom A ^ 2 =

p2) .* elementárne násobenie dvoch polí rovnakej veľkosti.
Nechajme napríklad A =
B =
, potom . * B =

Všetky prvky poľa sú vynásobené skalárom, napríklad nech A =. Vypočítajte F = 3 * A. Dostaneme F =
.
p2) * maticové násobenie, A * B.

Nechajme napríklad A = B =. Potom A * B =
.
p2) ./ elementárne rozdelenie polí. Polia musia mať rovnakú veľkosť alebo je pole deliteľné skalárom. Nechajme napríklad A =. Potom B. ./ 3 = .
p3) + sčítanie a - odčítanie pre skaláry, vektory a matice.

Nechajme napríklad A =
a B =
... Potom - B =
.

PS: Operácie ako p1 sa vykonávajú skôr ako p2 a p2 pred p3. V rámci každej úrovne je priorita rovnaká, výpočty sa vykonávajú zľava doprava. Na určenie požadovaného poradia operácií môžete použiť zátvorky

^

Niektoré špeciálne postavy

() - údaj o slede operácií. Príklady:

a) nastaviť pole X od 0 do 3 s krokom 0,1 a reprezentovaný ako stĺpček: X= (0: 0,5: 2) ′

b) vypočítať
: r=(X+0.5)/2
- tvorba polí (pozri časť „Tvorba polí v systéme MATLAB“)
% - komentáre začínajú týmto symbolom. Môžu mať formu oddelených riadkov alebo nasledovať ktorýkoľvek z príkazov.
; tento symbol sa používa: a) na potlačenie zobrazovania výsledkov výpočtov; b) oddeľovať maticové riadky.
: - tento symbol sa používa na vytváranie vektorov a na výber riadkov alebo stĺpcov poľa.
pi - číslo π = 3,141592653897
ans - výsledok operácie, ak nie je zadaná výstupná premenná (v tomto prípade MATLAB používa premennú ans).
inf - tento symbol sa zobrazí na obrazovke, keď bitová mriežka pretečie v jednej z buniek („skutočné“ ∞). Napríklad pri vykonávaní operácie delenia nulou.
NaN - špeciálna premenná na označenie nedefinovanej hodnoty, výsledok operácií ako: 0/0, inf / inf atď.

^

Elementárne matematické funkcie

abs- absolútna hodnota, napríklad, nech X= [-2 4 -8,5], potom abs ( X) = .

hriech, cos, tan atď. - goniometrické funkcie, argumenty (uhly) sú uvedené v radiánoch. Napríklad, t= cos ( X);

exp- exponenciálna funkcia ( e X), napríklad: r= exp ( X);

log- prírodný logaritmus, napríklad: c= log ( d);

log10- desatinný logaritmus, napríklad, z= log10 ( r);

sqrt - druhá odmocnina, napríklad: b= sqrt ( a);
Niektoré grafické funkcie
obrázok- funkcia na otvorenie grafického okna na obrazovke
xlabel, ylabel- funkcie na pomenovanie osí x a y
titul- funkcia umiestnenia názvu nad graf
sprisahanie (x, y)- funkcia na vykreslenie dvojrozmerného grafu závislosti y = f (x) v karteziánskych súradniciach (typ značky, farba a typ čiary v grafe sa vyberajú automaticky);
plot (x1, y1, LineSpec1, x2, y2, LineSpec2, ...)- funkcia na vytváranie niekoľkých závislostí na grafickom okne, ktorá určuje značku, farbu a typ čiary pre každý riadok.
polárne (x, y)- funkcia pre vytváranie závislostí y = f (x) v polárnych súradniciach.
sieťovina (x, y)- funkcia nastaví v rovine obdĺžnikovú sieť ( X, r) vo forme dvojrozmerných polí, ktoré sú definované danými vektormi X a r.

Príklad: [ X, Y] = sieťovina (1: 0,5: 2,10: 14). V dôsledku toho dostaneme:

X = 1 1.5 2 Y = 10 10 10

1 1.5 2 11 11 11

1 1.5 2 12 12 12

1 1.5 2 13 13 13

1 1.5 2 14 14 14
sieťovina (x, y, z)- funkcia zobrazuje 3D sieťový povrch závislosti z = f (x, y).

surfovať (x, y, z)- funkcia zobrazuje pevný sieťový povrch závislosti z = f (x, y).

^

Online prístup k informáciám a dokumentácii pomoci


Existuje niekoľko spôsobov, ako získať informácie o funkciách systému MATLAB.

1 ... Velenie pomoc názov_funkcie... Zadáva sa priamo do príkazového okna MATLAB. Napríklad: pomôcť hriechu.

2 ... Ponuka POMOC príkazové okno. Táto ponuka poskytuje úplné informácie o pomocníkovi systému MATLAB s ďalšími podrobnosťami a príkladmi ako príkaz help. Užívateľ si môže prezrieť kompletnú dokumentáciu MATLAB (podponuka Obsah), alebo otvoriť zoznam všetkých funkcií v abecednom poradí (podponuka Register), alebo zorganizovať vyhľadávanie podľa názvu (podponuka Hľadať). Je tiež možné otvoriť zoznam funkcií podľa kategórií (Funkcie MATLAB zoradené podľa kategórií), otvoriť zoznam príkladov podľa kategórií (Register príkladov dokumentácie) a ďalšie možnosti.
^

Príklady:

a) Nájdite funkcie lineárnej algebry. Otvorte postupnosť okien:

HELP - MATLAB Help - Hľadanie funkcií a vlastností - Funkcie Matlabu zoradené podľa kategórií - Matematika –- Lineárna algebra

b) Nájdite grafové funkcie na vykresľovanie:

HELP - MATLAB Help - Hľadanie funkcií a vlastností - Funkcie Matlabu zoradené podľa kategórií - Grafika - Základné grafy a grafy.
3 ... Ďalším spôsobom, ako získať informácie o programe MATLAB, je prístup na webový server MathWorks.

^

5.2 Úlohy lineárnej algebry, funkcie výpočtu a vykresľovanie grafov

Systém MATLAB je orientovaný na prácu s poliami a základné problémy lineárnej algebry sú v tomto systéme reprezentované v ekonomickej forme. Ďalej sú popísané niektoré typické problémy s lineárnou algebrou a ich implementácia softvéru.

Príklad 1... Násobiť vektor
na vektor
.

Ako viete, pri násobení vektorov musí byť prvý vektor riadkový a druhý stĺpcový vektor a musia mať rovnaké rozmery. Preto je riešenie napísané vo formulári
a =

b =

c = a * b
Alebo
a =

b = ′

c = a * b
% Odpoveď: s = 12.
PS: Ak píšeš b=, potom sa výpočet nevykoná, pretože b budú interpretované ako riadkový vektor.
Príklad 2... Násobiť maticu
na matici
.

Aby bola táto operácia vykonaná správne, počet prvkov v riadkoch matice A sa musí rovnať počtu prvkov v stĺpcoch matice B. Program bude zapísaný ako:
a = ;

b = ;

Na obrazovke sa zobrazí:

Príklad 3... Vyriešte sústavu lineárnych rovníc

V maticovej forme bude mať tento systém tvar: A * x = B, kde:

Potom bude riešenie zapísané ako:
^ A=% nastavíme maticu koeficientov pre neznáme

B=% nastaviť vektor voľných členov

X = A \ B% systémové riešenie (odpoveď: NS 1 =5, NS 2 = 3, X 3 = 2)
Symbol \ sa používa na riešenie sústav lineárnych rovníc AX = B.
Príklad 4... Pre maticu A(pozri príklad 3) nájdite determinantnú a inverznú maticu ( A-1) a spočítajte výrobok E = A A-1. Riešenie:
A=

C = det (A)% det - funkcia vypočíta determinant danej matice

D = inv (A)% inv - funkcia vypočíta inverznú hodnotu danej matice

Odpoveď: C = -6; E = 1,0000 0 0

0.0000 1.0000 0.0000

0.0000 -0.0000 1.0000

V matematických modeloch sa často požaduje vyhodnotiť hodnoty výrazov ako y = f (x) pri rôznych hodnotách X a potom tieto závislosti graficky znázorniť. V systéme MATLAB sú takéto úlohy ľahko riešiteľné. Nasleduje niekoľko príkladov.
^

Príklad 5... V intervale NS= vypočítať hodnoty:

y = e X a z = 1 + x + x 2 / 2 + x 3 / 6 + x 4 /24

pre rovnomerne rozmiestnených 31 bodov. Budujte závislosti y = f (x) a z = f (x) na jednom grafe (karteziánske súradnice). Hodnoty x, y, z nezobrazovať na obrazovke.

Riešenie bude napísané vo forme:
x = (0: 0,1: 3) "; nastavte hodnoty NS v rozsahu od 0 do 3 s krokom 0,1

y = exp (x); vypočítajte hodnoty vektora o

z = 1,0 + x + (x. ^ 2) / 2 + (x. ^ 3) / 6 - (x. ^ 4) / 24; vypočítajte hodnoty vektora z

obrázok otvorte grafické okno

plot (x, y, "–g", x, z, "–k") vykreslite funkciu y = cos (x)

xlabel ("súradnice x") zadajte názov osi X

ylabel („súradnice y“) zadajte názov osi r

nadpis ("y = exp (x)"); dať názov grafu
Príklad 6... V intervale NS = vypočítať hodnoty y = 0,5 ln (x + 1) pre rovnomerne rozmiestnených 101 bodov. Vybudujte si závislosť y = f (x) v polárnych súradniciach.
X= (0: pi / 10: 10 * pi) ';

r = 0,5 * log ( X + 1);

polárny ( X, r); vykreslenie funkcie y = 0,5 l (x + 1)
MATLAB uľahčuje vytváranie 3D grafov, t.j. závislosti ako z = f (x, y) ako ukazuje nasledujúci príklad.

Príklad 7... Konštrukcia povrchu
o NS= -1 až +1 s krokom 0,2 a pri r= -1 až +1 v 0,2 krokoch.

Riešenie problému:
[X, r] = mriežka siete ([- 1: 0,2: 1]);

z=X. * exp (- X.^2 - r.^2);

pletivo ( x, y, z);

surfovať ( x, y, z);

PS: Grafické funkcie sú popísané vyššie v časti „Niektoré grafické funkcie“.

^ 5.3. Riešenie nelineárnych algebraických rovníc a aproximačných funkcií
Systém MATLAB oveľa jednoduchšie ako v známych programovacích jazykoch rieši systémy nelineárnych (algebraických rovníc) a vykonáva aproximáciu funkcií definovaných v tabuľke.

Príklad 8. Vyriešte rovnicu
s počiatočnou aproximáciou X 0 = 5 a zobrazenie iterácií na obrazovke:

Riešenie problému:
funkcia ex1

options = optimset („Displej“, „iter“);

Fzero (@f, 5, možnosti)

funkcia y = f (x)

y = x. ^ 3-2 * x-5;
PS: Prvé 3 príkazy sú hlavným programom, posledné 2 príkazy sú funkciou definujúcou závislosť
pri rôznych hodnotách NS.

Nasleduje stručný popis funkcií MATLABu použitých pri riešení problému.
fzero (@ názov funkcie, x 0 , možnosti)- hľadanie nuly funkcie jednej premennej. Riešenie sa hľadá v okolí daného bodu X 0 nájdením intervalu, v ktorom funkcia mení znamienko. Ak sa taký interval nenájde, vráti sa Inf alebo NaN. Parameter možnosti môže nastaviť výstup priebežných výsledkov (iterácií) na obrazovku a presnosť výpočtu.
optimset(„Displej“, „iter“) - funkcia na zobrazenie iterácií na obrazovke.
- vydá požadované riešenie a funkčnú hodnotu zodpovedajúcu tomuto riešeniu.
Bližšie informácie o použitých funkciách nájdete v HELP MATLAB.
Príklad 9... Vyriešte sústavu rovníc:

(5.1)

s počiatočnými aproximáciami X 0 = 2,5; r 0 = 0,5 a s výstupom iterácií na obrazovke.

Aby sme vyriešili pravé strany rovníc, prenesieme ich na ľavé strany

, (5.2)

aby nuly zostali na pravých stranách. Potom hľadáme minimum funkcie pozostávajúcej zo súčtu týchto rovníc na druhú :. Pretože súčet štvorcov je vždy kladné číslo, minimum funkcie nemôže byť menšie ako 0 a dosiahnutie hodnoty f= 0 znamená, že množstvá X a r zodpovedajúci tejto hodnote, dosiahnite požadované riešenia systému (5.2).

Riešenie problému:
funkcia ex2

options = optimset („Displej“, „iter“);

Fminsearch (@ eq1 ,, možnosti)

funkcia f = eq1 (x)

f = (x (1). ^ 2 + x (2). ^ 2 - 9). ^ 2 + (x (1) + sin (x (2)) - 3). ^ 2
PS: Existuje zhoda medzi neznámymi v rovniciach (5.1) a programovými premennými: X = X(1), r = X(2).

Na vyriešenie problému sa používa funkcia MATLAB:
fminsearch (@ názov funkcie, [ počiatočné aproximácie premenných ], možnosti)- funkcia hľadania minimálnej hodnoty funkcie mnohých premenných.
^ Aproximácia funkcie

Aproximácia tabuľky definovanej funkcie polynómom n-tého stupňa sa vykoná pomocou metódy najmenších štvorcov (pozri odsek 2.4).
Príklad 10... Približná funkcia definovaná bodom X= 0 až 0,7 s krokom 0,1, r= 0,22 0,428 0,604 0,74 0,84 0,91 0,95 0,98 polynóm 2. stupňa. Zostrojte grafy bodovo definovanej funkcie a aproximujúceho polynómu:
Riešenie problému:
X= (0: 0,1: 0,7) "% pole X pozostáva z 8 čísel

r= "% poľa r pozostáva z 8 čísel

p = polyfit (x, y, 2)

stôl =

graf (x, y, "k *", x, f, "- g")

xlabel ("súradnice x")

ylabel („súradnice y“)

názov ( „Grafiky y (x), f (x)")
PS: Počet čísel v poliach X a r malo by byť rovnaké; stôl- názov poľa vytvoreného zo 4 vektorov: x, y, f a ( y-f). V tomto poli je 8 4 = 32 čísel. Array f tiež obsahuje 8 čísel
polyfit (X, y, polynomiálny stupeň) - funkcia nájde koeficienty a i polynóm p (x) stupňa n ktorý sa približuje k danej funkcii y (x):
p (x) = a 1 X n + a 2 X n - 1 +… + A. n x + a n + 1
polyval(p, x) - funkcia na výpočet hodnôt polynómu p v daných bodoch X.

^ 5.4 Riešenie bežných diferenciálnych rovníc a výpočet integrálov
V systéme MATLAB sa pomocou štandardných funkcií ľahko vyriešia bežné diferenciálne rovnice (Cauchyov problém) a vypočítajú sa určité integrály.

Príklad 11... Vyriešte diferenciálnu rovnicu pomocou štandardnej funkcie ode45:

(5.3)
v intervale X= 0 až 30 o y (0)= 2 pre a = 0,24.

Predstavme si predbežne rovnicu (5.3) sústavou rovníc:

(5.4)

s počiatočnými hodnotami: r 1 (0) = 0; r 2 (0) = 2 na vylúčenie nezávislej premennej z pravej strany (5.3) X.
Riešenie problému.
funkcia ex_eqdif

Ode45 (@ dif1 ,,);

funkcia dy = dif1 (t, y)

% pravie chasti difderensial. uravneniy

dy (2) = cos (y (1)) - sin (y (1)) - alfa * y (2);
PS: Funkcia dif1 (t, y) určuje pravé strany rovníc (5.4). Medzi neznámymi v rovniciach (5.4) a programovými premennými existuje zhoda: X = r(1), r = r(2).
ode45 (@ názov funkcie , [ integračný interval ], [ počiatočné podmienky ] )-funkcia sa používa na riešenie bežných netuhých diferenciálnych rovníc metódou Runge-Kutta 4. rádu.
nuly (m, n)- funkcia tvorí pole núl veľkosti
(kde m- počet rovníc, n=1).
globálne- operátor deklaruje globálne premenné. Ak namiesto premennej alfa v pravých častiach nahradíte číslo, nemusíte zadávať globálnu premennú.
Príklad 12... Vyriešte systém rovníc Lotka-Volterra pomocou funkcie ode23:

(5.5)
o NS= 0 až 10 a počiatočné podmienky: r 1 (0) = 1; r 2 (0) = 1. Parametre = 0,01 a = 0,02 nastavené ako globálne hodnoty. Grafy vykresľovania funkcií r 1 (x), r 2 (X)).
Riešenie problému.
funkcia Lotka_Volterra

globálna alfa beta

alfa = 0,01; beta = 0,02;

Ode23 (@lotka ,,);

sprisahanie (t, y); % Vykresľovania r 1 (t) a r 2 (t)

funkcia dy = lotka (t, y)

globálna alfa beta

dy (1) = y (1) -alfa * y (1) * y (2);

dy (2) = - y (2) + beta * y (1) * y (2);
PS: Funkcia lotka (t, y) určuje pravé strany rovníc (5.5). Medzi neznámymi v rovniciach (5.5) a programovými premennými existuje zhoda: r 1 = r(1), r 2 = r(2).
ode23 (@ názov funkcie , [ integračný interval ], [ počiatočné podmienky ] )-funkcia sa používa na riešenie bežných netuhých diferenciálnych rovníc metódou Runge-Kutta nízkeho rádu.
^ Výpočet integrálov
Príklad 13... Vypočítajte integrál:

(5.6)
Simpsonovou metódou (štandardná funkcia quad) a zakreslite integrand v intervale NS= v krokoch po 0,1.

Riešenie problému:
funkcia int1

y = 1 ./ (x. ^ 3-2 * x-5);

plot (x, y); % Vykresľovania y (x)

Q = štvorkolka (@ myfun, 0,2)

funkcia y = myfun (x)

y = 1./(x.^3-2*x-5);
PS: Integrand sa vypočíta vo funkcii myfun (x) pre rôzne hodnoty NS
quad (@ integrand_name, a, b)- numerický výpočet integrálu adaptívnou Simpsonovou metódou, kde: a a b sú limity integrácie.

Príklad 14... Vypočítajte integrál:

(5.7)
Simpsonova metóda (štandardná funkcia quad) na r= 10 o (prepočítajte stupne na radiány). Za hodnotu r v programe použite globálnu premennú.
Riešenie problému.
funkcia int2

Q = quad (@ myfun, 0, pi / 2);

funkcia y = myfun (x)

y = 1. / sqrt (1- (sin (teta) * sin (x)). ^ 2);
PS: Hodnota r v programe je globálna premenná teta... Hodnota integrálu sa získa v premennej Q.

^

Kontrolné otázky

1. Čo je to skalár, vektor, matica? Uveďte definície a príklady.
2. Aké akcie je možné vykonať s vektormi a maticami? Uveďte príklady.
3. Ako sa vytvárajú polia v MATLABe: jednorozmerné a dvojrozmerné? Uveďte príklady.
4. Definujte transponovaný vektor a transponovanú maticu. Ako sa tvoria v MATLABe? Uveďte príklady.
5. Uveďte definíciu determinantu a inverznej matice. Ako sa vypočítavajú v MATLABe? Uveďte príklady.
6. Elementárne funkcie a ich zápis v MATLABe. Uveďte príklady.
7. Manuálne (bez použitia počítača) vykonajte nasledujúce kroky:

Vynásobte vektor P vektorom Y;

Vynásobte maticu G vektorom Y;

Vynásobte maticu G maticou F,


8. Napíšte program v MATLABe na vykonanie akcií uvedených v otázke 7.

9. Vzhľadom na maticu
... Určte inverznú maticu bez pomoci počítača - A -1 .

10. Nájdite determinant matice bez pomoci počítača
.

11. Je uvedený systém lineárnych rovníc:
(1P)

alebo v maticovej forme C.ּ X= B.

Vytvorte program MATLAB na riešenie tohto systému s definíciou determinantu matice S.
12. Nájdite inverznú maticu pomocou MATLABu S(z otázky 11). Ako používať maticu S-1 nájsť neznáme X 1 , X 2 , X 3 , X 4 mimo systému (1P)?
13. Vyriešte sústavu rovníc pomocou programu MATLAB
(2P)

Ak systém (2P) váha, nájdite príčinu poruchy. Určte determinant matice koeficientov pre neznáme.
14. Pre podmienky otázky 7 napíšte program v MATLABe:

Násobenie 1. riadka matice G druhým stĺpcom matice F;

Násobenie 2. riadka matice F druhým stĺpcom matice G.
15. Použitie MATLABu na závislosť brzdnej dráhy ^ S m) ako funkcia rýchlosti V. f(pani):

kde je rýchlosť nastavená v intervale V. f= 10 ... 40 (rýchlostný krok je 2 m / s), zostavte grafy závislostí: S = f (V f ) a V. f = φ (S).
16. Vyriešte graficky (pomocou MATLABu) rovnicu:

(3P)

v intervale X= 0 ... 10π s krokom 0,1π. Koľko koreňov má rovnica (3P)?
17. Pomocou MATLABu v karteziánskych súradniciach nakreslite kruh so stredom v bode X = 1, r= 1 a polomer rovný 1. Pozdĺž osi X zvoľte krok Δ X= 0,05.
18. Vytvorte závislosť pomocou MATLABu y = ln (x + 1) v karteziánskych súradniciach v intervale X= 0 ... 4π s krokom 0,2π, ako aj závislosť r = ln (φ + 1) v polárnych súradniciach v rovnakom intervale a s rovnakým krokom φ .
19. Použitie MATLABu na jednom pozemku v polárnych súradniciach s krokom
= 0,1 v intervale vykresľovania závislostí (špirály s 3 otáčkami):
a) r = 0,4φ + 0,03φ 2 (4P)

b) závislosť (4Р), ale skrútená v opačnom smere.
20. Pomocou MATLABu vytvorte trojrozmerný povrch:

v oblasti [ x, y] = [-1:0,1:1] [-2:0,1:2].
21. Pomocou MATLABu vytvorte trojrozmerný povrch:

v oblasti [ x, y] = .
22. S programom MATLAB pomocou programu fzero
X 0 = 2 km; X f= 8 km.
27. Je uvedená tabuľková závislosť spotreby paliva (pre auto) od prevádzkového času.

polyfit, polyval) nájsť približnú závislosť G = f (t) polynóm 3. stupňa a určte priemernú chybu aproximácie.
28. Je uvedená tabuľková závislosť nákladov na osobný automobil od prevádzkového času.


t(rok)

0

1

2

3

5

7

10

C. ($)

11500

8700

7200

6000

5500

5000

4600

Použitie balíka MATLAB (funkcie polyfit, polyval) nájdite aproximačné závislosti C = f (t) polynómy 2. a 3. stupňa a porovnajte maximálne chyby aproximácie.
29. Použitie MATLABu (funkcia ode45

(5P)
v intervale X= 0 ... 2 s počiatočnými podmienkami: X 0 = 0, r 0 = 1. Najprv transformujte rovnicu (5P) na sústavu 2 diferenciálnych rovníc.
30. Použitie MATLABu (funkcia ode23) vyriešte obyčajnú diferenciálnu rovnicu:

(6P)
v intervale X= 0 ... 5 s počiatočnými podmienkami: X 0 = 0, r 0 = 2. Najprv sa rovnica (6P) transformuje na sústavu 2 diferenciálnych rovníc.
31. Použitie MATLABu (funkcia ode45

v intervale t= 0 ... 8π s počiatočnými podmienkami: t =0; X 0 = 1; r 0 = 1.
32. Použitie MATLABu (funkcia ode45) vyriešte sústavu bežných diferenciálnych rovníc:

v intervale = 0,3 ... 4 pri počiatočných podmienkach: = 0,3; X 0 = 1; r 0 = 0.
33. Používanie programu MATLAB (funkcia ode23) vyriešte obyčajnú diferenciálnu rovnicu:

(7P)

v intervale t= 0 ... 3c s počiatočnými podmienkami: t = 0, r 0 = 0,
a ω = 2π (rad / s). Rovnica (7P) musí byť predbežne transformovaná do systému diferenciálnych rovníc prvého poriadku.

Jazyk technických výpočtov

Milióny inžinierov a vedcov na celom svete používajú MATLAB® na analýzu a vývoj systémov a produktov, ktoré transformujú náš svet. Maticový jazyk MATLAB je najprirodzenejším spôsobom vyjadrovania výpočtovej matematiky na svete. Vstavaná grafika uľahčuje vizualizáciu a porozumenie údajov. Desktopové prostredie podporuje experimentovanie, skúmanie a objavovanie. Všetky tieto nástroje a schopnosti MATLAB sú dôkladne testované a navrhnuté tak, aby spolupracovali.

MATLAB vám pomáha uviesť vaše nápady do života mimo pracovnej plochy. Môžete spustiť prieskumy vo veľkých množinách údajov a škálovať ich do klastrov a cloudov. Kód MATLAB je možné integrovať s inými jazykmi, čo vám umožní nasadiť algoritmy a aplikácie v sieťových, podnikových a priemyselných systémoch.

Začiatok práce

Naučte sa základy MATLABu

Jazykové základy

Syntax, indexovanie a spracovanie polí, dátové typy, operátory

Import a analýza údajov

Import a export údajov vrátane veľkých súborov; predspracovanie údajov, vizualizácia a výskum

Matematika

Lineárna algebra, diferenciácia a integrácia, Fourierove transformácie a iná matematika

Grafika

2D a 3D grafika, obrázky, animácie

Programovanie

Skripty, funkcie a triedy

Tvorba aplikácie

Vývoj aplikácií pomocou App Designer, programovateľného pracovného toku alebo GUIDE

Nástroje na vývoj softvéru

Ladenie a testovanie, organizácia veľkých projektov, integrácia so systémom na správu verzií, balenie nástrojov

Operácie s jednoduchými premennými boli diskutované vyššie. S ich pomocou je však ťažké opísať komplexné údaje, ako napríklad náhodný signál prichádzajúci na vstup filtra alebo ukladanie obrazového rámca atď. Jazyky na vysokej úrovni preto poskytujú možnosť ukladať hodnoty ako polia. V programe MatLab zohrávajú túto úlohu vektory a matice.

Nasleduje príklad definície vektora s názvom a obsahujúceho hodnoty 1, 2, 3, 4:

a =; % riadkový vektor

Na prístup k jednému alebo druhému prvku vektora sa používa nasledujúca jazyková konštrukcia:

disp (a (1)); % zobrazí hodnotu 1. prvku vektora
disp (a (2)); % zobrazí hodnotu 2. prvku vektora
disp (a (3)); % zobrazí hodnotu 3. prvku vektora
disp (a (4)); % zobrazuje hodnotu 4. prvku vektora

tí. musíte zadať názov vektora a do zátvorky napísať indexové číslo prvku, s ktorým chcete pracovať. Ak napríklad chcete zmeniť hodnotu 2. prvku poľa o 10, stačí napísať

a (2) = 10; % zmeny hodnoty 2. prvku o 10

Často je potrebné určiť celkový počet prvkov vo vektore, t.j. určenie jeho veľkosti. To je možné vykonať pomocou funkcie dĺžka () nasledovne:

N = dĺžka (a); % (N = 4) počet prvkov poľa a

Ak potrebujete zadať vektor stĺpca, môžete to urobiť takto

a =; vektor kolóny

b = '; vektor kolóny

v tomto prípade sa prístup k prvkom vektorov vykonáva rovnakým spôsobom ako pre riadkové vektory.

Je potrebné poznamenať, že vektory môžu byť zložené nielen z jednotlivých čísel alebo premenných, ale aj z vektorov. Nasledujúci útržok kódu napríklad ukazuje, ako môžete vytvoriť jeden vektor z druhého:

a =; % počiatočného vektora a =
b =; % druhý vektor b =

Tu vektor b pozostáva zo šiestich prvkov a je založený na vektore a. Pomocou tejto techniky môžete zväčšiť veľkosť vektorov, keď je program spustený:

a =; % nárastu vektora a o jeden prvok

Nevýhodou opísaného spôsobu špecifikácie (inicializácie) vektorov je zložitosť určovania vektorov veľkých veľkostí, pozostávajúcich napríklad zo 100 alebo 1 000 prvkov. Na vyriešenie tohto problému má MatLab funkcie na inicializáciu vektorov s nulami, jednotkami alebo náhodnými hodnotami:

a1 = nuly (1, 100); % riadkový vektor, 100 prvkov s
% nulové hodnoty
a2 = nuly (100, 1); % stĺpcového vektora, 100 prvkov s
% nulové hodnoty
a3 = jednotky (1, 1000); % riadkový vektor, 1 000 prvkov s
% jednotlivých hodnôt
a4 = jednotky (1000, 1); % stĺpcového vektora, 1 000 prvkov s
% jednotlivých hodnôt
a5 = rand (1000, 1); % stĺpcového vektora, 1 000 prvkov s
% náhodných hodnôt

Matice v MatLab sú nastavené podobne ako vektory s jediným rozdielom, že sú uvedené obidve rozmery. Tu je príklad inicializácie matice identity 3x3:

E =; % matice identity 3x3

E =; % matice identity 3x3

Podobne môžete zadať akékoľvek ďalšie matice a môžete tiež použiť vyššie uvedené funkcie nuly (), ones () a rand (), napríklad:

A1 = nuly (10,10); % nulovej matice 10x10 prvkov

A2 = nuly (10); % nulovej matice 10x10 prvkov
A3 = jednotky (5); % 5x5 matica, pozostávajúca z jednotiek
A4 = rand (100); % matice 100x100, z náhodných čísel

Na prístup k prvkom matice sa používa rovnaká syntax ako pre vektory, avšak s uvedením riadka a stĺpca, kde sa požadovaný prvok nachádza:

A =; % matice 3x3
disp (A (2,1)); % zobrazenie položky na
% druhý riadok prvého stĺpca, t.j. 4
disp (A (1,2)); % zobrazenie prvku na
% prvého riadku druhého stĺpca, t.j. 2

Je tiež možné vybrať zadanú časť matice, napríklad:

B1 = A (:, 1); % B1 = - výber prvého stĺpca
B2 = A (2, :); % B2 = - výber prvého riadku
B3 = A (1: 2,2: 3); % B3 = - zvýraznenie prvých dvoch
% riadkov a 2. a 3. stĺpca A.

Rozmer akejkoľvek matice alebo vektora v programe MatLab je možné určiť pomocou funkcie size (), ktorá vracia počet riadkov a stĺpcov premennej zadanej ako argument:

a = 5; % premenná a
A =; % riadkový vektor
B =; % matice 2x3
veľkosť (a)% 1x1
veľkosť (A)% 1x3
veľkosť (B)% 2x3

Výpočet počtu rozmerov poľa

Funkcia ndims (A) vráti dimenziu poľa A (ak je väčšia alebo rovná dvom). Ak je však vstupným argumentom pole Java alebo pole polí Java, potom bez ohľadu na rozmer poľa táto funkcia vráti hodnotu 2. Nasledujúci príklad ilustruje použitie funkcie ndims:

>> M = rand (2: 3: 4: 5):

>> ndims (M)

Odpoveď =

Výpočet veľkosti rozmeru poľa

Na výpočet veľkosti každého rozmeru poľa použite funkciu veľkosť:

  • M = veľkosť (A.DIM) vráti veľkosť dimenzie zadanú skalárom DIM ako riadkový vektor veľkosti 2. V dvojrozmernom alebo jednorozmernom poli A veľkosť (Al) vráti počet riadkov a veľkosť (A, 2) číslo stĺpcov;

Pre N-dimenzionálne polia A pre n> 2 veľkosť (A) vracia N-rozmerný vektor riadkov odrážajúci stránkovanie poľa, poslednou zložkou tohto vektora je N. Vektu chýbajú údaje o jednotkových rozmeroch (tie, kde je riadkový vektor alebo stĺpcový vektor, t.j. veľkosť (A, DIM) == l). Výnimkou sú N-dimenzionálne polia Java javaarray, ktoré vracajú veľkosť poľa najvyššej úrovne.

Vo všeobecnosti platí, že keď je veľkosťou javaarray ako vstup, počet vrátených stĺpcov je vždy 1 a počet riadkov (riadkov) sa rovná veľkosti (dĺžke) javarray.

  • = veľkosť (A) vráti veľkosť prvých N rozmerov poľa A;
  • D = veľkosť (A), pre mxn matica A vráti dvojprvkový vektor riadkov, v ktorom prvá zložka je počet riadkov m a druhá zložka je počet stĺpcov n;
  • = veľkosť (A) vráti počet riadkov a stĺpcov v rôznych výstupných parametroch (výstupné argumenty v terminológii MATLAB).

Permutácie rozmerov poľa

Ak reprezentujeme viacrozmerné pole vo forme stránok, potom ich permutácia je permutáciou rozmerov poľa. Pre dvojrozmerné pole permutácia často znamená transpozícia- nahradenie riadkov stĺpcami a naopak. Nasledujúce funkcie zovšeobecňujú transpozíciu matice pre prípad viacrozmerných polí a poskytujú permutáciu dimenzií viacrozmerných polí:

  • permute (A, OBJEDNAŤ)- permutuje rozmery poľa A v poradí určenom permutačným vektorom ORDER. Vektor ORDER je jednou z možných permutácií všetkých celých čísel od 1 do N, kde N je rozmer poľa A;
  • ipermute (A, OBJEDNAŤ)- operácia opačná k permute: permute (permute (A. ORDER), ORDER) = A

Nasledujú príklady použitia týchto funkcií a funkcií. veľkosť:

>> A = [1 2: 3 4]:

>> B = [5 6; 7 8];

>> C = [9 10; 11 12];

>> D = mačka (3 .A, B.C)

D (:,:, 1) =

1 2

3 4

9 10

11 12

>> veľkosť (D)

Odpoveď =

2 2 3

>> veľkosť (permute (D. [3 2 1]))

Odpoveď =

3 2 2

>> veľkosť (ipermute (D. [2 1 3]))

Prvky tej istej triedy je možné často kombinovať do polí (s niekoľkými zriedkavými výnimkami, ako je napríklad používanie funkcií). Číselné skaláry, ktoré sú predvolene dvojnásobné, môžu byť uložené v matici.

>> A = A = 1,0e + 04 * 0,0001 -0,0002 0,0003 0,0001 1,5625 0,0003 Inf Inf NaN -Inf

Znaky, ktoré sú v MATLAB triede char, môžu byť tiež uložené v poli pomocou podobnej syntaxe. Takéto pole je podobné reťazcu v mnohých ďalších programovacích jazykoch.

>> s = ["MATLAB", "je", "zábava"] s = MATLAB je zábava

Všimnite si toho, že aj keď obe používajú zátvorky [a], triedy výsledkov sú odlišné. Preto sú aj operácie, ktoré je možné na nich vykonávať, odlišné.

>> kto je meno veľkosť bajty trieda atribúty A 2x5 80 dvojitých s 1x13 26 char

V skutočnosti pole s nie je poľom reťazcov „MATLAB“, „je“ a „zábava“, je to iba jeden reťazec - pole 13 znakov. Rovnaké výsledky získate, ak ich definuje jeden z nasledujúcich:

>> s = ["MAT", "LAB", "je f", "u", "n"]; >> s = ["M", "A", "T", "L", "A", "B," "," i "," s "," "" f "," u ", "n"];

Bežný vektor MATLAB vám neumožňuje uložiť kombináciu premenných rôznych tried alebo niekoľko rôznych reťazcov. Tu príde na rad pole buniek. Ide o pole buniek, z ktorých každá môže obsahovať nejaký objekt MATLAB, ktorého trieda sa v prípade potreby môže v každej bunke líšiť. Na uloženie v poli buniek použite okolo položiek zložené zátvorky (a).

>> C = (A; s) C = "MATLAB je zábava" >> kto je C Meno Veľkosť Bajty Trieda Atribúty C 2x1 330 buniek

Štandardné objekty MATLAB akejkoľvek triedy môžu byť uložené spoločne v poli buniek. Bunkové polia vyžadujú na uloženie svojho obsahu viac pamäte.

K obsahu bunky sa dostanete pomocou zložených zátvoriek (a).

>> C (1) ans = 1,0e + 04 * 0,0001 -0,0002 0,0003 0,0001 1,5625 0,0003 Inf Inf NaN -Inf

Všimnite si toho, že C (1) sa líši od C (1). Zatiaľ čo tento vracia obsah bunky (a má príklad s dvojitým príkladom), prvý vracia bunkové pole, ktoré je submaticou C. Podobne, ak D bolo pole 10 x 5 buniek, potom D (4: 8,1: 3) vráti submaticu D, ktorá má veľkosť 5 x 3, a trieda je bunka. A syntax C (1: 2) nemá jeden vrátený objekt, ale hodnotí dva rôzne objekty (podobné funkcii MATLAB s viacerými návratovými hodnotami):

>> = C (1: 2) x = 1 -2 3,14 0,8 15625 3,14159265358979 Inf Inf NaN -Inf y = MATLAB je zábava



Páčil sa vám článok? Zdieľaj to