Function gmres stürzt ab

GmresBugBei mehreren Testrechnungen stürzte die Function gmres mit der nebenstehend zu sehenden Fehlermeldung ab (zu erzeugen z. B. mit dem Script ItVerfTest2.m, das unter "Testrechnungen mit iterativen Verfahren (1)" zu finden ist, der Fehler trat aber auch bei mehreren anderen Rechnungen auf). Der Fehler tritt erst ab Matlab 7(R14) auf, die Vorgängerversion ist zwar auch mit gmres nicht sehr erfolgreich, dieser Fehler allerdings tritt nicht auf.

Es ist ganz offensichtlich ein formaler Fehler: Die Variablen stagtest, additive und x sind double-Vektoren und ind ist ein logical-Vektor, alle mit der gleichen Dimension, so dass diese Operation in Zeile 387 tatsächlich nicht erlaubt ist.

Geringer Schaden

Die Function gmres (General minimum residual) ist bei zahlreichen Testrechnungen mit der Vorgängerversion (vorsichtig ausgedrückt) auch nicht gerade positiv aufgefallen (siehe z. B. "Testrechnungen mit Präkonditionierung mit Matlab"). Weil 8 weitere iterative Lösungsverfahren verfügbar sind, wird gmres eigentlich kaum vermisst.

Liebe Matlab-Entwickler,

der Bug ist sicher leicht zu beheben.

Aber vielleicht nehmen Sie diesen Bugfix zum Anlass, auch gleich über die hier beschriebenen (für alle iterativen Verfahren geltenden) Probleme nachzudenken.