Illustriertes Tutorial zu MatLab. Eindimensionale MATLAB-Arrays Arrays mit unterschiedlichen Dimensionen matlab

MatLab präsentiert alle Daten als Arrays. Es ist sehr wichtig zu verstehen, wie man Arrays richtig verwendet. Ohne dies ist eine effektive Arbeit in MatLab unmöglich, insbesondere das Zeichnen von Diagrammen, das Lösen von Problemen der linearen Algebra, Datenverarbeitung, Statistik und vieles mehr. Dieser Unterabschnitt beschreibt Berechnungen mit Vektoren.

Ein Array ist eine geordnete, nummerierte Sammlung homogener Daten. Das Array muss einen Namen haben. Arrays unterscheiden sich in der Anzahl der Dimensionen bzw. Dimensionen: eindimensional, zweidimensional, mehrdimensional. Der Zugriff auf Elemente erfolgt über einen Index. In MatLab beginnt die Nummerierung von Array-Elementen bei eins. Das bedeutet, dass die Indizes größer oder gleich eins sein müssen.

Es ist wichtig zu verstehen, dass ein Vektor, Zeilenvektor oder eine Matrix ein mathematisches Objekt ist, und eindimensionale, zweidimensionale oder mehrdimensionale Arrays sind Möglichkeiten, diese Objekte in einem Computer zu speichern. Überall im Folgenden werden die Wörter Vektor und Matrix verwendet, wenn das Objekt selbst von größerem Interesse ist als die Art und Weise, wie es gespeichert wird. Ein Vektor kann in eine Spalte (Spaltenvektor) und in eine Zeile (Zeilenvektor) geschrieben werden. Spaltenvektoren und Zeilenvektoren werden oft einfach als Vektoren bezeichnet, wobei eine Unterscheidung in Fällen gemacht wird, in denen die Art und Weise, wie der Vektor in MatLab gespeichert wird, wichtig ist. Vektoren und Matrizen werden kursiv dargestellt und ihre entsprechenden Arrays in normaler Monospace-Schrift, zum Beispiel: "Vektor aber in Array a enthalten", "Matrix R in Array r schreiben".

Geben Sie Addition und Subtraktion von Vektoren ein

Beginnen wir die Arbeit mit Arrays mit einem einfachen Beispiel - der Berechnung der Summe von Vektoren:
, .

Verwenden Sie die Arrays a und b, um Vektoren zu speichern. Geben Sie das Array a in der Befehlszeile ein, verwenden Sie eckige Klammern und trennen Sie die Elemente des Vektors mit einem Semikolon:

» ein =
ein =
1.3000
5.4000
6.9000

Da der eingegebene Ausdruck nicht mit einem Semikolon abgeschlossen wird, hat das MatLab-Paket automatisch den Wert der Variablen a abgeleitet. Geben Sie nun den zweiten Vektor ein und unterdrücken Sie die Anzeige

» b = ;

Das +-Zeichen wird verwendet, um die Summe von Vektoren zu finden. Berechnen Sie die Summe, schreiben Sie das Ergebnis in Array c und geben Sie seine Elemente im Befehlsfenster aus:

» c \u003d a + b
c =
8.4000
8.9000
15.1000

Finden Sie die Dimension und Größe eines Arrays mithilfe der integrierten Funktionen ndims und size heraus:

» ndims(a)
ans =
2
» Größe(a)
ans =
3 1

Also der Vektor aber gespeichert in einem zweidimensionalen Array a mit der Dimension drei mal eins (Spaltenvektor aus drei Zeilen und einer Spalte). Ähnliche Operationen können für Arrays durchgeführt werden B Und C. Da Zahlen im MatLab-Paket als ein eins-zu-eins zweidimensionales Array dargestellt werden, wird beim Addieren von Vektoren das gleiche Pluszeichen wie beim Addieren von Zahlen verwendet.

Der Zeilenvektor wird in eckige Klammern eingetragen, die Elemente müssen jedoch durch Leerzeichen oder Kommas getrennt werden. Additions-, Subtraktions- und Berechnungsoperationen elementarer Funktionen von Zeilenvektoren werden auf die gleiche Weise wie bei Spaltenvektoren durchgeführt, was zu einem Zeilenvektor mit der gleichen Größe wie die ursprünglichen führt. Zum Beispiel:

» s1 =
s1 =
3 4 9 2
» s2 =
s1 =
5 3 3 2
» s3 = s1 + s2
s3 =
8 7 12 4

Bemerkung 1

Wenn die Größen der Vektoren, auf die addiert oder subtrahiert wird, nicht übereinstimmen, wird eine Fehlermeldung ausgegeben.

Um die Differenz von Vektoren zu finden, sollte natürlich das Minuszeichen verwendet werden, bei der Multiplikation ist die Situation etwas komplizierter.
Geben Sie zwei Zeilenvektoren ein:

» v1 = ;
» v2 = ;

Die .*-Operation (kein Leerzeichen zwischen Punkt und Sternchen einfügen!) ergibt eine elementweise Multiplikation von Vektoren gleicher Länge. Das Ergebnis ist ein Vektor mit Elementen, die gleich dem Produkt der entsprechenden Elemente der ursprünglichen Vektoren sind:

» u = v1.*v2
u =
14 -15 -24 9

Mit .^ wird elementweise potenziert:

» p = v1.^2
p=
4 9 16 1

Der Exponent kann ein Vektor sein, der dieselbe Länge hat wie der, der potenziert wird. In diesem Fall wird jedes Element des ersten Vektors gleich dem entsprechenden Element des zweiten Vektors potenziert:

» p = vl.^v2
P =
128.0000 -243.0000 0.0002 1.0000

Die Division der entsprechenden Elemente von Vektoren gleicher Länge erfolgt mit der Operation ./

» d = v1./v2
d=
0.2857 -0.6000 -0.6667 0.1111

Die umgekehrte elementweise Division (Division der Elemente des zweiten Vektors durch die entsprechenden Elemente des ersten) erfolgt mit der Operation.\

» dinv=vl.\v2
dinv=
3.5000 -1.6667 -1.5000 9.0000

So dient der Punkt in MatLab nicht nur zur Eingabe von Dezimalbrüchen, sondern auch zur Angabe, dass die Division oder Multiplikation von Arrays gleicher Größe elementweise erfolgen soll.
Elementweise Operationen umfassen auch Operationen mit einem Vektor und einer Zahl. Das Addieren eines Vektors und einer Zahl führt zu keiner Fehlermeldung. MatLab fügt jedem Element des Vektors eine Zahl hinzu. Dasselbe gilt für die Subtraktion:

» v = ;
» s = v + 1,2
s=
5.2000 6.2000 9.2000 11.2000
» r = 1,2 - v
r=
-2.8000 -4.8000 -6.8000 -8.8000
» r1 = v - 1,2
r1 = 2,8000 4,8000 6,8000 8,8000

Sie können einen Vektor sowohl rechts als auch links mit einer Zahl multiplizieren:

» v = ;
» p = v*2
p=.
8 12 16 20
» pi = 2*v
Pi =
8 12 16 20

Sie können mit dem /-Zeichen einen Vektor durch eine Zahl dividieren:

» r = v/2
p=
2 3 4 5

Der Versuch, eine Zahl durch einen Vektor zu teilen, führt zu einer Fehlermeldung:

» r = 2/v
??? Fehler bei der Verwendung von ==> /
Matrix Dimensionen müssen übereinstimmen.

Wenn Sie eine Zahl durch jedes Element eines Vektors dividieren und das Ergebnis in einen neuen Vektor schreiben möchten, sollten Sie die Operation ./ verwenden.

» w = ;
» d = 12./w
d=
3 6 2

Alle obigen Operationen gelten sowohl für Zeilenvektoren als auch für Spaltenvektoren.
Die Eigenschaft von MatLab, alle Daten als Arrays darzustellen, ist sehr praktisch. Angenommen, es ist beispielsweise erforderlich, den Wert der Sinusfunktion für alle Elemente des Vektors auf einmal zu berechnen von(die in Array c gespeichert ist) und schreibe das Ergebnis in einen Vektor D. Um einen Vektor zu bekommen D Es reicht aus, einen Zuweisungsoperator zu verwenden:

» d = Sünde(n)
d=
0.8546
0.5010
0.5712

Die in MatLab eingebauten elementaren Funktionen passen sich also der Form der Argumente an; Wenn das Argument ein Array ist, dann ist das Ergebnis der Funktion ein Array derselben Größe, aber mit Elementen, die gleich dem Wert der Funktion aus den entsprechenden Elementen des ursprünglichen Arrays sind. Bestätigen Sie dies mit einem weiteren Beispiel. Wenn Sie die Quadratwurzel der Vektorelemente finden müssen D mit einem Minuszeichen reicht es zu schreiben:

» quadrat(-d)
ans =
0 + 0,9244i
0 + 0,7078i
0 + 0,7558i

