Hilfe (Gauß-Verfahren für Bandmatrizen)

Es werden lineare Gleichungssysteme des Typs "n Gleichungen mit n Unbekannten" mit bandförmiger (nicht symmetrischer) Koeffizientenmatrix gelöst (nur auf der Hauptdiagonalen und in ihrer Nachbarschaft gibt es von Null verschiedene Elemente, siehe nebenstehendes Beispiel).

Gleichungssysteme dieser Art sind typisch für Probleme, die mit dem Differenzenverfahren gelöst werden. Dabei entstehen in der Regel recht große Gleichungssysteme. Das Programm unterstützt deshalb die Eingabe durch Angebote für automatische Eingabe.

Als Lösungsverfahren wird der klassische Gauß-Algorithmus mit Spalten-Pivotisierung verwendet, ausführlich beschrieben auf der Seite "Mathematik für die Technische Mechanik - Der Gaußsche Algorithmus".

Nachfolgend sind die wichtigsten Informationen zur Bedienung des Programms alphabetisch zusammengestellt. Bei Klick auf die unterstrichenen hellblauen Stichworte öffnet sich jeweils ein Fenster mit ausführlichen Zusatzinformationen.

Mit der Anzahl der linearen Gleichungen (Voreinstellung: 10) und den Bandweiten (Voreinstellung jeweils: 4) wird nach Anklicken des benachbarten "OK-Buttons" das Aussehen des Eingabeschemas festgelegt, in dem alle Werte mit dem Wert 0 vorbelegt sind.

Einstellung Radian/Grad Die Ergebnisse der Arcusfunktionen asin, acos, atan und acot können in Grad (°) oder Radian (Bogenmaß) abgeliefert werden. Dies wird über die Radiobuttons eingestellt (Standardeinstellung ist Grad, siehe nebenstehendes Bild).

Ein Arithmetischer Ausdruck darf Zahlen, öffnende und schließende Klammern ([{}]), die Symbole für die vier Grundrechenarten + - * / und das Potenzieren ^, die Namen bereits definierter Konstanten und Standardfunktionen (mit Argumenten in Klammern) enthalten. Zusätzlich kann eine Variable z_nr (genau mit diesem Namen) verwendet werden, in der die Nummer der Gleichung gespeichert ist (Zeilennummer der Koeffizientenmatrix), für die der arithmetische Ausdruck eingegeben wird. Hier findet man ausführlichere Informationen und Beispiele.

Automatischer Aufbau ist ein Angebot, das speziell für die Lösung von Gleichungssystemen gedacht ist, die bei der Anwendung des Differenzenverfahrens entstehen. Nebenstehend erkennt man, dass es zwei separate Angebote sind: "Automatischer Aufbau des Bandes" bezieht sich auf die Koeffizientenmatrix und "Automatischer Aufbau der rechten Seite" bezieht sich auf den Vektor der rechten Seite.

Automatischer Aufbau des Bandes: Nach Anklicken des Buttons mit diesem Angebot öffnet sich folgender Eingabebereich:

Die Anzahl der Eingabefelder ist abhängig von den Bandweiten. Hier sind 7 Eingabefelder vorgesehen für die Bandweiten bwl = 4 und bwr = 4.

Die Vorbelegung entspricht dem typischen Band, das bei der Anwendung des Differenzenverfahrens auf Biegeträger mit konstanter Biegesteifigkeit entsteht. Die Vorbelegung in den Zellen, mit denen gesteuert wird, für welche Matrixzeilen diese Werte übernommen werden sollen, entspricht der dafür empfohlenen Strategie: Die ersten beiden Gleichungen sind für die Randbedingungen am linken Rand reserviert, die beiden letzten Gleichungen für die Randbedingungen am rechten Rand (hier ist die Anzahl der Gleichungen n = 10, deshalb sollen nur die Gleichungen 3 bis 8 automatisch aufgebaut werden). Alle Zelleninhalte sollten dem aktuellen Problem angepasst werden, nach Anklicken des Buttons "Werte übernehmen" werden die entsprechenden Zellen in der Koeffizientenmatrix gefüllt.

