Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| simulation:benutzerdefinierte_funktionen [2026/01/10 21:14] – neelest | simulation:benutzerdefinierte_funktionen [2026/01/10 21:29] (aktuell) – neelest | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Benutzerdefinierte Funktionen ====== | ====== Benutzerdefinierte Funktionen ====== | ||
| - | *[[Simulation: | + | Für die Definition benutzerdefinierter Funktionen |
| - | *[[Simulation: | + | |
| - | *[[Simulation: | + | |
| - | ===== Benutzerdefinierte | + | ===== Bearbeiten benutzerdefinierter |
| - | Für die Definition benutzerdefinierter | + | **Steuerpfad: |
| + | {{: | ||
| + | \\ | ||
| + | \\ | ||
| + | \\ | ||
| + | Es können benutzerdefinierte Funktionen zur Bearbeitung ausgewählt werden. Die Bearbeitung der jeweiligen Funktion ermöglicht das in der Abbildung dargestellten Dialogfenster // | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Der obere Teil dient zur Festlegung des Namens und der Einheit eines Funktionswertes dieser Funktion. Ist der Name einmal bestimmt, so kann er nicht mehr geändert werden. | ||
| + | |||
| + | Der mittlere Teil umfasst ein großes Textfeld, in dem die Funktion als solche definiert werden kann. Der Text in diesem Feld wird farbig dargestellt, | ||
| + | |||
| + | Im unteren Teil können vordefinierte Variablen, die z. B. Berechnungsergebnisse oder einfache Geometriedaten enthalten, oder mathematische | ||
| + | |||
| + | Im linken Teil des Dialoges können die benutzerdefinierten Funktionen verwaltet (erstellen, löschen) werden. | ||
| + | |||
| + | Beim Drücken auf //Ok// wird geprüft, ob die definierte Funktion ausgewertet werden kann. Sind syntaktische Fehler in der Funktion enthalten, so werden diese ausgegeben und die Fehlerstelle im Textfeld farblich markiert. | ||
| + | |||
| + | ===== Mathematische Ausdrücke ===== | ||
| + | |||
| + | Mathematische Ausdrücke repräsentieren einen (noch zu bestimmenden) Wert. In einem solchen Ausdruck können Variablen, mathematische Operatoren, vordefinierte Funktionen und Klammern beliebig verwendet werden. Die folgende Auflistung führt auf, welche Elemente in einem mathematischen Ausdruck verwendet werden kann, damit dieser | ||
| + | |||
| + | * **Binäre Operatoren: | ||
| + | * **Unäre Operatoren: | ||
| + | * **Klammern: | ||
| + | * **Variablen: | ||
| + | * **Vordefinierte Funktionen: | ||
| + | * **Benutzerdefinierte Funktionen: | ||
| + | |||
| + | Des Weiteren gibt es einige Rechenregeln, die dem Benutzer bekannt sein sollten, wenn er benutzerdefinierte Funktionen definieren möchte: | ||
| + | |||
| + | ==== Präzedenz von Operatoren und Klammerung ==== | ||
| + | * Die Rechenzeichen * und / binden stärker als + und -. | ||
| + | * Potenzen werden vorrangig ausgerechnet. | ||
| + | * Vordefinierte Funktionen binden stärker als der Potenzoperator. | ||
| + | * Inhalte, der in Klammern steht, wird zuerst ausgerechnet. | ||
| + | |||
| + | ==== Assoziativität ==== | ||
| + | Alle definierten binären Operatoren sind links-assoziativ. Das heißt, falls in einem Term mehrere Operatoren gleicher Präzedenz hintereinander stehen, so wird der Term von links nach rechts ausgewertet. | ||
| + | |||
| + | ==== Beispiele ==== | ||
| + | |||
| + | | $a^3+b^2+0.815$ | Gültiger Ausdruck | | ||
| + | | $42+(-7)$ | Gültiger Ausdruck (unäres Minus) | | ||
| + | | $\frac{a}{b}/ | ||
| + | | $\sin(2) \cdot 3.1415$ | Gültiger Ausdruck, er entspricht $(\sin 2) \cdot 3.1415$ | | ||
| + | | $\sin(2 \cdot 3.1415)$ | Gültiger Ausdruck | | ||
| + | | $x^{1/2}$ oder $\sqrt{x}$ | Gültiger Ausdruck, Quadratwurzel von x | | ||
| + | |||
| + | ===== Logische Ausdrücke ===== | ||
| + | |||
| + | Logische Ausdrücke repräsentieren einen Wahrheitswert. In einem solchen Ausdruck können Vergleichsoperatoren sowie logische Operatoren verwendet werden. Die sechs binären Vergleichsoperatoren Kleiner (<), Kleiner-oder-gleich ( < = ), Gleich ( == ), Größer-oder-gleich ( >= ), Größer (>) und Ungleich ( != ) vergleichen jeweils zwei mathematische Ausdrücke | ||
| + | |||
| + | ==== Beispiele ==== | ||
| + | | $a < 0$ | Gültiger Ausdruck, wahr, wenn $a$ negativ ist | | ||
| + | | $0.5 < a \land a \leq 1$ | Gültiger Ausdruck, wahr, wenn $a \in (0.5, 1]$ ist | | ||
| + | | $a \lor b$ | Kein gültiger Ausdruck, Wahrheitswerte können nicht in Variablen gespeichert werden | | ||
| + | | $|0-a| < \varepsilon$ | Gültiger Ausdruck, linke und rechte Seite sind jeweils mathematische Ausdrücke | | ||
| + | |||
| + | ===== Anweisungen ===== | ||
| + | |||
| + | Die oben beschriebenen Ausdrücke können nicht für sich stehen, sondern können immer nur in Verbindung mit Anweisungen genutzt werden. Für die benutzerdefinierten Funktionen werden dabei vier Anweisungen unterschieden. Jede Anweisung beginnt in einer neuen Zeile und muss am Ende einer Zeile abgeschlossen sein. | ||
| + | |||
| + | ==== Zuweisungen ==== | ||
| + | |||
| + | Eine Zuweisung bindet den Wert eines mathematischen Ausdrucks an eine Variable. Dabei steht auf der linken Seite des Zuweisungszeichens ( = ) der Variablenname und auf der rechten Seite ein gültiger mathematischer Ausdruck. Die Syntax ist wie folgt: | ||
| + | |||
| + | ''< | ||
| + | |||
| + | Durch Verwenden einer Zuweisungsanweisung wird die entsprechende Variable, sofern noch nicht bekannt, angelegt und mit dem Wert des Ausdrucks belegt. Existiert bereits eine Variable mit diesem Namen, so wird der alte Wert überschrieben. So angelegte Variablen können anschließend wieder in mathematischen Ausdrücken verwendet werden. Variablennamen müssen immer mit einem Buchstaben beginnen, dürfen aber Ziffern enthalten. Der Wert von logischen Ausdrücken kann nicht an Variablen gebunden werden! | ||
| + | |||
| + | Nachfolgend sind einige Beispiele für Zuweisungen aufgeführt. | ||
| + | |||
| + | | $\pi = 3.1415$ | Gültige Zuweisung | | ||
| + | | $ab2 = a^2 + 2ab + b^2$ | Gültige Zuweisung | | ||
| + | | $soNicht = (a < 0)$ | Keine gültige Zuweisung, Wahrheitswerte können nicht an Variablen gebunden werden | | ||
| + | | $a = b = 0.0$ | Ungültig, nur eine Zuweisung erlaubt | | ||
| + | | $2Pi = 2 + \pi$ | Ungültig, " | ||
| + | |||
| + | ==== Return ==== | ||
| + | |||
| + | Eine return-Anweisung legt den Funktionswert der benutzerdefinierten Funktion fest und beendet die weitere Auswertung der Funktion. Der Wert des hinter dem Schlüsselwort (return) stehenden mathematischen Ausdrucks ist dabei der Funktionswert. Dabei gilt folgende Syntax: | ||
| + | |||
| + | '' | ||
| + | |||
| + | === Bedingte | ||
| + | |||
| + | Eine '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | Als einfachstes Beispiel kann man die Bestimmung des Maximums zweier Werte betrachten: | ||
| + | |||
| + | < | ||
| + | if a < b # Wenn a kleiner als b ist | ||
| + | then # Dann | ||
| + | max= b # Ist b das Maximum | ||
| + | else # Sonst | ||
| + | max= a # Ist a das Maximum | ||
| + | </ | ||
| + | |||
| + | ==== Gruppierung ==== | ||
| + | |||
| + | Die Schlüsselwörter //begin// und //end// klammern eine Folge von Anweisungen so, dass die zwischen //begin// und //end// aufgeführten Anweisungen als eine Anweisung behandelt werden können. Auf diese Weise können auch mehrere Anweisungen zusammen bedingt ausgeführt werden. | ||
| + | |||
| + | < | ||
| + | begin | ||
| + | < | ||
| + | ... | ||
| + | < | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | ===== Weitere Hinweise für den Gebrauch benutzerdefinierter Funktionen ===== | ||
| + | |||
| + | |||
| + | ==== Die Bedeutung von Zeilen ==== | ||
| + | In den benutzerdefinierten Funktionen bildet eine Zeile jeweils eine der oben beschriebenen Anweisungen. Da es kein spezielles Endkennzeichen (wie ";" | ||
| + | |||
| + | ==== Variablen ==== | ||
| + | Es gibt nur Variablen für mathematische Ausdrücke. Eine Variable speichert also immer den Wert eines mathematischen Ausdrucks. Eine neue Variable | ||
| + | |||
| + | ==== Vordefinierte Variablen ==== | ||
| + | Eine benutzerdefinierte Funktion wird im Berechnungskern von SIGMA für jede Stützstelle einzeln ausgewertet. Für an der Stützstelle bekannte Daten, wie Geometrie- oder Materialdaten, | ||
| + | |||
| + | ==== Operatoren ==== | ||
| + | In der folgenden Tabelle sind alle benutzbaren Operatoren angegeben. Operatoren mit höherer Präzedenz stehen weiter oben. | ||
| + | |||
| + | ^ # ^ Name ^ Zeichen ^ Beschreibung ^ Kategorie ^ | ||
| + | | 7 | Potenz | %%^%% | Potenziert den linken Operanden mit dem rechten Operanden | mathematisch | | ||
| + | | 6 | Negation | - | Negiert den linken Operanden | mathematisch | | ||
| + | | 5 | Multiplikation | * | Multipliziert die beiden Operanden | mathematisch | | ||
| + | | 5 | Division | / | Dividiert den linken Operanden durch den rechten Operanden | mathematisch | | ||
| + | | 4 | Addition | + | Addiert die beiden Operanden | mathematisch | | ||
| + | | 4 | Subtraktion | - | Subtrahiert den rechten Operanden von dem linken Operanden | mathematisch | | ||
| + | | 3 | Kleiner | < | Prüft ob der linke Operand kleiner als der rechte Operand ist | mathematisch → logisch | | ||
| + | | 3 | Kleiner-oder-gleich | %%<=%% | Prüft ob linker Operand kleiner oder gleich dem rechten Operanden ist | mathematisch → logisch | | ||
| + | | 3 | Gleich | %%==%% | Prüft ob die beiden Operanden gleich sind | mathematisch → logisch | | ||
| + | | 3 | Größer-oder-gleich | %%>=%% | Prüft ob der linke Operand größer oder gleich dem rechten Operanden ist | mathematisch → logisch | | ||
| + | | 3 | Größer | > | Prüft ob linker Operand größer als der rechte Operand ist | mathematisch → logisch | | ||
| + | | 3 | Ungleich | != | Prüft ob die beiden Operanden ungleich sind | mathematisch → logisch | | ||
| + | | 2 | Logisches Und | and | Verknüpft die beiden Operanden mit der logischen Operation Und | logisch | | ||
| + | | 1 | Logisches Oder | or | Verknüpft die beiden Operanden mit der logischen Operation Oder | logisch | | ||
| + | |||
| + | ==== Mathematische Funktionen ==== | ||
| + | Innerhalb der mathematischen Ausdrücke können 14 vordefinierte mathematische Funktionen verwendet werden, die in der folgenden Tabelle aufgeführt sind. Jede dieser Funktionen besitzt genau einen Parameter, der, als mathematischer Ausdruck, direkt | ||
| + | |||
| + | ^ Name ^ Zeichen ^ Beschreibung ^ | ||
| + | | Sinus | sin | Berechnet den Sinus, Parameter in rad | | ||
| + | | Cosinus | cos | Berechnet den Cosinus, Parameter in rad | | ||
| + | | Tangens | tan | Berechnet den Tangens, Parameter in rad | | ||
| + | | Arcus Sinus | asin | Berechnet den Arcus Sinus in rad | | ||
| + | | Arcus Cosinus | acos | Berechnet den Arcus Cosinus in rad | | ||
| + | | Arcus Tangens | atan | Berechnet den Arcus Tangens in rad | | ||
| + | | Sinus Hyperbolicus | sinh | Berechnet sinh in rad | | ||
| + | | Cosinus Hyperbolicus | cosh | Berechnet cosh in rad | | ||
| + | | Tangens Hyperbolicus | tanh | Berechnet tanh in rad | | ||
| + | | Dekadischer Logarithmus | log | Berechnet den Logarithmus zur Basis 10 | | ||
| + | | Logarithmus Naturalis | ln | Berechnet den Logarithmus zur Basis $e$ | | ||
| + | | Betrag | abs | Liefert den Absolutbetrag des Parameters | | ||
| + | | Quadratwurzel | sqrt | Berechnet | ||
| + | |||
| + | ==== Auswertung benutzerdefinierter Funktionen ==== | ||
| + | Eine benutzerdefinierte Funktion wird für jeweils eine Stützstelle ausgewertet, | ||
| + | |||
| + | ==== Ungültige Werte ==== | ||
| + | Da nicht alle vordefinierten Variablen für jede Stützstelle einen gültigen Wert aufweisen und manche mathematischen Operationen nicht für alle Werte definiert sind (z. B. Division durch Null), gibt es einen speziellen Wert, der ungültige Werte repräsentiert. Als vordefinierte Variable heißt dieser Wert // | ||