You are on page 1of 106

Institut für Grundlagen der Verfahrenstechnik und Anlagentechnik

Technische Universität Graz

EDV – PROGRAMMIERSPRACHE

TEIL II: MATHCAD 2001 PROFESSIONAL

Ao. Univ.-Prof. Dipl.-Ing. Dr. Martin Pflügl

Graz 1999, 2001


Inhaltsverzeichnis:
Einleitung
Dokumentfenster ..................................................................................... 1
Werkzeugfenster ..................................................................................... 2
Bereiche eines Mathcad-Dokumentes .................................................... 3
1) Definitionsgleichung ............................................................................... 4
2) Numerische Berechnungsgleichung ..................................................... 4
3) Symbolisches Rechnen
3.1) Symbolische Berechnungsgleichung ............................................... 7
3.2) Benützung des Symbolic-Menüs ................................................... 12
4) Vektoren und Matrizen .......................................................................... 14
4.1) Operatoren ..................................................................................... 17
4.2) Funktionen
4.2.1) Größe .................................................................................... 18
4.2.2) Spezielle Matrizen ................................................................. 19
4.2.3) Funktionen zum Bilden von Matrizen .................................... 20
4.2.4) Charakteristische Matrixgrößen ............................................ 22
4.2.5) Eigenwerte und Eigenvektoren ............................................. 23
4.2.6) Zerlegung von Matrizen ........................................................ 24
4.2.7) Sortierfunktionen ................................................................... 27
5) Schrittweise Berechnung
5.1) Eine Variable .................................................................................. 28
5.2) Mehrere Variable ........................................................................... 29
5.3) Vektor ............................................................................................ 30
6) Funktionen
6.1) Mathcad-Funktionen
6.1.1) Transzendente Funktionen ................................................... 32
6.1.2) Funktionen mit komplexen Zahlen ........................................ 33
6.1.3) Stückweise kontinuierliche Funktionen ................................. 33
6.1.4) Rundungsfunktionen ............................................................. 34
6.1.5) Funktionen der Zahlentheorie und Kombinatorik .................. 34
6.1.6) Diskrete Transformationsfunktionen ..................................... 35
6.1.7) Interpolations- und Vorhersage-Funktionen ......................... 36
6.1.8) Regression ............................................................................ 37
6.1.9) Zugriff auf Textdateien .......................................................... 38
6.1.10) Weitere Funktionen ............................................................. 39
6.2) Definition einer Benützerfunktion durch einen Ausdruck ................ 40
7) Programmierung .................................................................................... 41
7.1) Bedingungsanweisungen ............................................................... 42
7.2) Schleifenanweisungen
7.2.1) While-Schleife ....................................................................... 44
7.2.2) For-Schleife ........................................................................... 47
7.3) Rekursive Programmierung ............................................................ 49
7.4) Programmablauf-Kontrolle
7.4.1) Vorzeitige Beendigung eines Schleifendurchlaufes .............. 50
7.4.2) Vorzeitige Beendigung einer Schleife ................................... 51
7.4.3) Vorzeitige Beendigung eines Programms ............................. 52
7.4.4) Fehlerbehandlung ................................................................. 53
8) Gleichungslösung
8.1) Lineare Gleichungen
8.1.1) Mittels invertierter Koeffizientenmatrix .................................. 56
8.1.2) Mittels der Funktion lsolve .................................................... 56
8.2) Nichtlineare Gleichungen
8.2.1) root-Funktion ........................................................................ 57
8.2.2) polyroots-Funktion ............................................................... 60
8.2.3) SOLVE-Block ........................................................................ 61
9) Differentialgleichungen
9.1) Gewöhnliche Differentialgleichungen
9.1.1) Lösung einer DGL mittels SOLVE-Block .............................. 64
9.1.2) Differentialgleichungs-Lösungsfunktionen
9.1.2.1) Anfangswertprobleme
9.1.2.1.1) Runge-Kutta-Methode 4. Ordnung ......................... 66
9.1.2.1.2) Spezialisierte Differentialgleichungslöser ............... 71
9.1.2.2) Randwertprobleme
9.1.2.2.1) Vorgegebene Randwerte an den Bereichsenden ... 73
9.1.2.2.2) Vorgegebene Werte an den Bereichsenden
und in einem Zwischenpunkt ................................. 75
9.2) Partielle Differentialgleichungen
9.2.1) Alle Randwerte = 0.................................. .............................. 78
9.2.2) Randwerte nicht gleich groß ................................................. 80
10) Zweidimensionale Diagramme
10.1) x-y-Diagramm ............................................................................... 82
Zoomen eines Diagrammbereiches .............................................. 86
Auslesen von Plot-Koordinaten ..................................................... 87
10.2) Polar-Diagramm ........................................................................... 88
11) Dreidimensionale Diagramme
Erstellen mit dem 3D-Plot-Helfer ........................................................... 91
11.1) Oberflächen-Diagramm ................................................................ 96
11.2) Kontur-Diagramm ......................................................................... 98
11.3) 3D-Balken-Diagramm ................................................................... 99
11.4) 3D-Punkthaufen-Diagramm ........................................................ 100
11.5) Vektorfeld-Diagramm .................................................................. 101
-1-

Mathcad 2000 Professional


Einführung
numerische
Mathematik-Software für Berechnungen
symbolische

Mathcad-Arbeitsblatt nach dem Starten

Definition eines neuen Dokumentes <Strg>N


Laden einer bestehenden Datei <Strg>O
Sichern eines Mathcad-Dokumentes <Strg>S
Schließen eines Dokumentes <Strg>W
Dateityp eines Mathcad-Dokumentes .mcd
-2-
-3-
Mathcad-Dokument

Berechnungs- Diagrammbereiche Textbereiche


bereiche

Definitions- x-y-Diagramme Textfeld


gleichung @ "
:= ≡
Numerische Polar-Diagramme
Berechnungs- <Strg>7
gleichung
=
Symbolische Oberflächen-
Berechnungs- diagramme
gleichung <Strg>2
→ ▪→

Bedingungs- Kontur-Diagramme
gleichung in <Strg>5
Lösungs-blöcken
= ≠ > < ≤ ≥
Lokale 3D-Balken-
Definitions- diagramme
gleichung in
Programm-
Bereichen

3D-Punkthaufen-
diagramme

Vektorfeld-
Diagramme

Animation

Zeichnungen
(Sketches)
-4-
1) Definitionsgleichung

Globale Definition Lokale


Gilt für das gesamte Gilt ab der Definition bis
Dokument zur nächsten Definition der
gleichen Größe

Globale Definition def ≡ ausdr

Name einer einfachen Arithmetischer Ausdruck


Größe oder Funktion von Konstanten und
anderen globalen Größen

Lokale Definition def := ausdr

Name der definierten Größe Arithmetischer Ausdruck


(Unterscheidung zwischen von definierten Größen und
Groß- und Kleinschreibung, Funktionen von definierten
griechische Buchstaben, Größen oder von Parametern
Tiefstellen durch . einer Funktion oder
z.B. a.1 → a1) Bereichsausdruck
Einfache Größe
Vektor Standardeinstellung
(Matrix mit einer Spalte) ORIGIN ≡ 0
<Strg>M
Matrix Standardeinstellung
<Strg>M ORIGIN ≡ 0
Indizierte Größe ai,k:= ausdr
[
Bereichsvariable var := awert,nwert;ewert
;
Funktion fun(par1,par2,...) := ausdr

2) Numerische Berechnungsgleichung

def = Ergebnis ausdr = Ergebnis


-5-
-6-
-7-

3) Symbolisches Rechnen
Mathcad enthält einen Teil des Software-Pakets MAPLE, der für
das symbolische Rechnen verwendet wird. Der symbolische
Prozessor wird beim Start von Mathcad 2001 Professional
automatisch geladen.

