MATLAB-Tutorial

Aus Benny's Wiki

Wechseln zu: Navigation, Suche

MATLAB-Commands

Allgemeine Befehle
ver Zeigt Informationen über Matlab sowie die installierten Toolboxes an
% ... Texteingabe
sprintf('...')
disp(['...'])
num2str
Textausgabe
mupad Toolbox "MuPaD"
who / whos Gibt Auskunft über Variablen
iskeyword Gibt Auskunft über Sprachelemente der Programmiersprache
Zahlendarstellung
sym() symbolische (exakte) Darstellung des Ergebnisses
format{
short/long/
short e/long e/
short g/long g}


Festkomma(4/15 Stellen)
Exponentialdarstellung(4/16 Stellen)
automat. Auswahl

vpa(Ausdruck,int x) liefert Ergebnis auf x Stellen genau
abs(z) liefert Betrag einer (komplexen) Zahl
angle(z) liefert Argument einer (komplexen) Zahl
real(z) liefert Realteil
imag(z) liefert Imaginärteil
dec2bin Dezimal- in Dualzahl
bin2dec Dual- in Dezimalzahl
logical Umwandlung in logische Werte


Konstanten
i/j imaginäre Einheit
exp(1) Euler'sche Zahl
pi Pi
inf Unendlich
intmin kleinste negative ganze Zahl
intmax größte positive ganze Zahl
realmin kleinste positive Dezimalzahl
realmax größte positive Dezimalzahl
clear k Ordnet der Konstanten ihren ursprünglichen Wert zu
Felder
A=[a1,..,an]
a=[a1 a2 .. an]
Eindimensionales Feld
A=[a11,..,a1n;a21,..,a2n;..;am1,...,amn] nxm-dim. Array
x=a:b Erzeugung eines Zahlenfelds mit äquidistanten Elementen von a bis b
x=a:b:c
x=linspace(a,b,n)
Erzeugung eines Zahlenfelds mit äquidistanten(Abstand b) Elementen von a bis c
size(A) Gibt Anzahl der Zeilen und Spalten eines 2-dim. Arrays zurück
A(i,k) Zugriff auf die einzelnen Elemente
A*B Matrizen-Multiplikation
A.*B elementweise Multiplikation
load/save file (-ascii) Lädt/Speichert Zahlen(felder)


Programmierung
<
>
<=
>=
==
~=
Vergleichsoperatoren




Ungleich
& / ~ logische Operatoren
isequal Vergleiche von Feldern
if Bedingung 1; Anweisung 1 ; elseif Bedingung 2; Anweisung 2; else Anweisung 3 ; end Verzweigung (Komma anstelle von Semikolon bewirkt Ausgabe der einzelnen Schritte)
for Index=Startwert:Schrittweite:Endwert ; Anweisung ; end For-Schleife
while Bedingung ; Anweisung ; end While-Schleife


Mathematische Funktionen
besselj(n,x)
bessely(n,x)
besselh(n,x)
besseli(n,x)
besselk(n,x)

Besselfunktion (1. Art, 2. Art, 3. Art, mod. 1. Art, mod. 2. Art)

beta(x,y) Beta-Funktion
erf(x) Error-Funktion
legendre(n,x) Legendre-Polynom n. Art
gamma(x) Gamma-Funktion
help specfun Übersicht über alle Funktionen
ceil(x)
floor(x)
round(x)
runden (auf, ab, zur nächstgelegenen (ganzen) Zahl)
Datei F.m :

function z=F(x,y)
if x<=1; z=x^2 ; else z=0 ; end
Beispiel zur Definition einer math. Funktion (Ausgelagert in eine Datei)
f=inline('math. Ausdruck')
f=@(x)(math. Ausdruck)
weitere Möglichkeit einer Definition
syms x
sym(Ausdruck)
Die Deklaration der Variable x als symbolisch liefert eine exakte
Berechnung des Ergebnisses
P=interp1(X,Y,x,Methode) Interpolation
X,Y .. gegebene Wertepaare
x .. gesuchte Werte
Methoden: 'linear' / 'cubic' / 'spline'
für n-dimen. Probleme: interpn
polyfit(X,Y,m) Quadratmittelapproximation für Ausgleichspolynom des Grades m (liefert Koeff.)
prod(1:n)
gamma(n+1)
factorial(n)
Fakultät von n
mfun('binomial',n,k)
nchoosek(n,k)
Binomialkoeffizient
Grafische Darstellung
plot(X,Y,'Optionen') ; xlabel('..') ; ylabel('..') ; title('..') 2D-Zeichenfunktion, welche Vektoren X und Y darstellt
syms x; ezplot(f(x),[a,b])
syms x y; ezplot(F(x,y),[a,b])
syms t; ezplot(x(t),y(t),[a,b])
Darstellung von Kurven in
expliziter / impliziter / Parameterdarstellung
polar(phi,r) Plot in Polarkoordinaten
plot3 bzw. ezplot3 3D-Plot
1.)
[x,y]=meshgrid(a:dx:b ; c:dy:d) ; z=f(x,y) ;
bzw.
[u,v]=meshgrid(a:du:b ; c:dv:d) ; x=x(u,v);y=y(u,v) ; z=z(u,v) ;

2.)
mesh(x,y,z) bzw. surf(x,y,z)
contour(x,y,z)






Zeichnen von Flächen
Höhenlinien
syms x y ; ezsurf(f(x,y),[a,b,c,d])
syms u v ; ezsurf(x(u,v),y(u,v),z(u,v),[a,b,c,d])
explizite Darstellung
Parameter-Darstellung
hold on vorhandene Grafik bleibt beibehalten und neue Grafik wird ins gleiche Fenster geladen
Mathematische Ausdrücke zur Umformung
syms .. ; simplify(..) / simple(..) Ausdrücke vereinfachen
syms .. ; expand(..) Erweitern(Multiplizieren/Potenzieren)
syms .. ; factor(..) Faktorisierung
[a,b,c]=residue(Z,N) Partialbruchzerlegung
Z enthält Koeffizienten des Zählerpolynoms
N enthält Koeffizienten des Nennerpolynoms
a enthält Konstanten der Partialbrüche
b enthält Nullstellen des Nennerpolynoms
c enthält konstanten Teil der Zerlegung
collect(Ausdruck) Sortiert Polynom nach den Potenzen
horner(Ausdruck) Sortiert Polynom nach dem Hornerschema
simple(Ausdruck) Verwendet alle möglichen Umformungen
subs(Ausdruck)
subs(Ausdruck,x,y)
Substituiert alle Variablen im Ausdruck durch aktuelle Werte
Substituiert die Variable x im Ausdruck durch y
Matrizen
eye(n)
ones(m,n)
zeros(m,n)
n-dim. Einheitsmatrix
mxn-Matrix, alle Elemente = 1
mxn-Matrix, alle Elemente = 0
rand(m,n)
randn(m,n)
nxm-dim. Zufallsmatrix (gleichverteilt)
(normalverteilt)
A(i,:)=[] bzw. A(:,k)=[] löschen von Zeilen / Spalten
diag(v) Erzeugt Diagonalmatrix mit der Diagonalen v
min(),max(),size() Ermittelt das kleinste/größte Element , die Dimension
rank() Rang der Matrix
trace() Spur der (quadr.) Matrix
dot(x,y)
v=cross(x,y)
det()
inv()
A'
[EV,EW]=eig(A)
Skalarprodukt
Vektorprodukt
Determinante
Inverse
Transponierte
Eigenwertzerlegung
Gleichungen lösen
[x1,..,xn]=solve('Gl1',..,'Gln','x1',..,'xn')
x=linsolve(A,b)
x=A\b
lineares Gleichungssystem lösen
Ax=b
x=roots([an,...,a0])
fzero('f(x)',x0)
Nullstellen eines Polynoms bestimmen
x0=Startwert der Iteration
Differentialrechnung
syms x ; diff(f(x),x,n)
diff('f(x)','x',n)
n-te Ableitung
syms x1 .. xn ; jacobian(f(x1,..,xn),[x1,..,xn]) bildet alle partiellen Ableitungen erster Ordnung
x=a:b:c ; dy=diff(f(x))./diff(x) numerische Berechnung der Ableitung
syms x ; taylor(f(x),n+1,x0,x)
alternativ: taylortool
Taylor-Polynom n-ten Grades im Entwicklungspunkt x0
syms x ; limit(f(x),x,x0) Grenzwert-Berechnung (optional 'left' / 'right')
Integralrechnung
syms x ; int(f(x),x)
int('f(x)','x')
int('f(x)','x',a,b)
Stammfunktion

Bestimmtes Integral
trapz(x,y)
quad('f(x)',a,b)
quadl('f(x)',a,b)
Numerische Berechnung nach der Trapezregel (y=f(x))
Simpsons-Quadratur
Lobatto-Quadratur
dblquad('f(x,y)',a,b,c,d)
triplequad('f(x,y,z)',a,b,c,d,e,g)
Zweifaches Integral
Dreifaches Integral
Reihen(Folgen) und Produkte
syms k ; symsum(f(k),m,n)
syms k m n ; symsum(f(k),m,n)
Summe von m bis n
(falls m,n symbolisch)
k=m:n ; x=f(x) ; prod(x) Produkt
Vektoranalysis
u=u(x,y) Skalarfeld
v=v1(x,y,z)i + v2(x,y,z)j + v3(x,y,z)k Vektorfeld
i,j,k stellen Basis des R3 dar
quiver(x,y, v1, v2)
quiver3(..)
Grafische Darstellung von Vektorfeldern
Transformationen
ztrans(sym('f(n)')
syms n ; ztrans(f(n))
iztrans ..
Z-Transformation

Inverse z-Transformation
laplace(sym('f(x)'))
syms x ; laplace(f(x))
ilaplace(..)
Laplace-Transformation

Inverse
fourier(sym('f(x)'))
ifourier(..)
Fourier-Transformation
Inverse
Stochastik
binopdf(x,n,p)
binocdf(x,n,p)
diskrete Binomialverteilung P(X=x)
kontinuierliche P(X<=x)
normpdf(x,mu,sigma)
normcdf(..)
Normalverteilung
hygepdf(x,M,K,n)
hygecdf(x,M,K,n)
Hypergeometrische Verteilung
poisspdf(x,a)
poisscdf(x,a)
Poisson-Verteilung
[E,S]=binostat(n,p)
[E,S]=hygestat(M,K,n)
[E,S]=poisstat(a)
[E,S]=normstat(mu,sigma)
Erwartungswert und Streuung
R=unifrnd(a,b)
R=normrnd(a,b)
R=normrnd(a,b,m,n)
Gleichverteilte Zufallszahl
Normalveteilte Zufallszahl(Erwartungswert a, Streuung b)
Normalverteilte mxn-Zufallsmatrix

weitere Befehle

  • A=A(1:rank(A(end-size(A,2):end,:),:) eliminiert alle Nullzeilen, solange rank(%) != Anzahl der Spalten von A (=size(A,2))
  • Manuelle Einstellung der Achsenbeschriftung unter: View-Property Editor -> Grafik anklicken -> Unter X(/Y)Axis: Ticks...
  • Mehrere Vektoren in einem Plot: plot(v1(:,1),v1(:,2),v2(:,1),v2(:,2)...)
Persönliche Werkzeuge