Der Zuweisungsoperator wurde nicht verwendet, daher speicherte das MatLab-Paket die Antwort in der Standardvariablen ans.

Um die Länge von Spaltenvektoren oder Zeilenvektoren zu bestimmen, verwenden Sie die eingebaute Funktion length:

» Länge(s1)
ans =
4

Mehrere Spaltenvektoren können zu einem kombiniert werden, indem Sie eckige Klammern verwenden und die ursprünglichen Spaltenvektoren mit einem Semikolon trennen:

» v1 = ;
» v2 = ;
»v=
v=
1
2
3
4
5

Die Verkettung von Zeilenvektoren verwendet ebenfalls eckige Klammern, aber verkettete Zeilenvektoren werden durch Leerzeichen oder Kommas getrennt:

» v1 = ;
» v2 = ;
»v=
v=
1 2 3 4 5

Arbeiten mit Vektorelementen

Auf die Elemente eines Spaltenvektors oder Zeilenvektors wird über einen in Klammern eingeschlossenen Index nach dem Namen des Arrays zugegriffen, in dem der Vektor gespeichert ist. Wenn die Laufzeitumgebungsvariablen ein Array v enthalten, das durch den Zeilenvektor definiert ist

» v = ;

dann um beispielsweise sein viertes Element auszugeben, use Indizierung:

» v(4)
ans =
8.2000

Das Erscheinen eines Array-Elements auf der linken Seite eines Zuweisungsoperators führt zu einer Änderung im Array

» v(2) = 555
v=
1.3000 555.0000 7.4000 8.2000 0.9000

Array-Elemente können zum Beispiel verwendet werden, um neue Arrays zu bilden

»u=
u=
7.4000
555.0000
1.3000

Um bestimmte Elemente eines Vektors in einer bestimmten Reihenfolge in einem anderen Vektor zu platzieren, verwenden Sie Vektorindizierung. Schreiben in ein Array w viertes, zweites und fünftes Element v wie folgt produziert:

» ind = ;
» w = v(ind)
w =
8.2000 555.0000 0.9000

MatLab bietet eine bequeme Möglichkeit, auf Blöcke aufeinanderfolgender Elemente eines Spaltenvektors oder Zeilenvektors zu verweisen. Dazu dient es Indizierung mit einem Doppelpunkt. Nehmen wir das im Array an w, entsprechend einem Zeilenvektor aus sieben Elementen, müssen die Elemente vom zweiten bis zum sechsten durch Nullen ersetzt werden. Durch die Indizierung mit einem Doppelpunkt können Sie das Problem einfach und visuell lösen:

» w = ;
» w(2:6) = 0;
» w
w =
0.1000 0 0 0 0 0 9.8000

Die Zuweisung w(2:6) = 0 entspricht der Befehlsfolge
w(2) = 0; w(3)=0; w(4)=0; w(5)=0; w(6)=0.
Die Doppelpunktindizierung ist praktisch, wenn Sie einen Teil einer großen Datenmenge einem neuen Array zuweisen:

» w - ;
»wl = w(3:5)
wl=
3.3000 5.1000 2.6000

Erstellen Sie ein Array w2, das die Elemente von w außer dem vierten enthält. In diesem Fall ist es praktisch, einen Doppelpunkt und eine Zeichenfolgenverkettung zu verwenden:

» w2 =
w2 =
0.1000 2.9000 3.3000 2.6000 7.1000 9.8000

Array-Elemente können in Ausdrücke eingeschlossen werden. Finden Sie zum Beispiel den geometrischen Mittelwert der Array-Elemente u, kann so gemacht werden:

» gm = (u(l)*u(2)*u(3))^(l/3)
gm=
17.4779

Natürlich ist diese Methode für lange Arrays nicht sehr praktisch. Um das geometrische Mittel zu finden, müssen Sie alle Elemente des Arrays in die Formel eingeben. Es gibt einige spezielle Funktionen in MatLab, die solche Berechnungen erleichtern.

Anwenden von Datenverarbeitungsfunktionen auf Vektoren

Die Multiplikation von Elementen eines Spaltenvektors oder Zeilenvektors erfolgt mit der Funktion prod:

» z = ;
» p = prod(z)
p=720

Die Summenfunktion dient dazu, die Elemente eines Vektors zu summieren. Mit seiner Hilfe lässt sich leicht das arithmetische Mittel der Elemente des Vektors z berechnen:

» Summe(z)/Länge(z)
ans =
3.5000

MatLab hat auch eine spezielle Funktion mean zur Berechnung des arithmetischen Mittels:

» bedeuten (z)
ans =
3.5000

Zum Bestimmen das Minimum und Maximum der Elemente des Vektors sind eingebaute Funktionen min und max:

» m1 = max(z)
m1 =
6
» m2 ​​= min(z)
m2 =
1

Oft ist es notwendig, nicht nur den Wert des minimalen oder maximalen Elements in einem Array zu kennen, sondern auch seinen Index (laufende Nummer). In diesem Fall müssen zB die eingebauten Funktionen min und max mit zwei Ausgabeargumenten verwendet werden

» = min(z)
m =
1
k =
3

Als Ergebnis wird der Variablen m der Wert des kleinsten Elements des Arrays z zugewiesen, und die Nummer des kleinsten Elements wird in die Variable k eingegeben.
Um Informationen über die verschiedenen Verwendungsmöglichkeiten von Funktionen zu erhalten, geben Sie in der Befehlszeile help gefolgt vom Namen der Funktion ein. MatLab zeigt im Befehlsfenster alle Möglichkeiten zum Aufruf der Funktion mit zusätzlichen Erläuterungen an.
Zu den Grundfunktionen für die Arbeit mit Vektoren gehört die Funktion, einen Vektor in aufsteigender Reihenfolge seiner Elemente zu sortieren, sort.

» r = ;
» R = sortieren(r)
R=

Sie können einen Vektor mit demselben in absteigender Reihenfolge sortieren Sortierfunktion:

» R1 = -sortieren(-r)
R1 =
9.4000 7.1000 1.3000 0.8000 -2.3000 -5.2000

Die Anordnung der Elemente in aufsteigender Reihenfolge ihrer Module erfolgt mit der Funktion abs:

» R2 = sortieren(abs(r))
R2 =
0.8000 1.3000 2.3000 5.2000 7.1000 9.4000

Der Aufruf von sort mit zwei Ausgabeargumenten führt zu einem Array von Indizes, die mit den Elementen des geordneten und des ursprünglichen Arrays übereinstimmen:

» = sortieren(r)
rs=
-5.2000 -2.3000 0.8000 1.3000 7.1000 9.4000
ind =
3 2 5 6 4 1

THEMA 5. SOFTWARE-IMPLEMENTIERUNG VON MATHEMATISCHEN MODELLEN
Moderne mathematische Modelle sind komplex und es ist notwendig, einen Computer zu verwenden, um Berechnungen an ihnen durchzuführen. Daher sollten die im vorherigen Kapitel angegebenen Algorithmen oder Berechnungsmethoden in eine Programmiersprache übersetzt werden. Derzeit sind Sprachen wie FORTRAN, SI, PASCAL für die wissenschaftliche Entwicklung beliebt. Aber für eine Vielzahl von Benutzern gelten diese Sprachen als komplex und daher haben sich Systeme wie EXCEL, MATLAB, MATHCAD, MAPLE usw. verbreitet, die für Fachleute auf dem Fachgebiet besser verständlich sind. Wir konzentrieren uns auf das MATLAB-System, das in den Laborarbeiten dieser Schulung verwendet wird.
^ 5.1 Kurzbeschreibung von MATLAB
Das MATLAB-System (kurz für MATrix LABoratory - MATRIX LABORATORY) wurde von The MathWorks, Inc. entwickelt. (USA, Neytik, Massachusetts) und ist ein interaktives System zur Durchführung technischer und wissenschaftlicher Berechnungen, das sich auf die Arbeit mit Datenarrays konzentriert und den Zugriff auf in Fortran, C ++ geschriebene Programme ermöglicht. Das System unterstützt Operationen mit Vektoren, Matrizen und Datenarrays, unterstützt das Arbeiten mit algebraischen Polynomen, das Lösen von Differential- und Differenzgleichungen, das Lösen von nichtlinearen Gleichungen und Optimierungsproblemen usw. sowie das Erstellen verschiedener Arten von Diagrammen, dreidimensionalen Oberflächen und Niveaulinien .

Die Betriebsumgebung des MATLAB-Systems umfasst ein Befehlsfenster, eine Symbolleiste, Subsysteme zum Anzeigen des Arbeitsbereichs und Zugriffspfade, einen M-File-Editor/Debugger usw. Der Benutzer kann mit dem M-File-Editor selbst Programme schreiben, die formatiert sind als M-Dateien (M-Dateien).Dateien haben die Erweiterung .m). Jedes Programm muss erstellt, bearbeitet (d. h. korrigiert) und ausgeführt (d. h. berechnet) werden.