3.1) Symbolische Berechnungsgleichung

ausdr → Ergebnis <Strg>. ⇒ →

ausdr Schlüsselwort → Ergebnis <Strg>< >. ⇒ ▪→


-8-
Anpassung der symbolischen Berechnung durch Schlüsselwörter:
Schlüsselwort Funktion
complex Symbolische Berechnung in der komplexen Zahlenebene,
Ergebnis ist in der Form a+i⋅b

float,m Ergebnis ist Fließkommawert mit m Ziffern 1≤m≤250

simplify Arithmetische Vereinfachung durch Kürzen gemeinsamer


Faktoren und Verwendung von Identitäten der
trigoniometrischen und inversen Funktionen,

simplify, zusätzlich werden alle Unbekannten als reellwertig


assume=real angenommen,

simplify, oder zusätzlich werden alle Unbekannten als reellwertig


assume= im Bereich zwischen den reellen Zahlen a und b
RealRange(a,b) angenommen,

simplify,trig oder zusätzlich erfolgt die Vereinfachung nur unter der


Verwendung der Identitäten
sin( x) 2 + cos( x) 2 = 1 und cosh( x) 2 − sinh( x) 2 = 1
expand[,ausdr] Entwickeln aller Produkte und Potenzen von Summen in
einen Ausdruck außer für den Subausdruck ausdr

factor[,ausdr] Faktorisierung in ein Produkt, wenn möglich, unter


Berücksichtigung von ausdr als eine einzelne Größe oder
mehrere Größen, getrennt durch Kommas

solve,var Lösung einer Gleichung für die Variable var, oder eines
Gleichungssystems für die Variablen im Vektor var

collect, Zusammenfassung gleicher Ausdrücke im Hinblick auf


var1 ... varn die Variablen oder Unterausdrücke var1 bis varn

coeffs,var Ermittlung der Koeffizienten eines Ausdrucks, wenn


dieser als Polynom in der Variablen oder im
Unterausdruck var dargestellt wird

substitute, Ersetzen der Variablen var1 durch die Variable oder den
var1=var2 Ausdruck var2 (<Strg>+ für fettgedrucktes =)

series,var[=z,m] Reihenentwicklung einer oder mehrer Variablen var um


den Punkt z mit der Ordnung m
Standardeinstellung: z = 0 und m = 6
-9-

Schlüsselwort Funktion
convert, Partialbruchzerlegung nach der im Nenner des Ausdrucks
parfrac,var stehenden Variablen var

fourier,var Fourier-Transformation eines Ausdruckes bezüglich der


Variablen var in eine Funktion der Variablen ω
+∞
− iω t
∫ f (t ) e dt
−∞

invfourier,var Inverse Fourier-Transformation eines Ausdruckes


bezüglich der Variablen var in eine Funktion der
Variablen t
+∞
1 iω t
2π ∫ F (ω ) e dω
−∞

laplace,var Laplace-Transformation eines Ausdruckes bezüglich der


Variablen var in eine Funktion der Variablen s
+∞
−s t
∫ f (t ) e dt
0

invlaplace,var Inverse Laplace-Transformation eines Ausdruckes


bezüglich der Variablen var in eine Funktion der
Variablen t
σ + iω
1
∫ F ( s ) e s t ds
2π σ −iω

ztrans,var Z-Transformation eines Ausdruckes bezüglich der


Variablen var in eine Funktion der Variablen z
+∞
∑ f ( n) z n
n =0

invztrans,var Inverse Z-Transformation eines Ausdruckes bezüglich der


Variablen var in eine Funktion der Variablen n in Form
eines Konturintegrals um den Nullpunkt
1 n −1
2π i C ∫ F ( z ) z dz

Dabei ist C eine Kontur um alle singulären Punkte des


Integranden F (z )
- 10 -

Schlüsselwort Funktion
assume,beding Auswertung eines Ausdruckes unter Festlegen einer
Nebenbedingung beding für eine oder mehrere Variablen

assume,var=real Auswertung eines Ausdruckes unter der Annahme alle


Unbekannten seien reellwertig

assume,var= Auswertung eines Ausdruckes unter der Annahme alle


RealRange(a,b) Unbekannten seien reellwertig im Bereich der reellen
Zahlen a und b
- 11 -
- 12 -

3.2) Benützung des Symbolic-Menüs

Im Menü Symbolic stehen folgende Prozeduren zur Verfügung:

Symbolically < >F9


Floating Point ...
Complex
Evaluate ►
Simplify Expand to Series...
Expand Convert to Partial Fraction
Factor
Collect Solve
Substitute
Polynomial Coefficients
Differentiate
Variable ► Integrate
Matrix ►
Transpose
Transform ► Invert
Evaluation Style... Derminant

Fourier
Inverse Fourier
Laplace
Inverse Laplace
Z
Inverse Z
- 13 -
Benützung der Funktionen aus dem Symbolics-Menü:
- 14 -

4) Vektoren und Matrizen:


Erstellen durch:
a) Insert-Matrix-Kommando:
• Menü Insert Æ Matrix oder
■■■ ■■■
• Mathematik-Tool Bar Æ ■■■
■■■ Æ ■■■
■■■ oder
• <Strg>M

b) Verwendung von Bereichsvariablen


c) Einzelwertzuweisung an die indizierte Vektor- oder Matrizen-
Variable
d) Einlesen einer Werte-Datei, die Datei wird bei jeder
Neuberechnung des Arbeitsblattes neu eingelesen:
Menü Insert Æ Component Æ File Read or Write Æ
Æ Read from a file ...

Auf den Platzhalter erfolgt die Eingabe des Namens der


Vektor/Matrix-Variablen.
Werte-Trennzeichen in einer Zeile der Datei: <Tab>
- 15 -

e) Eingabe in eine Tabelle:


Menü Insert Æ Component Æ Input Table Æ Finish
Auf den Platzhalter Eingabe der Vektor/Matrix-Variablen,
in die Tabelle Eingabe der Werte
f) Importieren in eine Tabelle aus einer Datei, die Datei wird nur
bei Wahl der Option Import eingelesen:
Wie e) aber statt Werteeingabe Tabelle auswählen durch
Anklicken Æ rechte Maustaste Æ Import ...
- 16 -
- 17 -

4.1) Operatoren

Operation Bild Taste


Multiplikation mit Skalar A⋅z *

Skalarprodukt zweier Vektoren u⋅ v *

Matrix-Multiplikation A⋅ B *

Vektor/Matrix-Multiplikation A⋅ v *

Division durch Skalar A/z /

Addition eines Skalars A+z +

Vektor- und Matrix-Addition A +B +

Subtraktion eines Skalars A-z -

Vektor- und Matrix-Subtraktion A -B -

Negation von Vektor und Matrix -A -

Potenz einer quadrat. Matrix, Inverse (n=-1) Mn ^

Betrag eines Vektors |v| |

Determinante einer quadratischen Matrix |M| |


Transponierte Matrix AT <Strg>1

Kreuzprodukt zweier Dreielement-Vektoren uxv <Strg>8

Konjugiert komplexe Matrix (elementweise) A "


Summe aller Vektorelemente ∑v <Strg>4
r
Element per Element-Operation (Vectorize) A <Strg>-

n-ter Spaltenvektor der Matrix A<n> <Strg>6

n-tes Vektorelement vn [

(m,n)-tes Matrixelement Am,n [


- 18 -

4.2) Funktionen
4.2.1) Größe

Funktion Funktionsergebnis

rows(A) Anzahl der Zeilen des Feldes A

cols(A) Anzahl der Spalten des Feldes A

length(v) Anzahl der Elemente des Vektors v

