Grundlagen
Eingabestruktur
- Eingabeprompt
>>
zeigt an, dass eine Eingabe erwartet wird. - Eingabe durch Entertaste abschicken.
- Variable
ans
(answer) speichert das letzte Rechenergebnis. - Unterdrücken der Ausgabe mit einem
;
am Zeilenende.
Aufgabe
Welchen Wert nimmt ans
an, wenn die Ausgabe einer Berechnung unterdrückt wurde?
Lösung
Die Ausgabe wird unterdrückt, jedoch wird die Variable ans
trotzdem auf den Wert des letzten Rechenergebnisses gesetzt:
- In der Regel kann in MATLAB nur 1 Befehl pro Zeile geschrieben werden. Mit
,
oder;
können mehrere Befehle einer Zeile getrennt werden.
Lösung
Durch das Semikolon wird die Ausgabe des ersten Befehls unterdrückt. Das Komma ermöglicht die Ausgabe des ersten und zweiten Befehls.
- Trennen eines Befehls über mehrere Zeilen mit
...
.
Wichtige Konsolen-Befehle
Konsolen-Befehle
clear
oderclear all
Löschen aller Variablen des Workspaces.clc
Löschen des Command Windows.help ...
oderdoc ...
oder F1
Zeigen der Hilfe / Dokumentation einer beliebigen Funktion.
Aufgabe
Schlagen Sie in der MATLAB-Hilfe nach, was die Befehlseingabe clear ans
bewirkt. Testen Sie diesen Befehl.
Lösung
Es wird ledglich die Variable ans
aus dem Workspace entfernt. Alle anderen Variablen bleiben erhalten.
Einstellen des Anzeigeformates
- Die Ergebnisse einer Berechnung können in MATLAB auf verschiedene Arten dargestellt werden.
- Es kann die Anzahl der Ziffern variiert werden (
short
,long
). - Die Position des Kommas / Exponentialdarstellung kann variiert werden (normal, scientific, engineering).
-
Zwei Möglichkeiten der Einstellung:
-
Über das Einstellungsmenü
HOME → ENVIRONMENT → Perferences → MATLAB → Command Window → Text Display -
Über den
format
-Befehl
-
Aufgabe
Machen Sie sich mit den Einstellungsmöglichkeiten vertraut. Verwenden Sie die MATLAB-Dokumentation des format
-Befehls.
Variablen
- Variablen werden durch Wertzuweisung mit
=
-Operator erstellt.
- Alle Variablen sind Matrizen. Deren Größe muss nicht festgelegt werden.
Regeln der Variablenbenennung
- Variablennamen müssen mit einen Buchstaben beginnen!
- Zugelassen sind Buchstaben A-Z, a-z und Ziffern 0-9, Unterstrich _.
- Keine Umlaute oder Sonderzeichen!
- Es wird zwischen Groß- und Kleinschreibung unterschieden!
- maximal 63 Zeichen.
- Eingebaute Variablen von MATLAB werden überschrieben!!!
z. B.pi
,eps
,inf
,NaN
Skalare Berechnungen
Eingabe von Zahlen
- Dezimaldarstellung: Nachkommastellen zwingend mit Punkt
.
trennen.
- Exponentialdarstellung mit großem
E
oder kleineme
.
Mathematische Operationen
Mathematische Operationen"
+
: Addition-
: Subtraktion*
: Multiplikation/
: Division^
: Potenz( )
: Klammern
Es sind nur runde Klammern in mathematischen Berechnungen zulässig!
Beispiel
Berechnen Sie den ohmschen Widerstand \(R = \frac{U}{I}\) bei \(U = 5\,\text V\) und \(I = 1\,\text{mA}\).
Aufgabe
Berechnen Sie die Spannung infolge einer Last von \(F=1\,\text{kN}\) auf eine Fläche von \(A=200\,\text{mm}^2\).
Das Ergebniss soll in \(\text N/\text{mm}^2\) oder in \(\text{kN}/\text{cm}^2\) angegeben werden.
Lösung
Aufgabe
Dimensionieren Sie den elektrischen Kondensator:
mit
Lösung
Mathematische Funktionen
- MATLAB stellt viele mathematische Funktionen bereit.
- Aufruf einer Funktion durch Angabe des Funktionsnamens und benötigten Parametern in runden Klammern:
- Auflistung aller Funktionen in MATLAB-Hilfe → Functions - By Category / Alphabetical List.
Überblick über mathematische Operationen
- Trigonometrische Funktionen:
sin(x)
: Sinus mit \(x\) in rad
sind(x)
: Sinus mit \(x\) in Grad
asin(x)
: Arcussinus mit \(x\) in rad
asind(x)
: Arcussinus mit \(x\) in Grad
cos(x)
,cosd(x)
,acos(x)
,acosd(x)
: Kosinus-Operationen
tan(x)
,tand(x)
,atan(x)
,atand(x)
: Tangents-Operationen
sinh(x)
,cosh(x)
,tanh(x)
,csc(x)
,sec(x)
,cot(x)
: Weitere Winkelfunktionen
deg2rad(x)
,rad2deg(x)
: Umrechnung zwischen Radian und Grad - Exponential-, Logarithmus und Wurzelfunktionen
exp(x)
: Exponentialfunktion zur Basis e
log(x)
: Logarithmus zur Basis e (ln)
log10(x)
: Logarithmus zur Basis 10 (lg)
log2(x)
: Logarithmus zur Basis 2 (ld)
sqrt(x)
: Quadratwurzel (square root)
nthroot(x, n)
:n
-te Wurzel
Aufgabe
Die Katheten eines rechtwinkligen Dreiecks betragen \(5\,\text{cm}\) und \(6\,\text{cm}\). Wie lang ist die Hypotenuse? Wie groß sind drei Innenwinkel des Dreiecks?
Lösung
Aufgabe
Ein Spannungverstärker liefert bei einer Eingangsamplitude von \(50\,\text{mV}\) eine Ausgangsamplitude von \(4\,\text{V}\). Welcher Verstärkung in Dezibel entspricht dies?
Aufgabe
Wie wird die atan2
/atan2d
-Funktion verwendet? Wann sollte diese Funktion verwendet werden?
Lösung
Beispiel: Berechnen der Phase der komplexen Zahl \(z = -1 + j\), Erwartetes Ergebnis: \(135^\circ\)
Aufgabe
Wie bekommt man in MATLAB die Konstante e?
Vektoren
Allgemein
- Definition eines Zeilenvektors:
Eckige Klammern umschließen den Vektor, Trennen der Werte der Komponenten durch Leerzeichen oder Komma.
- Zugriff auf die Elemente eines Zeilenvektors mit runden Klammern.
Die Indizierung von Vektoren und Matrizen beginnt in MATLAB im Gegensatz zu den meisten Programmiersprachen mit der 1!
- Verwendung des
end
-Operators: Zugriff auf das letzte und vorletzte Element des Vektors
- Definition von Spaltenvektoren:
Trennen der Werte der Komponenten durch Semikolon.
Funktionen zur Vektoranalyse
- Apostroph-Zeichen
v'
: Transponieren eines Vektors. length(v)
: Größe eines Spalten- oder Zeilenvektors.
Doppelpunkt- oder Colon-Operator
n:m
: Erstellen eines Zeilenvektors mit den Elementenn
bism
:
n:k:m
: Verwenden der Schrittweitek
.
- Der Colon-Operator kann zum Teilen von Listen verwendet werden:
Aufgabe
Erstellen Sie mit Hilfe des Colon-Operators eine Liste ungerade
, die alle positiven ungeraden Zahlen kleiner als 100 enthält.
Lösung
Aufgabe
Erstellen Sie mit Hilfe des Colon-Operators die folgenden Listen:
10 9 8 7 6 5 4 3 2 1
10 8 6 4 2
Aufgabe
Geben Sie die ersten 20 Elemente von ungerade
an.
Geben Sie die jedes zweite Element von ungerade
an (1, 5, 9, ...).
Lösung
>> ungerade(1:20)
ans =
Columns 1 through 14
1 3 5 7 9 11 13 15 17 19 21 23 25 27
Columns 15 through 20
29 31 33 35 37 39
>> length(ans)
ans =
20
>> ungerade(1:2:length(ungerade))
ans =
Columns 1 through 14
1 5 9 13 17 21 25 29 33 37 41 45 49 53
Columns 15 through 25
57 61 65 69 73 77 81 85 89 93 97
Matrizen
- Definieren einer Matrix:
Verwenden zum Kommas/Leerzeichen und Semikolons/Zeilenumbrüche.
Oder: Eingabe einer Matrix über Workspace: New, Doppelklick.
- Zusammensetzen einer Matrix aus Vektoren:
Aufgabe
Welche Wirkung haben die Anweisungen A = [v, v]
oder A = [w; w]
?
Lösung
Mit diesen Befehlen können Listen zusammengefügt werden, oder Elemente an Listen angehangen werden.
Dies kann zum Anhängen von Werten an einen Vektor verwendet werden:
Alternativer Weg mit end
-Operator:
Hinzufügen eines Elementes innerhalb der Liste
- Zugriff auf Matrix-Elemente:
- Zugriff auf ein Element:
- Eindimensionale Indizierung einer Matrix:
- Zugriff auf eine Matrix-Zeile:
- Zugriff auf eine Matrix-Spalte:
- Zugriff auf ein Element:
Funktionen zur Matrixanalyse
size(A)
: Größe einer Matrix- Apostroph
'
: Transponieren einer Matrix. - Funktionen zum automatischen Erstellen von Matrizen:
ones(n, m)
: Matrix, deren Werte alle 1 betragen.
zeros(n, m)
: Matrix, deren Werte alle 0 betragen.
eye(n)
: Quadratische Einheitsmatrix.
-
Berechnungen:
- Definition zweier Test-Matrizen:
- Addition und Subtraktion:
-
Matrixmultiplikation:
Die Matrizenmultiplikation ist nicht kommutativ, das heißt, die Reihenfolge der Matrizen darf bei der Produktbildung nicht vertauscht werden.
-
Inverse einer Matrix:
Für die Inverse \(A^{-1}\) der quadratischen \(n\times n\) Matrix \(A\) gilt:
\[A\cdot A^{-1} = I\]\(I\) ist die \(n \times n\) Einheitsmatrix.
Berechnung z. B. über die Adjunkte:
\[A^{-1} = \frac{1}{\det A}\cdot\text{adj}\,A\]
- Definition zweier Test-Matrizen:
Lösung
Beispiel
Lösen Sie das lineare Gleichungssystem:
Aufgabe
Welche Bedeutung haben der /
- und der \
-Operator bei der Verwendung mit Matrizen?
Welche Berechnungen können mit dem \
einfacher dargestellt werden?
Lösung
A/B = A * B^-1
A\B = A^-1 * B
Lösung eines linearen Gleichungssystem: [5, 3; 2, 1] \ [31; 12]
Aufgabe
Berechnen Sie das Skalarprodukt von
und
Es gilt: \(<\vec x, \vec y> = \vec x^T \cdot \vec y\)
Aufgabe
Lösen Sie das folgende Gleichungssystem mit den vier Unbekannten a, b, c, d.
Aufgabe
Bestimmen Sie die Lösungsmenge der beiden folgenden Gleichungssysteme:
Lösung
→ Gleichungssystem mit leerer Lösungsmenge
\(\det A = 0\) → \(\frac{1}{\det A} = \infty\)
→ Gleichungssystem mit unendlich vielen Lösungen
\(\frac{0}{0} = \text{NaN}\), NaN = Not a Number
Ausgabe in älteren MATLAB-Versionen:
[10 5; -4 -2] \ [15;8]
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.110223e-17.
ans =
1.0e+17 *
-0.6305
1.2610
Beide Zahlen sind um 17 Größenordnungen größer als die Eingabewerte, also \(\approx \infty\)
>> [10 5; -4 -2] \ [30;-12]
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.110223e-17.
ans =
0
6
Es wird eine mögliche Lösung des Gleichungssystems angegeben.
Aufgabe
Aufgabe aus dem bayrischen Abitur
Bei einer Losbude wird damit geworben, dass jedes Los gewinnt. Die Lose und die zugehörigen Sachpreise können drei Kategorien zugeordnet werden, die mit "Donau", "Main" und "Lech" bezeichnet werden. Im Lostopf befinden sich viermal so viele Lose der Kategorie "Main" wie Lose der Kategorie "Donau". Ein Los kostet 1 Euro. Die Inhaberin der Losbude bezahlt im Einkauf für einen Sachpreis der Kategorie "Donau" 8 Euro, in der Kategorie "Main" 2 Euro und in der Kategorie "Lech" 20 Cent. Ermitteln Sie, wie groß der Anteil der Lose der Kategorie "Donau" sein muss, wenn die Inhaberin im Mittel einen Gewinn von 35 Cent pro Los erzielen will.
Lösung
Aufgabe
Berechnung der Verformung infolge äußerer Last
Folgende Struktur soll berechnet werden:
Definition der Freiheitsgrade und die zugehörige Flexibilitätsmatrix
Die Strukturabhängige Eigenschaften sollen davor definiert werden: \(A=10\,\text{cm}^2\), \(E=210000\,\text{N}/\text{mm}^2\) und \(l=2.5\,\text{m}\). Die Steifigkeitsmatrix ist gegeben
K=E*A/l* ...
[sqrt(2) 0 -1/sqrt(2) -1/sqrt(2) 0 0 0;
0 1+sqrt(2) -1/sqrt(2) -1/sqrt(2) 0 -1 0;
-1/sqrt(2) -1/sqrt(2) sqrt(2) 0 -1/sqrt(2) 1/sqrt(2) 0;
-1/sqrt(2) -1/sqrt(2) 0 2+sqrt(2) 1/sqrt(2) -1/sqrt(2) -1;
0 0 -1/sqrt(2) 1/sqrt(2) sqrt(2) 0 -1/sqrt(2);
0 -1 1/sqrt(2) -1/sqrt(2) 0 1+sqrt(2) -1/sqrt(2);
0 0 0 -1 -1/sqrt(2) -1/sqrt(2) 1+1/sqrt(2)];
Die Beziehung zwischen Belastung und Verschiebung ist folgendermaßen definiert
Berechnen Sie die Verschiebung infolge einer Kraft von \(10\,\text{kN}\) an den Freiheitsgraden 3 und 5.
Lösung
>> A=10; E=21000; l=250;
>> K=E*A/l* ...
[sqrt(2) 0 -1/sqrt(2) -1/sqrt(2) 0 0 0;
0 1+sqrt(2) -1/sqrt(2) -1/sqrt(2) 0 -1 0;
-1/sqrt(2) -1/sqrt(2) sqrt(2) 0 -1/sqrt(2) 1/sqrt(2) 0;
-1/sqrt(2) -1/sqrt(2) 0 2+sqrt(2) 1/sqrt(2) -1/sqrt(2) -1;
0 0 -1/sqrt(2) 1/sqrt(2) sqrt(2) 0 -1/sqrt(2);
0 -1 1/sqrt(2) -1/sqrt(2) 0 1+sqrt(2) -1/sqrt(2);
0 0 0 -1 -1/sqrt(2) -1/sqrt(2) 1+1/sqrt(2)];
>> f=[0 0 10 0 10 0 0]';
>> x=K\f
x =
0.0320
0.0193
0.0550
0.0089
0.0434
0.0015
0.0238
x in cm
Berechnungen von Messreihen
- Größen einer Messreihe können als Vektor oder Matrix dargestellt werden.
- In der Regel werden Rechenoperationen elementweise durchgeführt.
- Addition, Subtraktion, Skalarmultiplikation können mit gewöhnlichen Operatoren
+
,-
,*
durchgeführt werden.
Lösung
- Elementweise Multiplikation, Division und Potenzrechnung unterscheiden sich von den Matrixoperationen. Folgende Operatoren sind zu verwenden:
.*
,./
,.^
Lösung
- Die elementaren mathematischen Funktionen können ebenfalls elementweise ausgeführt werden.
Lösung
Aufgabe
Wandeln Sie die folgenden Messreihe von Verstärkungfaktoren in Dezibel um.
Lösung
Aufgabe
Berechnen Sie den linearen Widerstand der Diodekennlinie.
Lösung
Möglichkeiten der Vektor- und Matrizenrechnung
Funktionen der Vektor- und Matrizenrechnung
norm(v)
: Betrag eines Vektors.abs(v)
: Betrag der Vektorelementedot(u, v)
oderu' * v
: Skalarprodukt.cross(u, v)
: Kreuzprodukt.sum(v)
: Summe der Vektorelemente.mean(v)
: Mittelwert der Vektorelemente.max(v)
: Maximalwert der Vektorelemente.min(v)
: Minimalwert der Vektorelemente.prod(v)
: Produkt aller Vektorelemente
Aufgabe
Berechnen Sie den Winkel zwischen den Vektoren:
Lösung
Aufgabe
Berechnen Sie die Fläche des Dreieckes, welches durch die folgenden drei Eckpunkt gegeben ist.
Lösung
Aufgabe
Führen Sie eine Approximation des Mittelwerts \(\overline y\), Gleichrichtwerts \(\overline{|y|}\) und Effektivwert \(Y\) der Sinusschwingung \(y(t) = \sin t\) durch.
Verwenden Sie hierfür die folgende Sinusfolge:
Und die folgenden Approximationen:
-
Mittelwert:
\[\overline y \approx \frac{1}{N} \sum_{i=1}^N y[i]\]
-
Gleichrichtwert:
\[\overline{|y|} \approx \frac{1}{N}\sum_{i=1}^N \left| y[i] \right|\]
-
Effektivwert:
\[ Y \approx \sqrt{\frac{1}{N} \sum_{i=1}^N \left( y[i] \right)^2} \]
Lösung
Beispiel
Schlagen Sie in der Dokumentation nach, wie die Funktionen min
und max
mit mehreren Ausgabewerten verwendet werden können. Bestimmen Sie die Extremstellen der Sinus-Funktion durch die zuvor verwendete Sinusreihe.
Funktionen der linearen Algebra
det(A)
: Determinante der Matrix.eig(A)
: Eigenwerte der Matrix.
Aufgabe
Berechnen Sie die Determinante und Eigenwerte der folgenden Matrix:
Lösung
Aufgabe
Berechnen Sie die Eigenwerte der folgenden Matrix:
Lösung
→ konjugiert komplexes Paar Eigenwerte: \(\lambda_{1,2} = 2 \pm 1i\)
Komplexe Zahlen
- Komplexe Zahlen werden in Matlab immer in der kartesischen Form (\(z = a + b\cdot i\)) abgespeichert.
- Bei der Eingabe einer komplexen Zahl kann entweder
i
oderj
als imaginäre Einheit verwendet werden. - Bei der Eingabe von komplexen Zahlen kann die imaginäre Einheit als Suffix verwendet werden:
>> 3 + 4i
ans =
3.0000 + 4.0000i
>> 3 + 4*i
ans =
3.0000 + 4.0000i
>> 3 + 4j
ans =
3.0000 + 4.0000i
>> 3 + i4
Undefined function or variable 'i4'.
- Viele Funktionen in MATLAB rechnen automatisch mit komplexen Zahlen:
- Eingabe von komplexen Zahlen in der Polardarstellung ist vgl. aufwendig:
Funktionen zur Analyse komplexer Zahlen
abs(z)
: Betrag der komplexen Zahl.angle(z)
: Phasenwinkel der komplexen Zahl.conj(z)
oderz'
: komplex konjugierte Zahl.real(z)
: Realteil.imag(z)
: Imaginärteil.
Aufgabe
Wandeln Sie die folgenden komplexen Zahlen zwischen der kartesichen und polaren Form um.
Lösung
Aufgabe
Führen Sie die folgenden Berechnungen aus.
Lösung
Aufgabe
Berechnen Sie den Strom \(i=i_1+i_2\) mit
Verwenden Sie die komplexe Tranformation: