Bazele lucrului cu MATLAB. XLABEL și YLABEL. Funcții care specifică explicații de-a lungul axelor orizontale și verticale. titlu ("model dinamic al mișcării unui corp aruncat în unghi față de orizontală")

Trimiteți-vă munca bună în baza de cunoștințe este simplu. Utilizați formularul de mai jos

Studenții, studenții absolvenți, tinerii oameni de știință care folosesc baza de cunoștințe în studiile și munca lor vă vor fi foarte recunoscători.

postat pe http://www.allbest.ru/

  • Introducere
  • 1. Partea teoretică
  • 1.1 MATLAB și relația sa cu alte limbaje de programare
  • 1.2 MatLab și componentele sale principale
  • 1.3 Un pic despre lucrul cu sistemul MATLAB
  • 2. Partea practică
  • 2.1 Declarația problemei
  • 2.2 Istoricul dezvoltării problemei
  • 2.3 Formule utilizate
  • 2.4 Codul de program al sarcinii
  • 2.5 Descrierea programului
  • Concluzie
  • Lista surselor utilizate
  • INTRODUCERE
  • Matematica computerizată modernă oferă o gamă întreagă de sisteme software integrate și pachete software pentru automatizarea calculelor matematice: Gauss, Derive, Mathcad, Mathematica etc. Se pune întrebarea: ce loc ocupă sistemul MATLAB printre acestea?
  • MATLAB este unul dintre cele mai vechi sisteme atent dezvoltate pentru automatizarea calculelor matematice, construit pe o reprezentare avansată și aplicarea operațiilor matriceale.
  • De-a lungul anilor, MATLAB a evoluat pentru a găzdui o varietate de utilizatori. Într-un mediu universitar, a fost un instrument standard pentru lucrul în diferite domenii ale matematicii, ingineriei și științei.
  • Limbajul de programare al sistemului MATLAB este foarte simplu, conține doar câteva zeci de operatori; numărul mic de operatori de aici este compensat de un număr mare de proceduri și funcții, al căror conținut este de înțeles pentru un utilizator cu pregătire corespunzătoare în matematică și inginerie.
  • MATLAB include calcule, vizualizare și programare într-un mediu ușor de utilizat în care problemele și soluțiile sunt exprimate într-o formă aproape matematică. Utilizările tipice ale MATLAB sunt: ​​calcule matematice, creare de algoritm, modelare, analiză de date, cercetare și vizualizare, grafică științifică și de inginerie, dezvoltarea de aplicații, inclusiv crearea de interfețe grafice.
  • Programele scrise în MATLAB vin în două tipuri: funcții și scripturi. Funcțiile au argumente de intrare și de ieșire, precum și propriul spațiu de lucru pentru stocarea rezultatelor și variabilelor intermediare de calcul. Scripturile folosesc un spațiu de lucru comun. Atât scripturile, cât și funcțiile nu sunt compilate în codul mașinii și sunt salvate ca fișiere text.
  • În această lucrare, scopul este de a lua în considerare modul în care se mișcă un corp (sau un punct material) aruncat într-un unghi față de orizont. Și, de asemenea, pe baza datelor luate în considerare de la mecanică, scrierea unui program care să simuleze această mișcare. Lucrarea include crearea de grafice de mișcare, grafice de coordonate în funcție de timp, precum și crearea unui model dinamic al mișcării unui corp aruncat într-un unghi față de orizont.

1. PARTEA TEORETICĂ

1.1 MATLAB ȘI RELAȚIA SA CU ALTE LIMBAJE DE PROGRAMARE

Sistemul MATLAB a fost dezvoltat de specialiști de la MathWork Inc. (Natick, Massachusetts, SUA). Deși acest sistem a fost folosit pentru prima dată la sfârșitul anilor 1970, a devenit larg răspândit la sfârșitul anilor 1980, mai ales după ce versiunea 4.0 a apărut pe piață. Cele mai recente versiuni ale MATLAB sunt sisteme care conțin multe proceduri și funcții necesare pentru ca un inginer și un om de știință să efectueze calcule numerice complexe, să simuleze sisteme tehnice și fizice și să prezinte rezultatele acestor calcule. MATLAB (prescurtare de la MATrix LABoratory - matrix laboratory) este un sistem interactiv conceput pentru efectuarea de calcule inginerești și științifice și axat pe lucrul cu seturi de date. Sistemul oferă posibilitatea de a accesa programe scrise în FORTRAN, C și C++.

O caracteristică atractivă a MATLAB este matricea încorporată și aritmetica complexă. Sistemul suportă operații cu vectori, matrice și matrice de date, implementează descompunerea singulară și spectrală, calculul numerelor de rang și condiție ale matricelor, suportă lucrul cu polinoame algebrice, rezolvarea de ecuații neliniare și probleme de optimizare, integrarea funcțiilor în cuadraturi, integrarea numerică a diferențiale și ecuații ale diferențelor, construcția diferitelor grafice, suprafețe tridimensionale și linii de nivel.

Sistemul MATLAB oferă operații cu vectori și matrice chiar și în modul de calcul direct. Poate fi folosit ca un calculator puternic, în care, împreună cu operațiile aritmetice și algebrice obișnuite, pot fi utilizate operații complexe precum inversarea unei matrice, calcularea valorilor proprii și a vectorilor acesteia, rezolvarea sistemelor de ecuații algebrice liniare și multe altele. O trăsătură caracteristică a sistemului este deschiderea acestuia, adică posibilitatea modificării și adaptării acestuia la sarcinile specifice ale utilizatorului.

Sistemul MATLAB folosește propriul său limbaj M, care combină proprietățile pozitive ale diferitelor limbaje de programare de nivel înalt bine-cunoscute. Ceea ce sistemul MATLAB are în comun cu limbajul BASIC este că este un interpret (realizează compilarea instrucțiunii și executarea programului fără a crea un fișier executabil separat), limbajul M are un număr mic de operatori, și nu este nevoie să declarați tipurile și dimensiunile variabilelor. Din limbajul Pascal, sistemul MATLAB a împrumutat o orientare orientată către obiectiv, adică o structură a limbajului care asigură formarea de noi tipuri de obiecte computaționale pe baza tipurilor de obiecte care există deja în limbaj. Noile tipuri de obiecte (în MATLAB se numesc clase) pot avea propriile lor proceduri de conversie (ele definesc metode ale acestei clase), iar noi proceduri pot fi numite folosind simboluri aritmetice obișnuite și unele simboluri speciale care sunt folosite în matematică.

Principiile de stocare a valorilor variabilelor în MATLAB sunt cele mai apropiate de cele inerente limbajului FORTRAN și anume: toate variabilele sunt locale - ele acționează numai în limitele unității de program (procedură, funcție sau program de control principal) unde sunt alocate unele valori specifice. La trecerea la execuția altei unități de program, valorile variabilelor unității de program anterioare fie sunt pierdute (dacă unitatea de program executată este o procedură sau funcție) fie devin indisponibile (dacă programul executat este unul de control) . Spre deosebire de limbajele BASIC și Pascal, limbajul MATLAB nu are variabile globale ale căror efecte s-ar aplica tuturor unităților de program. Dar, în același timp, limbajul MATLAB are o caracteristică care lipsește în alte limbi. Interpretul MATLAB vă permite să executați mai multe programe independente în aceeași sesiune de lucru, iar toate variabilele utilizate în aceste programe sunt comune acestora și formează un singur spațiu de lucru. Acest lucru face posibilă organizarea mai rațională a calculelor complexe (îngreuitoare) folosind tipul de structuri suprapuse.

Caracteristicile de mai sus ale sistemului MATLAB îl fac un sistem de calcul foarte flexibil și ușor de utilizat.

1.2 MATLAB ȘI COMPONENTELE PRINCIPALE

MATLAB este un limbaj de înaltă performanță pentru calcule tehnice. Include calcule, vizualizare și programare într-un mediu ușor de utilizat, în care problemele și soluțiile sunt exprimate într-o formă apropiată de matematică. Utilizările tipice ale MATLAB sunt:

calcule matematice;

Crearea de algoritmi;

Modelare;

Analiza, cercetarea și vizualizarea datelor;

Grafică științifică și inginerească;

Dezvoltarea aplicațiilor, inclusiv crearea unei interfețe grafice.

MATLAB este un sistem interactiv în care elementul principal de date este o matrice. Acest lucru vă permite să rezolvați diverse probleme tehnice de calcul, în special cele care implică matrici și vectori, de câteva ori mai rapid decât scrierea de programe folosind limbaje de programare „scalare” precum C sau Fortran. programare matematică matlab

În MATLAB, grupurile specializate de programe numite cutii de instrumente joacă un rol important. Sunt foarte importante pentru majoritatea utilizatorilor MATLAB, deoarece le permit să învețe și să aplice tehnici specializate. Cutiile de instrumente sunt o colecție cuprinzătoare de funcții MATLAB (fișiere M) care vă permit să rezolvați anumite clase de probleme. Cutiile de instrumente sunt folosite pentru procesarea semnalului, sisteme de control, rețele neuronale, logica fuzzy, wavelets, modelare etc.

Sistemul MATLAB este format din cinci părți principale.

1. Limbajul MATLAB. Este un limbaj de matrice și matrice de nivel înalt, cu management de fire, funcții, structuri de date, I/O și caracteristici de programare orientată pe obiecte.

2. Mediul MATLAB. Este un set de instrumente și dispozitive cu care lucrează utilizatorul sau programatorul MATLAB. Include instrumente pentru gestionarea variabilelor din spațiul de lucru MATLAB, intrare și ieșire a datelor și crearea, monitorizarea și depanarea fișierelor M și aplicațiilor MATLAB.

3. Grafică controlată. Este un sistem grafic MATLAB care include comenzi de nivel înalt pentru vizualizarea datelor bi- și tridimensionale, procesarea imaginilor, animație și grafică ilustrată. Include, de asemenea, comenzi de nivel scăzut care vă permit să editați complet aspectul graficului, la fel ca și crearea unei interfețe grafice cu utilizatorul (GUI) pentru aplicațiile MATLAB.

4. Biblioteca de funcţii matematice. Aceasta este o colecție extinsă de algoritmi de calcul, de la funcții elementare, cum ar fi sumă, sinus, cosinus, aritmetică complexă, până la altele mai complexe, cum ar fi inversarea matricei, găsirea valorilor proprii, funcțiile Bessel și transformarea Fourier rapidă.

5. Interfață software. Aceasta este o bibliotecă care vă permite să scrieți programe în C și Fortran care interacționează cu MATLAB. Include facilități pentru apelarea programelor din MATLAB (legare dinamică), apelarea MATLAB ca instrument de calcul și pentru citirea și scrierea fișierelor MAT.

Simulink, un program însoțitor al MATLAB, este un sistem interactiv pentru modelarea sistemelor dinamice neliniare. Este un mediu controlat de mouse care vă permite să simulați un proces prin tragerea și manipularea blocurilor de diagramă de pe ecran. Simulink funcționează cu sisteme liniare, neliniare, continue, discrete și multidimensionale.

Seturile de blocuri sunt extensii ale Simulink care oferă biblioteci de blocuri pentru aplicații specializate, cum ar fi comunicații, procesarea semnalului, sistemele de alimentare.

Atelierul în timp real este un program care vă permite să generați cod C din blocuri de diagramă și să le rulați pe diferite sisteme în timp real.

1.3 PUȚIN DESPRE LUCRU CU SISTEMUL MATLAB

După ce faci clic pe pictograma MATLAB, în fața ta va apărea un ecran, în partea de sus a căruia se află o linie cu meniuri derulante, o bară de instrumente cu butoane care implementează acțiunile efectuate cel mai frecvent (vezi Fig. 1.1), și în fereastra în sine - o linie de interogare în două caractere>>. Aceasta este fereastra de comandă MATLAB

Orezunok1. 1 - Instrumentalpafereastra de comandă

Meniul derulant standard Fișier conține elemente precum Nou pentru crearea de fișiere noi, Deschideți fișierul M - deschiderea unui fișier de program existent sau a unui fișier de funcție pentru editare, verificare a textului sau depanare. Când utilizați acest articol, vi se oferă o fereastră standard de selecție a fișierelor, iar după selectarea fișierului necesar, se deschide fereastra editor/depanator de fișiere m.

Fișierele M sunt fișiere text cu extensia .m, care conțin texte ale programelor script sau texte ale funcțiilor din biblioteci standard sau proprietare. Puteți să le corectați în editor și să setați puncte de întrerupere pentru depanare, dar ar trebui să vă amintiți că pentru ca o versiune nouă, corectată a unei funcții sau program să aibă efect, este necesar în mod standard (prin meniul Fișier al editorului sau folosind butonul corespunzător din bara de instrumente/depanator editor) salvați fișierul modificat.

Bara de instrumente (vezi Figura 1.1) a ferestrei de comandă vă permite să efectuați acțiunile necesare făcând simplu clic pe butonul corespunzător. Majoritatea butoanelor au un aspect standard și efectuează acțiuni standard similare cu alte programe - copiere (Copiere), deschidere a unui fișier (Deschidere), imprimare (Imprimare) etc. Ar trebui să acordați atenție butonului Path Browser, care vă permite să creați căi către diferite directoare și să faceți ca directorul necesar să fie cel curent, precum și butonul Workspace Browser, care vă permite să vizualizați și să editați variabile în spațiul de lucru.

Comanda de ajutor, introdusă ca răspuns la o solicitare, urmată de apăsarea tastei Enter sau a unui buton din bara de instrumente cu un semn de întrebare, oferă o listă de funcții pentru care este disponibil ajutorul online. comanda de ajutor<имя_функции>Vă permite să obțineți ajutor pe ecran pentru o anumită funcție.

De exemplu, comanda help eig vă permite să obțineți ajutor online pentru funcția eig, o funcție pentru calcularea valorilor proprii ale unei matrice. Vă puteți familiariza cu unele dintre capacitățile sistemului MATLAB folosind comanda demo.

În această scurtă introducere, trebuie remarcat faptul că principalele obiecte - variabilele cu care lucrează MATLAB - sunt matrici dreptunghiulare. Acest lucru face posibilă înregistrarea programelor foarte scurt, făcând programele ușor vizibile. Există multe operații care pot fi efectuate pe matrice. Desigur, înregistrarea operațiilor precum înmulțirea și adunarea matricelor ar trebui memorată. Este inutil să studiezi și să memorezi toate posibilitățile „pentru o utilizare viitoare” înainte de a fi necesare.