last(v) Indexzahl des letzten Vektorelementes

max(A) Größtes Element des Feldes A

min(A) Kleinstes Element des Feldes A


- 19 -

4.2.2) Spezielle Matrizen

Funktion Funktionsergebnis
identity(n) Einheitsmatrix I

Re(A) Feld der Realteile des Feldes A

Im(A) Feld der Imaginärteile des Feldes A

diag(v) Diagonalmatrix mit den Vektorelementen v

geninv(A) Linksinverse Matrix L von A, L⋅A=I

rref(A) Zeilenreduzierte Echelonform von A


- 20 -

4.2.3) Funktionen zum Bilden von neuen Matrizen

Funktion Funktionsergebnis

augment(A,B,C,...) Matrix gebildet durch


Nebeneinanderstellen von A, B, C, ...
Die Matrizen A, B, C, ... müssen gleiche
Zeilenanzahl besitzen

stack(A,B,C,...) Matrix gebildet durch


Übereinanderstellen von A, B, C, ...
Die Matrizen A, B, C, ... müssen gleiche
Spaltenanzahl besitzen

submatrix(A,iz,jz,is,js) Submatrix bestehend aus den Elementen


der Zeilen iz bis jz und der Spalten von is
bis js der Matrix A
iz > jz ... umgekehrte Zeilenanordnung
is > js ... umgekehrte Spaltenanordnung
matrix(m,n,f) Matrix, bei der das i,j-te Element den
Funktionswert f(i,j) enthält
i = 0,1, ... m-1 j = 0,1, ... n-1
f muß bereits davor definiert sein

CreateMesh(F,[[s0], Vektor dreier eingebetteter Matrizen, die


[s1],[t0],[t1],[sgrid], die x-, y- und z-Koordinaten einer
[tgrid],[fmap]]) parametrischen Oberfläche definiert
durch F darstellen. F ist eine
dreielementige Vektorfunktion zweier
Variablen.

CreateSpace(F,[[t0], Vektor dreier eingebetteter Vektoren, die


[t1],[tgrid],[fmap]]) die x-, y- und z-Koordinaten einer
Raumkurve definiert durch F darstellen.
F ist eine dreielementige Vektorfunktion
einer Variablen.
- 21 -
- 22 -
4.2.4) Charakteristische Matrixgrößen

Funktion Funktionsergebnis

tr(M) Spur der quadratischen Matrix M

rank(A) Rang der reellen Matrix A

norm1(M) L1-Norm der quadratischen Matrix M

norm2(M) L2-Norm der quadratischen Matrix M

norme(M) Euklidische Norm der quadratischen Matrix M

normi(M) Zeilensummen-Norm der quadratischen Matrix M

cond1(M) Kondition basierend auf der L1-Norm

cond2(M) Kondition basierend auf der L2-Norm

conde(M) Kondition basierend auf der euklidischen Norm

condi(M) Kondition basierend auf der Zeilensummennorm


- 23 -
4.2.5) Eigenwerte und Eigenvektoren

Funktion Funktionsergebnis

eigenvals(M) Vektor der Eigenwerte der quadrat. Matrix M

eigenvec(M,z) normalisierter Eigenvektor für Eigenwert z von M

eigenvecs(M) Matrix der normalisierten Eigenvektoren von M,


n-ter Spaltenvektor ist Eigenvektor des n-ten
Eigenwertes nach eigenvals(M)

genvals(M,N) Vektor v der Eigenwerte des generalisierten


Eigenwertproblems M⋅x = vi⋅N⋅x
M,N ... quadrat., gleichgroße, reellw. Matrizen
x ......... zum Eigenwert vi gehörender Eigenvektor
genvecs(M,N) Matrix der normalisierten Eigenvektoren zu den
Eigenwerten in v := genvals(M,N)
- 24 -

4.2.6) Zerlegung von Matrizen

Funktion Funktionsergebnis

cholesky(M) Untere Dreiecksmatrix L, so daß L⋅LT = M,


benützt nur den oberen Dreiecksteil von M,
dieser um die Diagonale gespiegelt muß eine
positiv definite Matrix ergeben

qr(A) Matrix, die orthonormale Matrix Q neben der


oberen Dreiecksmatrix R enthaltend,
so daß A = Q⋅R

lu(M) Matrix, nebeneinander die quadratischen Matrizen


P, L und U enthaltend,
so daß P⋅M = L⋅U
L ... untere Dreiecksmatrix
U ... obere Dreiecksmatrix
svd(A) Matrix, übereinander die Matrizen U und V
enthaltend, so daß A = U⋅diag(s)⋅VT
A ... mxn reelwertiges Feld, wobei m ≥ n
U ... obere mxn Submatrix
V ... untere nxn Submatrix
s ... Vektor s := svds(A)
svds(A) Vektor der singulären Werte von A
A ... mxn reelwertiges Feld, wobei m ≥ n
- 25 -
- 26 -
- 27 -

4.2.7) Sortier-Funktionen

sort(v) Sortiert die Elemente des Vektors v in aufsteigender


Reihenfolge

csort(A,n) Sortiert die Zeilen der Matrix A


entsprechend der Elemente der Spalte n
in aufsteigender Reihenfolge

rsort(A,n) Sortiert die Spalten der Matrix A


entsprechend der Elemente der Zeile n
in aufsteigender Reihenfolge

reverse(v) Kehrt die Elementanordnung des Vektors v um

reverse(A) Kehrt die Zeilenanordnung der Matrix A um


- 28 -

5) Schrittweise Berechnung (seeded iteration)

5.1) Eine Variable


Beispiel: Näherungsweise Lösung einer nichtlinearen
Gleichung, wobei ein verbesserter
Näherungswert aus dem vorhergehenden
berechnet wird
- 29 -

5.2) Mehrere Variable


Beispiel: Bilanzierung einer Bodenkolonne
. . N& f N& g
Ng,0 N f,0 X= & Y= &
N f ,0 N g ,0
Yi+1 X i+1
x= X y= Y
1+ X 1+ Y
.
Ni+1 yi + 1 = H ⋅ xi

N& i + 1 = (X i − X i + 1 ) ⋅ N& f,0


Yi Xi
N& i + 1 = (Yi − Yi + 1 ) ⋅ N& g,0
- 30 -
- 31 -

5.3 Vektor
Beispiel: Mehrfache Transformation eines Vektors,
A ist die Transformationsmatrix
- 32 -

Beispiel: Linearisierte Bilanzierung einer Bodenkolonne

. . N& i + 1 = (X i − X i + 1 ) ⋅ N& f,0


Ng,0 N f,0
N& i + 1 = (Yi − Yi + 1 ) ⋅ N& g,0
Yi+1 X i+1
N& g,0 N& g,0
. X i + 1 = (1 + H )⋅ X i − ⋅Y i
Ni+1 N& f,0 N& f,0

Yi + 1 = H ⋅ Xi linearisiert
Yi Xi
N& i + 1
= -H ⋅ X i + Yi
N& g,0
- 32 -

6) Funktionen

6.1) Mathcad-Funktionen

6.1.1) Transzendente Funktionen


x, y ... rellwertige Ausdrücke m, n ..... Ordnung
z ....... komplexwertiger Ausdruck a, b, c ... Parameter

Trigono- Hyper- Exponent.


metrische bolische Bessel Logarithm. Spezielle

sin(z) sinh(z) J0(x) exp(z) erf(x)


cos(z) cosh(z) J1(x) ln(z) erfc(x)
tan(z) tanh(z) Jn(m,x) log(z[,b]) Γ(z)
cot(z) coth(z) js(n,x) Γ(x,y)
csc(z) csch(z) Y0(x) fhyper(a,b,c,x)
sec(z) sech(z) Y1(x) Her(n,x)
asin(z) asinh(z) Yn(x) ibeta(a,n,x)
acos(z) acosh(z) ys(n,x) Jac(n,a,b,x)
atan(z) atanh(z) I0(x) Lag(n,x)
atan2(x,y) acoth(z) I1(x) Leg(n,x)
acot(z) acsch(z) In(m,x) mhyper(a,b,x)
acsc(z) asech(z) K0(x) Tcheb(n,x)
asec(z) K1(x) Ucheb(n,x)
angle(x,y) Kn(m,x)
bei(n,x)
ber(n,x)
Ai(x)
Bi(x)
- 33 -
6.1.2) Funktionen mit komplexen Zahlen
x,y ... rellwertige Ausdrücke
z ...... komplexwertiger Ausdruck

Re(z) Realteil von z


Im(z) Imaginärteil von z
arg(z) Argument von z, -π ≤ arg(z) ≤ π
csgn(z) 0 ....... für z = 0
1 ....... für Re(z)>0 oder (Re(z)=0 und
Im(z)>0)
-1 ...... ansonsten
signum(z) 1 ....... für z = 0
z/|z| ... ansonsten

6.1.3) Stückweise kontinuierliche Funktionen

if(bed,tw,fw) tw .... wenn bed ≠ 0 (true)


fw .... wenn bed = 0 (false)
bed: w = z x>y x≥y
w≠z x<y x≤y

δ(m,n) Kronecker’sche Deltafunktion


1 ...... für m = n
0 ...... ansonsten

ε(i,j,k) Antisymetrischer Tensor vom Rang 3


0 .... für zwei gleiche Werte i, j, k
1 .... für gerade Permutationen
-1 ... für ungerade Permutationen
i, j, k ... zwischen ORIGIN und ORIGIN+2

Φ(x) Heaviside Sprungfunktion


0 .... für x < 0
1 .... für x ≥ 0
sign(x) 0 .... für x = 0
1 .... für x > 0
-1 ... für x < 0
- 34 -

6.1.4) Rundungsfunktionen

ceil(x) Kleinste Integerzahl ≥ x


floor(x) Größte Integerzahl ≤ x
round(x[,n]) Rundung von x auf n Dezimalstellen,
n < 0 .... Rundung links vom Dezimalpunkt,
n fehlt ... Rundung auf nächste Integerzahl
trunc(x) Abschneiden der Nachkommastellen von x

6.1.5) Funktionen der Zahlentheorie und Kombinatorik

combin(n,k) Anzahl der Kombinationen von n Objekten


in k Elementen; k,n ganze Zahlen 0 ≤ k ≤ n
permut(n,k) Anzahl der Permutationen von n Objekten in
k Elementen; k,n ganze Zahlen 0 ≤ k ≤ n
lcm(A,B,C,...) Kleinstes gemeinsames Vielfaches
gcd(A,B,C,...) Größter gemeinsamer Nenner von A, B, C,..
mod(x,y) Divisionsrest nach x/y
- 35 -

6.1.6) Diskrete Transformationsfunktionen

cfft(A) Fast-Fourier-Transformation,
A ... komplexwertiger Vektor oder Matrix
Ergebnis ist ein Feld gleicher Größe wie A
icfft(A) Inverse Fast-Fourier-Transformation,
A ... komplexwertiger Vektor oder Matrix
Ergebnis ist ein Feld gleicher Größe wie A
fft(v) Fast-Fourier-Transformation,
v ... rellwertiger Vektor mit 2m Elementen, m>2
ifft(v) Inverse Fast-Fourier-Transformation,
v ... Vektor mit 1+2n-1 Elementen
Ergebnis ist ein Vektor mit 2nElementen, n>2
CFFT(A) Fast-Fourier-Transformation identisch mit cfft,
jedoch mit unterschiedlicher Normierung und
unterschiedlicher Vorzeichen-Vereinbarung
ICFFT(A) Inverse Fast-Fourier-Transformation zu CFFT,
A ... komplexwertiger Vektor oder Matrix
Ergebnis ist ein Feld gleicher Größe wie A
FFT(v) Fast-Fourier-Transformation identisch mit fft,
jedoch mit unterschiedlicher Normierung und
unterschiedlicher Vorzeichen-Vereinbarung
IFFT(v) Inverse Fast-Fourier-Transformation zu FFT,
v ... Vektor mit 1+2n-1 Elementen
Ergebnis ist ein Vektor mit 2nElementen, n>2
wave(v) Wavelet-Transformation,
v ... rellwertiger Vektor mit 2m Elementen
Ergebnis ist ein Vektor gleicher Größe
iwave(v) Inverse Wavelet-Transformation,
v ... rellwertiger Vektor mit 2m Elementen
Ergebnis ist ein Vektor gleicher Größe
- 36 -
6.1.7) Interpolations- und Vorhersage-Funktionen
vx ....... Vektor der Abszissenwerte der Stützpunkte in aufsteigender
Reihenfolge
vy ....... Vektor der Ordinatenwerte der Stützpunkte
vs ....... Vektor der Splinekoeffizienten in den Stützpunkten
u ........ Vektor der Abszissenwerte der Knoten für den B-Spline
n ......... Ordnung des B-Splines
Mxy .... nx2-Matrix der Abszissen- und Ordinatenwerte der Stützpunkte
auf einem Rechteckgitter in aufsteigender Reihenfolge
Mz ...... nxn-Matrix der z-Werte der Stützpunkte
x ......... Abszisse des zu interpolierenden Punktes
y ......... Ordinate des zu interpolierenden Punktes mit x
v ......... Vektor des zu interpolierenden Punktes in der xy-Ebene
z ......... z-Koordinate des zu interpolierenden Punktes mit v

linterp(vx,vy,x) Lineare Interpolation


Kubische Spline-Interpolation von Kurven
lspline(vx,vy) ⇒ vs mit geraden Randabschnitten
pspline(vx,vy) ⇒ vs mit parabol. Randabschnitten
cspline(vx,vy) ⇒ vs mit kub. Randabschnitten
interp(vs,vx,vy,x) ⇒ y für x
Kubische Spline-Interpolation von Oberflächen
lspline(Mxy,Mz) ⇒ vs mit geraden Randabschnitten
pspline(Mxy,Mz) ⇒ vs mit parabol. Randabschnitten
cspline(Mxy,Mz) ⇒ vs mit kub. Randabschnitten
interp(vs,Mxy,Mz,v) ⇒ z für v
B-Spline-Interpolation von Kurven
bspline(vx,vy,u,n) ⇒ vs für B-Spline der Ordnung n
interp(vs,vx,vy,x) ⇒ y für x
Lineare Vorhersage
predict(v,m,n) ⇒ Vektor der Vorhersagewerte
m ... Anzahl der letzten Datenwerte im Vektor
v als Vorhersagebasis
n .... Anzahl der Vorhersagewerte
- 37 -
6.1.8) Regression
vx .......... Vektor der Abszissenwerte der Stützpunkte
vy .......... Vektor der Ordinatenwerte der Stützpunkte
span ...... maximaler Ordinatenabstand der Fitkurve von den
Datenpunkten
vs .......... Vektor der Polynomkoeffizienten
x ............ Abszisse des zu interpolierenden Punktes
Mxy ....... nx2-Matrix der Abszissen- und Ordinatenwerte der
Stützpunkte
vz .......... n-Element-Vektor der z-Werte der Stützpunkte
v ............ Vektor des zu interpolierenden Punktes in der xy-Ebene
a,b,c ....... Fitparameter der spezialisierten Regression
F ............ Vektor von Fitfunktionen
vg .......... Vektor von Startwerten für die Fitparameter a,b,c der
spezialisierten Regression, bzw. die Fitparameter in F