Zum Erstellen eines neuen Programms im Menü ^Datei Option ausgewählt ist Neu und dann M-Datei; Daraufhin öffnet sich das Fenster des M-Datei-Editors. Der Text des Programms wird in dieses Fenster eingegeben. Nachdem dieser Text eingegeben wurde, sollten Sie das Programm unter einem bestimmten Namen speichern (dafür im Menü Datei Option ausgewählt ist Speichern als).

Um das Programm auszuführen, gehen Sie zum Befehlsfenster und in die Befehlszeile, die auf dem Bildschirm durch die Symbole angezeigt wird >> Geben Sie den Namen der M-Datei ein.

Um eine bereits erstellte M-Datei zu bearbeiten, müssen Sie vom Befehlsfenster zum Editorfenster mit dem Programmtext zurückkehren.

^

Bilden von Arrays im MATLAB-System

Im MATLAB-System sind Arrays (Matrizen und Vektoren) das Hauptobjekt, für das Sie die Dimensionen nicht explizit angeben müssen. Um ein numerisches Array zu bilden, werden Zahlen in eckigen Klammern angegeben, das Trennzeichen zwischen Zahlen sind Leerzeichen. Das Symbol wird verwendet, um Reihen von Matrizen zu trennen ; . Beispiel.

Matrix A = von 3 Zeilen und 2 Spalten wird geschrieben als: A = .

Das Symbol wird verwendet, um Arrays zu bilden : . Beispiel.

Vektor festlegen VON, bestehend aus Zahlen von 0 bis 0,5 mit einer Schrittweite von 0,1: C = 0: 0,1: 0,5. Auf dem Bildschirm erscheint folgende Zeile:

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

Wenn der Schritt 1 ist, dann ist er nicht eingestellt, um beispielsweise den Vektor B einzustellen, der aus den Zahlen 3, 4, 5, 6, 7 besteht, können Sie schreiben: B = 3: 7. Dann wird der Bildschirm angezeigt :

B = 3 4 5 6 7
Symbol : Wird auch verwendet, um Unterblöcke eines Arrays zuzuweisen. Beispiel. Matrix A auswählen = erste Spalte: A ( : , 1).
Arrays können kombiniert werden. Lassen x= 1, 2, 3, 4 und j= 5, 6, 7, 8. Dann das Programmfragment zum Bilden des kombinierten Arrays z wird folgendes sein:

x = 1:4;

j = 5:8;

z = [x; j]

erscheint auf dem Bildschirm: z =

Rechenoperationen. Es werden arithmetische Additionsoperatoren verwendet + , Subtraktion , Multiplikation * , Einteilung / , Potenzierung ^.

p1) . ′ elementweise Transposition (Zeilen werden durch Spalten ersetzt, für komplexe

Matrizen komplexe Konjugation wird nicht durchgeführt).

Sei zum Beispiel A = , dann A . ′ = .

p1) .^ elementweise Potenzierung, A . ^B.

Sei zum Beispiel A = , dann A . ^2 =
.

p1) ′ - Matrixtransposition. Bei komplexen Matrizen wird die Transposition ergänzt durch

komplexe Konjugation.

Sei zum Beispiel A = , dann A′ =
.

p1) ^ Exponentiation einer Matrix, A^p (nur für quadratische Matrizen und ganze Zahlen p). Lassen Sie zum Beispiel die Matrix A =
. Dann A^2 =

p2) .* elementweise Multiplikation zweier Arrays gleicher Größe.
Sei zum Beispiel A =
B=
, dann ein . *B =

Alle Elemente des Arrays werden mit einem Skalar multipliziert, zum Beispiel sei A = . Berechnen Sie F = 3*A. Wir erhalten F =
.
p2) * Matrixmultiplikation, A*B.

Sei zum Beispiel A = B = . Dann A * B =
.
p2) ./ elementweise Aufteilung von Arrays. Die Arrays müssen dieselbe Größe haben oder das Array ist durch einen Skalar teilbar. Sei zum Beispiel A = . DannB ./ 3 = .
p3) + Ergänzung u - Subtraktion für Skalare, Vektoren und Matrizen.

Sei zum Beispiel A =
und B=
. Dann ein - B =
.

PS: Operationen wie p1 werden vor p2 und p2 vor p3 ausgeführt. Innerhalb jeder Ebene ist die Priorität gleich, Berechnungen werden von links nach rechts durchgeführt. Klammern können verwendet werden, um die erforderliche Reihenfolge der Operationen anzugeben.

^

Einige Sonderzeichen

() - Anzeige der Arbeitsfolge. Beispiele:

a) Setze ein Array x von 0 bis 3 in Schritten von 0,1 und als Spalte dargestellt: x=(0:0,5:2)′

b) berechnen
: j=(x+0.5)/2
- Bildung von Arrays (siehe Abschnitt „Bildung von Arrays im MATLAB-System“)
% - Kommentare beginnen mit diesem Zeichen. Sie können in Form von separaten Zeilen vorliegen oder nach einem der Befehle folgen.
; dieses Zeichen wird verwendet: a) um die Anzeige von Berechnungsergebnissen zu unterdrücken; b) Reihen von Matrizen zu trennen.
: - Dieses Zeichen wird zum Bilden von Vektoren sowie zum Auswählen von Zeilen oder Spalten eines Arrays verwendet.
Pi - Zahl π = 3,141592653897
Ans - das Ergebnis der Operation, falls die Ausgabevariable nicht angegeben ist (in diesem Fall verwendet MATLAB die Variable Ans).
inf - Dieses Symbol erscheint auf dem Bildschirm, wenn das Bitraster während der Berechnung in einer der Zellen überläuft („tatsächlich“ ∞). Zum Beispiel bei einer Division durch Null.
NaN - eine spezielle Variable, um einen undefinierten Wert anzugeben, das Ergebnis von Operationen wie: 0/0, inf/inf usw.

^

Elementare mathematische Funktionen

Abs- Absolutwert, zum Beispiel let x= [-2 4 –8,5], dann abs( x) = .

Sünde, cos, tan usw. sind trigonometrische Funktionen, Argumente (Winkel) werden im Bogenmaß angegeben. Zum Beispiel, T= cos( x);

exp- Exponentialfunktion ( e x), zum Beispiel: j=exp( x);

Protokoll- natürlicher Logarithmus, zum Beispiel: C=log( D);

log10- Dezimallogarithmus, zum Beispiel, z= log10 ( j);

Quadrat- Quadratwurzel, zum Beispiel: B= quadrat( ein);
Einige Grafikfunktionen
Zahlen- Funktion zum Öffnen des Grafikfensters auf dem Bildschirm
xlabel, ylabel- Funktionen zur Benennung der x- und y-Achse
Titel- Funktion, um den Titel über dem Diagramm zu platzieren
Plot(x,y)- Funktion zum Erstellen eines zweidimensionalen Abhängigkeitsgraphen y = f(x) in kartesischen Koordinaten (Markertyp, Farbe und Linientyp auf der Karte werden automatisch ausgewählt);
plot(x1, y1, LineSpec1, x2, y2, LineSpec2,...)- eine Funktion zum Aufbau mehrerer Abhängigkeiten zum Grafikfenster mit Zuweisung einer Markierung, Farbe und Linienart für jede Linie.
polar(x,y)– Funktion für Gebäudeabhängigkeit y = f(x) in Polarkoordinaten.
Maschengitter(x, y)- Die Funktion definiert ein rechteckiges Gitter auf der Ebene ( x, j) als zweidimensionale Arrays, die durch die gegebenen Vektoren definiert sind x Und j.

Beispiel: [ X, Y] = Maschengitter (1:0,5:2,10:14). Als Ergebnis erhalten wir:

x = 1 1.5 2 Y = 10 10 10

1 1.5 2 11 11 11

1 1.5 2 12 12 12

1 1.5 2 13 13 13

1 1.5 2 14 14 14
Netz(x,y,z)- Die Funktion zeigt eine dreidimensionale Gitterbeschränkungsfläche an z = f(x,y).

surfen (x,y,z)- Die Funktion zeigt eine solide Gitteroberfläche der Abhängigkeit an z = f(x,y).

^

Online-Zugriff auf Hilfeinformationen und Dokumentation


Es gibt mehrere Möglichkeiten, sich über die Funktionen des MATLAB-Systems zu informieren.

1 . Befehl Hilfe Funktionsname. Direkt in das MATLAB-Befehlsfenster eingegeben. Zum Beispiel: Hilfe bei der Sünde.