Dacă trebuie să vă întrerupeți munca, dar să salvați toate variabilele create în spațiul de lucru, cel mai simplu mod de a face acest lucru este să utilizați comanda de salvare<имя_файла>. Toate variabilele în formă binară sunt salvate într-un fișier<имя_файла>.mat. Ulterior, când sistemul repornește, puteți încărca întreg spațiul de lucru folosind comanda load<имя_файла>și continuă calculele din același loc. Pentru a șterge zona de lucru, utilizați comanda clear fără argumente, caz în care întreaga zonă este șters de toate variabilele. Dacă comanda clear este însoțită de o listă de variabile separate prin spații, atunci numai variabilele listate sunt eliminate.

2. PARTEA PRACTICĂ

2.1 FORMULAREA PROBLEMEI

Obiectivul principal al acestui curs este: scrierea unui program în MATLAB care să simuleze mișcarea unui corp aruncat în unghi față de orizontală.

2.2 ISTORIA DEZVOLTĂRII PROBLEMEI

Mecanica (din greacă MzchbnykYu este tradus ca arta de a construi mașini) este un domeniu al fizicii care studiază mișcarea obiectelor materiale și interacțiunea dintre ele. Cele mai importante ramuri ale mecanicii sunt mecanica clasică și mecanica cuantică.

Mișcarea unui corp aruncat în unghi față de orizont trebuie considerată ca o mișcare curbilinie, care, la rândul ei, este una dintre ramurile mecanicii.

Studiul caracteristicilor unei astfel de mișcări a început cu mult timp în urmă, în secolul al XVI-lea, și a fost asociat cu apariția și îmbunătățirea tunurilor de artilerie.

Ideile despre traiectoria obuzelor de artilerie în acele zile erau destul de amuzante. Se credea că această traiectorie este formată din trei secțiuni: mișcare violentă, mișcare mixtă și mișcare naturală, în care ghiulele cade peste soldații inamici de sus (vezi Fig. 2.1).

Orez. 2.1 - Traiectoria obuzelor de artilerie

Legile zborului proiectilului nu au atras prea multă atenție din partea oamenilor de știință până când au fost inventate pistoalele cu rază lungă de acțiune care au trimis proiectilul prin dealuri sau copaci fără ca trăgătorul să-și vadă zborul.

La început, tragerea cu rază ultra-lungă de la astfel de arme a fost folosită în principal pentru a demoraliza și intimida inamicul, iar precizia tragerii nu a jucat inițial un rol deosebit de important.

Matematicianul italian Tartaglia s-a apropiat de soluția corectă pentru zborul ghiulelor, a reușit să demonstreze că cea mai mare gamă de proiectile poate fi atinsă atunci când împușcătura era îndreptată la un unghi de 45° față de orizont. Cartea sa „New Science” a formulat regulile de împușcare care i-au ghidat pe artilerişti până la mijlocul secolului al XVII-lea.

Totuși, o soluție completă a problemelor asociate cu mișcarea corpurilor aruncate orizontal sau în unghi față de orizont a fost realizată de același Galileo. În raționamentul său, el a pornit de la două idei principale: corpurile care se mișcă orizontal și neafectate de alte forțe își vor menține viteza; apariția influențelor exterioare va modifica viteza unui corp în mișcare, indiferent dacă acesta era în repaus sau în mișcare înainte de începerea acțiunii lor. Galileo a arătat că traiectoriile proiectilelor, dacă neglijăm rezistența aerului, sunt parabole. Galileo a subliniat că odată cu mișcarea reală a proiectilelor, datorită rezistenței aerului, traiectoria acestora nu va mai semăna cu o parabolă: ramura descendentă a traiectoriei va fi ceva mai abruptă decât curba calculată.

Newton și alți oameni de știință au dezvoltat și îmbunătățit o nouă teorie a împușcării, ținând cont de influența crescută a forțelor de rezistență a aerului asupra mișcării obuzelor de artilerie. A apărut și o nouă știință - balistica. Au trecut mulți, mulți ani, iar acum proiectilele se mișcă atât de repede încât chiar și o simplă comparație a tipului de traiectorii ale mișcării lor confirmă influența crescută a rezistenței aerului.

În balistica modernă, tehnologia electronică de calcul – calculatoarele – este folosită pentru a rezolva astfel de probleme, dar deocamdată ne vom limita la un caz simplu – studiul unei mișcări în care rezistența aerului poate fi neglijată. Acest lucru ne va permite să repetăm ​​raționamentul lui Galileo aproape fără nicio modificare.

2.3 FORMULE UTILIZATE

Să studiem mișcarea unui corp aruncat cu o viteză inițială V 0 la un unghi b față de orizont, considerându-l ca punct material de masă m. În acest caz, vom neglija rezistența aerului și vom considera că câmpul gravitațional este uniform (P = const), presupunând că raza de zbor și altitudinea traiectoriei sunt mici în comparație cu raza Pământului.

Să plasăm originea coordonatelor O în poziția inițială a punctului. Să direcționăm axa Oy vertical în sus; Vom plasa axa orizontală Ox în planul care trece prin Oy și vectorul V 0 și vom trasa axa Oz perpendiculară pe primele două axe (Fig. 2.2). Atunci unghiul dintre vectorul V 0 și axa Ox va fi egal cu b.

Fig. 2.2 - Mișcarea unui corp aruncat în unghi față de orizontală.

Să descriem un punct în mișcare M undeva pe traiectorie. Punctul este afectat numai de forța gravitațională F, ale cărei proiecții pe axele de coordonate sunt egale cu:

Înlocuind aceste mărimi în ecuațiile diferențiale și notând că

etc. după reducerea cu m obținem:

Înmulțind ambele părți ale acestor ecuații cu dt și integrând, găsim:

Condițiile inițiale din problema noastră au forma:

la t=0:

Satisfacand conditiile initiale, vom avea:

Înlocuind aceste valori C 1 , C 2 Și C 3 în soluția găsită mai sus și înlocuită Vx, Vy, Vz pe

Să ajungem la ecuații:

Integrând aceste ecuații, obținem:

Înlocuirea datelor inițiale dă C 4 =C 5 =C 6 =0, iar în final găsim ecuațiile de mișcare ale punctului M sub forma:

Din ultima ecuație rezultă că mișcarea are loc în planul Oxy.

Având ecuația de mișcare a unui punct, este posibil să se determine toate caracteristicile unei mișcări date folosind metode cinematice.

Să găsim timpul de zbor al corpului de la punctul de plecare până la punctul de impact.

Timp de zbor:

2.4 CODUL PROGRAMULUI SARCINII

clc; %clear fereastra de comandă

v0=36; %viteza de pornire

g=9,81; %accelerarea gravitaţiei

k=1;

alfa=pi/3; % unghi la care este aruncat corpul

m=(2*v0*sin(alfa))/g % timp de zbor

în timp ce k<5

k=menu("selectați categoria",...

sprintf("dependența coordonatei x de t"), ...

sprintf("dependența coordonatei y pe t"), ...

sprintf ("graficul mișcării unui corp aruncat în unghi față de orizontală"), ...

sprintf("model dinamic al mișcării unui corp aruncat în unghi față de orizontală"), ...

"Ieșire");

dacă k == 1

t=0:0,001:m;

x=v0*t*cos(alfa);

plot(x);

title("dependența coordonatei x de t");

xlabel("x"); ylabel("y");

elseif k == 2

t=0:0,001:m;

y=v0*t*sin(alfa)-(g*t.^2)/2;

plot(y);

title("dependența coordonatei y de t");

xlabel("x"); ylabel("y");

elseif k == 3

t=0:0,001:m;

x=v0*t*cos(alfa);

y=v0*t*sin(alfa)-(g*t.^2)/2;

plot(x,y);

title("graficul mișcării unui corp aruncat în unghi față de orizontală");

xlabel("x"); ylabel("y");

elseif k == 4

t=0:0,001:m;

x=v0*t*cos(alfa);

y=v0*t*sin(alfa)-(g*t.^2)/2;

cometa(x,y);

title(„model dinamic al mișcării unui corp aruncat în unghi față de orizont”);

xlabel("x"); ylabel("y");

Sfârşit;

Sfârşit;

2.5 DESCRIEREA PROGRAMULUI

Acest program conține funcții și proceduri precum clc, plot, menu, comet etc., precum și variabile și valorile acestora.

Să descriem procedurile și funcțiile utilizate în acest program:

CLC. O comandă concepută pentru a șterge fereastra de comandă.

MENIUL. Un instrument convenabil pentru selectarea uneia dintre alternativele pentru viitoarele acțiuni de calcul este funcția de meniu, care creează o fereastră de meniu personalizată. Funcția de meniu trebuie accesată după cum urmează:

K=MENIU("TITLUL MENIU","alternativa 1","alternativa 2","alternativa n")

Acest apel duce la apariția unei ferestre de meniu (vezi Fig. 2.3).

Figura 2.3 - Fereastra de meniu

Execuția programului este suspendată temporar și sistemul așteaptă selectarea unuia dintre butoanele de meniu cu alternative. După alegerea corectă, parametrului inițial k i se atribuie o valoare corespunzătoare numărului alternativei (1,2...n). În general, numărul de alternative poate ajunge la 32.

IN TIMP CE. Un operator de buclă cu o precondiție arată astfel:

In timp ce <условие>

<операторы>

Sfârşit

Instrucțiunile din interiorul buclei sunt executate numai dacă este îndeplinită condiția scrisă după cuvântul while. Mai mult, printre operatorii din interiorul buclei trebuie să fie cei care modifică valoarea uneia dintre variabile.

SPRINTF. O funcție care afișează informații despre valoarea curentă a parametrului corespunzător pe fiecare buton de meniu.

DACĂ. În general, sintaxa operatorului de salt condiționat este următoarea:

Dacă < condiție>

< operatori1>

Altfel

< operatori 2>

End

Acest operator funcționează după cum urmează. În primul rând, se face o verificare pentru a vedea dacă condiția specificată este îndeplinită. Dacă rezultatul testului este pozitiv, programul execută un set de instrucțiuni <операторы1> . În caz contrar, succesiunea de instrucțiuni este executată <операторы2>.

PLOT. Funcția principală care asigură construirea graficelor pe ecranul de afișare este plot (vezi Figura 2.4). Forma generală de abordare a acesteia este următoarea:

Grafic(x1,y1,s1,x2,y2,s2...)

Aici x1,y1 sunt dați vectori, ale căror elemente sunt tablouri de valori ale argumentului (x1) și funcția (y1) corespunzătoare primei curbe a graficului; x2,y2 - matrice de valori ale argumentului și funcției celei de-a doua curbe etc. Se presupune că valoarea argumentului este reprezentată de-a lungul axei orizontale a graficului, iar valoarea funcției este reprezentată de-a lungul axei verticale. Variabilele s1, s2,... sunt simbolice (indicarea lor este opțională).

Figura 2.4 - Acțiunea funcției plot.

TITLU. Procedura prin care este stabilit titlul graficului.

XLABELȘi YLABEL. Funcții care specifică explicații de-a lungul axelor orizontale și verticale.

COMETĂ. Procedura comet(x,y) (“cometa”) construiește un grafic al dependenței y(x) treptat sub forma unei traiectorii cometei. În acest caz, punctul „reprezentant” de pe grafic arată ca o mică cometă, care se mișcă ușor de la un punct la altul.

În cele din urmă, programul arată cum se mișcă un corp atunci când este aruncat într-un unghi față de orizont. De asemenea, în program puteți vedea dependența coordonatelor corpului de timp (vezi Fig. 2.5 și Fig. 2.6), graficul traiectoriei corpului (vezi Fig. 2.7) și modelul mișcării corpului în sine (vezi Fig. 2.8). ).

Figura 2.5 - Graficul lui x versus t.

Figura 2.6 - Graficul lui y versus t.

Figura 2.7 - Graficul mișcării unui corp aruncat în unghi față de orizontală.

Figura 2.8 - Modelul dinamic al mișcării unui corp aruncat în unghi față de orizontală.

CONCLUZIE

Proiectul cursului a fost finalizat în mediul MatLab 6.5. Dezvoltarea proiectului s-a desfășurat în mai multe etape, care au constat în studierea domeniului subiect al problemei; studierea legilor de bază ale mecanicii; dezvoltarea programului în sine, care vă permite să simulați mișcarea unui corp aruncat într-un unghi față de orizont.

Rezultatul muncii depuse a fost un program care implementează un model al mișcării unui corp aruncat în unghi față de orizont.

Valoarea practică a programului constă în faptul că arată clar cum se mișcă un corp aruncat în unghi față de orizont.

De asemenea, cursul a contribuit la dezvoltarea abilităților de planificare și implementare independentă a activității de cercetare, dobândirea de experiență în colectarea și prelucrarea materialului sursă, analiza literaturii științifice și tehnice, cărți de referință, standarde și documentație tehnică, dobândirea de competențe în justificarea deciziilor de proiectare și pregătirea profesională a documentației de proiect.

LISTA SURSELOR UTILIZATE

1. Lazarev, Yu Modelarea proceselor și sistemelor în MatLab. Curs de pregatire. / Yu Lazarev. - Sankt Petersburg: Petru; Kiev: BHV Publishing Group, 2005. - 512 p.

2. Aleshkevici, V.A. Mecanica / V.A. Aleșkevici, L.G. Dedenko, V.A. Karavaev. - Academia 2004.

3. Kotkin, G.L. Cherkassky V.S., Modelarea computerizată a proceselor fizice folosind MATLAB: Manual. indemnizatie / G.L. Kotkin, V.S. Cerkaski. - Novosib. univ. Novosibirsk, 2001. - 173 p.

Postat pe Allbest.ru

...