Lineare Regression
intercept(vx,vy) ⇒ Ordinatenabschnitt der Fitgeraden
slope(vx,vy) ⇒ Neigung der Fitgeraden
line(vx,vy) ⇒ Ordinatenabschnitt und Neigung
stderr(vx,vy) ⇒ Standard-Fehlerabweichung
medfit(vx,vy) ⇒ Ordinatenabschnitt und Neigung für
Median-Median-Regression
Polynom-Regression einer Kurve
regress(vx,vy,n) ⇒ vs für Polynom n-ter Ordnung
loess(vx,vy,span) ⇒ vs für Satz von Polynomen 2. Ordnung
interp(vs,vx,vy,x) ⇒ y für x
Polynom-Regression einer Oberfläche
regress(Mxy,vz,n) ⇒ vs für Polynom n-ter Ordnung
loess(Mxy,vz,span) ⇒ vs für Satz von Polynomen 2. Ordnung
interp(vs,Mxy,vz,v) ⇒ z für v
- 38 -

Spezialisierte Regression
expfit(vx,vy,vg) ⇒ Vektor der Fitparameter a,b,c
der Fitfunktion a⋅exp(b⋅x) + c
lgsfit(vx,vy,vg) ⇒ Vektor der Fitparameter a,b,c
der Fitfunktion a/[1+b⋅exp(-c⋅x)]
logfit(vx,vy,vg) ⇒ Vektor der Fitparameter a,b,c
der Fitfunktion a⋅ln(x)b + c
pwrfit(vx,vy,vg) ⇒ Vektor der Fitparameter a,b,c
der Fitfunktion a⋅xb + c
sinfit(vx,vy,vg) ⇒ Vektor der Fitparameter a,b,c
der Fitfunktion a⋅sin(x + b) + c
Generalisierte Regression
linfit(vx,vy,F) ⇒ Vektor der Koeffizienten für die
Linearkombinationen der Fi
genfit(vx,vy,vg,F) ⇒ Vektor der Fitparameter in F

6.1.9) Zugriff auf Textdateien


datei ..... Name [und Pfad] einer strukturierten ASCII-Datendatei als
Zeichenkette in Anführungszeichen oder als Textvariable.
Bei einer Eingabedatei müssen die Datenwerte in einer Zeile
durch Tabulatorzeichen getrennt sein und in jeder Zeile
müssen gleich viele Datenwerte stehen

READPRN(datei) Liest die Datei auf eine Matrix, wobei die


Zeilen der Datei in die Zeilen der Matrix
eingetragen werden,
z.B.: A:=READPRN(datei)
WRITEPRN(datei) Die Zeilen einer Matrix werden in die Zeilen
einer Datei ausgegeben,
z.B.: WRITEPRN(datei):=A
APPENDPRN(datei) Eine Matrix wird an eine bestehende Datei,
die die gleiche Spaltenanzahl haben muß,
angehängt, z.B.: APPENDPRN(datei):=A
- 39 -

6.1.10) Weitere Funktionen


• Glättungsfunktionen
• Statistische Funktionen
• Wahrscheinlichkeits-Verteilungsfunktionen
• Finanztechnische Funktionen
• Funktionen zur Datentypermittlung
• Funktionen zur Behandlung von Zeichenketten
• Funktionen zum Lesen und Schreiben von Bilddateien
• Funktionen zur Verwendung mit 3D-Diagrammen
- 40 -

6.2) Definition einer Benützerfunktion durch einen


Ausdruck

fun(f1,f2,....,v1,v2,....) := ausdr{f1,f2,....,v1,v2,....,a1,a2,....}

formale Parameter definierte


der Funktion Ausdrücke

formale Funktionsnamen formale Parameter


der Funktion

beliebiger Name für die formale Funktionsaufrufe,


zu definierende Funktion mit Parametern v1,v2,....
und/oder definierten Ausdrücken

fun(f1,f2,....,v1,v2,....) = Ergebnis
oder

erg := fun(f1,f2,....,v1,v2,....)

aktuelle, vollständig
definierte Ausdrücke

aktuelle Funktionsnamen von


Mathcad-Funktionen oder
definierten Benützerfunktionen
- 41 -

7) Programmierung
- 42 -
7.1) Bedingungsanweisungen

Funktionsdefinition f( x )

Bei selektiertem Platzhalter f( x )


klick "Add Line"

Bei selektiertem oberen f( x ) if


Platzhalter
klick "if"

Eingabe auf die selektierten f( x ) 0 if x >2


oberen Platzhalter

Bei selektiertem unteren f( x ) 0 if x >2


Platzhalter
klick "otherwise" otherwise

Eingabe auf den selektierten f( x ) 0 if x >2


unteren Platzhalter
2
4 x otherwise
- 43 -
- 44 -

7.2) Schleifenanweisungen
7.2.1) While-Schleife

Klick "While" while

Eingabe bei selektiertem while vj Grenzwert


oberen bzw. unteren
Platzhalter
j

Bei selektiertem unteren j while vj Grenzwert


klick "←"
j

Eingabe auf den selektierten while vj Grenzwert


rechten unteren Platzhalter
j j 1

Anfügen einer weiteren while vj Grenzwert


Programmzeile: Bei
selektiertem gesamten j j 1
unteren Ausdruck
klick "Add Line"
- 45 -
- 46 -
- 47 -
7.2.2) For-Schleife

Klick "For" for ∈

Eingabe bei selektiertem for i ∈


linken oberen Platzhalter

Eingabe des Bereiches bei for i ∈ 1 .. n


selektiertem rechten oberen
Platzhalter

Eingabe auf den selektierten for i ∈ 1 .. n


unteren Platzhalter und
Klicken ← s

Eingabe des Ausdruckes auf den for i ∈ 1 .. n


selektierten unteren Platzhalter
s s i
- 48 -
- 49 -

7.3) Rekursive Programmierung


- 50 -
7.4) Programmablauf-Kontrolle
7.4.1) Vorzeitige Beendigung eines Schleifendurchlaufes

Selektiere Platzhalter

Klick "if" if

Klick "continue"
continue if
Trage Bedingung ein
- 51 -
7.4.2) Vorzeitige Beendigung einer Schleife

Selektiere Platzhalter

Klick "if" if

Klick "break"
break if
Trage Bedingung ein
- 52 -
7.4.3) Vorzeitige Beendigung eines Programms

Selektiere Platzhalter

Klick "if" if

Klick "return"
Trage Rückgabewert und return if
Bedingung ein
- 53 -
7.4.4) Fehlerbehandlung
Anweisung für die Fehlerbehandlung: "on error"

Selektiere Platzhalter

Klick "on error",


trage normal auszuführende on error
Anweisung ein

Trage Anweisung für den


Fehlerfall ein
on error anweisung

Anweisung zur Ausgabe von Fehlertext: "error()"

Selektiere Platzhalter

Klick "if"
Trage "error" mit Fehlertext if
ein

Trage Fehlerbedingung ein error(“Fehlertext“) if


- 54 -
- 55 -
- 56 -

8) Gleichungslösung
8.1) Lineare Gleichungen
Gleichungssystem M⋅x = a
8.1.1) Mittels invertierter Koeffizientenmatrix x := M-1⋅a

8.1.2) Mittels der Funktion lsolve x := lsolve(M,a)


- 57 -

8.2) Nichtlineare Gleichungen


Vorgabe der Genauigkeit durch TOL := epsilon
-3
Voreingestellter Wert TOL ≡ 10

8.2.1) root-Funktion
Nullstellen-Suche für eine Variable mit numerischem Ergebnis

Startwert-Vorgabe Lösungsbereich-Vorgabe
Zahlenergebnis
var := Startwert
root(ausdr,var,a,b) = Ergebnis
root(ausdr,var) = Ergebnis
Variablendefinition für Ergebnis
var := Startwert
erg := root(ausdr,var,a,b)
erg := root(ausdr,var)
erg = Ergebnis
erg = Ergebnis

