Calculations
+, - |
addition/subtraction (elementwise) |
*,/ |
multiplication/division |
a^b |
power of a |
sqrt(a) |
square root of a |
Variables
a = 1 |
Define variable a to be 5. If you apply another value to this variable, it will be overwritten! |
b = 2; |
; suppresses output |
e = sym('e') or syms e |
Define symbolic variable e |
syms a b c d |
Define several symbolic variables |
h = 2*e + f^2 |
Calculations with symbolic variables |
mod(a,b) |
remainder after division |
z = 3 +4i |
Define complex variable |
real(z) |
real part of complex number |
imag(z) |
imaginary part of complex number |
|
|
Matrix operations
zeros(n) |
Creates a n x n matrix of zeros |
zeros(m,n) |
Creates a m x n matrix of zeros |
ones(n) |
Creates a n x n matrix of ones |
ones(m,n) |
Creates a m x n matrix of ones |
eye(n) |
Creates a n x n identity matrix |
rand(m,n) |
Creates a m x n matrix of random numbers |
diag([a,b,c,d]) |
Creates a diagonal matrix with a, b, c, d |
A = [1 2; 3 4] |
Creates a matrix with specified numbers - rows separated by whitespace, columns by semicolon |
AA = [1,2;3,4] |
Creates a matrix with specified numbers - rows separated by comma, columns by semicolon |
size(A) |
Returns dimensions of matrix A |
v = [5;6] |
Vectors are created as single-line matrices. Column vector |
u = [5,6] |
Vectors are created as single-line matrices. Row vector |
|
|
Lösen von Gleichungen
Numerisches Lösen von linearen Gleichungssystemen:
linsolve
Symbolisches Lösen von nicht-linearen Gleichungen oder Gleichungssystemen:
solve(rechte Seite == linke Seite, Variable)
Mehrere Gleichungen und Unbekannte werden als Zeilenvektor eingegeben:
Bsp: loesung = solve([x1-2*x2 == x3, x2^2 == -1, x3-x2 == 2], [x1,x2,x3])
Ausgabe ist eine structure. Zugriff auf die einzelnen Elemente über:
loesung.x1
loesung.x2
Ist eine symbolische Lösung nicht möglich, liefert solve eine numerische Näherung (mit einer Warnung).
Finden von numerischen Näherungen:
fzero(Funktion, x0)
x0 kann ein Skalar oder ein Vektor der Länge 2 (= Intervall)) sein. |
Lösen von gewöhnlichen Differentialgleichungen
Differentialgleichung der Form f(yn,yn-1, ..., y'', y', y) = g(x)
dsolve(Gleichung, Anfangsbedingungen)
Bsp:
syms Q(t)
dQ = diff(Q,1) % Ableitung von Q
eqn = 1/(RC)Q + dQ == U/R % Differentialgleichung
sol = dsolve(eqn, Q(0) == 0)
Die Lösung zeichnen:
figure;
fplot(sol, [0,50])
Man kann Anfangswertprobleme auch numerisch lösen, wofür verschiedene Probleme zur Verfügung stehen. |
Iterationen und Schleifen, If-Else-Statements
If-Else-Anweisung:
**if condition
dann
elseif condition
dann
else
dann
end**
For-Anweisung:
**for index = werte:
statement
end**
While-Schleife
k = 0
while condition
statement
end |
|
|
Differenzieren
Bildung der Ableitung eines Ausdrucks:
diff(Ausdruck, Ableitung nach, n. Ableitung)
Partielle Ableitung:
diff(Ausdruck, Ableitung nach x, Ableitung nach y)
- Ergebnis wird nicht sofort vereinfacht (-> simplify)
- Ergebnis ist keine Funktion
Bildung einer Funktion mittels Substitution:
subs(Ausdruck, {alte Variablen}, {neue Variablen})
Bsp: h = @(xx,yy) subs(g, {x,y}, {xx,yy})**
Ableitung für numerische Objekte
- Input: Ausdruck, Vektor mit Funktionswerten
- Output: Vektor mit Werten der Ableitung
- diff() liefert bei num. Argumenten nur eine Näherung der symbolischen Ableitung
- Wegen Bildung der Differenzen hat das Ergebnis eine Komponente weniger |
Integration
Für viele Funktionen kennt Matlab die zugehörige Stammfunktion:
Unbestimmtes Integral: int(f,x)
Bestimmtes Integral: int(f,x,a,b)
Das bestimmte Integral muss durch eval(ergebnis) noch ausgewertet werden.
Es sind mehrere Variablen möglich, wenn man die Integrale verschachtelt:
int(int(s*y,x),y)
int() kann keine numerischen Elemente auswerten. Es gibt jedoch Befehle, die Vergleichbares liefern:
trapz berechnet die Fläche unter einer Kurve nach der Simpson'schen Trapezregel (Output: Zahl)
cumsum berechnet die kumulative Summe der Vektorelemente. Ergebnis ist wieder ein Vektor, der der Stammfunktion entspricht und ggf. noch um die Integrationskonstante verschoben werden muss.
Numerische Integration (= numerisches Berechnen eines symbolisch gegebenen Integrals)
integral(Ausdruck, a, b)
integral2(Ausdruck, xmin, xmax, ymin, ymax) (2-fach Integral)
integral3 (3-fach Integral) |
|