Documente similare

    Caracteristicile generale și proprietățile sistemului Matlab - un pachet de programe de aplicație pentru rezolvarea problemelor tehnice de calcul. Dezvoltarea unui model matematic în acest mediu, funcții de programare pentru influența de referință. Design interfață GUI.

    lucrare curs, adăugată 23.05.2013

    Caracteristici de lucru în modul linie de comandă în sistemul Matlab. Variabile și atribuirea de valori acestora. Numere complexe și calcule în Matlab. Calcule folosind funcția sqrt. Utilizarea incorectă a funcțiilor cu argumente complexe.

    teză, adăugată 30.07.2015

    Învățarea programarii în MATLAB. Folosind comenzile Salvare și încărcare, instrucțiuni de intrare și ieșire pentru a lucra în fereastra de comandă. Depanarea propriilor programe. interfata MATLAB. Diferențele dintre versiunea ulterioară a MATLAB și cele anterioare. Instrumentul de interfață de control sursă.

    test, adaugat 25.12.2011

    Matlab - laborator matrice - sistem de programare pentru calcule științifice și tehnice. Caracteristici de intrare vectorială. Matrici speciale, comenzi simple. Exemple simple care ilustrează eficacitatea Matlab. Metoda grafică de rezolvare a ecuațiilor.

    rezumat, adăugat la 01.05.2010

    Bazele matematice ale calculului paralel. Proprietățile casetei de instrumente Parallel Computing. Dezvoltarea de aplicații paralele în Matlab. Exemple de programare a sarcinilor paralele. Calculul unei integrale definite. Înmulțirea în serie și paralelă.

    lucrare de curs, adăugată 15.12.2010

    MATLAB – Matrix Laboratory – este cel mai avansat sistem de programare pentru calcule științifice și tehnice. Variabile și elemente grafice xy. Exemple simple care ilustrează eficiența MATLAB. Sisteme de ecuații algebrice liniare și polinoame.

    manual de instruire, adăugat 26.01.2009

    Crearea și reprezentarea variabilelor simbolice în Matlab, operații pe polinoame și simplificare a expresiilor. Un exemplu de substituire a unei valori într-o funcție, rezolvarea ecuațiilor și sistemelor, diferențierea, integrarea și calcularea limitelor funcțiilor.

    prezentare, adaugat 24.01.2014

    Caracteristicile și sintaxa comenzilor MATLAB, lista de programe și descrierea ciclului. Procedura de compilare a unui program pentru calcularea coeficienților unui polinom de interpolare algebrică și construirea unei funcții spline „lipite împreună” din bucăți de polinoame de ordinul trei.

    munca de laborator, adaugat 07.04.2009

    Analiza capabilităților pachetului MATLAB și extensiilor acestuia. Limbajul de programare a sistemului. Cercetarea dispozitivului de redresare. Modelarea unui transformator trifazat. Schema schematică a unui convertor reglabil. Posibilitățile unui model digital flexibil.

    prezentare, adaugat 22.10.2013

    Metode de integrare numerică. Caracteristicile principalelor componente ale programării structurate. Rezolvarea sarcinii în limbajul de nivel înalt Pascal. Construirea unei soluții grafice a problemei în Matlab. Rezolvarea sarcinii în limbajul de nivel înalt C.

Lucrul din linia de comandă MatLab este dificil dacă trebuie să introduceți o mulțime de comenzi și să le schimbați frecvent. Păstrarea unui jurnal folosind comanda jurnal și salvarea mediului de lucru face lucrurile puțin mai ușoare. Cel mai convenabil mod de a executa comenzile MatLab este utilizarea Fișiere M,în care poți să tastați comenzi, să le executați pe toate odată sau pe părți, să le salvați într-un fișier și să le folosiți în viitor. Editorul de fișiere M este proiectat să funcționeze cu fișiere M. Folosind acest editor, vă puteți crea propriile funcții și le puteți apela, inclusiv din linia de comandă.

Extinde meniul Fişier fereastra principală MatLab și în articol Nou selectați subarticolul Fișier M. Noul fișier se deschide în fereastra editorului de fișiere M.

Introduceți comenzi în editor care duc la construirea a două grafice într-o singură fereastră grafică:

x = ;
f = exp(-x);
subplot(1, 2, 1)
grafic (x, f)
g = sin(x);
subplot(1, 2, 2)
grafic (x, g)

Acum salvați fișierul numit mydemo.m într-un subdirector muncă directorul principal MatLab selectând Salvează ca meniul Fişier editor. Pentru a rula toate comenzile conținute în fișier, selectați Alergaîn meniu Depanați. Pe ecran va apărea o fereastră grafică Figura Numarul 1, conţinând grafice ale funcţiilor. Dacă decideți să reprezentați cosinus în loc de sinus, atunci pur și simplu schimbați linia g = sin(x) din fișierul M în g = cos(x) și executați din nou toate comenzile.

Nota 1

Dacă se comite o eroare la tastare și MatLab nu poate recunoaște comanda, atunci se execută comenzile până la cea introdusă incorect, după care se afișează un mesaj de eroare în fereastra de comandă.

O caracteristică foarte convenabilă oferită de editorul de fișiere M este executarea unor comenzi.Închideți fereastra grafică Figura Numarul 1. Selectați folosind mouse-ul în timp ce țineți apăsat butonul din stânga sau folosind tastele săgeți în timp ce țineți apăsată tasta , primele patru comenzi ale programului și executați-le din punct A evalua Selecţie meniul Text. Vă rugăm să rețineți că în fereastra grafică a fost afișat un singur grafic corespunzător comenzilor executate. Amintiți-vă că pentru a executa unele comenzi trebuie să le selectați și să apăsați . Executați celelalte trei comenzi ale programului și monitorizați starea ferestrei grafice. Exersați pe cont propriu, introduceți câteva exemple din laboratoarele anterioare în editorul de fișiere M și rulați-le.

Pot fi furnizate blocuri M-file individuale comentarii, care sunt omise atunci când sunt executate, dar sunt convenabile când lucrați cu un fișier M. Comentariile din MatLab încep cu un semn de procent și sunt evidențiate automat în verde, de exemplu:

% reprezentând sin(x) într-o fereastră separată

Editorul de fișiere M poate avea mai multe fișiere deschise în același timp. Tranziția între fișiere se realizează folosind marcaje cu nume de fișiere situate în partea de jos a ferestrei editorului.

Deschiderea unui fișier M existent se face folosind elementul Deschis meniul Fişier mediu de lucru sau editor de fișiere M. De asemenea, puteți deschide fișierul în editor folosind comanda MatLab edit din linia de comandă, specificând numele fișierului ca argument, de exemplu:

Comanda de editare fără argument creează un fișier nou.
Toate exemplele care apar în acest laborator și în următoarele laboratoare sunt cel mai bine tastate și salvate în fișiere M, completate cu comentarii și executate din editorul de fișiere M. Utilizarea metodelor numerice și a programării în MatLab necesită crearea de fișiere M.

2. Tipuri de fișiere M

Există două tipuri de fișiere M în MatLab: fişier program(Script M-Files) care conține o secvență de comenzi și funcția fișier(Funcția M-Files), care descriu funcții definite de utilizator.

Ați creat programul fișierului (procedura fișierului) când ați citit subsecțiunea anterioară. Toate variabilele declarate în programul de fișiere devin disponibile în mediul de lucru după executarea acestuia. Executați programul de fișiere prezentat în subsecțiunea 2.1 în editorul de fișiere M și tastați comanda whos la linia de comandă pentru a vizualiza conținutul mediului de lucru. O descriere a variabilelor va apărea în fereastra de comandă:

„Cine
Nume Mărime Octeți Clasa
f 1x71 568 matrice dublă
g 1x71 568 matrice dublă
x 1x71 568 matrice dublă
Totalul mare este de 213 elemente folosind 1704 octeți

Variabilele definite într-un program de fișiere pot fi utilizate în alte programe de fișiere și în comenzile executate din linia de comandă. Executarea comenzilor conținute într-un program de fișiere se realizează în două moduri:

  • Din editorul de fișiere M așa cum este descris mai sus.
  • Din linia de comandă sau alt program de fișiere, folosind numele fișierului M ca comandă.

Utilizarea celei de-a doua metode este mult mai convenabilă, mai ales dacă programul de fișier creat va fi folosit în mod repetat în viitor. De fapt, fișierul M creat devine o comandă pe care MatLab o înțelege. Închideți toate ferestrele grafice și tastați mydemo în linia de comandă, apare o fereastră grafică corespunzătoare comenzilor fișierului program mydemo.m. După introducerea comenzii mydemo, MatLab efectuează următoarele acțiuni.

  • Verifică dacă comanda introdusă este numele vreuneia dintre variabilele definite în timpul de execuție. Dacă este introdusă o variabilă, valoarea acesteia este afișată.
  • Dacă intrarea nu este o variabilă, atunci MatLab caută comanda introdusă printre funcțiile încorporate. Dacă comanda se dovedește a fi o funcție încorporată, atunci este executată.

Dacă nu este introdusă nici o variabilă, nici o funcție încorporată, atunci MatLab începe să caute un fișier M cu numele și extensia comenzii m. Căutarea începe cu directorul curent(Directorul curent), dacă fișierul M nu este găsit în el, atunci MatLab caută prin directoarele instalate în căi de căutare(Cale). Fișierul M găsit este executat în MatLab.

Dacă niciuna dintre acțiunile de mai sus nu a avut succes, în fereastra de comandă este afișat un mesaj, de exemplu:

» mydem
??? Funcție nedefinită sau variabilă „mydem”.

De obicei, fișierele M sunt stocate în directorul utilizatorului. Pentru ca sistemul MatLab să le găsească, căile trebuie setate pentru a indica locația fișierelor M.

Nota 2

Există două motive pentru a stoca propriile fișiere M în afara directorului principal MatLab. În primul rând, când reinstalați MatLab, fișierele care sunt conținute în subdirectoarele directorului principal MatLab pot fi distruse. În al doilea rând, atunci când MatLab este lansat, toate fișierele din subdirectorul casetei de instrumente sunt plasate în memoria computerului într-un mod optim pentru a crește performanța. Dacă ați scris fișierul M în acest director, îl puteți utiliza numai după repornirea MatLab.

3. Stabilirea căilor

În versiunile MatLab 6 .X directorul curent și căile de căutare sunt determinate. Setarea acestor proprietăți se face fie folosind casetele de dialog corespunzătoare, fie folosind comenzi din linia de comandă.

Directorul curent este determinat în caseta de dialog Actual Director mediu de lucru. Fereastra este prezentă în mediul de lucru dacă opțiunea este selectată Actual Director meniul Vedere mediu de lucru.
Directorul curent este selectat din listă. Dacă nu este în listă, îl puteți adăuga din caseta de dialog Naviga pentru Pliant apelat făcând clic pe butonul situat în dreapta listei. Conținutul directorului curent este afișat în tabelul de fișiere.

Căile de căutare sunt definite în caseta de dialog A stabilit cale navigator de traseu, accesat din punct A stabilit cale meniul Fişier mediu de lucru.

Pentru a adăuga un catalog, faceți clic pe butonul Adăuga Pliant Naviga pentru cale selectați directorul necesar. Adăugarea unui director cu toate subdirectoarele sale se face făcând clic pe butonul Adăugați cu subdosare. MATLAB căutare cale. Ordinea de căutare corespunde locației căilor din acest câmp, se caută mai întâi directorul a cărui cale se află în partea de sus a listei. Puteți modifica ordinea căutării sau chiar puteți elimina calea către un director selectând directorul din câmp MATLAB căutare caleși determinați-i poziția utilizând următoarele butoane:
Mișcare la Top - treceți în partea de sus a listei;
Mișcare Sus - mutați o poziție în sus;
Elimina - sterge din lista;
Mișcare Jos - coborâți o poziție;
Mișcare la Fund - plasați în partea de jos a listei.

4. Comenzi pentru setarea căilor.

Pași pentru a seta căi în MatLab 6 .X sunt duplicate de echipe. Directorul curent este setat cu comanda cd, de exemplu cd c:\users\igor. Comanda cd, emisă fără argument, tipărește calea către directorul curent. Pentru a seta căi, utilizați comanda path, apelată cu două argumente:

cale (cale, "c:\users\igor") - adaugă directorul c:\users\igor cu cea mai mică prioritate de căutare;
cale ("c:\users\igor",path) - adaugă directorul c:\users\igor cu cea mai mare prioritate de căutare.

Utilizarea comenzii cale fără argumente face ca o listă de căi de căutare să fie afișată pe ecran. Puteți elimina o cale din listă folosind comanda rpath:

rmpath("c:\users\igor") elimină calea către directorul c:\users\igor din lista de căi.

Nota 3

Nu ștergeți în mod inutil căile directoarelor, în special cele ale căror scop nu sunteți sigur. Eliminarea poate duce la indisponibilitatea unora dintre funcțiile definite în MatLab.

Exemplu. Creați în directorul rădăcină al discului D(sau orice alt disc sau director în care elevii au voie să-și creeze propriile directoare) un director cu numele dvs. de familie, de exemplu, WORK_IVANOV, și scrieți acolo fișierul M mydemo.m sub numele mydemo3.m. Setați căile fișierelor și demonstrați accesibilitatea fișierelor din linia de comandă. Furnizați rezultatele în raportul dumneavoastră de laborator.

Opțiune de soluție:

1. În directorul rădăcină al discului D este creat directorul WORK_IVANOV.
2. Fișierul M mydemo.m este scris în directorul WORK_IVANOV sub numele mydemo3.m.
3. Se deschide o casetă de dialog A stabilit cale meniul Fişier Mediul de lucru MatLab.
4. Este apăsat butonul Adăuga Pliantși în caseta de dialog care apare Naviga pentru cale directorul WORK_IVANOV este selectat.
5. Adăugarea unui director cu toate subdirectoarele sale se face făcând clic pe butonul Adăuga cu Subdosare. Calea către directorul adăugat apare în câmp MATLAB căutare cale.
6. Pentru a reține calea, apăsați tasta Salvați căsuță de dialog A stabilit Cale.
7. Corectitudinea tuturor acțiunilor este verificată prin tastarea comenzii mydemo3 din linia de comandă. Pe ecran va apărea o fereastră grafică.

5. Funcții de fișiere

Programele de fișiere discutate mai sus sunt o secvență de comenzi MatLab, nu au argumente de intrare sau de ieșire. Pentru a utiliza metode numerice și atunci când vă programați propriile aplicații în MatLab, trebuie să puteți crea funcții de fișier care efectuează acțiunile necesare cu argumente de intrare și returnează rezultatul în argumente de ieșire. Această subsecțiune conține câteva exemple simple pentru a vă ajuta să înțelegeți cum să lucrați cu funcțiile fișierelor. Funcțiile fișierelor, precum și procedurile fișierelor, sunt create în editorul de fișiere M.

5.1. Funcțiile fișierului cu un singur argument de intrare

Să presupunem că în calcule este adesea necesară utilizarea funcției

Este logic să scrieți o funcție de fișier o dată și apoi să o apelați oriunde trebuie calculată această funcție. Deschideți un fișier nou în editorul de fișiere M și introduceți textul listei

funcția f = myfun(x)
f= exp(-x)*sqrt((x^2+1)/(x^4+0,1));

Cuvântul funcție din prima linie specifică faptul că acest fișier conține un fișier de funcție. Prima linie este antetul funcției, care case numele funcțieiși liste de argumente de intrare și de ieșire. În exemplul prezentat în listă, numele funcției este myfun, un argument de intrare este x și unul de ieșire este f. După ce vine titlul organismul funcțional(în acest exemplu este format dintr-o linie), unde este calculată valoarea sa. Este important ca valoarea calculată să fie scrisă în f. Punctul și virgulă este inclus pentru a preveni afișarea informațiilor inutile pe ecran.

Acum salvați fișierul în directorul dvs. de lucru. Vă rugăm să rețineți că selectați un articol Salvați sau Salvați la fel de meniul Fişier determină apariția unei casete de dialog pentru salvarea fișierului, în câmp Fişier Nume care conține deja numele myfun. Nu îl modificați, salvați fișierul cu funcție într-un fișier cu numele sugerat.