In die Zellen dürfen (wie bei allen Eingaben) arithmetische Ausdrücke geschrieben werden, die hier auch die Variable z_nr (Nummer der aktuellen Gleichung) verwenden dürfen, so dass auch für veränderliche Parameter (zum Beispiel eine nicht konstante Biegesteifigkeit) der automatische Aufbau genutzt werden kann.

 

Automatischer Aufbau der rechten Seite: Nach Anklicken des Buttons mit diesem Angebot öffnet sich folgender Eingabebereich:

Die Vorbelegung in den Zellen, mit denen gesteuert wird, für welche Matrixzeilen dieser Wert übernommen werden soll, entspricht der empfohlenen Strategie für Probleme, die Biegeträger mit dem Differenzenverfahren behandeln: Die ersten beiden Gleichungen sind für die Randbedingungen am linken Rand reserviert, die beiden letzten Gleichungen für die Randbedingungen am rechten Rand. Das Eingabefeld (mit der Vorbelegung: 1) und die beiden anderen Felder sollten dem aktuellen Problem angepasst werden, nach Anklicken des Buttons "Werte übernehmen" werden die entsprechenden Zellen im Vektor der rechten Seite gefüllt.

In die Zellen dürfen (wie bei allen Eingaben) arithmetische Ausdrücke geschrieben werden, die hier auch die Variable z_nr (Nummer der aktuellen Gleichung) verwenden dürfen, so dass auch für veränderliche Parameter (zum Beispiel eine veränderliche Belastung) der automatische Aufbau genutzt werden kann.

 

Bandweiten: Die Koeffizientenmatrix des Gleichungssystems wird als so genannte "Bandmatrix" behandelt, die nur auf und in der Umgebung der Hauptdiagonalen von Null verschiedene Elemente hat (nebenstehende Skizze). Sie wird charakterisiert durch die Zeilen/Spalten-Anzahl n und die beiden "Bandweiten" bwl und bwr.

Die jeweils am weitesten von der Hauptdiagonalen entfernten Nicht-Null-Elemente bestimmen die linke bzw. rechte Bandweite, die die Anzahl der Matrixelemente bis einschließlich Hauptdiagonalelement angeben. Das Band zieht sich treppenförmig von der ersten bis zur letzten Matrixzeile, das nebenstehende Beispiel zeigt eine Bandmatrix mit n = 11 Zeilen, einer linken Bandweite bwl = 3 und der rechten Bandweite bwr = 4.

Natürlich können auch Null-Elemente innerhalb des Bandes liegen. Die Breite des Bandes wird von dem (gegebenenfalls einzigen) Nicht-Null-Element bestimmt, das am weitesten entfernt ist von der Hauptdiagonalen.

Der Sonderfall der voll besetzten Matrix ist als "Bandmatrix mit n = bwl = bwr" realisierbar.

Berechnungsverfahren: Es wird der klassische Gauß-Algorithmus mit Spalten-Pivotisierung verwendet, ausführlich beschrieben auf der Seite "Mathematik für die Technische Mechanik - Der Gaußsche Algorithmus".

Das Eingabeschema wird in seiner Form durch die Parameter n (Anzahl der Gleichungen), bwl (linke Bandweite) und bwr (rechte Bandweite) festgelegt. Bei großen Gleichungssystemen wird in der Regel nur ein Ausschnitt dargestellt. Das Beispiel rechts zeigt dies für ein System mit n = 105, bwl = 4 und bwr = 3, für das die ersten 10 Gleichungen angezeigt werden. Der Ausschnitt kann mit den über dem Schema angezeigten Eingabefeldern "...von Gleichung ... bis" verändert werden.

Die Eingabe in ein Feld kann mit der Return- oder der Tab-Taste abgeschlossen werden, der Cursor springt dann automatisch in das nächste Feld, in dem eine Eingabe möglich ist (die Felder außerhalb des Bandes bleiben unerreichbar).

Auch die Namen der Unbekannten (Voreinstellung: x1, x2, ...) können geändert werden.

Grad/Radian, siehe Winkelfunktionen bzw. Arcusfunktionen.

Definition von Konstanten Konstanten können über die gelben Eingabefelder (links oben) definiert werden (siehe nebenstehendes Bild). Die Definition muss mit Klick auf den Button "Neue Konstante" abgeschlossen werden. Der Wert des arithmetischen Ausdrucks wird berechnet, und die Konstante wird mit Namen und Wert im Konstantenspeicher für die weitere Verwendung bereitgestellt. Der Wert einer Konstanten kann geändert werden, indem eine Konstante gleichen Namens noch einmal definiert wird.