ausdr .... Ausdruck, der u.a. von der Variablen var abhängt und der zu
Null werden soll.
var ......... Variable für die die Nullstelle von ausdr gesucht werden soll.
a, b ........ Definierte Ausdrücke für die Grenzen des Bereiches in dem
die Nullstelle liegen soll. Damit eine Nullstelle gefunden wird,
müssen die Werte von ausdr für a und b unterschiedliches
Vorzeichen haben.
Funktionsdefinition für mehrere Ergebnisse:
Startwert-Vorgabe
fun([var,]v1,v2,...) := root(ausdr,var)

Variable, die in ausdr


enthalten sind

Wenn vorhanden = Startwert,


ansonsten vorher lokale
Startwertdefinition

Beliebiger Funktionsname
- 58 -

Lösungsbereich-Vorgabe
fun(v1,v2,...) := root(ausdr,var,a,b)

Variable, die in ausdr


und/oder a und/oder b
enthalten sind

Beliebiger Funktionsname

fun kann in weiteren Ausdrücken verwendet werden, die


Parameter müssen definiert sein:
Startwert-Vorgabe
V1 := ausdr1
V2 := ausdr2
.....
fun(Startwert,V1,V2,...) = Ergebnis
erg := fun(Startwert,V1,V2,...)
Variable := ausdr{fun(Startwert,V1,V2,...)}
Lösungsbereich-Vorgabe
V1 := ausdr1
V2 := ausdr2
.....
fun(V1,V2,...) = Ergebnis
erg := fun(V1,V2,...)
Variable := ausdr{fun(V1,V2,...)}
Die Bereichsgrenzen a und b müssen vor Verwendung der
Funktion fun durch die Größen V1,V2, ... definiert sein!
Die Root-Funktion liefert auch bei mehreren Nullstellen immer nur ein
Ergebnis. Dabei hängt die gefundene Nullstelle entweder von der
Startwert- oder der Lösungsbereich-Vorgabe ab.
Der iterative Lösungsprozess wird beendigt, wenn die Differenz zweier
aufeinanderfolgende Näherungswerte für var kleiner als TOL ist.
- 59 -
- 60 -

8.2.1) polyroots-Funktion
Suche aller Nullstellen eines Polynoms für eine Variable mit
numerischem Ergebnis.

Polynom: Pn = an x n + an −1 x n −1 + K + a1 x + a0
Koeffizienten-Vektor: V = (a0 , a1 ,K, an −1 , an )T
Nullstellen-Vektor: N := polyroots(V)
Die Vorgabe eines Startwertes ist nicht erforderlich.
- 61 -
8.2.3) SOLVE-Block
Lösung von Systemen von Gleichungen und Ungleichungen mit
mehreren Variablen. Ergebnis numerisch und symbolisch.
var1 := Startw1 var2 := Startw2 ..... für numer. Ergebnis
Given
ausdr1 = ausdr2 Gleichung
ausdr Gleichung, entspricht ausdr = 0
ausdr1 > ausdr2 Ungleichung
ausdr1 ≥ ausdr2 Ungleichung
ausdr1 < ausdr2 Ungleichung
ausdr1 ≤ ausdr2 Ungleichung
Symbolisches Ergebnis
Find(var1,var2,...) → Ergebnis
Zahlenergebnis
Find(var1,var2,...) = Ergebnis Genau entspr. TOL
Minerr(var1,var2,...) = Ergebnis Beste Näherung
Minimize(f,var1,var2,...) = Ergebnis Minimiert die Funktion f
Maximize(f,var1,var2,...) = Ergebnis Maximiert die Funktion f
Variablendefinition für Ergebnis am Beispiel von Find
erg1
erg2
• := Find(var1,var2,...)

erg1 = Ergebnis1
erg2 = Ergebnis2
Vektordefinition für Ergebnis am Beispiel von Find
erg := Find(var1,var2,...) erg = Ergebnis-Vektor
- 62 -

Funktionsdefinition für Ergebnis am Beispiel von Find


fun([var1,var2,...]va,vb,...) := Find(var1,var2,...)
Variable, die in den
Gleichungen enthalten sind

Wenn vorhanden = Startwerte,


sonst lokale Startwertdefinition

fun([Stw1,Stw2,...]defa,defb,...) = Ergebnis-Vektor
Toleranzen:
TOL ..... Konvergenz-Toleranz: Das Ergebnis wird zurückgegeben,
wenn die Schätzwerte für die Variablen var in zwei
aufeinanderfolgenden Iterationen weniger als TOL
differieren.
CTOL ... Bedingungs-Toleranz: Gibt an , wie genau die Bedin-
gungsgleichungen erfüllt sein müssen.
- 63 -
- 64 -

9) Differentialgleichungen
9.1) Gewöhnliche Differentialgleichungen
9.1.1) Lösung einer DGL mittels SOLVE Block
Mittels Solve Block können gewöhnliche lineare und nichtlineare
Differentialgleichungen beliebiger Ordnung als Anfangswertproblem
oder als Randwertproblem gelöst werden:
Given
ausdr1 = ausdr2 Differentialgleichung der Ordnung n
randw1 = Wert1 1. Randbedingung
:
randwn = Wertn n-te Randbedingung
erg := Odesolve(x,xm[,m])
ausdr ...... Ausdrücke, die die unabhängige Variable, die
abhängige Variable und deren Ableitungen enthalten.
Die abhängige Variable und deren Ableitungen müssen
immer als Funktion der unabhängigen Variablen explizit
angeführt werden. Die höchste (n-te) Ableitung darf nur
linear vorkommen. Alle anderen Ableitungen und die
abhängige Variable dürfen nichtlinear enthalten sein.
Innerhalb des Solve Blocks dürfen die Ableitungen auch
durch Striche gekennzeichnet werden, z.B. y'(x), u'''(t)
(Eingabe durch <Strg><F7>)
randw ..... Abhängige Variable oder deren i-te Ableitung an einer
der beiden Randstellen.
Es sind nur einfache und nicht gekoppelte Randbedingun-
gen möglich, z.B. y(0) = Wert, u''(tm) = Wert.
Es muß mindestens eine Anfangsbedingung, d.h. ein Wert
am Beginn des Lösungsintervalls, angegeben werden.
Wert ....... Definierter Ausdruck für den Randwert
erg .......... Lösungsfunktion der unabhängigen Variablen x
x ............. Unabhängige Variable, für die die Differentialgleichung
gelöst werden soll
xm ........... Endpunkt des Lösungsintervalls
m ............ Anzahl der Stützpunkte in denen die Lösung berechnet
wird.
- 65 -
- 66 -

9.1.2) Differentialgleichungs-Lösungsfunktionen
9.1.2.1) Anfangswertprobleme
9.1.2.1.1) Runge-Kutta-Methode 4. Ordnung

Z := rkfixed(y,xo,xm,m,D)
Z ............. Lösungsmatrix mit m+1 Zeilen:
1. Spalte ................ Vektor der x-Werte der
Stützpunkte
Weitere Spalten ... Vektoren der berechneten
Werte für y, y', y'', ...., y(n-1),
bzw. bei DGL-Systemen der
Werte für y1, y1', ...., y1(n-1),
y2, y2', ...., y2(n-1),
......
y ............. Vektor der n Anfangswerte,
n .... Ordnung der Differentialgleichung, bzw.
Summe der Ordnungen der DGL bei einem
Differentialgleichungssystem
xo ............ Anfangspunkt des Lösungsintervalls
xm ........... Endpunkt des Lösungsintervalls
m ............ Anzahl der Stützpunkte in denen die Lösung
berechnet wird,
gesamte Anzahl der Stützpunkte = m+1
D(x,y) ..... Vektorfunktion
mit n Elementen, die die ersten bis n-ten
Ableitungen enthält, bzw.
bei DGL-Systemen mit Σn Elementen, die
die ersten bis n-ten Ableitungen der 1. DGL,
die ersten bis n-ten Ableitungen der 2. DGL,
usw. enthält
- 67 -