2 . Speisekarte HILFE Befehlsfenster. Dieses Menü bietet vollständige Hilfeinformationen zum MATLAB-System und enthält mehr Details und Beispiele als der Befehl help. Der Benutzer kann die vollständige Dokumentation zum MATLAB-System lesen (Untermenü Inhalt) oder eine Liste aller Funktionen in alphabetischer Reihenfolge öffnen (Untermenü Index) oder nach Namen suchen (Untermenü Suchen). Es ist auch möglich, eine Liste von Funktionen nach Kategorie (MATLAB Functions Listed by Category), eine Liste von Beispielen nach Kategorie (Index of Documentation Examples) und andere Funktionen zu öffnen.
^

Beispiele:

a) Finden Sie Funktionen der linearen Algebra. Öffnen Sie eine Reihe von Fenstern:

HILFE – MATLAB-Hilfe – Suchen von Funktionen und Eigenschaften – Matlab-Funktionen nach Kategorie aufgelistet – Mathematik – Lineare Algebra

b) Grafikfunktionen zum Plotten finden:

HILFE - MATLAB-Hilfe - Suchen nach Funktionen und Eigenschaften - Matlab-Funktionen nach Kategorie aufgelistet - Grafiken - Grundlegende Diagramme und Diagramme.
3 . Eine andere Möglichkeit, Informationen über das MATLAB-System zu erhalten, ist der Zugriff auf den MathWorks-Webserver.

^

5.2 Probleme der linearen Algebra, Funktionsauswertung und Darstellung

Das MATLAB-System konzentriert sich auf die Arbeit mit Arrays und die Hauptprobleme der linearen Algebra werden in diesem System in einer kostengünstigen Form dargestellt. Im Folgenden werden einige typische Probleme der linearen Algebra und deren Softwareimplementierung betrachtet.

Beispiel 1. Vektor multiplizieren
pro Vektor
.

Wie Sie wissen, muss beim Multiplizieren von Vektoren der erste Vektor eine Zeile und der zweite ein Spaltenvektor sein, und sie müssen dieselben Abmessungen haben. Daher wird die Lösung in das Formular geschrieben
ein =

B =

C = a*b
Oder
ein =

B = ′

C = a*b
% Antworten: von = 12.
PS: Wenn Sie aufschreiben B= , dann wird die Berechnung nicht durchgeführt, weil B wird als Zeilenvektor interpretiert.
Beispiel2. Matrix multiplizieren
zu Matrix
.

Für die korrekte Ausführung dieser Operation muss die Anzahl der Elemente in den Zeilen der Matrix A gleich der Anzahl der Elemente in den Spalten der Matrix B sein. Das Programm wird wie folgt geschrieben:
ein = ;

B = ;

Der Bildschirm zeigt Folgendes an:

Beispiel3. Löse ein lineares Gleichungssystem

In Matrixform hat dieses System die Form: A*x = B, wobei:

Dann wird die Lösung geschrieben als:
^A= % setzen wir die Koeffizientenmatrix auf unbekannt

B= % freigesetzter Mitgliedervektor

X=A\B% Systemlösung (Antwort: x 1 =5, x 2 = 3, x 3 = 2)
Symbol \ verwendet, um lineare Gleichungssysteme zu lösen AX=B.
Beispiel 4. Für Matrix ABER(siehe Beispiel 3) finde die Determinante und inverse Matrix ( EIN-1) und zähle das Produkt E=A EIN-ein . Lösung:
EIN=

C = det(A) %det - Die Funktion berechnet die Determinante der gegebenen Matrix

D = inv(A) %inv - die Funktion berechnet die Matrix invers zur gegebenen

Antwort: C \u003d -6; E = 1,0000 0 0

0.0000 1.0000 0.0000

0.0000 -0.0000 1.0000

In mathematischen Modellen ist es oft notwendig, die Werte von Ausdrücken wie zu berechnen y = f(x) bei unterschiedlichen Werten x und diese Abhängigkeiten dann grafisch darstellen. Im MATLAB-System werden solche Probleme einfach gelöst. Nachfolgend finden Sie Beispiele.
^

Beispiel 5. In der Pause x= Werte berechnen:

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

für gleichmäßig verteilte 31 Punkte. Bauen Sie Abhängigkeiten auf y = f(x) Und z = f(x) auf einem Graphen (kartesische Koordinaten). Werte x, y, z nicht auf dem Bildschirm anzeigen.

Die Lösung wird geschrieben als:
x = (0: 0,1: 3)"; Werte einstellen x im Bereich von 0 bis 3 mit einer Schrittweite von 0,1

y = exp(x); Vektorwerte berechnen bei

z = 1,0 + x + (x.^2)/2 + (x.^3)/6 - (x.^4)/24; Vektorwerte berechnen z

Abbildung Öffnen Sie das Grafikfenster

plot(x, y, "-g", x, z, "-k ") zeichnet die Funktion y = cos(x)

xlabel(" coordinata x ") gibt den Namen für die Achse an x