Acum, funcția creată poate fi utilizată în același mod ca și sin, cos și altele încorporate, de exemplu din linia de comandă:

» y =myfun(1.3)
Y =
0.2600

Funcțiile proprii pot fi apelate dintr-un program de fișiere și dintr-o altă funcție de fișier.

Avertizare

Directorul care conține fișierul funcției trebuie să fie actual sau calea acestuia trebuie adăugată la calea de căutare, altfel MatLab pur și simplu nu va găsi funcția sau va apela o alta cu același nume (dacă se află în directoare care pot fi căutate).

Funcția de fișier prezentată în listă are un dezavantaj semnificativ. Încercarea de a evalua valorile unei funcții dintr-o matrice are ca rezultat o eroare mai degrabă decât o matrice de valori, așa cum se întâmplă atunci când se evaluează funcțiile încorporate.

» x = ;
» y = myfun(x)
??? Eroare la utilizare ==> ^
Matricea trebuie să fie pătrată.
Eroare în ==> C:\MATLABRll\work\myfun.m
Pe linia 2 ==> f = exp(-x)*sqrt((x^2+1)/(x^4+1));

Dacă ați învățat cum să lucrați cu matrice, atunci eliminarea acestui neajuns nu va fi dificilă. Trebuie doar să utilizați operații în funcție de elemente atunci când calculați valoarea unei funcții.
Schimbați corpul funcției așa cum se arată în lista următoare (nu uitați să salvați modificările în fișierul myfun.m).

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

Acum argumentul pentru funcția myfun poate fi fie un număr, fie un vector sau o matrice de valori, de exemplu:

» x = ;
» y = myfun(x)
Y =
0.2600 0.0001

Variabila y, în care este scris rezultatul apelării funcției myfun, devine automat un vector de dimensiunea necesară.

Trasează funcția myfun pe un segment din linia de comandă sau folosind un program de fișiere:

x = ;
y = myfun(x);
grafic (x, y)

MatLab oferă o altă modalitate de a lucra cu funcțiile fișierelor - folosindu-le ca argumente pentru unele comenzi. De exemplu, pentru a reprezenta un grafic, utilizați funcția specială fplot, care înlocuiește secvența de comenzi dată mai sus. Când apelați fplot, numele funcției al cărei grafic doriți să îl reprezentați este inclus în apostrofe, limitele de reprezentare sunt indicate într-un vector rând de două elemente

fplot(„distractia mea”, )

Trasează graficele myfun folosind plot și fplot pe aceleași axe, folosind hold on. Vă rugăm să rețineți că graficul construit folosind fplot reflectă mai precis comportamentul funcției, deoarece fplot însuși selectează pasul argumentului, reducându-l în zonele de schimbare rapidă a funcției afișate. Furnizați rezultatele în raportul dumneavoastră de laborator.

5.2. Funcții de fișier cu mai multe argumente de intrare

Scrierea funcțiilor de fișier cu mai multe argumente de intrare nu este practic diferită de scrierea cu un singur argument. Toate argumentele de intrare sunt plasate într-o listă separată prin virgulă. De exemplu, următoarea listă conține o funcție de fișier care calculează lungimea vectorului rază a unui punct din spațiul tridimensional
Listarea unei funcții de fișier cu mai multe argumente

funcția r = raza3(x, y, z)
r = sqrt(x.^2 + y.^2 + z.^2);

» R = raza3(1, 1, 1)
R=
1.732

Pe lângă funcțiile cu mai multe argumente de intrare, MatLab vă permite să creați funcții care returnează mai multe valori, de exemplu. având mai multe argumente de ieșire.

5.3. Funcții de fișier cu mai multe argumente de ieșire

Funcțiile de fișier cu mai multe argumente de ieșire sunt utile atunci când se evaluează funcții care returnează mai multe valori (în matematică sunt numite funcții vectoriale). Argumentele de ieșire sunt atașate la lista de argumente de ieșire, separate prin virgule, iar lista în sine este cuprinsă între paranteze drepte. Un bun exemplu este o funcție care convertește un timp specificat în secunde în ore, minute și secunde. Această funcție de fișier este afișată în lista următoare.

Lista funcției de conversie a secundelor în ore, minute și secunde

functie = hms(sec)
ora = etaj(sec/3600);
minut = etaj((sec-oră*3600)/60);
secunda = sec-oră*3600-minut*60;

Când apelați funcții de fișier cu mai multe argumente de ieșire, rezultatul ar trebui să fie scris într-un vector de lungime adecvată:

» [N, M, S] = hms(10000)
H=
2
M =
46
S=
40

6. Bazele programării în MatLab

Funcțiile fișierului și fișierul de program utilizate în subsecțiunile anterioare sunt cele mai simple exemple de programe Toate comenzile MatLab conținute în ele sunt executate secvențial. Pentru a rezolva multe probleme mai grave, trebuie să scrieți programe în care acțiunile sunt efectuate ciclic sau, în funcție de anumite condiții, sunt executate diferite părți ale programelor. Să ne uităm la principalii operatori care specifică secvența de execuție a comenzilor MatLab. Operatorii pot fi utilizați atât în ​​procedurile de fișiere, cât și în funcții, ceea ce vă permite să creați programe cu structuri ramificate complexe.

6.1. Operator de buclă pentru

Un operator este proiectat să efectueze un anumit număr de acțiuni repetate. Cea mai simplă utilizare a instrucțiunii for este următoarea:

for count = start:step:final
Comenzi MatLab
Sfârşit

Aici count este o variabilă de buclă, start este valoarea sa inițială, final este valoarea sa finală și pasul este pasul prin care numărul crește de fiecare dată când este introdusă în buclă. Bucla se termină imediat ce numărul devine mai mare decât finalul. O variabilă buclă poate lua nu numai valori întregi, ci și valori reale ale oricărui semn. Să ne uităm la utilizarea operatorului de buclă for folosind câteva exemple tipice.
Să fie necesară derivarea unei familii de curbe pentru , care este specificată de o funcție în funcție de parametru pentru valorile parametrilor de la -0,1 la 0,1.
Tastați textul procedurii fișierului în editorul de fișiere M și salvați-l în fișierul FORdem1.m și rulați-l pentru execuție (din editorul de fișiere M sau din linia de comandă tastând comanda FORdem1 în el și apăsând ):

Program de fișier % pentru construirea unei familii de curbe
x = ;
pentru a = -0,1:0,02:0,1
y = exp(-a*x).*sin(x);
stai
grafic (x, y)
Sfârşit

Nota 4

Editorul de fișiere M sugerează automat plasarea declarațiilor în interiorul buclei, indentate din marginea din stânga. Utilizați această funcție pentru a facilita lucrul cu textul programului.

Ca urmare a executării FORdem1, va apărea o fereastră grafică care conține familia necesară de curbe.

Scrieți un program de fișier pentru a calcula suma

Algoritmul de calcul al sumei folosește acumularea rezultatului, adică. mai întâi suma este zero ( S= 0), apoi într-o variabilă k se introduce o unitate si se calculeaza 1/ k!, se adaugă la S iar rezultatul este introdus din nou S. Mai departe k crește cu unu, iar procesul continuă până când ultimul termen este 1/10!. Programul de fișiere Fordem2 afișat în lista următoare calculează suma necesară.

Listarea programului de fișiere Fordem2 pentru calcularea sumei

Program de fișier % pentru calcularea sumei
% 1/1!+1/2!+ … +1/10!

% Resetați S pentru a acumula suma
S = 0;
% acumulare de cantitate în ciclu
pentru k = 1:10
S = S + 1/factorial(k);
Sfârşit
% scoate rezultatul în fereastra de comandă S

Tastați fișierul de program în editorul de fișiere M, salvați-l în directorul curent în fișierul Fordem2.m și executați. Rezultatul va fi afișat în fereastra de comandă, deoarece în ultima linie a programului de fișiere S nu conține punct și virgulă pentru a afișa valoarea variabilei S

Rețineți că alte linii ale programului de fișiere care ar determina imprimarea pe ecran a valorilor intermediare sunt terminate cu un punct și virgulă pentru a suprima ieșirea în fereastra de comandă.

Nu este o coincidență că primele două rânduri cu comentarii sunt separate printr-o linie goală de restul textului programului. Acestea sunt cele care sunt afișate atunci când utilizatorul folosește comanda help din linia de comandă pentru a obține informații despre ceea ce face Fordem2

>> ajuta Fordem2
program de fișier pentru calcularea sumei
1/1!+1/2!+ … +1/10!

Când scrieți programe și funcții de fișiere, nu neglijați comentariile!
Toate variabilele utilizate în programul de fișiere devin disponibile în mediul de lucru. Sunt așa-numitele variabile globale. Pe de altă parte, programul de fișiere poate folosi toate variabilele introduse în mediul de lucru.

Luați în considerare problema calculării sumei, similară celei precedente, dar în funcție de variabilă X

Pentru a calcula această sumă în programul de fișiere Fordem2, trebuie să schimbați linia din interiorul buclei for la

S = S + x.^k/factorial(k);

Înainte de a rula programul, trebuie să definiți o variabilă X pe linia de comandă folosind următoarele comenzi:

>> x = 1,5;
>>Fordem2
S=
3.4817

La fel de X poate fi un vector sau o matrice, deoarece în programul Fordem2 se foloseau operațiuni element cu element la acumularea sumei.

Înainte de a porni Fordem2, trebuie să atribuiți o variabilă X o anumită valoare și pentru a calcula suma, de exemplu, din cincisprezece termeni, va trebui să faceți modificări textului programului de fișiere. Este mult mai bine să scrieți o funcție de fișier universal care să ia ca argumente de intrare valoarea Xși limita superioară a sumei, iar weekendul - valoarea sumei S(X). Fișierul funcției sumN este afișat în lista următoare.

Listarea funcției fișier pentru calcularea sumei

funcția S = sumN(x, N)
Funcția fișier % pentru a calcula suma
% x/1!+x^2/2!+ … +x^N/N!
% utilizare: S = sumN(x, N)

% resetează S pentru a acumula suma
S = 0;
% acumulare de cantitate în ciclu
pentru m = 1:1:N
S = S + x.^m/factorial(m);
Sfârşit

Utilizatorul poate afla despre utilizarea funcției sumN tastând help sumN la linia de comandă. Primele trei rânduri cu comentarii vor fi afișate în fereastra de comandă, separate de textul funcției fișier printr-o linie goală.

Rețineți că variabilele funcției de fișier nu sunt globale (m în funcție de fișier sumN). Încercarea de a vizualiza valoarea variabilei m din linia de comandă are ca rezultat un mesaj că m nu este definit. Dacă în mediul de lucru există o variabilă globală cu același nume, definită din linia de comandă sau într-o funcție de fișier, atunci aceasta nu are legătură în niciun fel cu variabila locală din funcția de fișier. De regulă, este mai bine să vă formatați proprii algoritmi ca funcții de fișier, astfel încât variabilele utilizate în algoritm să nu modifice valorile variabilelor globale ale mediului de lucru cu același nume.

Buclele For pot fi imbricate unele în altele, dar variabilele buclelor imbricate trebuie să fie diferite.

Bucla for este utilă atunci când se efectuează acțiuni similare repetate când numărul acestora este predeterminat. O buclă while mai flexibilă vă permite să ocoliți această limitare.

6.2. Operatorul de buclă While

Să luăm în considerare un exemplu de calcul a unei sume, similar cu exemplul din paragraful anterior. Trebuie să găsiți suma unei serii pentru un dat X(extindere serie):
.

Suma poate fi acumulată atâta timp cât termenii nu sunt prea mici, să spunem că mai mult modulo A for nu este suficient aici, deoarece numărul de termeni este necunoscut în avans. Soluția este să folosiți o buclă while, care rulează în timp ce condiția buclei este îndeplinită:

condiția buclei while
Comenzi MatLab
Sfârşit

În acest exemplu, condiția buclei stipulează că termenul curent este mai mare decât . Pentru a scrie această condiție, utilizați semnul mai mare decât (>). Textul funcției de fișier mysin, care calculează suma unei serii, este prezentat în lista următoare.

Lista funcției fișier mysin care calculează expansiunea sinus în serie

funcția S = mysin(x)
% Calculul sinusului prin expansiune în serie
% Utilizare: y = mysin(x), -pi

S = 0;
k = 0;
în timp ce abs(x.^(2*k+1)/factorial(2*k+1))>1.0e-10
S = S + (-1)^k*x.^(2*k+1)/factorial(2*k+1);
k = k + 1;
Sfârşit

Vă rugăm să rețineți că bucla while, spre deosebire de bucla for, nu are o variabilă de buclă, așa că a trebuit să atribuim k la zero înainte de începerea buclei și să creștem k cu unu în interiorul buclei.
Condiția de buclă while poate conține mai mult decât semnul >. Pentru a seta condițiile de executare a unui ciclu, sunt valabile și alte operații relaționale enumerate în Tabelul 1. 1.

Tabelul 1. Operații relaționale

Stabilirea unor condiții mai complexe se face folosind operatori logici. De exemplu, condiția constă în îndeplinirea simultană a două inegalități și , și este scrisă folosind operatorul logic și

și (x >= -1, x< 2)

sau echivalent cu &

(x >= -1) și (x< 2)

Operatorii logici și exemplele de utilizare a acestora sunt date în tabel. 2.

Tabelul 2. Operatori logici

Operator

Scriind la MatLab

Intrare echivalentă

„ȘI” logic

și (x< 3, k == 4)

(X< 3) & (k == 4)

„SAU” logic

Sau(x == 1,x == 2)

(x == 1) | (x == 2)

Negație „NU”

Când se calculează suma unei serii infinite, este logic să se limiteze numărul de termeni. Dacă o serie diverge deoarece termenii săi nu tind spre zero, atunci condiția pentru valoarea mică a termenului curent nu poate fi niciodată îndeplinită și programul va intra într-o buclă. Efectuați sumarea adăugând o limită a numărului de termeni la condiția de buclă while a funcției fișierului mysin:

în timp ce (abs(x.^(2*k+1)/factorial(2*k+1))>1.0e-10)&(k<=10000))

sau în formă echivalentă

în timp ce și(abs(x.^(2*k+1)/factorial(2*k+1))>1.0e-10), k<=10000)

Organizarea acțiunilor repetate sub formă de cicluri face ca programul să fie simplu și ușor de înțeles, dar deseori este necesară executarea unuia sau altul bloc de comenzi în funcție de anumite condiții, adică. utilizați ramificarea algoritmului.

6.3. Declarație condițională if

Operator condiționat dacă vă permite să creați un algoritm de ramificare pentru executarea comenzilor, în care, atunci când sunt îndeplinite anumite condiții, rulează blocul corespunzător de operatori sau comenzi MatLab.