Beispiele für einzelne gewöhnliche Differentialgleichungen:


- 68 -
- 69 -

Beispiel für ein System zweier DGL 1.Ordnung:

[ ]
x0′ (t ) = µ x0 (t ) − x1 (t ) − x0 (t ) 2 + x1 (t ) 2 x0 (t ) x0 (0) = 0

x′ (t ) = µ x (t ) + x (t ) − [x (t )
1 1 0 0
2
+ x (t ) ]x (t )
1
2
1 x1 (0) = 1
- 70 -

Beispiel für ein System zweier DGL 2.Ordnung:


u′′( x ) = 2ν ( x ) u(0) = 1,5 u′(0) = 1,5
ν ′′( x ) = 4ν ( x ) − 2 u( x ) ν (0) = 1 ν ′(0) = 1
- 71 -

9.1.2.1.2) Spezialisierte Differentialgleichungslöser

Bulirsch-Stoer-Methode:

Z := Bulstoer(y,xo,xm,m,D)
Für stetige Lösungen mit etwas höherer Genauigkeit als
die Runge-Kutta-Methode.

Runge-Kutta-Methode mit variabler Schrittweite:

Z := Rkadapt(y,xo,xm,m,D)
Für Lösungsfunktionen, die im Lösungsbereich stark
unterschiedliche Gradienten aufweisen.
Obwohl die Lösungen an Stützstellen mit ungleichen
Abständen berechnet werden, erfolgt die Rückgabe der
Lösungswerte für konstante Abszissenabstände.

Lösungsmethoden für "steife" Systeme:

Z := Stiffb(y,xo,xm,m,D,J) Bulirsch-Stoer

Z := Stiffr(y,xo,xm,m,D,J) Rosenbrock

J(x,y) ..... Matrixfunktion mit n×(n+1) Elementen,


die ersteSpalte enthält die Ableitungen ∂D ,
∂x
die restliche n×n-Matrix enthält die Jakobi-
Matrix ∂D , z.B.:
∂yk
 x y1   y1 0 x 
D =  J(x,y) =  
− 2 y1 y0  0 − 2 y1 − 2 y0 
- 72 -

Methoden, die Lösungen für weniger Punkte liefern, als


Stützstellen vorhanden sind:

Z := Bulstoer(y,xo,xm,acc,D,kmax,save)
Z := Rkadapt(y,xo,xm,acc,D,kmax,save)
Z := Stiffb(y,xo,xm,acc,D,J,kmax,save)
Z := Stiffr(y,xo,xm,acc,D,J,kmax,save)
acc ........ Genauigkeitskontrolle,
kleine Werte von acc verringern die
Schrittweite,
acc = 0,001 liefert im allgemeinen genügend
genaue Lösungen
kmax ..... die größte zulässige Anzahl von
Zwischenpunkten, in denen die Lösung
zurückgegeben wird
save ...... der kleinste zulässige Abstand der
Zwischenpunkte, in denen die Lösung
zurückgegeben wird

Mit diesen Methoden kann die Lösungsmatrix Z klein


gehalten werden, bzw.
die Rückgabe kann auf die Lösung nur im Endpunkt
beschränkt werden.
- 73 -

9.1.2.2) Randwertprobleme
9.1.2.2.1) Vorgegebene Randwerte an den Bereichsenden
Das Randwertproblem wird auf ein Anfangswertproblem
zurückgeführt. Die fehlenden Anfangswerte an der Stelle xo
werden aus den gegebenen Randwerten an der Stelle xm
zurückgerechnet:

w := sbval(v,xo,xm,D,l,s)
w ............ Ergebnis-Vektor der unbekannten
Anfangswerte
v ............. Startwert-Vektor der unbekannten
Anfangswerte
xo ............ Anfangspunkt des Lösungsintervalls
xm ........... Endpunkt des Lösungsintervalls
D(x,y) ..... Vektorfunktion für die die ersten bis n-ten
Ableitungen
l(xo,v) ..... Vektorfunktion für die Anfangswerte in xo,
für die unbekannten Anfangswerte sind die
Startwerte des Vektors v einzusetzen
s(xm,y) .... Vektorfunktion für die Differenz der
berechneten Funktionswerte y und der
gegebenen Werte im Randpunkt xm
- 74 -
- 75 -

9.1.2.2.2) Vorgegebene Werte an den Bereichsenden und in einem


Zwischenpunkt
Die Lösungsfunktion wird gleichzeitig von beiden
Bereichsenden her entwickelt. Dies erfolgt iterativ so lange
bis die vorgegebenen Bedingungen im Zwischenpunkt xi
erfüllt werden. Danach steht der vollständige Satz von
Anfangsbedingungen in xo und xm für einen der vorhandenen
Gleichungslöser zur Verfügung:

w := bvalfit(v1,v2,xo,xm,xi,D,l1,l2,s)
w .............. Ergebnis als Zeilen-Vektor der
unbekannten Anfangswerte in xo und xm
v1 ............. Startwert-Vektor der unbekannten
Anfangswerte in xo
v2 ............. Startwert-Vektor der unbekannten
Anfangswerte in xm
xo .............. Anfangspunkt des Lösungsintervalls
xm ............. Endpunkt des Lösungsintervalls
xi .............. Zwischenpunkt im Lösungsintervall
D(x,y) ....... Vektorfunktion für die die ersten bis
n-ten Ableitungen
l1(xo,v1) ... Vektorfunktion für die Anfangswerte in xo,
für die unbekannten Anfangswerte sind die
Startwerte des Vektors v1 einzusetzen
l2(xm,v2) ... Vektorfunktion für die Anfangswerte in xm,
für die unbekannten Anfangswerte sind die
Startwerte des Vektors v2 einzusetzen
s(xi,y) ........ Vektorfunktion für die Anpassung im
Zwischenpunkt xi
- 76 -

Mit der Funktion "bvalfit" lassen sich auch Probleme lösen, bei
denen im Lösungsbereich eine Unstetigkeitsstelle vorhanden ist:

a) Berechnung der fehlenden Anfangsbedingungen in den


Randpunkten:
- 77 -

b) Berechnung der Lösungsfunktionen aus zwei


Anfangswertproblemen:
- 78 -

9.2) Partielle Differentialgleichungen

∂ 2u ∂ 2u
Laplace-Gleichung
2
+ 2
=0
∂x ∂y

∂ 2u ∂ 2u
Poisson-Gleichung
2
+ 2
= ρ ( x, y)
∂x ∂y
Finite Differenzen-Verfahren:
Für einen quadratischen Bereich, d.h. für n×n Stützpunkte (n ungerad-
zahlig) gilt
a j , k u j +1, k + b j , k u j −1, k + c j , k u j , k +1 + d j , k u j , k −1 + e j , k u j , k = f j , k

9.2.1) Alle Randwerte = 0

u := multigrid(M,ncycle)
u ............. Quadratische Ergebnis-Matrix,
in der die Elementposition der Stützpunktposition in
einem quadratischen Bereich entspricht und in der
die Elementwerte die Näherungslösungen in den
Stützpunkten sind
M ............ Quadratische Matrix der Quellterme f j ,k
mit ungeradzahliger Zeilenzahl
ncycle .... Anzahl der Wiederholungen einer Multigrid-
Iteration,
ncycle = 2 liefert im allgemeinen genügend genaue
Lösungen
Auch für alle Randwerte = uo mit uo ≠ 0 ist dieses Verfahren
anwendbar, da durch die Transformation w = u - uo für w
wieder alle Randwerte zu Null werden.
- 79 -