ylabel(" coordinata y ') gibt der Achse einen Namen j

title("y=exp(x)"); Geben Sie der Grafik einen Titel
Beispiel 6. In der Pause x = Werte berechnen y=0,5 ln (x+1) für gleichmäßig verteilte 101 Punkte. Abhängigkeit aufbauen y = f(x) in Polarkoordinaten.
x= (0:pi/10:10*pi)';

j = 0,5*log( x + 1);

Polar( x, j); Erstellen Sie einen Funktionsgraphen y= 0,5ln(x+1)
Mit MATLAB können Sie auf einfache Weise dreidimensionale Diagramme erstellen, d.h. Typ Abhängigkeiten z = f(x,y) wie im folgenden Beispiel gezeigt.

Beispiel 7. Oberfläche bauen
bei x= -1 bis +1 in Schritten von 0,2 und at j= -1 bis +1 in Schritten von 0,2.

Die Lösung des Problems:
[x, j]=Netzgitter([-1:0.2:1]);

z=x.*exp(- x.^2 - j.^2);

Gittergewebe( x, y, z);

Surfen( x, y, z);

PS: Die grafischen Features sind oben im Abschnitt „Einige grafische Features“ beschrieben.

^ 5.3. Lösen nichtlinearer algebraischer Gleichungen und Funktionsnäherung
Das MATLAB-System macht es viel einfacher als in bekannten Programmiersprachen, Systeme nichtlinearer (algebraischer Gleichungen) zu lösen und die Approximation tabellarischer Funktionen durchzuführen.

Beispiel 8 löse die Gleichung
mit anfänglicher Annäherung x 0 = 5 und Anzeige von Iterationen auf dem Bildschirm:

Die Lösung des Problems:
Funktion ex1

options = optimset("Display","iter");

fzero(@f, 5, Optionen)

Funktion y = f(x)

y = x.^3-2*x-5;
PS: Die ersten 3 Anweisungen sind das Hauptprogramm, die letzten 2 Anweisungen sind die Abhängigkeitsfunktion
bei unterschiedlichen Werten x.

Nachfolgend finden Sie kurze Beschreibungen der MATLAB-Funktionen, die zur Lösung des Problems verwendet wurden.
fzero (@Funktionsname, x 0 , Optionen)– Suche nach der Nullstelle einer Funktion einer Variablen. Die Lösung wird in der Nähe eines gegebenen Punktes gesucht x 0 indem Sie das Intervall finden, in dem die Funktion das Vorzeichen ändert. Wenn kein solches Intervall gefunden wird, wird zurückgegeben inf oder NaN. Parameter Optionen kann die Anzeige von Zwischenergebnissen (Iterationen) auf dem Bildschirm und die Rechengenauigkeit einstellen.
optimiert("Display", "iter") ist eine Funktion zum Anzeigen von Iterationen auf dem Bildschirm.
- gibt die gesuchte Lösung und den Wert der dieser Lösung entsprechenden Funktion aus.
Weitere Informationen zu den verwendeten Funktionen finden Sie unter HELP MATLAB.
Beispiel 9. Lösen Sie das Gleichungssystem:

(5.1)

mit ersten Vermutungen x 0 = 2,5; j 0 = 0,5 und Anzeigen von Iterationen auf dem Bildschirm.

Um die rechten Teile der Gleichungen zu lösen, übertragen wir sie auf die linken Teile

, (5.2)

sodass auf der rechten Seite Nullen stehen. Dann suchen wir das Minimum der Funktion, die aus der Summe dieser Gleichungen zum Quadrat besteht: . Da die Summe der Quadrate immer eine positive Zahl ist, kann das Minimum der Funktion nicht kleiner als 0 sein und den Wert erreichen F= 0 bedeutet, dass die Werte x Und j entsprechend diesem Wert erreichen die gewünschten Lösungen des Systems (5.2).

Die Lösung des Problems:
Funktion ex2

options = optimset("display","iter");

Fminsearch (@eq1, , Optionen)

Funktion f = eq1(x)

f = (x(1).^2 + x(2).^2 - 9).^2 + (x(1) + sin(x(2)) - 3).^2
PS: Es gibt eine Entsprechung zwischen den Unbekannten in Gleichungen (5.1) und Programmvariablen: x = x(1), j = x(2).

Zur Lösung des Problems verwendete MATLAB-Funktion:
fminsearch (@Funktionsname, [ erste Annäherungen von Variablen ], Optionen) ist eine Suchfunktion für den Minimalwert einer Funktion vieler Variablen.
^ Funktionsnäherung

Die Approximation einer tabellarisch gegebenen Funktion durch ein Polynom n-ten Grades erfolgt nach der Methode der kleinsten Quadrate (siehe Abschnitt 2.4).
Beispiel 10. Führen Sie eine Approximation einer punktweise gegebenen Funktion durch x= 0 bis 0,7 in Schritten von 0,1, j= 0,22 0,428 0,604 0,74 0,84 0,91 0,95 0,98 Polynom 2. Grades. Konstruieren Sie Graphen einer punktweise gegebenen Funktion und eines Näherungspolynoms:
Die Lösung des Problems:
x=(0:0.1:0.7)" %-Array x besteht aus 8 Zahlen

j=" %-Array j besteht aus 8 Zahlen

p=polyfit(x,y,2)

Tabelle=

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

xlabel("Koordinate x")

ylabel("Koordinate y')

Titel( "Grafiken y(x), f(x)")
PS: Anzahl der Zahlen in Arrays x Und j muss das Selbe sein; Tisch– Name eines aus 4 Vektoren gebildeten Arrays: x, y, f Und ( y-f). Insgesamt gibt es 8 4 = 32 Zahlen in diesem Array. Reihe F enthält auch 8 Zahlen
polyfit (x, y, Polynomgrad) - die Funktion findet die Koeffizienten ein ich Polynom p(x) Grad n, die die gegebene Funktion annähert y(x):
p(x) = a 1 x n + a 2 x n - 1 + … + a n x + a n+1
polyval(p, x) - Funktion zur Berechnung von Polynomwerten P an vorgegebenen Punkten x.

^ 5.4 Gewöhnliche Differentialgleichungen lösen und Integrale berechnen
Im MATLAB-System werden unter Verwendung von Standardfunktionen gewöhnliche Differentialgleichungen (das Cauchy-Problem) leicht gelöst und bestimmte Integrale berechnet.

Beispiel 11. Lösen Sie die Differentialgleichung mit der Standardfunktion ode45:

(5.3)
im Intervall x= 0 bis 30 an j(0)= 2 für ein = 0,24.

Stellen wir Gleichung (5.3) vorläufig durch das Gleichungssystem dar:

(5.4)

bei Anfangswerten: j 1 (0) = 0; j 2 (0) = 2, um die unabhängige Variable von der rechten Seite von (5.3) auszuschließen x.
Die Lösung des Problems.
Funktion ex_eqdif

Ode45(@dif1,,);

Funktion dy=dif1(t,y)

% pravie chasti difderensial. Gleichung

dy(2)=cos(y(1))-sin(y(1))-alfa*y(2);
PS: Die Funktion dif1(t,y) definiert die rechten Teile der Gleichungen (5.4). Es besteht eine Entsprechung zwischen den Unbekannten in Gleichungen (5.4) und Programmvariablen: x = j(1), j = j(2).
ode45 (@ Funktionsname , [ Integrationsintervall ], [ Anfangsbedingungen ] ) - Funktion dient zur Lösung gewöhnlicher nichtstarrer Differentialgleichungen nach dem Runge-Kutta-Verfahren 4. Ordnung.
Nullen (m,n)- Die Funktion bildet ein Array von Nullen der Größe
(wo m ist die Anzahl der Gleichungen, n=1).
global– Operator deklariert globale Variablen. Wenn Sie anstelle der Variablen alfa auf der rechten Seite eine Zahl einsetzen, müssen Sie keine globale Variable eingeben.
Beispiel 12. Lösen Sie das Lotka-Volterra-Gleichungssystem mit der Funktion ode23:

(5.5)
bei x=0 bis 10 und Anfangsbedingungen: j 1 (0) = 1; j 2 (0) = 1. Parameter = 0,01 und = 0,02 als globale Werte gesetzt. Plot-Funktionen j 1 (x), y 2 (x)).
Die Lösung des Problems.
Funktion Lotka_Volterra

globale Alpha-Beta

Alpha = 0,01; Beta = 0,02;

Ode23(@lotka,,);

plot(t,y); % Plotten j 1 (T) Und j 2 (T)

Funktion dy=lotka(t,y)

globale Alpha-Beta

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

dy(2)=-y(2)+beta*y(1)*y(2);
PS: Die Funktion lotka(t,y) definiert die rechten Teile von Gleichungen (5.5). Es besteht eine Entsprechung zwischen den Unbekannten in Gleichungen (5.5) und Programmvariablen: j 1 = j(1), j 2 = j(2).
ode23 (@ Funktionsname , [ Integrationsintervall ], [ Anfangsbedingungen ] ) - Funktion wird verwendet, um gewöhnliche nichtstarre Differentialgleichungen mit der Runge-Kutta-Methode niedriger Ordnung zu lösen.
^ Berechnung von Integralen
Beispiel 13. Integral berechnen:

(5.6)
nach der Simpson-Methode (Standardquadratfunktion) und den Integranden im Intervall plotten x= mit einem Schritt von 0,1.

Die Lösung des Problems:
Funktion int1

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

Plot(x,y); % Plotten y(x)

Q = Quad(@myfun,0,2)

Funktion y = myfun(x)

y = 1./(x.^3-2*x-5);
PS: Der Integrand wird in der Funktion myfun(x) für verschiedene Werte berechnet x
quad(@name_of_integral_function, a, b)- Numerische Berechnung des Integrals nach der adaptiven Simpson-Methode, wobei: a und b die Integrationsgrenzen sind.

Beispiel 14. Integral berechnen:

(5.7)
nach der Simpson-Methode (Standard-Quad-Funktion) mit j= 10 o (Grad in Radiant umwandeln). Für die Menge j Verwenden Sie eine globale Variable im Programm.
Die Lösung des Problems.
Funktion int2

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

Funktion y = myfun(x)

y=1./sqrt(1-(sin(teta)*sin(x)).^2);
PS: Größe j im Programm entspricht einer globalen Variablen Theta. Der Wert des Integrals wird in der Variablen Q erhalten.

^

Testfragen

1. Was ist ein Skalar, ein Vektor, eine Matrix? Nennen Sie Definitionen und Beispiele.
2. Welche Aktionen können mit Vektoren und Matrizen durchgeführt werden? Nenne Beispiele.
3. Wie werden Arrays in MATLAB gebildet: eindimensional und zweidimensional? Nenne Beispiele.
4. Definieren Sie einen transponierten Vektor und eine transponierte Matrix. Wie werden sie in MATLAB gebildet? Nenne Beispiele.
5. Definieren Sie die Determinante und die inverse Matrix. Wie werden sie in MATLAB berechnet? Nenne Beispiele.
6. Elementare Funktionen und ihr Schreiben in MATLAB. Nenne Beispiele.
7. Führen Sie die folgenden Schritte manuell (ohne Hilfe eines Computers) durch:

Vektor P mit Vektor Y multiplizieren;

Matrix G mit Vektor Y multiplizieren;

Matrix G mit Matrix F multiplizieren,


8. Schreiben Sie ein MATLAB-Programm, um die in Frage 7 angegebenen Aktionen auszuführen.

9. Gegeben eine Matrix
. Bestimmen Sie ohne Hilfe eines Computers die Inverse einer Matrix - EIN -1 .

10. Finden Sie ohne Hilfe eines Computers die Determinante der Matrix
.

11. Gegeben ein System linearer Gleichungen:
(1P)

oder in Matrixform Cּ x= B.

Schreiben Sie ein Programm zur Lösung dieses Systems in MATLAB mit der Definition der Determinante der Matrix VON.
12. Verwenden Sie MATLAB, um eine zu einer Matrix inverse Matrix zu finden VON(aus Frage 11). Wie man eine Matrix verwendet VON-1 unbekannt finden x 1 , x 2 , x 3 , x 4 aus dem System (1P)?
13. Lösen Sie ein Gleichungssystem mit MATLAB
(2P)

Finden Sie die Fehlerursache, wenn das System (2P) nicht gelöst ist. Bestimmen Sie die Determinante der Koeffizientenmatrix für Unbekannte.
14. Schreiben Sie für die Bedingungen von Frage 7 ein Programm in MATLAB:

Multiplikationen der 1. Zeile der Matrix G mit der 2. Spalte der Matrix F;

Multiplikationen der 2. Zeile der Matrix F mit der 2. Spalte der Matrix G.
15. Verwendung von MATLAB für die Abhängigkeit des Anhaltewegs ^S(m) als Funktion der Geschwindigkeit v F(Frau):

wobei die Geschwindigkeit im Intervall angegeben ist v F= 10…40 (Geschwindigkeitsstufe ist gleich 2 m/s), Abhängigkeitsgraphen erstellen: S = f(V F ) Und v F = φ(S).
16. Lösen Sie grafisch (unter Verwendung von MATLAB) die Gleichung:

(3P)

im Intervall x= 0…10π mit einem Schritt von 0,1π. Wie viele Wurzeln hat Gleichung (3P)?
17. Konstruieren Sie mit MATLAB in kartesischen Koordinaten einen Kreis, der an einem Punkt zentriert ist x = 1, j= 1 und Radius gleich 1. Entlang der Achse x Schritt wählen Δ x= 0,05.
18. Erstellen Sie mit MATLAB eine Abhängigkeit y = log(x + 1) in kartesischen Koordinaten im Intervall x= 0…4π mit einem Schritt von 0,2π, sowie Abhängigkeit r = log(φ + 1) in Polarkoordinaten im gleichen Intervall und mit dem gleichen Schritt entlang φ .
19. Verwenden von MATLAB auf einem Diagramm in Polarkoordinaten mit einem Schritt
= 0,1 im Intervall zum Aufbau von Abhängigkeiten (Spiralen mit 3 Windungen):
aber) R = 0,4φ + 0,03φ 2 (4P)