Instrucțiunea if poate fi folosită în cea mai simplă formă pentru a executa un bloc de comenzi atunci când o anumită condiție este îndeplinită, sau într-o construcție if-elseif-else pentru a scrie algoritmi de ramificare.
Să presupunem că trebuie să evaluăm expresia . Să presupunem că efectuați un calcul în domeniul numerelor reale și doriți să afișați un avertisment că rezultatul este un număr complex. Înainte de a calcula funcția, ar trebui să verificați valoarea argumentului x și să afișați un avertisment în fereastra de comandă dacă modulul lui x nu depășește unu. Aici trebuie să utilizați o declarație condițională if, a cărei utilizare în cel mai simplu caz arată astfel:

dacă starea
Comenzi MatLab
Sfârşit

Dacă condiția este îndeplinită, atunci sunt implementate comenzile MatLab situate între if și end, iar dacă condiția nu este îndeplinită, atunci are loc trecerea la comenzile situate după end. Când se scrie o condiție, se folosesc operațiile date în tabel. 1.

Funcția fișier care verifică valoarea argumentului este afișată în lista următoare. Comanda de avertizare este utilizată pentru a afișa un avertisment în fereastra de comandă.

Listarea funcției fișierului Rfun care verifică valoarea unui argument

funcția f = Rfun(x)
% calculează sqrt(x^2-1)
% imprimă un avertisment dacă rezultatul este complex
% utilizare y = Rfun(x)

% verificare argument
daca abs(x)<1
avertisment ("rezultat complex")
Sfârşit
% evaluarea funcției
f = sqrt(x^2-1);

Acum, apelarea Rfun dintr-un argument mai mic de unu va avea ca rezultat afișarea unui mesaj de avertizare în fereastra de comandă:

>> y = Rfun(0,2)
rezultatul este complex
y=
0 + 0,97979589711327i

Funcția fișierului Rfun avertizează doar că valoarea sa este complexă și toate calculele cu aceasta continuă. Dacă un rezultat complex înseamnă o eroare de calcul, atunci ar trebui să opriți executarea funcției folosind comanda de eroare în loc de avertizare.

6.4. Operator de ramură if-elseif-else

În general, utilizarea operatorului de ramură if-elseif-else arată astfel:

dacă starea 1
Comenzi MatLab
condiția elseif 2
Comenzi MatLab
condiția elseif 3
Comenzi MatLab
. . . . . . . . . . .
starea elseif N
Comenzi MatLab
altfel
Comenzi MatLab
Sfârşit

În funcţie de implementarea unuia sau altuia dintre N condiții, ramura corespunzătoare a programului rulează dacă niciuna dintre N condiţiile, apoi comenzile MatLab plasate după else sunt implementate. După executarea oricăreia dintre ramuri, operatorul iese. Pot exista oricâte ramuri doriți sau doar două. În cazul a două ramuri, se folosește trailing else și se omite elseif. Declarația trebuie întotdeauna să se încheie cu sfârșit.
Un exemplu de utilizare a instrucțiunii if-elseif-else este dat în lista următoare.

funcția ifdem(a)
% exemplu de utilizare a instrucțiunii if-elseif-else

dacă (a == 0)
warning ("a este egal cu zero")
elseif a == 1
warning ("a este egal cu unu")
elseif a == 2
warning ("a este egal cu doi")
elseif a >= 3
warning ("a, mai mare sau egal cu trei")
altfel
warning ("a este mai mic de trei și nu este egal cu zero, unu, doi")
Sfârşit

6.5. Operator de sucursală intrerupator

O instrucțiune switch poate fi folosită pentru a efectua selecții multiple sau ramificare . Este o alternativă la declarația if-elseif-else. În general, utilizarea unui operator de comutare arată astfel:

switch switch_expression
valoarea cazului 1
Comenzi MatLab
valoarea cazului 2
Comenzi MatLab
. . . . . . . . . . .
valoarea cazului N
Comenzi MatLab
caz (valoarea N+1, valoarea N+2, ...)
Comenzi MatLab
. . . . . . . . . . . .
caz (valoarea NM+1, valoarea NM+2,...)
in caz contrar
Comenzi MatLab
Sfârşit

În această instrucțiune, se calculează mai întâi valoarea switch_expression (aceasta poate fi o valoare numerică scalară sau un șir de caractere). Această valoare este apoi comparată cu valorile: valoarea 1, valoarea 2, ..., valoarea N, valoarea N+1, valoarea N+2, ..., valoarea NM+1, valoarea NM+2, ... ( care poate fi și numeric sau șir) . Dacă se găsește o potrivire, sunt executate comenzile MatLab care urmează cuvântul cheie case corespunzător. În caz contrar, comenzile MatLab situate între cuvintele cheie otherwise și end sunt executate.

Pot exista orice număr de rânduri cu cuvântul cheie, dar trebuie să existe doar o singură linie cu cuvântul cheie în caz contrar.

După executarea oricăreia dintre ramuri, comutatorul iese, iar valorile specificate în alte cazuri nu sunt verificate.

Utilizarea comutatorului este ilustrată de următorul exemplu:

funcția demswitch(x)
a = 10/5 + x
comutator a
cazul 1
avertisment ("a = -1")
cazul 0
warning ("a = 0")
cazul 1
avertisment ("a = 1")
caz (2, 3, 4)
warning ("a este egal cu 2 sau 3 sau 4")
in caz contrar
warning ("a nu este egal cu -1, 0, 1, 2, 3, 4")
Sfârşit

>> x = -4
demswitch(x)
a =
1
avertisment: a = 1
>> x = 1
demswitch(x)
a =
6
avertisment: a nu este egal cu -1, 0, 1, 2, 3, 4

6.6. Operator de întrerupere a buclei pauză

Atunci când organizați calcule ciclice, trebuie avut grijă să vă asigurați că nu apar erori în cadrul buclei. De exemplu, să presupunem că vi se oferă o matrice x constând din numere întregi și doriți să generați o nouă matrice y conform regulii y(i) = x(i+1)/x(i). Evident, problema poate fi rezolvată folosind o buclă for. Dar dacă unul dintre elementele matricei originale este zero, atunci diviziunea va avea ca rezultat inf, iar calculele ulterioare pot fi inutile. Această situație poate fi prevenită prin ieșirea din buclă dacă valoarea curentă a lui x(i) este zero. Următorul fragment de program demonstrează utilizarea instrucțiunii break pentru a întrerupe o buclă:

pentru x = 1:20
z = x-8;
dacă z==0
pauză
Sfârşit
y = x/z
Sfârşit

De îndată ce variabila z devine 0, bucla se termină.

Declarația break vă permite să opriți mai devreme execuția buclelor for și while. În afara acestor bucle, instrucțiunea break nu funcționează.

Când instrucțiunea break este utilizată într-o buclă imbricată, iese doar din bucla interioară.

Această fereastră este cea principală în MatLAB. Afișează simbolurile comenzilor pe care utilizatorul le tastează pe ecran, afișează rezultatele executării acestor comenzi, textul programului în execuție și informații despre erorile de execuție a programului recunoscute de sistem.

Un semn că MatLAB este gata să accepte și să execute următoarea comandă este apariția în ultima linie a câmpului de text al ferestrei semnului de invitație " >> ", urmată de o bară verticală care clipește.

În partea de sus a ferestrei (sub titlu) există o bară de meniu, care conține meniurile Fișier, Editare, Vizualizare, Windows, Ajutor. Pentru a deschide un meniu, plasați cursorul mouse-ului pe el și apăsați butonul din stânga. Funcțiile comenzilor de meniu vor fi descrise mai detaliat mai târziu, în secțiunea „Interfață MatLab și comenzi de uz general. Scriind cărți M.”

Aici notăm doar că pentru a ieși din mediu MatLAB, trebuie doar să deschideți meniul Fișier și să selectați comanda Ieșire din MATLAB din acesta, sau pur și simplu închideți fereastra de comandă apăsând butonul stâng al mouse-ului când cursorul mouse-ului este poziționat pe imaginea butonului din dreapta sus al acestei ferestre (indicat de un oblic). cruce).

1.2. Operații cu numere

1.2.1. Introducerea numerelor reale

Introducerea numerelor de la tastatură urmează regulile generale adoptate pentru limbajele de programare de nivel înalt:

pentru a separa partea fracțională a mantisei unui număr, se folosește un punct zecimal (în loc de virgulă în notație normală);

exponentul zecimal al unui număr este scris ca un întreg după simbolul precedent „e”;

între mantisa unui număr și simbolul „e”(care separă mantisa de exponent) nu ar trebui să existe caractere, inclusiv simbolul skip.

Dacă, de exemplu, introduceți linia în fereastra de comandă MatLAB

apoi după apăsarea tastei<Еnter>În această fereastră va apărea o intrare:


Trebuie remarcat faptul că rezultatul este scos într-o formă (format) care este determinată de un format prestabilit pentru reprezentarea numerelor. Acest format poate fi setat folosind comanda Preferințe meniul Fişier(Fig. 1.3). După apelarea acestuia, va apărea pe ecran o fereastră cu același nume (Fig. 1.4). Una dintre secțiunile acestei ferestre are numele Numeric Format. Este conceput pentru a seta și modifica formatul pentru reprezentarea numerelor care sunt afișate în fereastra de comandă în timpul procesului de calcul. Sunt furnizate următoarele formate:

Short (implicit) – intrare scurtă (utilizată implicit);

Intrare lungă – lungă;

Hex – notație ca număr hexazecimal;

Bank – înregistrare la sutimi;

Plus – este înregistrat doar semnul numărului;

E scurt – notație scurtă în format virgulă mobilă;

Long E – înregistrare lungă în format virgulă mobilă;

Short G – a doua formă de notație scurtă în format virgulă mobilă;

G lung – a doua formă de notație lungă în virgulă mobilă;

Rațional – notație sub forma unei fracții raționale.

Selectând tipul dorit de reprezentare a numerelor cu ajutorul mouse-ului, vă puteți asigura că numerele sunt afișate ulterior în fereastra de comandă exact în această formă.

După cum se poate observa din fig. 1.2, numărul afișat pe ecran nu se potrivește cu cel introdus. Acest lucru se datorează faptului că formatul implicit pentru reprezentarea numerelor ( Mic de statura) nu permite ieșirea a mai mult de 6 cifre semnificative. De fapt, numărul introdus este stocat în MatLAB cu toate cifrele introduse. De exemplu, dacă selectați butonul selector lung cu mouse-ul E(adică setați formatul specificat pentru reprezentarea numerelor), apoi, repetând aceiași pași, obținem:

unde toate numerele sunt deja afișate corect (Fig. 1.5).

Lucruri de amintit:

- numărul introdus și rezultatele tuturor calculelor din sistemul Ma tLAB sunt stocate în memoria PC-ului cu o eroare relativă de aproximativ 2.10-16(adică cu valori exacte în 15 zecimale):

- intervalul de reprezentare a modulului numerelor reale se află între 10-308 și 10+308.

1.2.2. Operații aritmetice simple

Următoarele simboluri ale operațiilor aritmetice sunt utilizate în expresiile aritmetice MatLAB:

+ – adaos;

– – scădere;

* - înmulțire;

/ – împărțire de la stânga la dreapta;

\ – împărțire de la dreapta la stânga;

^ – exponentiație.

Utilizarea MatLAB în modul calculator se poate face prin simpla scriere a unei secvențe de operații aritmetice cu numere pe linia de comandă, adică o expresie aritmetică obișnuită, de exemplu: 4,5^2*7,23 – 3,14*10,4.

Dacă, după introducerea acestei secvențe de la tastatură, apăsați tasta , rezultatul execuției va apărea în fereastra de comandă în forma prezentată în Fig. 1.6, adică rezultatul acțiunii ultimei instrucțiuni executate este afișat pe ecran sub numele variabilei de sistem ans.

În general, ieșirea informațiilor intermediare către fereastra de comandă respectă următoarele reguli:

- dacă înregistrarea operatorului nu se termină cu simbolul";", rezultatul acestui operator este afișat imediat în fereastra de comandă;

- dacă enunţul se termină cu un caracter";", rezultatul acțiunii sale nu este afișat în fereastra de comandă;

- dacă operatorul nu conţine un semn de atribuire(= ), adică este pur și simplu o înregistrare a unei secvențe de acțiuni asupra numerelor și variabilelor, valoarea rezultatului este atribuită unei variabile speciale de sistem numite ans;

- a primit valoarea variabilă ans poate fi utilizat în următoarele instrucțiuni de calcul folosind acest nume ans; Trebuie amintit că valoarea variabilei de sistem ans se modifică după acţiunea următorului operator fără semn de atribuire;

- în cazul general, forma de prezentare a rezultatului în fereastra de comandă arată ca:

<Имя переменной> = <результат>.

Exemplu. Să presupunem că trebuie să calculăm expresia (25+17)*7. Se poate face astfel. Mai întâi, introduceți secvența 25+17 și apăsați . Obținem rezultatul pe ecran în formular ans = 42. Acum scriem succesiunea răspuns*7și apăsați . Primim ans = 294 (Fig. 1.7). Pentru a preveni obținerea rezultatului intermediar al acțiunii 25+17, este suficient să adăugați simbolul „;” după scrierea acestei secvențe. Apoi vom avea rezultatele în forma prezentată în Fig. 1.8.

Folosind MatLAB ca calculator, puteți folosi nume de variabile pentru a scrie rezultate intermediare în memoria computerului. Pentru a face acest lucru, utilizați operația de atribuire, care este introdusă de semnul egal „=" în conformitate cu schema:<Имя переменной> = <выражение>[;]

Numele variabilei poate conține până la 30 de caractere și nu trebuie să se potrivească cu numele funcțiilor, procedurilor de sistem și variabilelor de sistem. În acest caz, sistemul distinge între litere mari și mici în variabile. Astfel, denumirile „amenu”, „Amenu”, „aMenu” în MatLAB denotă variabile diferite.

Expresia din dreapta semnului de atribuire poate fi un număr simplu, o expresie aritmetică, un șir de caractere (atunci acele caractere trebuie să fie incluse în apostrofe) sau o expresie de caracter. Dacă expresia nu se termină cu „;”, după apăsarea tastei<Еnter>în fereastra de comandă rezultatul execuției va apărea sub forma:

<Nume variabilă> = <rezultat>.

Orez. 1.7. Orez. 1.8.

De exemplu, dacă introduceți linia " X= 25 + 17”, va apărea o intrare pe ecran (Fig. 1.9).

Sistemul MatLAB are mai multe nume de variabile care sunt folosite de sistemul însuși și sunt incluse în cele rezervate:

i, j – unitate imaginară (rădăcină pătrată a lui –1); pi – numărul p (salvat ca 3,141592653589793); inf – desemnarea infinitului mașinii; Na – desemnarea unui rezultat nedefinit (de exemplu, tip 0/0 sau inf/inf); eps – eroare a operațiilor pe numere în virgulă mobilă; ans – rezultatul ultimei operațiuni fără semn de atribuire; realmax și realmin sunt valorile maxime și minime posibile ale numărului care poate fi utilizat.