Das nebenstehende Beispiel zeigt die beiden beim Programmstart vordefinierten Konstanten pi (Kreiszahl π) und e (Basis der natürlichen Logarithmen), eine bereits zusätzlich definierte Konstante alpha sowie die Vorbereitung für die Definition einer weiteren Konstanten mit dem Namen beta. Nach Klick auf "Neue Konstante" wird der arithmetische Ausdruck berechnet, und es entsteht eine neue Konstante beta mit dem Wert 105.

Sollte später für alpha ein neuer Wert eingegeben werden, passt natürlich der Wert von beta nicht mehr dazu, siehe dazu "Neuberechnung der Konstanten".

Ein Name darf Buchstaben, Ziffern und den Unterstrich enthalten und muss mit einem Buchstaben beginnen, zum Beispiel: Alpha, y, x3, Laenge, v_gesamt. Es wird NICHT zwischen Groß- und Kleinbuchstaben unterschieden (PI, pi, Pi oder pI sind gleichwertig). Die Umlaute und das ß sind nicht erlaubt. Jede Konstante muss durch einen eindeutigen Namen zu identifizieren sein.

Definition von Konstanten Definition von Konstanten Definition von Konstanten Neuberechnung der Konstanten ist angezeigt, wenn für eine bereits definierte Konstante der Wert geändert wird, weil andere Konstanten möglicherweise bei ihrer Definition diese Konstante verwendet haben können.

Die nebenstehenden Bildchen zeigen dies am Beispiel: Eine bereits definierte Konstante beta wird für die nachfolgende Definition der Konstanten sb verwendet (linkes Bild). Wenn nun die Konstante beta einen neuen Wert erhält (mittleres Bild), dann erscheint oben der Button "... neu berechnen", weil nun der Wert von beta nicht mehr zum berechneten Wert von sb passt. Nach Anklicken dieses Buttons "passt wieder alles zueinander" (rechtes Bild).

Radian/Grad, siehe Winkelfunktionen bzw. Arcusfunktionen.

Singuläre Matrix: Die Lösbarkeit eines linearen Gleichungssystems ist an die Bedingung geknüpft, dass die Koeffizientenmatrix "regulär" (nicht "singulär") ist. Wenn Singularität vom Programm erkannt wird, äußert es sich so:

Mathematisch bedeutet dies, dass die Determinante der Matrix den Wert Null hat und damit ein Informationsdefizit im Gleichungssystem existiert (zu wenige unabhängige Gleichungen für die Anzahl der zu berechnenden Unbekannten), oder das System ist in sich widersprüchlich.

Auf der Seite "Singuläre Matrix, was ist die Ursache?" wird an zahlreichen Beispielen erläutert, welche Fehler bei der Formulierung von Gleichungssystemen zu singulären Koeffizientenmatrizen führen können.

Standardfunktionen werden auf ein Argument angewendet, das der Funktionsbezeichnung in Klammern folgen muss, zum Beispiel: sin(pi/2). Das Argument darf ein arithmetischer Ausdruck sein. Hier findet man eine komplette Liste aller Standardfunktionen.

Einem Syntaxcheck werden alle Benutzer-Eingaben unterzogen. Dies geschieht für die Definition des Gleichungssystems spätestens beim Anklicken des Buttons "Gleichungssystem lösen". Beim Entdecken eines Fehlers wird die Abarbeitung des Programms mit einer Fehlerausschrift unterbrochen. Über das Angebot "Werte berechnen" kann jedoch auch jederzeit ein Syntaxtest veranlasst werden.

Werte berechnen ist ein Angebot, das über einen Button unterhalb des Eingabeschemas offeriert wird. Nach Anklicken dieses Buttons werden alle arithmetischen Ausdrücke im Eingabeschema ausgewertet und durch die entsprechenden Zahlenwerte ersetzt.

Dieses Angebot dient vor allem zum Syntaxtest der arithmetischen Ausdrücke. Beim Entdecken eines Fehlers wird die Berechnung sofort unterbrochen. Der Fehler wird durch zwei Ausschriften beschrieben.

Links sieht man ein Beispiel: In einem arithmetischen Ausdruck ist eine offensichtlich nicht deklarierte Konstante verwendet worden. Die Fehlerausschrift meldet die Position im arithmetischen Ausdruck, die nicht verarbeitet werden kann. Nach Bestätigung dieser Meldung durch Klicken auf den OK-Button wird in einer weiteren Information (rechts) das Element in der Matrix genannt, das den fehlerhaften Ausdruck enthält.

Während der Berechnung der arithmetischen Ausdrücke und danach ist das Eingabeschema gesperrt. Für Korrekturen und weitere Eingaben muss es durch Anklicken des Buttons "... für Eingabe wieder freigeben" entsperrt werden.

Wiederholung der Rechnung mit geänderter Anzahl von Gleichungen ist ein Angebot, das immer nach erfolgreicher Rechnung neben der Anzeige des Lösungsvektors erscheint. Es ist speziell für Probleme gedacht, die mit dem Differenzenverfahren gelöst werden.

Der Bildschirm-Ausschnitt zeigt einen typischen Fall: Es ist ein System mit nA+5 Gleichungen gelöst worden. Nachdem in dieses Feld die neue Anzahl von Gleichungen eingetragen wurde (in der Regel ist es sinnvoller, den Wert für die Konstante nA zu ändern), werden durch Klick auf den Button "Neue Rechnung starten" folgende Aktionen ausgelöst:

Dies führt natürlich nicht zu sinnvollen Ergebnissen, wenn der Mittelteil des Gleichungssystems nicht komplett mit dem Algorithmus des letzten automatischen Aufbaus erzeugt werden kann. In solchen Fällen muss man Korrekturen "von Hand" im Eingabeschema nachliefern und die Rechnung erneut starten. Auf folgenden Seiten werden dafür Beispiele demonstriert, die das Angebot "Wiederholung der Rechnung" nutzen: "Einstiegsbeispiel zum Differenzenverfahren mit TM-interaktiv" und "Differenzenverfahren, Biegeträger mit veränderlichem Querschnitt, Lösung mit TM-interaktiv".

Einstellung Radian/Grad Die Argumente der Winkelfunktionen sin, cos, tan und cot können in Grad (°) oder Radian (Bogenmaß) interpretiert werden. Dies wird über die Radiobuttons eingestellt (Standardeinstellung ist Grad, siehe nebenstehendes Bild).

Zahlen können (optional) ein Vorzeichen, einen Dezimalpunkt und einen Exponenten (gegebenenfalls auch mit einem Vorzeichen) enthalten, Beispiele korrekter Zahlen:     -2.1E-5     5120     .3125     0.001

Zeilennummer (Variable z_nr): Zusätzlich zu den definierten Konstanten kann in den arithmetischen Ausdrücken, mit denen die Elemente des Gleichungssystems definiert werden, noch eine Variable z_nr genutzt werden, die immer mit der aktuellen Zeilennummer (Gleichungsnummer) belegt ist, für die die Eingabe gilt. Damit können die Eingaben (speziell bei automatischem Aufbau des Gleichungssystems) abhängig von der Gleichungsnummer sein. Ein ausführlich dokumentiertes Beispiel, bei dem diese Möglichkeit genutzt wird, findet man auf der Seite Differenzenverfahren, Biegeträger mit veränderlichem Querschnitt, Lösung mit TM-interaktiv.

ZAHLEN können (optional) ein Vorzeichen, einen Dezimalpunkt und einen Exponenten (gegebenenfalls auch mit einem Vorzeichen) enthalten, Beispiele korrekter Zahlen:

-2.1E-5     5120     .3125     0.001
Es existiert für die Verwendung in Funktionen immer genau eine unabhängige Variable mit einem Namen und einem aktuellen Wert, der nur für den Syntaxcheck bei der Eingabe von Funktionen verwendet wird (Voreinstellung: x = 0, Name und Wert dürfen beliebig geändert werden).
Definition einer Konstanten mit der Syntax

Name = Arithmetischer Ausdruck

Konstanten werden berechnet und mit Namen und Wert im Konstantenspeicher für die weitere Verwendung bereitgestellt.

Beispiel: k1 = pi^2 / 4
Klicken öffnet ein Fenster mit ergänzenden Informationen