Die Aufgabe, die dem hier beschriebenen Problem zugrunde liegt, ist eigentlich nicht von Interesse. Es ist der nebenstehend skizzierte ebene biege- und dehnsteife Rahmen (aus dem Kapitel "Verifizieren von Computerrechnungen, ausführlich behandelt auf der Internet-Seite "Ebener Rahmen, Verifizieren ..."), dessen Finite-Elemente-Modell in der Datei Rahm17.dat gespeichert ist. Der Finite-Elemente-Algorithmus führt auf ein lineares Gleichungssystem mit nur 33 Gleichungen. Dieses Beispiel ist auch Gegenstand von Testrechnungen an anderer Stelle, siehe z. B.: "Testrechnungen mit iterativen Verfahren (1)", "Testrechnungen mit Präkonditionierung mit Matlab" und "Test: Präkonditionierung mit 'Incomplete Cholesky'". |
Lösungsversuch mit lsqr
In Zeile 10 werden von den 33 Elementen Die von lsqr ausgegebene Meldung über die Konvergenz steht in krassem Gegensatz zum abgelieferten Ergebnis, wie der Vergleich mit dem vom Matlab-Standard-Solver berechneten Ergebnis zeigt. |
Das Problem Der Name lsqr deutet an, wo das Problem liegen könnte, er steht für "Least square". Mit der Function können wie mit dem Matlab-Standard-Solver auch überbestimmte Gleichungssysteme (Ausgleichsrechnung) gelöst werden. Matlab-Help: "... attempts to solve the system of linear equations A*x=b for x if A is consistent, otherwise it attempts to solve the least square solution x that minimizes norm(b-A*x)". Aber auch das muss bei einer quadratischen regulären Koeffizientenmatrix zum korrekten Ergebnis führen. Vermutlich ist nur das Abbruchkriterium nicht angemessen formuliert, ein Verdacht, der dadurch bestätigt wird, dass man bei diesem Beispiel mit einer Änderung des Toleranzwertes von
|