Aceste variabile pot fi folosite în expresii matematice.

1.2.3. Introducerea numerelor complexe

Limbajul de sistem MatLAB, spre deosebire de multe limbaje de programare de nivel înalt, conține încorporată aritmetică a numerelor complexe, care este foarte ușor de utilizat. Majoritatea funcțiilor matematice elementare acceptă numerele complexe ca argumente și produc rezultate ca numere complexe. Această caracteristică a limbajului îl face foarte convenabil și util pentru ingineri și oameni de știință.

Pentru a desemna unitatea imaginară în limbajul MatLAB, sunt rezervate două nume i și j. Introducerea valorii unui număr complex de la tastatură se face prin scrierea unei linii ca aceasta în fereastra de comandă:

<nume de variabilă complexă> = <Valoarea PM> + i[j] * <Valoarea MP>,

unde DC este partea reală a unui număr complex, MP este partea imaginară. De exemplu:

Din exemplul de mai sus puteți vedea cum sistemul afișează numere complexe pe ecran (și pe tipărire).

1.2.4. Funcții matematice de bază

Forma generală de utilizare a unei funcții în MatLAB este:

<numele rezultatului> = <numele funcției>(<lista de argumente sau valorile acestora>).

Limbajul MatLAB oferă următoarele funcții aritmetice elementare.

Funcții trigonometrice și hiperbolice

păcat (z) – sinusul numărului z;

sinh(z) – sinus hiperbolic;

ca în (z) – arcsinus (în radiani, în intervalul de la până la );

Asinh(z) – sinus hiperbolic invers;

cus(z) – cosinus;

сosh(z) – cosinus hiperbolic;

acos (z) – arc cosinus (în intervalul de la 0 la p);

la felSH(z) – cosinus hiperbolic invers;

bronzat (z) – tangentă;

tanh (z) – tangentă hiperbolică;

un bronz (z) – arctangent (în intervalul de la până la );

atap2 (X, Y) – arctangent cu patru cadrane (unghi în intervalul de la – p la + pîntre raza dreaptă orizontală și raza care trece prin punctul cu coordonate XȘi Y);

atanh (z) – tangentă hiperbolică inversă;

sec (z) – secant;

sec (z) – secant hiperbolic;

asec (z) – arcsecant;

asech (z) – secant hiperbolic invers;

csc (z) – cosecant;

csch (z) – cosecantă hiperbolică;

acsc (z) – arccosecant;

acsch (z) – cosecant hiperbolic invers;

cot (z) – cotangent;

coth (z) – cotangent hiperbolic;

acot (z) – arc cotangent;

acoth (z) – cotangent hiperbolic invers

Funcții exponențiale

exp (z) – exponent al numărului z;

Buturuga(z) – logaritm natural;

Buturuga10 (z) – logaritm zecimal;

sqrt(z) – rădăcina pătrată a numărului z;

abs (z) – modulul numărului z.

Funcții întregi

fix (z) – rotunjirea la cel mai apropiat număr întreg spre zero;

etaj (z) – rotunjirea la cel mai apropiat număr întreg spre infinit negativ;

ceil (z) – rotunjirea la cel mai apropiat număr întreg spre infinitul pozitiv;

round (z) – rotunjirea normală a numărului z la cel mai apropiat număr întreg;

mod (X, Y) – împărțirea întregului lui X la Y;

rem(X, Y) – calculul restului la împărțirea X la Y;

semn(z) – calculul funcției signum a numărului z

(0 la z = 0, –1 la z< 0, 1 при z > 0)

1.2.5. Funcții matematice speciale

Pe lângă cele elementare, limbajul MatLAB oferă o serie de funcții matematice speciale. Mai jos este o listă și un rezumat al acestor funcții. Utilizatorul poate găsi regulile de accesare și utilizare a acestora în descrierile acestor funcții, care sunt afișate pe ecran dacă tastați comanda de ajutor și specificați numele funcției în aceeași linie.

Funcții de transformare a coordonatelor

cart2 sph– transformarea coordonatelor carteziene în sferice;

cart2 pol– conversia coordonatelor carteziene în cele polare;

pol2 cart– conversia coordonatelor polare în carteziene;

sph2 cart– conversia coordonatelor sferice în carteziene.

Funcțiile Bessel

besselj– Funcția Bessel de primul fel;

besly– Funcția Bessel de al doilea fel;

besseli– funcție Bessel modificată de primul fel;

besselk– funcția Bessel modificată de al doilea fel.

Caracteristici beta

beta– functie beta;

betainc– funcție beta incompletă;

betaln– logaritmul funcției beta.

Funcții gamma

gamma– funcția gamma;

gammainc– functie gamma incompleta;

gammaln– logaritmul funcției gamma.

Funcții eliptice și integrale

ellipj– funcții eliptice Jacobi;

ellipke– integrală eliptică completă;

expint– funcţie integrală exponenţială.

Funcții de eroare

erf– functie de eroare;

erfc– functie de eroare suplimentara;

erfcx– funcție de eroare suplimentară scalată;

erflnv este funcția de eroare inversă.

Alte caracteristici

gcd- cel mai mare divizor comun;

învăța- cel mai mic multiplu comun;

legendă– funcția Legendre generalizată;

log2– logaritm la baza 2;

pow2– ridicarea 2 la puterea specificată;

şobolan– reprezentarea unui număr sub forma unei fracții raționale;

şobolani– reprezentarea numerelor sub formă de fracții raționale.

1.2.6. Operații elementare cu numere complexe

Cele mai simple operații cu numere complexe - adunarea, scăderea, înmulțirea, împărțirea și exponențiarea - se efectuează folosind semnele aritmetice obișnuite +, –, *, /, \ și respectiv ^.

Exemple de utilizare sunt prezentate în Fig. 1.11.

Notă. Fragmentul de mai sus folosește funcția disp (din cuvântul „afișare”), care afișează și rezultatele calculelor sau ceva text în fereastra de comandă. În acest caz, rezultatul numeric, după cum se vede, este afișat fără a indica numele variabilei sau ans.

1.2.7. Funcții de argument complexe

Aproape toate de bază functii matematice dat în clauza 1.2.4, sunt calculate pentru valori complexe ale argumentuluiși ca urmare a acestui fapt, se obțin valori complexe de rezultat.

Datorită acestui fapt, de exemplu, funcția sqrt calculează, spre deosebire de alte limbaje de programare, rădăcina pătrată a unui argument negativ și funcția abs având în vedere o valoare complexă a argumentului, calculează modulul unui număr complex. Exemple sunt prezentate în Fig. 1.12.

MatLAB are mai multe funcții suplimentare care iau doar un argument complex:

real (z) – selectează partea reală a argumentului complex z;

і mag (z) – evidențiază partea imaginară a argumentului complex;

unghi (z) – calculează valoarea argumentului numărului complex z (în radiani în intervalul de la –p la +p);

conj (z) – returnează un număr care este complex conjugat în raport cu z.

Exemple sunt prezentate în Fig. 1.13.

Orez. 1.12. Orez. 1.3.

În plus, MatLAB are o funcție specială cplxpair (V), care sortează un vector dat V cu elemente complexe în așa fel încât perechile complexe conjugate ale acestor elemente să fie dispuse în vectorul rezultat în ordinea crescătoare a părților lor reale, cu elementul cu partea imaginară negativă este întotdeauna plasat pe primul loc. Elementele reale completează perechile conjugate complexe. De exemplu, în mai departe în exemplele de comenzi care sunt tastate de la tastatură, va fi scris cu caractere aldine, iar rezultatul executării lor este în font obișnuit):

>> v = [ -1, -1+2i,-5,4,5i,-1-2i,-5i]

Coloanele de la 1 la 4

1,0000 -1,0000 +2,0000i -5,0000 4,0000

Coloanele de la 5 la 7

0 + 5,0000i -1,0000-2,0000i 0 - 5,0000i

>> disp(cplxpair(v))

Coloanele de la 1 la 4

1,0000 - 2,0000i -1,0000 + 2,0000i 0 - 5,0000i 0 + 5,0000i

Coloanele de la 5 la 7

5.0000 -1.0000 4.0000

Adaptabilitatea majorității funcțiilor MatLAB pentru a opera cu numere complexe face mult mai ușoară construirea de calcule cu numere reale, al căror rezultat este complex, de exemplu, găsirea rădăcinilor complexe ale ecuațiilor pătratice.

1. Gultyaev A.K. MatLAB 5.2. Modelare de simulare în mediul Windows: un ghid practic. - Sankt Petersburg: print CORONA, 1999. - 288 p.

2. Gultyaev A.K. Modelare vizuală în MATLAB: Curs de formare. - Sankt Petersburg: PETER, 2000. - 430 p.

3. Dyakonov V.P. Manual de utilizare a sistemului PC MatLAB. - M.: Fizmatlit, 1993. - 113 p.

4. Dyakonov V. Simulink 4. Carte specială de referință. - Sankt Petersburg: Peter, 2002. – 518 p.

5. Dyakonov V., Kruglov V. Pachete de extensie matematică MatLAB. Carte de referință specială. - Sankt Petersburg: Peter, 2001. - 475 p.

6. Krasnoproshina A. A., Repnikova N. B., Ilchenko A. A. Analiza modernă a sistemelor de control folosind MATLAB, Simulink, Sistemul de control: manual. - K.: „Korniychuk”, 1999. – 144 p.

7. Lazarev Yu F. Cobs de programare în mediul MatLAB: Uch. indemnizatie. - K.: „Korniychuk”, 1999. - 160 p.

8. Lazarev Yu MatLAB 5.x. – K.: „Irina” (BHV), 2000. – 384 p.

9. Medvedev V. S., Potemkin V. G. Control System Toolbox. MatLAB 5 pentru studenți. - G.: „DIALOG-MEPhI”, 1999. – 287 p.

10. Potemkin V. G. MatLAB 5 pentru elevi: Referință. indemnizatie. - M.: „DIALOG-MEPhI”, 1998. - 314 p.

Majoritatea dezvoltatorilor întâmpină dificultăți în a înțelege atât sintaxa, cât și capacitățile acesteia. Chestia este că limbajul este direct legat de un produs software popular, al cărui cost poate atinge valori uimitoare. Deci, întrebarea principală este: este limbajul Matlab în sine atât de bun? Și îți poate fi de folos?

Utilizare

Să începem nu cu o excursie standard în istorie și o discuție despre avantajele și dezavantajele limbajului, ci cu mediul software MATLAB/Simulink - singurul loc în care eroul acestui text poate fi util. Imaginați-vă doar un editor grafic în care puteți realiza oricare dintre ideile dvs. fără a avea în spate câțiva ani de experiență și educație relevantă. Și după ce ați creat o diagramă de interacțiune între instrumente o dată, veți obține un script de înaltă calitate pentru utilizare repetată.

MATLAB este doar un astfel de editor în lumea datelor. Domeniul de aplicare al acesteia este infinit de larg: IoT, finanțe, medicină, spațiu, automatizare, robotică, sisteme wireless și multe, multe altele. În general, există posibilități aproape nelimitate de colectare și vizualizare a datelor, precum și de prognoză, dar numai dacă aveți posibilitatea de a achiziționa pachetul corespunzător.

În ceea ce privește prețul, aproape că nu există o limită superioară, dar limita inferioară este în jur de 99 USD. Pentru a smulge un produs atât de puternic pentru bani relativ puțini, trebuie să fii student universitar. Și, desigur, veți obține un produs destul de limitat.

Caracteristicile limbii

Limbajul MATLAB este un instrument care oferă interacțiune între un operator (de multe ori nici măcar un programator) cu toate capabilitățile disponibile pentru analiza, colectarea și prezentarea datelor. Are avantaje și dezavantaje evidente, caracteristice unei limbi care trăiesc într-un ecosistem închis.

Defecte:

    Un limbaj lent și supraîncărcat cu operatori, comenzi și funcții, al cărui scop principal este îmbunătățirea percepției vizuale.

    Îngust concentrat. Nu există nicio altă platformă software unde MATLAB să fie util.

    Cost ridicat al software-ului. Dacă nu ești student, fie pregătește-te să-ți golești buzunarele, fie să treci de linia legii. Și chiar dacă ești student, prețul este decent.

    Cerere scăzută. În ciuda interesului mare pentru MATLAB în aproape toate domeniile, doar câțiva îl folosesc efectiv și legal.

Avantaje:

    Limba este ușor de învățat și are o sintaxă simplă și ușor de înțeles.

    Oportunități uriașe. Dar acesta este mai degrabă un avantaj al produsului în ansamblu.

    Actualizări frecvente, de obicei transformări pozitive vizibile, au loc cel puțin de câteva ori pe an.

    Mediul software vă permite să îl convertiți în cod „rapid” în C, C++.

Publicul țintă

Desigur, nu toată lumea are nevoie de MATLAB. În ciuda gamei sale largi de aplicații, este greu de imaginat că dezvoltatorul obișnuit de aplicații ar avea nevoie de cunoștințe despre acest limbaj. MATLAB este extrem de util în domeniile care necesită o prelucrare a datelor deosebit de robustă, cum ar fi sistemele de pilot automat din automobile sau sistemele avionice ale aeronavei.

Adică, dacă nu ești foarte programator, dar într-un fel sau altul profesia ta este legată de nevoia de procesare programatică a datelor, atunci un produs MATLAB/Simulink cu limbajul adecvat îți poate simplifica foarte mult sarcinile de zi cu zi.

Literatură

Încheiem trecerea în revistă a limbii, ca întotdeauna, cu o listă de literatură educațională. Desigur, printre ele nu veți găsi cărți exclusiv despre limbă, dar acest lucru va face doar percepția limbii mai ușoară:

Ai experiență cu MATLAB? Și care?

Pentru cei care vor să devină programator - .

Mediul MATLAB include un interpret de comenzi într-un limbaj de nivel înalt, un sistem grafic, pachete de extensie și este implementat în limbajul C. Toate lucrările sunt organizate prin fereastra de comandă, care apare când rulați programul matlab.exe. În timpul funcționării, datele sunt localizate în memorie (Workspace), sunt create ferestre grafice pentru a afișa curbe, suprafețe și alte grafice.

Calculele sunt efectuate în fereastra de comandă în modul de dialog. Utilizatorul introduce comenzi sau execută fișiere text în MATLAB. Interpretul procesează intrarea și produce rezultate: date numerice și șir, avertismente și mesaje de eroare. Linia de intrare este marcată cu >>. Fereastra de comandă afișează numerele și variabilele introduse de la tastatură, precum și rezultatele calculelor. Numele variabilelor trebuie să înceapă cu o literă. Semnul = corespunde unei operații de atribuire. Apăsarea tastei Enter face ca sistemul să evalueze expresia și să afișeze rezultatul. Tastați de la tastatură în linia de introducere:

Apăsați tasta Enter, rezultatul calculului va apărea pe ecran în zona de vizualizare:

Toate valorile variabilelor calculate în timpul sesiunii de lucru curente sunt stocate într-o zonă special rezervată a memoriei computerului, numită spațiul de lucru al sistemului MATLAB (spațiul de lucru). Comanda clc poate șterge conținutul ferestrei de comandă, dar acest lucru nu va afecta conținutul spațiului de lucru. Când nu mai este nevoie să stocați un număr de variabile în sesiunea curentă de lucru, acestea pot fi șterse din memoria computerului cu comanda clear sau clear (nume1, nume2, ...). Prima comandă șterge toate variabilele din memorie, iar a doua șterge variabilele numite nume1 și nume2. Comanda who poate afișa o listă cu toate variabilele incluse în prezent în spațiul de lucru al sistemului. Pentru a vedea valoarea oricărei variabile din spațiul de lucru curent al sistemului, introduceți pur și simplu numele acesteia și apăsați Enter.

După terminarea unei sesiuni cu MATLAB, toate variabilele calculate anterior se pierd. Pentru a salva conținutul spațiului de lucru al sistemului MATLAB într-un fișier de pe discul computerului, trebuie să executați comanda de meniu Fișier / Salvare spațiu de lucru ca .... În mod implicit, extensia numelui fișierului este mat, motiv pentru care astfel de fișiere sunt de obicei numite fișiere MAT. Pentru a încărca un spațiu de lucru salvat anterior pe disc în memoria computerului, trebuie să executați comanda de meniu: File / Load Workspace ....

Numerele reale și tipul de date dublu

Sistemul MATLAB reprezintă la nivel de mașină toate numerele reale specificate de mantisă și exponent, de exemplu, 2.85093E+11, unde litera E denotă baza exponentului egală cu 10. Acest tip de date de bază se numește dublu. MATLAB utilizează în mod implicit formatul scurt pentru afișarea numerelor reale, care afișează numai cele patru cifre zecimale după virgulă.

Introduceți un exemplu de la tastatură:

» res=5.345*2.868/3.14-99.455+1.274

Obțineți rezultatul calculului:

Dacă aveți nevoie de o reprezentare completă a numărului real res, introduceți comanda de la tastatură:

apăsați Enter și obțineți informații mai detaliate:

res = -93,29900636942675

Acum toate rezultatele calculelor vor fi afișate cu o precizie atât de mare în timpul unei anumite sesiuni în mediul de sistem MATLAB. Dacă doriți să reveniți la vechea precizie a reprezentării vizuale a numerelor reale în fereastra de comandă înainte de a încheia sesiunea de lucru curentă, trebuie să introduceți și să executați (apăsând tasta Enter) comanda:

Numerele întregi sunt afișate de sistem în fereastra de comandă ca numere întregi.

Operațiile aritmetice se efectuează pe numere reale și variabile duble: adunarea +, scăderea -, înmulțirea *, împărțirea / și exponentiația ^. Prioritatea în efectuarea operațiilor aritmetice este normală. Operațiile cu aceeași prioritate sunt efectuate în ordine de la stânga la dreapta, dar parantezele pot schimba această ordine.

Dacă nu este nevoie să vedeți rezultatul calculării unei anumite expresii în fereastra de comandă, atunci la sfârșitul expresiei introduse ar trebui să puneți punct și virgulă și abia apoi să apăsați Enter.

Sistemul MATLAB conține toate funcțiile elementare de bază pentru calcule cu numere reale. Orice funcție este caracterizată prin numele ei, o listă de argumente de intrare (enumerate separate prin virgule și plasate în paranteze după numele funcției) și o valoare calculată (returnată). O listă a tuturor funcțiilor matematice elementare disponibile în sistem poate fi obținută folosind comanda help elfun. Anexa 1 listează funcțiile standard cu argumente reale.

Evaluați o expresie care implică evaluarea funcției arcsinus:

Asigurați-vă că obțineți următorul rezultat:

corespunzător numărului „pi”. În MATLAB, există o notație specială pentru calcularea pi: pi. (O listă a variabilelor de sistem MATLAB este în Anexa 2).

MATLAB are si functii logice, functii legate de aritmetica intregi (rotunjirea la cel mai apropiat intreg: rotunjire, trunchierea partii fractionare a unui numar: fix). Există, de asemenea, un mod de funcție - restul diviziunii luând în considerare semnul, semnul - semnul numărului, lcm - cel mai mic multiplu comun, perms - calculul numărului de permutări și nchoosek - numărul de combinații și multe altele. Multe dintre funcții au un alt domeniu decât setul tuturor numerelor reale.

Pe lângă operațiile aritmetice pe operanzi dubli, se efectuează și operații relaționale și logice. Operatorii relaționali compară doi operanzi pe baza mărimii. Aceste operații sunt scrise cu următoarele caractere sau combinații de caractere (Tabelul 1):

tabelul 1


Dacă o operație relațională este adevărată, valoarea ei este 1, iar dacă este falsă, valoarea ei este 0. Operațiile relaționale au o prioritate mai mică decât operațiile aritmetice.

Introduceți o expresie cu operații relaționale de la tastatură și calculați

» a=1; b=2; c=3;

» res=(a

Veți obține următorul rezultat:

Operațiile logice pe numere reale sunt indicate prin semnele enumerate în tabelul 2:

masa 2


& | ~
ȘI SAU NU

Primele două dintre aceste operații sunt binare (cu doi operanzi), iar ultima este unară (cu un singur operand). Operațiile logice își tratează operanzii fie „adevărați” (nu este egal cu zero), fie „falși” (egal cu zero). Dacă ambii operanzi ai operației ȘI sunt adevărate (nu sunt egale cu zero), atunci rezultatul acestei operații este 1 („adevărat”); în toate celelalte cazuri, operația AND produce valoarea 0 („fals”). Operația SAU produce 0 ("fals") numai dacă ambii operanzi sunt falși (zero). Operația „NU” transformă „fals” în „adevărat”. Operațiile logice au cea mai mică prioritate.

Numere complexe și funcții complexe

Variabilele complexe, ca și cele reale, sunt automat de tip dublu și nu necesită nicio descriere preliminară. Literele i sau j sunt rezervate pentru scrierea unității imaginare. În cazul în care coeficientul din fața unității imaginare nu este un număr, ci o variabilă, trebuie folosit un semn de înmulțire între ele. Deci, numerele complexe pot fi scrise după cum urmează:

» 2+3i; -6,789+0,834e-2*i; 4-2j; x+y*i;

Aproape toate funcțiile elementare permit calcule cu argumente complexe. Evaluați expresia:

» res=sin(2+3i)*atan(4i)/(1 -6i)

Rezultatul va fi:

1.8009 - 1.91901

Următoarele funcții sunt concepute special pentru lucrul cu numere complexe: abs (valoarea absolută a unui număr complex), conj (număr complex conjugat), imag (partea imaginară a unui număr complex), real (partea reală a unui număr complex), unghi (argumentul unui număr complex), isreal ( „adevărat” dacă numărul este real). Funcțiile unei variabile complexe sunt enumerate în Anexa 1.

În ceea ce privește operațiile aritmetice, nu se poate spune nimic nou pentru numerele complexe (comparativ cu numerele reale). Același lucru este valabil și pentru operatorii relaționali „egal” și „nu este egal”. Operațiile relaționale rămase produc rezultate bazate doar pe părțile reale ale acestor operanzi.

Introduceți o expresie, obțineți rezultatul și explicați-l:

» c=2+3i; d=2i; » c>d

Operațiile logice tratează operanzii ca fiind falși dacă sunt zero. Dacă un operand complex are cel puțin o parte (reală sau imaginară) care nu este zero, atunci un astfel de operand este tratat ca adevărat.

Matrice numerice

Pentru a crea o matrice unidimensională, puteți utiliza operația de concatenare, care este indicată prin utilizarea parantezelor drepte. Elementele matricei sunt plasate între paranteze și separate unele de altele printr-un spațiu sau virgulă:

"al=; d=;

Pentru a accesa un element individual al unui tablou, trebuie să aplicați o operație de indexare, pentru care după numele elementului, specificați indexul elementului în paranteze.

Puteți modifica elementele unui tablou deja format utilizând operații de indexare și atribuire. De exemplu, introducând:

vom schimba al treilea element al matricei. Sau, după introducere:

» al(2)=(al(1)+al(3))/2;

cel de-al doilea element al tabloului va deveni egal cu media aritmetică a primului și al treilea element. Scrierea unui element inexistent este complet acceptabilă - înseamnă adăugarea unui element nou la o matrice deja existentă:

După efectuarea acestei operații, aplicând funcția de lungime matricei a1, constatăm că numărul de elemente din matrice a crescut la patru:

Aceeași acțiune - „extinderea matricei a1” - poate fi efectuată folosind operația de concatenare:

Puteți defini o matrice scriind toate elementele sale separat:

» a3(1)=67; a3(2)=7,8; a3(3)=0,017;

Cu toate acestea, această metodă de creare nu este eficientă. O altă modalitate de a crea o matrice unidimensională se bazează pe utilizarea unei funcții speciale, notate cu două puncte (operația de formare a unui interval de valori numerice). Separat prin două puncte, introduceți primul număr al intervalului, pasul (incrementul) și numărul final al intervalului. De exemplu:

" diap=3,7:0,3:8,974;

Dacă nu trebuie să afișați întreaga matrice rezultată, atunci la sfârșitul setului (după numărul final al intervalului) ar trebui să tastați un punct și virgulă. Pentru a afla câte elemente sunt într-o matrice, apelați funcția length(array name).

Pentru a crea o matrice bidimensională (matrice), puteți utiliza și operația de concatenare. Elementele matricei sunt tastate unul după altul în funcție de locația lor în linii, folosind un punct și virgulă ca separator de linii.

Introduceți de la tastatură:

„a=

Apăsați ENTER, obținem:

Matricea 3x2 rezultată a (în primul rând este indicat numărul de rânduri, în al doilea rând numărul de coloane) poate fi formată și prin concatenarea verticală a vectorilor rând:

» a=[;;];

sau concatenarea orizontală a vectorilor coloană:

» a=[,];

Structura matricelor create poate fi aflată folosind comanda whos(numele matricei), dimensiunea matricei - cu funcția ndims și dimensiunea matricei - dimensiunea.

Matricele bidimensionale pot fi definite și folosind operația de indexare, înregistrându-și elementele individual. Este indicat numărul rândului și coloanei la intersecția cărora se află elementul de matrice specificat, separat prin virgule în paranteze. De exemplu:

» a(1,1)=1; a(1,2)=2; a(2,1)=3; » a(2,2)=4; a(3,1)=5; a(3,2)=6;

Cu toate acestea, va fi mult mai eficient dacă, înainte de a începe să scrieți elemente de matrice, creați o matrice de dimensiunea necesară folosind funcțiile ones (m,n) sau zeros(m,n), completate cu unu sau zero (m este numărul de rânduri, n este numărul de coloane). Când aceste funcții sunt apelate, memoria este mai întâi alocată pentru dimensiunea specificată a matricei, după aceasta, alocarea treptată a elementelor cu valorile necesare nu necesită restructurarea structurii de memorie alocată pentru matrice. Aceste funcții pot fi utilizate și atunci când se specifică matrice de alte dimensiuni.

Dacă, după formarea matricei X, trebuie să-i modificați dimensiunile fără a modifica elementele matricei, puteți utiliza funcția de remodelare (X, M, N), unde M și N sunt noile dimensiuni ale matricei X

Funcționarea acestei funcții poate fi explicată doar pe baza modului în care sistemul MATLAB stochează elementele matricei în memoria computerului. Le stochează într-o zonă de memorie adiacentă, ordonată pe coloane: elementele primei coloane sunt localizate primele, urmate de elementele celei de-a doua coloane etc. Pe lângă datele în sine (elementele matricei), informațiile de control sunt stocate și în memoria computerului: tipul matricei (de exemplu, dublu), dimensiunea și dimensiunea matricei și alte informații de serviciu. Aceste informații sunt suficiente pentru a determina limitele coloanelor. Rezultă că pentru a reformata o matrice folosind funcția de remodelare, este suficient să modificați doar informațiile de serviciu și să nu atingeți propriile date.

Puteți schimba rândurile unei matrice cu coloanele sale utilizând operația de transport, care este indicată prin semn." (punct și apostrof). De exemplu,

„A=;

Operația " (apostrof) efectuează transpunerea pentru matrice reale și transpunerea cu conjugare complexă simultană pentru matrice complexe.

Obiectele cu care lucrează MATLAB sunt tablouri. Chiar și un singur număr dat în reprezentarea internă a MATLAB este un tablou format dintr-un element. MATLAB vă permite să faceți calcule cu matrice uriașe de numere la fel de ușor ca și cu numere simple, iar acesta este unul dintre cele mai vizibile și importante avantaje ale sistemului MATLAB față de alte pachete software axate pe calcul și programare. Pe lângă memoria necesară stocării elementelor numerice (8 octeți fiecare în cazul numerelor reale și 16 octeți fiecare în cazul numerelor complexe), MATLAB alocă automat memorie pentru informațiile de control la crearea tablourilor.

Calcule de matrice

În limbajele tradiționale de programare, calculele matricei se fac element cu element, în sensul că trebuie să programați fiecare operație individuală pe un element separat al matricei. Limbajul M al sistemului MATLAB permite operațiuni puternice de grup pe întreaga matrice simultan. Operațiile de grup ale sistemului MATLAB fac posibilă definirea extrem de compactă a expresiilor, al căror calcul implică de fapt o cantitate imensă de muncă.

Operațiile de adunare și scădere pe matrice sunt notate prin semne standard + și -.

Specificați matricele A și B și efectuați operația de adăugare a matricei:

„A=; B=;

Dacă sunt utilizați operanzi de dimensiuni diferite, este emis un mesaj de eroare, cu excepția cazului în care unul dintre operanzi este scalar. La efectuarea operației A + scalar (A - matrice), sistemul va extinde scalarul la o matrice de dimensiunea A, care este apoi adăugată element cu element cu A.

Pentru înmulțirea element cu element și împărțirea element cu element a tablourilor de aceeași dimensiune, precum și exponențiarea element cu element a tablourilor, se folosesc operații, notate prin combinații de două simboluri: .*, ./, şi.^. Utilizarea combinațiilor de simboluri se explică prin faptul că simbolurile * și / denotă operații speciale de algebră liniară pe vectori și matrice.

Pe lângă operația./, numită operația de împărțire în funcție de element dreapta, mai există și operația de împărțire în funcție de element din stânga.\. Diferența dintre aceste operații: expresia A./B conduce la o matrice cu elementele A (k, m) /B (k, m), iar expresia A.\B duce la o matrice cu elementele B (k, m). ) /A (k, m).