b) Abhängigkeit (4P), aber in die entgegengesetzte Richtung verdreht.
20. Erstellen Sie mit MATLAB eine dreidimensionale Oberfläche:

im Gebiet [ x, y] = [-1:0,1:1] [-2:0,1:2].
21. Erstellen Sie mit MATLAB eine dreidimensionale Oberfläche:

im Gebiet [ x, y] = .
22. Verwendung von MATLAB mit dem Programm fnull
x 0 = 2 km; x F= 8km.
27. Eine tabellarische Abhängigkeit des Kraftstoffverbrauchs (für einen Pkw) von der Betriebszeit ist angegeben.

polyfit, polyval) Finden Sie die approximative Abhängigkeit G = f(t) Polynom 3. Grades und bestimmen den mittleren Approximationsfehler.
28. Eine tabellarische Abhängigkeit der Kosten eines Autos von der Betriebszeit ist angegeben.


T(Jahr)

0

1

2

3

5

7

10

C ($)

11500

8700

7200

6000

5500

5000

4600

Mit dem MATLAB-Paket (functions polyfit, polyval) approximative Abhängigkeiten finden C = f(t) Polynome 2. und 3. Grades und vergleichen die maximalen Approximationsfehler.
29. Verwendung von MATLAB (Funktion ode45

(5p)
im Intervall x= 0…2 unter Anfangsbedingungen: x 0 = 0, j 0 = 1. Zunächst wird die Gleichung (5P) in ein System von 2 Differentialgleichungen transformiert.
30. Verwendung von MATLAB (Funktion ode23) löse die gewöhnliche Differentialgleichung:

(6p)
im Intervall x= 0…5 unter Anfangsbedingungen: x 0 = 0, j 0 = 2. Vorläufig wird die Gleichung (6P) in ein System von 2 Differentialgleichungen transformiert.
31. Verwendung von MATLAB (Funktion ode45

im Intervall T= 0…8π unter Anfangsbedingungen: T =0; x 0 = 1; j 0 = 1.
32. Verwendung von MATLAB (Funktion ode45) das System gewöhnlicher Differentialgleichungen lösen:

im Intervall = 0,3…4 unter Anfangsbedingungen: = 0,3; x 0 = 1; j 0 = 0.
33. Verwendung von MATLAB (Funktion ode23) löse die gewöhnliche Differentialgleichung:

(7p)

im Intervall T= 0…3s unter Anfangsbedingungen: T = 0, R 0 = 0,
und ω = 2π (rad/s). Zunächst wird die Gleichung (7P) in ein System von Differentialgleichungen erster Ordnung transformiert.

Arrays sind die Hauptobjekte im System MATLAB : nur in den Versionen 4.xeindimensionale Arrays- Vektoren - und zweidimensionale Arrays - Matrizen; in Version 5.0 ist es möglich, mehrdimensionale Arrays - Tensoren - zu verwenden. Das Folgende beschreibt die Funktionen zum Bilden von Arrays und Matrizen, Operationen auf Matrizen, spezielle Matrizen innerhalb des Systems MATLAB-Versionen 4.x.

Bildung von Arrays eines speziellen Typs

  • NULLEN - Bildung einer Reihe von Nullen
  • EINSEN - Bildung einer Reihe von Einheiten
  • AUGE - Bildung einer einzigen Matrix
  • RAND - Bildung einer Anordnung von Elementen, die nach einem einheitlichen Gesetz verteilt sind
  • RANDN - Bildung einer Reihe von Elementen, die gemäß dem normalen Gesetz verteilt sind
  • KREUZEN - Vektorprodukt
  • KRON - Bildung des Tensorprodukts
  • LINSPACE - Bildung einer linearen Anordnung von gleich beabstandeten Knoten
  • LOGSPACE - Bildung von logarithmischen Gitterknoten
  • MASCHGITTER - Bildung von Knoten zweidimensionaler und dreidimensionaler Gitter
  • : - Bildung von Vektoren und Untermatrizen

Matrixoperationen

  • DIAG - Bildung oder Extraktion von Matrixdiagonalen
  • TRIL - Bildung einer unteren Dreiecksmatrix (Array)
  • TRIU - Bildung einer oberen Dreiecksmatrix (Array)
  • FLIPLR - Drehung der Matrix um die vertikale Achse
  • FLIPUD - Drehung der Matrix relativ zur horizontalen Achse
  • ROT90 - Matrix um 90 Grad drehen
  • UMFORMT - Konvertierung der Matrixgröße

Spezielle Matrizen

  • FIRMA ist die begleitende Matrix des charakteristischen Polynoms
  • HADAMARD - Hadamard-Matrix
  • HANKEL - Hankel-Matrix
  • HILB, INVHILB - Hilbert-Matrix
  • MAGIE - magisches Quadrat
  • PASCAL - Pascal-Matrix
  • ROSSER - Rosser-Matrix
  • TÖPLITZ - Toeplitz-Matrix
  • VANDER - Vandermonde-Matrix
  • Wilkinson - Wilkinson-Matrix

KONV., DEKONV

Faltung eindimensionaler Arrays

Syntax:

Z = Konv(x, y)
= Dekonv(z, x)

Beschreibung:

Falls gegeben eindimensionale Arraysx und y der Länge m = length(x) bzw. n = length(y), dann ist die Faltung z ein eindimensionales Array der Länge m + n -1, dessen k-tes Element durch die bestimmt wird Formel

Die Funktion z = conv(x, y) berechnet die Faltung z zweier eindimensionaler Arrays x und y.

Betrachtet man diese Arrays als Proben von zwei Signalen, können wir den Faltungssatz in der folgenden Form formulieren:
Wenn X = fft() und Y = fft() größenkonsistente Fourier-Transformationen von x- und y-Signalen sind, dann ist conv(x, y) = ifft(X.*Y) wahr.

Mit anderen Worten, die Faltung zweier Signale entspricht der Multiplikation der Fourier-Transformationen dieser Signale.

Die Funktion = deconv(z, x) führt die Umkehrung der Faltung durch. Diese Operation ist äquivalent zur Bestimmung der Impulsantwort des Filters. Wenn die Beziehung z = conv(x, y) gilt, dann ist q = y, r = 0.

Verwandte Funktionen: Signalverarbeitungs-Toolbox.

1. Benutzerhandbuch der Signal Processing Toolbox. Natick: The MathWorks, Inc., 1993.

Einstellen der Vorlage von Matrizen und Vektoren (Matrix...)

Die Operation Matrix... (Matrizen) stellt die Definition von Vektoren oder Matrizen dar. Wie Sie wissen, ist eine Matrix ein durch seinen Namen gegebenes Objekt in Form eines Arrays von Daten MathCAD verwendet eindimensionale Arrays- Vektoren und zweidimensionale - richtige Matrizen

Die Matrix wird durch die Anzahl der Zeilen (Rows) und die Anzahl der Spalten (Columns) charakterisiert. Somit ist die Anzahl der Elemente einer Matrix oder ihre Dimension gleich Zeilen x Spalten. Die Elemente von Matrizen können Zahlen, Konstanten, Variablen und sogar mathematische Ausdrücke sein. Dementsprechend können Matrizen numerisch und symbolisch sein

Wenn Sie die Operation Matrix... verwenden, erscheint im aktuellen Fenster ein kleines Fenster, in dem Sie die Dimension eines Vektors oder einer Matrix einstellen können (siehe Abb. 515 rechts), wofür Sie sie angeben müssen die Anzahl der Zeilen Zeilen und die Anzahl der Spalten Spalten Einfügen (Einfügen) im Fenster können Sie eine Matrix- oder Vektorvorlage ausgeben (Vektor hat einen der Dimensionsparameter gleich 1)

Die Vorlage enthält Klammern und kleine dunkle Rechtecke, die Stellen für die Eingabe von Werten (numerisch oder Zeichen) für Elemente eines Vektors oder einer Matrix angeben. Eines der Rechtecke kann aktiviert werden (durch Markieren mit dem Mauszeiger). Gleichzeitig liegt es in einer Ecke. Dies zeigt an, dass die Werte des entsprechenden Elements darin eingetragen werden. Mit den Cursortasten können Sie horizontal durch alle Rechtecke scrollen und alle Elemente eines Vektors oder einer Matrix eingeben.


Reis. 5. 15 Ausgabe von Vektor- und Matrixvorlagen und deren Füllung

Während der Eingabe der Elemente von Vektoren oder Matrizen werden leere Vorlagen kommentarlos angezeigt. Wenn Sie jedoch mit der Eingabe fertig sind, bevor die Vorlagen vollständig ausgefüllt sind, zeigt das System eine Fehlermeldung an – die leere Vorlage wird rot. Die Ausgabe einer nicht vorhandenen Matrix oder eine fehlerhafte Angabe ihrer Indizes wird ebenfalls rot dargestellt.

Wenn Sie die Operation Insert (Inclusion) mit einer bereits abgeleiteten Matrixvorlage verwenden, wird die Matrix erweitert und ihre Größe erhöht. Mit der Schaltfläche Löschen (Löschen) können Sie die Erweiterung der Matrix entfernen, indem Sie eine Zeile oder Spalte daraus löschen.

Jedes Element der Matrix ist durch eine indizierte Variable gekennzeichnet, und seine Position in der Matrix wird durch zwei Indizes angezeigt: Einer gibt die Zeilennummer an, der andere die Spaltennummer. Für einen indizierten Variablensatz müssen Sie zuerst den Variablennamen eingeben und dann zum Indexsatz wechseln, indem Sie die Taste drücken, die das Zeichen eingibt]. Zuerst wird der Zeilenindex angegeben, gefolgt vom Spaltenindex, getrennt durch Kommas. Beispiele für die Ausgabe von indizierten Variablen (Elemente der Matrix M) sind auch in Abb. 2 dargestellt. 5.14.

Eine Matrix, die in eine Zeile oder eine Spalte entartet ist, ist ein Vektor. Seine Elemente sind indizierte Variablen mit einem Index. Die Untergrenze der Indizes ist durch den Wert der Systemvariablen ORIGIN gegeben. Normalerweise wird sein Wert auf 0 oder 1 gesetzt.

Die Sprache der technischen Informatik

Millionen von Ingenieuren und Wissenschaftlern auf der ganzen Welt verwenden MATLAB ® zur Analyse und Entwicklung von Systemen und Produkten, die unsere Welt verändern. Die MATLAB-Matrixsprache ist die weltweit natürlichste Art, Computermathematik auszudrücken. Eingebettete Grafiken erleichtern die Visualisierung und das Verständnis der Daten. Die Desktop-Umgebung ermutigt zum Experimentieren, Erkunden und Entdecken. Diese MATLAB-Tools und -Funktionen wurden streng getestet und für die Zusammenarbeit entwickelt.

MATLAB hilft Ihnen, Ihre Ideen jenseits des Desktops zum Leben zu erwecken. Sie können Explorationen für große Datasets ausführen und auf Cluster und Clouds skalieren. MATLAB-Code kann in andere Sprachen integriert werden, sodass Sie Algorithmen und Anwendungen in Web-, Unternehmens- und Industriesystemen bereitstellen können.

Arbeitsbeginn

Lernen Sie die Grundlagen von MATLAB

Sprachgrundlagen

Syntax, Array-Indizierung und -Verarbeitung, Datentypen, Operatoren

Daten importieren und analysieren

Import und Export von Daten, einschließlich großer Dateien; Datenvorverarbeitung, Visualisierung und Recherche

Mathe

Lineare Algebra, Differentiation und Integration, Fourier-Transformationen und andere Mathematik

Grafik

2D- und 3D-Grafiken, Bilder, Animationen

Programmierung

Skripte, Funktionen und Klassen

Anwendungserstellung

App-Entwicklung mit App Designer, programmierbarem Workflow oder GUIDE

Tools zur Softwareentwicklung

Debuggen und Testen, Organisation großer Projekte, Integration mit Versionskontrollsystem, Toolbox-Paketierung

Die Verwendung von Arrays ermöglicht Ihnen den Zugriff auf mehrere Speicherorte mit demselben Namen. Betrachten wir, wie ein-, zwei- und mehrdimensionale Arrays im MATLAB-System gebildet und beschrieben werden, und zeigen wir, wie man Berechnungen mit Arrays durchführt.

Eindimensionale Arrays. Es ist oft notwendig, im Speicher des Computers eine große Menge von Daten mit Eigenschaften zu speichern, wie zum Beispiel eine Reihe von Noten, die Schüler in einem Test erhalten. Durch die Erstellung eines Arrays erhält die gesamte Zellensequenz einen einzigen Namen, anstatt jeder Speicherzelle, die zum Speichern eines Datenelements verwendet wird, einen separaten Namen zu geben. Ein bestimmtes Datenelement wird durch seine Position in der Sequenz bestimmt. Um ein solches Array zu bilden, wird die Verkettungsoperation verwendet, die durch eckige Klammern gekennzeichnet ist. Betrieb zum Beispiel

bildet eine Reihe von Zahlen, die wie folgt auf dem Bildschirm angezeigt werden:

Numerische Arrays sind Elemente vom Typ Double. Als Array-Elemente können beliebige Variablen vom Typ Double verwendet werden, d.h. reelle oder komplexe Zahlen sowie Variablen, die selbst Arrays sind. Um auf ein bestimmtes Element oder eine Array-Komponente zuzugreifen, sind einige zusätzliche Informationen erforderlich. Solche Informationen werden durch einen Array-Indexausdruck bereitgestellt. Um auf ein beliebiges Element eines Arrays zuzugreifen, wird die Indizierungsoperation verwendet, die durch Klammern angezeigt wird:

Wenn beispielsweise dem zweiten Element des Arrays ein neuer Wert zugewiesen werden soll, müssen die Indizierungs- und Zuweisungsoperationen gleichzeitig darauf angewendet werden.

Jetzt sieht Array a so aus:

Durch Ausführen der Funktion length (name) können Sie herausfinden, aus wie vielen Elementen das Array mit dem angegebenen Namen besteht. Zum Beispiel:

>> Länge(a)

Indem wir dem nicht vorhandenen vierten Element einen Wert vom Typ double zuweisen, erhalten wir ein um ein Element erweitertes Array:

Wenn Sie beispielsweise dem achten Element einen Double-Wert zuweisen, haben alle Elemente mit Zahlen im Bereich von 4 bis 8 den Wert Null.

>> a

ein = 2 93 6 1 0 0 0 5

Betrachten wir eine andere Möglichkeit, Arrays mit den Funktionen Einsen und Nullen zu erstellen, die sofort ein Array der erforderlichen Größe erstellen, das jeweils mit Einsen (Einsen) oder Nullen (Nullen) gefüllt ist. Um beispielsweise ein Array a zu erstellen, können Sie zuerst die Ones-Funktion aufrufen:

>>a=Einsen(1,3)

und verwenden Sie dann Indizierungs- und Zuweisungsvorgänge, um ein Array inkrementell zu erstellen:

>> a(2)=93;

Schließlich basiert die letzte Möglichkeit, eindimensionale Massen zu erstellen, auf der Verwendung des ":"-Operators. Diese Operation wird verwendet, wenn es notwendig ist, ein Array von Zahlen zu erstellen, die sich mit den angegebenen Schritten ändern, wenn der Index zunimmt. Beispielsweise müssen Sie ein Array von Zahlen im Bereich von 3 bis 17 mit einer Schrittweite von 0,7 erstellen. Der Ausdruck sieht folgendermaßen aus:

>>b=3:0,7:17

b = Spalten 1 bis 7

3.0000 3.7000 4.4000 5.1000 5.8000 6.5000 7.2000

Spalten 8 bis 14

7.9000 8.6000 9.3000 10.0000 10.7000 11.4000 12.1000

Spalten 15 bis 21

12.8000 13.5000 14.2000 14.9000 15.6000 16.3000 17.0000

zweidimensionale Arrays. Arrays dieses Typs ähneln eindimensionalen Arrays, außer dass ihre Elemente nicht durch einen Index, sondern durch zwei bestimmt werden. In der Mathematik werden solche Arrays Matrizen genannt, die aus Zeilen und Spalten bestehen. Jede Zeile (oder Spalte) in einer Matrix ist ein eindimensionales Array, das üblicherweise als Zeilenvektor bzw. Spaltenvektor bezeichnet wird. Die Matrix wird durch die Verkettungsoperation gebildet, die durch eckige Klammern gekennzeichnet ist. Im Folgenden wird gezeigt, wie mithilfe der Operation ein zweidimensionales Array gebildet wird vertikal Verkettung. In diesem Fall werden die Elemente jeder nachfolgenden Zeile des Arrays durch ein Semikolon von der vorherigen Zeile getrennt, während die Elemente derselben Zeile durch Kommas oder Leerzeichen getrennt werden:

>>c=

Dieselbe Matrix kann durch horizontale Verkettung von Vektor-Spalten gebildet werden;

>> c=[,]

Matrixelemente können auch mit der cat-Funktion angegeben werden, deren Argumente in Klammern eingeschlossen sind. Bei vertikaler Verkettung ist das erste Argument 1:

>> c=katze(1,,,)

und für horizontal ist es gleich 2:

>> c=katze(2,,)

Die Größe des erstellten Arrays kann mit der Größenfunktion ermittelt werden:

Das Ergebnis dieser Funktion ist ein Zahlenpaar, wobei das erste die Anzahl der Zeilen und das zweite die Anzahl der Spalten ist. Im Folgenden finden Sie ein Beispiel für die Anwendung der Größenfunktion auf eine Variable, die aus einer einzelnen Zahl besteht:

Dies zeigt, dass im MATLAB-System alle Variablen des Double-Typs als zweidimensionale Arrays dargestellt werden, nämlich: Vektoren – als zweidimensionale Arrays, deren Größe in einer der Richtungen gleich eins ist; Matrizen - in Form von zweidimensionalen Arrays der Größe m x n; Skalare - in Form von zweidimensionalen Arrays der Größe 1x1.

Es gibt auch leer ein Array, gekennzeichnet durch eckige Klammern , zwischen denen: nichts steht. Ein solches Array wird als 0x0-Matrix behandelt. Normalerweise wird ein leeres Array verwendet, um Zeilen oder Spalten von Matrizen zu entfernen. Zum Beispiel:

>>A=

A = 1 2 3 4 5 6 7 8 9

>>A(3,:)=

Informationen über alle erstellten Arrays im aktuellen Arbeitsbereich erhalten Sie, indem Sie beispielsweise den Befehl whos ausgeben:

Name Größe Bytes Klasse

Ein 2x3 48 Doppelarray

ein 1x4 32 Doppelarray

ans 1x2 16 Doppelarray

b 1x21 168 Doppelreihe

c 3x2 48 Doppelreihe

d 1x1 8 Doppelreihe

Im MATLAB-System gibt es eine Transpositionsoperation, die durch das Zeichen """ (Apostroph) angezeigt wird. Unten ist ein Beispiel für die Transposition einer gegebenen Matrix A:

>>A=

A = 1 2 34 5 67 8 9

ans =1 4 7 2 5 8 3 6 9

Als Ergebnis der Anwendung der Transpositionsoperation auf einen Zeilenvektor wird ein Spaltenvektor erhalten und umgekehrt. Das folgende Beispiel veranschaulicht diese Schritte deutlich:

>>a=

Mehrdimensionale numerische Arrays. Mehrdimensionale Arrays sind Arrays mit Dimensionen größer als zwei. Um ein Element eines solchen Arrays aufzurufen, sind drei oder mehr Indizes erforderlich, die die Position des erforderlichen Elements in mehreren Richtungen angeben.

Die Bildung mehrdimensionaler Arrays erfolgt analog zur Arbeit mit ein- und zweidimensionalen Arrays mit den Funktionen Einsen, Nullen oder Katze. Daher wird zuerst ein Array aus Nullen oder Einsen einer bestimmten Größe gebildet, dann können Sie unter Verwendung von Indizierungs- und Zuweisungsoperationen das gewünschte numerische Array erhalten.

Das folgende Beispiel veranschaulicht deutlich die Verwendung dieser Funktionen zum Erstellen eines mehrdimensionalen numerischen Arrays.

Abbildung - Schematische Darstellung eines dreidimensionalen Arrays

Man messe zehn Jahre lang jeden Monat in einer bestimmten Stadt die Tagestemperatur und trage alle Ergebnisse eines Jahres in eine rechteckige Tabelle ein. Dann werden nach zehn Jahren zehn zweidimensionale Tabellen erhalten. Um all diese Daten zu organisieren, ist es praktisch, die Tabellen in einer Richtung anzuordnen und zu nummerieren. Somit wurde ein dreidimensionales Array T1 erhalten.

Um es im MATLAB-System zu bilden, müssen Sie zuerst die Einsen- oder Nullen-Funktion ausführen:

>> T1=Einsen(M,N,L)

wobei M, N, L die Dimensionen des dreidimensionalen Arrays in drei Richtungen sind.

In diesem Beispiel ist M = 12 (Anzahl der Monate in einem Jahr), N = 31 (maximale Anzahl an Tagen in einem Monat), L = 10 (Anzahl der Jahre, in denen Messungen durchgeführt werden). Diese. die funktion sieht so aus:

>> T1=Einsen(12,31,10)

>> T1 = Nullen (12,31,10);

Anschließend können Sie mithilfe der Indizierungs- und Zuweisungsoperationen den Wert jedes Elements festlegen

>> T1(1,1,1)=-5;T1(2,1,1)=-20;...T1(12,31,10)=-9;

Es sei darauf hingewiesen, dass mit den Einsen- und Nullen-Funktionen nur ein-, zwei- und dreidimensionale Arrays gebildet werden können.

Das dreidimensionale Array T2 soll Daten des gleichen Typs wie in T1 enthalten, jedoch für eine andere Stadt. Nachdem Sie die Daten beider Arrays zu einem kombiniert haben, können Sie ein vierdimensionales Array T erhalten. Um es zu erstellen, sollten Sie die zweite Möglichkeit verwenden, um die Verkettungsoperation durchzuführen – mit der cat-Funktion:

T=Katze (4, T1, T2)

wobei die Zahl 4 die Zahl der Richtung ist, entlang der die Verkettung durchgeführt wird.

Um beispielsweise entlang der fünften Richtung (Dimension) zu verketten, wenn Daten für Städte aus verschiedenen Ländern gesammelt werden, müssen Sie zuerst ein vierdimensionales Array C (für Städte aus einem anderen Land) erstellen und es dann mit Array T kombinieren:

Eine solche Operation ist möglich, wenn die Dimensionen der Arrays T und C gleich sind. Andernfalls zeigt das Programm eine Fehlermeldung auf dem Bildschirm an. Das erstellte Array A kann mit den folgenden Funktionen geändert werden.

reshape (X,m,n) - bildet eine m x n Matrix aus den Elementen von Objekt X. Beispiel.

>>X=

X = 1 2 3 4 5 6 7 8 9 10 11 12

>> B=umformen(X,3,4)

B = 1 10 8 6 4 2 11 9 7 5 3 122

rref (X) - wandelt die Matrix X mit der Gaußschen Methode in eine Dreiecksform um. Beispiel.

>>X=;

>> R=rref(X)

R = 1 0 -1 0 1 2 0 0 0 0 0 0

Operation Doppelpunkt

Im vorherigen Abschnitt wurde diese Operation verwendet, um ein Array mit einem bestimmten Schritt zu erstellen:

<НЗМ>:<Шаг>:<КЗМ>

wo<НЗМ>- der Anfangswert des Arrays;<КЗМ>- Endwert des Arrays.

Für Arrays gelten auf diese Weise die folgenden Regeln:

Wenn der Schritt nicht gesetzt ist, wird er gemäß den angegebenen Regeln gleich 1 oder -1 genommen. Zum Beispiel:

>> 1:7

ans = 1 2 3 4 5 6 7

>> 11:-3:2

ans = 11 8 5 2

Ausdrücke mit dem ";"-Operator können auch als Funktionsargumente verwendet werden, um mehrere Werte dieser Funktionen zu erhalten. Im Beispiel unten werden beispielsweise Bessel-Funktionen der Ordnung 0 bis 3 mit x=0,5 berechnet.

>> B=bessel(0:3,x)

0.9385 0.2423 0.0306 0.0026

Das folgende Beispiel zeigt, wie Sie mit dem Operator „;“ eine 2x3-Matrix erstellen.

>>A=

Dieser Operator kann auch verwendet werden, um die Elemente eines vorhandenen Arrays zu indizieren, zum Beispiel:

Die Operation ";" ist ein sehr praktisches Werkzeug zum Sequenzieren von Zahlen und Indizieren von Arrays.

Fortsetzung des Themas:
Modems

MatLab präsentiert alle Daten als Arrays. Es ist sehr wichtig zu verstehen, wie man Arrays richtig verwendet. Ohne diese ist ein effektives Arbeiten in MatLab nicht möglich, insbesondere...