Beispiel zur Anwendung der Funktion "multigrid":


- 80 -

9.2.2) Randwerte nicht gleich groß

u := relax(a,b,c,d,e,f,v,rjac)
u ............. Quadratische Ergebnis-Matrix,
in der die Elementposition der Stützpunktposition in
einem quadratischen Bereich entspricht und in der
die Elementwerte die Näherungslösungen in den
Stützpunkten sind
a ............. Quadratische Matrix der Koeffizienten a j ,k
b ............. Quadratische Matrix der Koeffizienten b j ,k
c .............. Quadratische Matrix der Koeffizienten c j ,k
d ............. Quadratische Matrix der Koeffizienten d j ,k
e .............. Quadratische Matrix der Koeffizienten e j ,k
f .............. Quadratische Matrix der Quellterme f j ,k
v ............. Quadratische Matrix der Randwerte und der
Startwerte im Inneren des Bereiches
rjac ......... Spektralradius der Jakobi-Iteration,
0 > rjac ≥ 1 kontrolliert die Konvergenz des
Relaxationsalgorithmus und ist problemabhängig
- 81 -

Beispiel zur Anwendung der Funktion "relax":


- 82 -

10) Zweidimensionale Diagramme


10.1) x-y-Diagramm
Erstellen: Cursorkreuz für linke obere Ecke des
Diagrammbereiches setzen und Taste @
oder Menüleiste Insert ... Graph ... X-Y Plot
oder Math Toolbar ... Graph Toolbar ...

Variable X-Y Plot

Variable Graph

Formatieren: mit Cursor im Diagramm Doppel-Klicken


oder mit Cursor im Diagramm Einfach-Klicken
Menüleiste ... Format ... Graph ... X-Y Plot
- 83 -
- 84 -
- 85 -
- 86 -

Zoomen eines Diagrammteilbereiches:


• Diagramm selektieren: mit Cursor im Diagrammbereich
klicken
• Menüleiste ... Format ... Graph ... Zoom...
oder Math Toolbar ... Graph Toolbar ... Zoom
• Es erscheint die Zoom-Dialogbox, die, wenn nötig, anders
positioniert werden kann
• Mit gedrückter linker Maustaste den gewünschten
Rechteckausschnitt ziehen
• Die Ausschnittkoordinaten erscheinen in der Zoom-Dialogbox
• Den "Zoom"-Knopf in der Dialogbox anklicken, es erscheint
der vergrößerte Diagrammausschnitt
• Mit dem "OK"-Knopf die Vergrößerung fixieren
- 87 -

Auslesen von Plot-Koordinaten:


• Diagramm selektieren: mit Cursor im Diagrammbereich
klicken
• Menüleiste ... Format ... Graph ... Trace...
oder Math Toolbar ... Graph Toolbar ... Trace
• Es erscheint die Trace-Dialogbox, die, wenn nötig, anders
positioniert werden kann
• Mit linker Maustaste in das Diagramm klicken
• Es erscheint ein Achsenkreuz und die zugehörigen
Koordinatenwerte in der Trace-Dialogbox
• Mit gedrückter linker Maustaste kann das Achsenkreuz
verschoben werden
• Wenn Track Data Points selektiert ist, springt das Achsen-
kreuz von Kurvenpunkt zu Kurvenpunkt ( Feineinstellung mit
linker bzw. rechter Cursortaste)
• Wenn Track Data Points nicht selektiert ist, kann mit dem
Achsenkreuz jeder beliebige Punkt im Diagramm angewählt
weden
• Mit Copy X und Copy Y der Trace-Dialogbox können die X-
bzw. Y-Koordinaten in die Zwischenablage ausgelesen werden
- 88 -
10.2) Polar-Diagramm
Erstellen: Cursorkreuz für linke obere Ecke des
Diagrammbereiches setzen und Taste <Strg>7
oder Menüleiste Insert ... Graph ... Polar Plot
oder Math Toolbar ... Graph Toolbar ...

Winkel-Variable Polar Plot

Variablen für Graph Toolbar


radiale Werte

Formatieren: mit Cursor im Diagramm Doppel-Klicken


oder mit Cursor im Diagramm Einfach-Klicken
Menüleiste ... Format ... Graph ... Polar Plot
- 89 -
- 90 -
- 91 -

11) Dreidimensionale Diagramme

Folgende Diagramme können erstellt werden:


• Oberflächen-Diagramm
• Kontur-Diagramm
• Balken-Diagramm
• Punkthaufen-Diagramm
• Vektorfeld-Diagramm

Erstellen mit dem 3D-Plot-Helfer:


• Cursorkreuz für linke obere Ecke des Diagrammbereiches
setzen
• Menüleiste Insert ... Graph ... 3D Plot Wizard
- 92 -

3-Spalten-Matrix mit den x-, y- und z-Werten


oder Vektoren X,Y,Z

Die Verdrehung und Neigung des Achsenkreuzes bzw. des


Diagramms kann außer mit dem Formatiermenü General (siehe
Formatieren) direkt mit der Maus durchgeführt werden:
Mit dem Mauszeiger an einer Stelle im inneren Diagrammbereich und
gedrückter linker Maustaste Ziehen in beliebige Richtung.
- 93 -
Formatieren: mit Cursorkreuz im Diagramm Doppel-Klicken
oder mit Cursor im Diagramm Einfach-Klicken
Menüleiste ... Format ... Graph ... 3D Plot
- 94 -
- 95 -
- 96 -
11.1) Oberflächen-Diagramm
Erstellen: Cursorkreuz für linke obere Ecke des
Diagrammbereiches setzen und Taste <Strg>2
oder Menüleiste Insert ... Graph ... Surface Plot
oder Math Toolbar ... Graph Toolbar ...

Surface Plot
3-Spalten-Matrix mit
den x-, y- und z-Werten
oder Vektoren X,Y,Z Graph Toolbar
- 97 -
- 98 -
11.2) Kontur-Diagramm
Erstellen: Cursorkreuz für linke obere Ecke des
Diagrammbereiches setzen und Taste <Strg>5
oder Menüleiste Insert ... Graph ... Contour Plot
oder Math Toolbar ... Graph Toolbar ...
- 99 -

11.3) 3D-Balken-Diagramm
Erstellen: Cursorkreuz für linke obere Ecke des
Diagrammbereiches setzen und
Menüleiste Insert ... Graph ... 3D Bar Plot
oder Math Toolbar ... Graph Toolbar ...
Das Beispiel für das Konturdiagramm jetzt als
3D-Balkendiagramm:
- 100 -

11.4) 3D-Punkthaufen-Diagramm
Erstellen: Cursorkreuz für linke obere Ecke des
Diagrammbereiches setzen und
Menüleiste Insert ... Graph ... 3D Scatter Plot
oder Math Toolbar ... Graph Toolbar ...

Das Beispiel für das Konturdiagramm jetzt als


3D-Punkthaufen-Diagramm:
- 101 -

11.5) Vektorfeld-Diagramm
Erstellen: Cursorkreuz für linke obere Ecke des
Diagrammbereiches setzen und
Menüleiste Insert ... Graph ... Vector Field Plot
oder Math Toolbar ... Graph Toolbar ...

Beispiel für ein Vektorfeld-Diagramm:


Die komplexwertige Matrix enthält als Realteil die
x-Komponenten und als Imaginärteil die y-Komponenten des
Vektorfeldes:
- 102 -

Stattdessen können auch zwei rellwertige Matrizen verwendet


werden:

You might also like