Semnul * este atribuit înmulțirii matricelor și vectorilor în sensul algebrei liniare.

Semnul \ este atribuit în sistemul MATLAB rezolvării unei probleme de algebră liniară destul de complexă - găsirea rădăcinilor unui sistem de ecuații liniare. De exemplu, dacă trebuie să rezolvați un sistem de ecuații liniare Ay = b, unde A este o matrice pătrată dată de dimensiunea N´N, b este un vector coloană dat de lungime N, atunci pentru a găsi vectorul coloană necunoscut y este suficient pentru a calcula expresia A\b (aceasta este echivalentă cu operația : A -1 B).

Probleme tipice de geometrie analitică în spațiu legate de găsirea lungimilor vectorilor și unghiurilor dintre ei, cu calculul produselor scalare și vectoriale, sunt ușor de rezolvat prin diverse mijloace ale sistemului MATLAB. De exemplu, pentru a găsi produsul vectorial al vectorilor, se folosește o funcție încrucișată specială, de exemplu:

"u=; v=;

Produsul scalar al vectorilor poate fi calculat folosind funcția sumă de uz general, care calculează suma tuturor elementelor vectorilor (pentru matrice, această funcție calculează sumele pentru toate coloanele). Produsul scalar, după cum se știe, este egal cu suma produselor coordonatelor (elementelor) corespunzătoare ale vectorilor. Astfel, expresia: » sum(u.*v)

calculează produsul scalar a doi vectori u și v. Produsul punctual poate fi calculat și ca: u*v”.

Lungimea vectorului este calculată folosind produsul punctual și funcția rădăcină pătrată, de exemplu:

» sqrt(sum(u.*u))

Operațiile relaționale și logice discutate anterior pentru scalari sunt efectuate element cu element în cazul tablourilor. Ambii operanzi trebuie să aibă aceeași dimensiune pentru ca operația să returneze un rezultat de aceeași dimensiune. În cazul în care unul dintre operanzi este scalar, se realizează expansiunea preliminară a acestuia, al cărei sens a fost deja explicat folosind exemplul operațiilor aritmetice.

Printre funcțiile care generează matrice cu proprietăți date, funcția este adesea folosită ochiul, care produce matrice pătrate unitare, precum și funcția rand, utilizată pe scară largă în practică, care generează o matrice cu elemente aleatoare distribuite uniform pe intervalul de la 0 la 1. De exemplu, expresia

generează o matrice 3x3 de numere aleatoare cu elemente distribuite uniform pe intervalul de la 0 la 1.

Dacă apelați această funcție cu două argumente, de exemplu R=rand(2,3), veți obține o matrice R 2x3 de elemente aleatoare. Apelarea funcției rand cu trei sau mai multe argumente scalare produce matrice multidimensionale de numere aleatoare.

Determinantul unei matrice pătrate este calculat folosind funcția det. Printre funcțiile care efectuează cele mai simple calcule pe tablouri, pe lângă funcția sum discutată mai sus, este folosită și funcția prod, care este în toate privințele similară cu funcția sum, doar că calculează nu suma elementelor, ci produsul lor. . Funcțiile max și min caută elementele maxime și, respectiv, minime ale tablourilor. Pentru vectori returnează o singură valoare numerică, iar pentru matrice produc un set de elemente extreme calculate pentru fiecare coloană. Funcția de sortare sortează elementele tablourilor unidimensionale în ordine crescătoare, iar pentru matrice efectuează o astfel de sortare pentru fiecare coloană separat.

MATLAB are capacitatea unică de a efectua calcule în lot pe matrice folosind funcții matematice obișnuite care, în limbajele de programare tradiționale, funcționează doar cu argumente scalare. Drept urmare, cu ajutorul unor intrări extrem de compacte, care sunt convenabile pentru introducerea de la tastatură în modul interactiv de lucru cu fereastra de comandă a sistemului MATLAB, este posibil să se efectueze un volum mare de calcule. De exemplu, doar două expresii scurte

"x=0:0,01:pi/2; y=sin(x);

calculați valorile funcției sin în 158 de puncte simultan, formând doi vectori x și y cu 158 de elemente fiecare.

Funcții grafice

Capacitățile grafice ale MATLAB sunt puternice și variate. Să explorăm cele mai ușor de utilizat funcții (grafică la nivel înalt).

Formează doi vectori x și y:

» x=0:0,01:2; y=sin(x);

Apelați funcția:

și veți obține un grafic al funcției pe ecran (Fig. 1).

Orez. 1. Graficul funcției y=sin(x)

MATLAB afișează obiecte grafice în ferestre grafice speciale care au cuvântul Figure în titlu. Fără a elimina prima fereastră grafică de pe ecran, introduceți expresiile de la tastatură

și obțineți un nou grafic al funcției în aceeași fereastră grafică (în acest caz, vechile axele de coordonate și graficul dispar - acest lucru se poate realiza și cu comanda clf; comanda cla șterge doar graficul cu axele de coordonate aduse la standardul lor variază de la 0 la 1).

Dacă trebuie să desenați un al doilea grafic „pe partea de sus a primului grafic”, atunci înainte de a apela din nou funcția grafică de trasare, trebuie să executați comanda hold on, care este concepută pentru a menține fereastra grafică curentă:

» x=0:0,01:2; y=sin(x);

Aproape același lucru se va întâmpla (Fig. 2), dacă tastați:

» x=0:0,01:2; y=sin(x); z=cos(x);

» plot(x,y,x,z)

Orez. 2. Grafice ale funcțiilor y=sin(x), z=cos(x), reprezentate într-o fereastră grafică

Dacă trebuie să vizualizați simultan mai multe grafice, astfel încât acestea să nu interfereze între ele, atunci acest lucru se poate face în două moduri. Prima soluție este să le reprezentați în diferite ferestre grafice. Pentru a face acest lucru, înainte de a apela din nou funcția de trasare, tastați comanda figure, care creează o nouă fereastră grafică și forțează toate funcțiile de trasare ulterioare să le afișeze acolo.

O a doua soluție pentru afișarea mai multor diagrame fără zone conflictuale ale axei este utilizarea funcției de subplot. Această funcție vă permite să împărțiți zona de ieșire a informațiilor grafice în mai multe subzone, în fiecare dintre care puteți afișa grafice ale diferitelor funcții.

De exemplu, pentru calculele efectuate anterior cu funcțiile sin și cos, trasați aceste două funcții în prima subzonă și trasați funcția exp(x) în a doua subzonă a aceleiași ferestre grafice (Fig. 3):

» subplot(1,2,1); plot(x,y,x,z)

» subplot(1,2,2); plot(x,w)

Orez. 3. Grafice ale funcțiilor y=sin(x), z=cos(x) și w=exp(x), reprezentate în două subzone ale unei ferestre grafice

Domeniile de schimbare a variabilelor pe axele de coordonate ale acestor subregiuni sunt independente unele de altele. Funcția subplot preia trei argumente numerice, primul dintre care este egal cu numărul de rânduri de subzone, al doilea este egal cu numărul de coloane de subzone, iar al treilea argument este numărul subzonei (numărul este numărat de-a lungul rândurile cu trecere la un nou rând atunci când sunt epuizate). Puteți dezactiva funcția de subplot cu comanda:

» subplot(1,1,1)

Dacă intervalul de modificări ale variabilelor de-a lungul uneia sau ambelor axe de coordonate este prea mare pentru un singur grafic, atunci puteți utiliza funcțiile pentru trasarea graficelor pe scale logaritmice. Funcțiile semilogx, semilogy și loglog sunt concepute în acest scop.

Puteți reprezenta graficul unei funcții în coordonate polare (Fig. 4) folosind funcția grafică polară.

» phi=0:0.01:2*pi; r=sin(3*phi);

Orez. 4. Graficul funcției r=sin(3*phi) în coordonate polare

Să luăm în considerare funcțiile suplimentare legate de gestionarea aspectului graficelor - setarea culorii și stilului liniilor, precum și plasarea diferitelor etichete în fereastra grafică. De exemplu, comenzi

» x=0:0,1:3; y=sin(x);

» plot(x,y,"r-",x,y, "ko")

vă permit să dați graficului aspectul unei linii roșii continue (Fig. 5), pe care sunt desenate cercuri negre în puncte calculate discrete. Aici, funcția plot trasează aceeași funcție de două ori, dar în două stiluri diferite. Primul dintre aceste stiluri este marcat cu „r-”, ceea ce înseamnă trasarea unei linii în roșu (litera r), iar trăsura înseamnă trasarea unei linii continue. Al doilea stil, etichetat „ko”, înseamnă trasarea unor cercuri (litera o) în negru (litera k) în locul punctelor calculate.

Orez. 5. Trasarea funcției y=sin(x) în două stiluri diferite

În general, graficul funcției (x1, y1, s1, x2, y2, s2, ...) vă permite să combinați mai multe grafice ale funcțiilor y1(x1), y2(x2), ... într-o fereastră grafică prin desenându-le cu stilurile s1, s2, ... etc.

Stilurile s1, s2,... sunt specificate ca un set de trei marcatori de caractere închise între ghilimele simple (apostrofe). Unul dintre acești marcatori specifică tipul de linie (Tabelul 3). Un alt marker stabilește culoarea (Tabelul 4). Ultimul marker specifică tipul de „puncte” care trebuie plasate (Tabelul 5). Este posibil să nu specificați toți cei trei marcatori. Apoi se folosesc marcatorii impliciti. Ordinea în care sunt specificați markerii nu este semnificativă, adică „r+-” și „-+r” produc același rezultat.

Tabelul 3. Marcatori care specifică tipul liniei

Tabelul 4 Marcatori care stabilesc culoarea liniei

Tabelul 5 Marcatori care specifică tipul punctului

Dacă puneți un marcator pe tipul de punct din linia de stil, dar nu puneți un marcator pe tipul de linie, atunci sunt afișate doar punctele calculate și nu sunt conectate printr-o linie continuă.


MATLAB stabilește limitele pe axa orizontală la valorile specificate de utilizator pentru variabila independentă. Pentru o variabilă dependentă de-a lungul axei verticale, MATLAB calculează independent intervalul de modificări ale valorilor funcției. Dacă trebuie să renunțați la această caracteristică de scalare atunci când trasați grafice în MATLAB, atunci trebuie să vă impuneți în mod explicit limitele asupra schimbării variabilelor de-a lungul axelor de coordonate. Acest lucru se face folosind funcția axis().

Pentru a pune diverse inscripții pe imaginea rezultată, utilizați funcțiile xlabel, ylabel, title și text. Funcția xlabel creează o etichetă pentru axa orizontală, funcția ylabel creează și o etichetă pentru axa verticală (și aceste etichete sunt orientate de-a lungul axelor de coordonate). Dacă doriți să plasați o inscripție într-un loc arbitrar din imagine, utilizați funcția text. Titlul general pentru grafic este creat de funcția de titlu. În plus, folosind grila la comandă, puteți aplica o grilă de măsurare întregii zone de trasare. De exemplu (Fig. 6):

» x=0:0,1:3; y=sin(x);

» plot(x,y,"r-",x,y,"ko")

»title("Funcția sin(x) grafic");

» xlabel("xcoordinate"); ylabel("sin(x)");

» text(2.1, 0.9, "\leftarrowsin(x)"); grilă activată

Funcția text plasează o inscripție pornind de la punctul cu coordonatele specificate de primele două argumente. În mod implicit, coordonatele sunt specificate în aceleași unități ca și coordonatele specificate pe axele orizontale și verticale. Caracterele de control speciale sunt introduse în text după caracterul \ (bară oblică inversă).

Grafică 3D

Fiecare punct din spațiu este caracterizat de trei coordonate. Un set de puncte aparținând unei anumite linii în spațiu trebuie specificat sub forma a trei vectori, primul dintre care conține primele coordonate ale acestor puncte, al doilea vector - a doua lor coordonată, al treilea vector - a treia coordonată. După care acești trei vectori pot fi alimentați la intrarea funcției plot3, care va proiecta linia tridimensională corespunzătoare pe plan și va construi imaginea rezultată (Fig. 7). Introduceți de la tastatură:

» t=0:pi/50:10*pi; x=sin(t);

» y=cos(t); plot3(x,y,t); grilă activată

Orez. 7. Graficul helix trasat folosind funcția plot3

Aceeași funcție plot3 poate fi folosită și pentru a reprezenta suprafețele din spațiu, dacă, desigur, desenați nu doar o linie, ci multe. Tastați de la tastatură:

» u=-2:0,1:2; v=-1:0,1:1;

» =meshgrid(u,v);

» z=exp(-X.^2-Y.^2);

Obțineți o imagine tridimensională a graficului funcției (Fig. 8).

Funcția plot3 trasează un grafic sub forma unui set de linii în spațiu, fiecare dintre acestea fiind o secțiune a unei suprafețe tridimensionale cu plane paralele cu planul yOz. Pe lângă această funcție simplă, sistemul MATLAB are o serie de funcții care vă permit să obțineți un realism mai mare în afișarea graficelor tridimensionale.

Orez. 8. Graficul unei suprafețe în spațiu, construit folosind funcția plot3


Scripturi și fișiere m.

Pentru operațiuni simple, modul interactiv este convenabil, dar dacă calculele trebuie efectuate în mod repetat sau trebuie implementați algoritmi complecși, atunci ar trebui utilizate fișierele m MATLAB (extensia fișierului constă dintr-o singură literă m). script-m-file (sau script) este un fișier text care conține instrucțiuni în MATLAB care urmează să fie executate în modul batch automat. Este mai convenabil să creați un astfel de fișier folosind editorul de sistem MATLAB. Este apelat din fereastra de comandă MATLAB cu comanda de meniu File/New/M-file (sau butonul din partea stângă a barei de instrumente, care arată o foaie de hârtie albă). Comenzile scrise în fișierele script vor fi executate dacă introduceți numele fișierului script (fără extensie) în linia de comandă. Variabilele definite în fereastra de comandă și variabilele definite în scripturi constituie un singur spațiu de lucru al sistemului MATLAB, iar variabilele definite în scripturi sunt globale, valorile lor vor înlocui valorile acelorași variabile care au fost utilizate înainte de a apela acest fișier script .

După crearea textului scriptului, acesta trebuie salvat pe disc. Calea către directorul cu fișierul trebuie să fie cunoscută de sistemul MATLAB. Comanda File/Set Path apelează caseta de dialog pentru vizualizarea căii directorului. Pentru a adăuga un director nou la lista de căi de acces, trebuie să executați comanda de meniu Cale/Adăugare la cale.