Polynom-Nullstellen

Für die Excel-App Linie glätten benötigte ich die Nullstellen von Polynomen 1. bis 3. Grades. Für das kubische Polynom nahm ich dankenswerterweise Anleihen bei excel4managers.de, da sich dort Rechengang und daraus abgeleiteter VBA-Code finden lassen. Natürlich wäre es wünschenswert und eleganter gewesen, eine Funktion für alle 3 Grade zu haben! Und wenn schon Hand anlegt werden soll, dann darf natürlich auch gleich der 4. Grad mit gelöst werden. Da die Berechnung der Nullstellen dieses Grades wiederum die Lösung niedrigerer Grade erfordert, wurde idealerweise ein rekursiver Aufruf verwirklicht. Bei bis zu 4 Ergebnissen ist die Anwendung von Matrix-Formeln Voraussetzung. Die Funktion kann auch aus VBA selbst aufgerufen werden. Für den Umgang mit der Beschreibung der Argumente der Funktion im Dialog “Funktionsargumente” wurde ein eigenes Modul “basPOLYNOMIAL1TO4ZERO_MacroOpt” mit dem Makro “Sub MakroOptionen()” angelegt, wo entsprechende Hinweise nachgelesen werden können.
Die folgende Datei enthält eine benutzerdefinierte Funktion POLYNOMIAL1TO4ZERO(K0; K1; [K2]; [K3]; [K4]; [Aufsteigend]), wobei K0 bis K4 die Koeffizienten des Polynoms sind (K2 bis K4 sind optional) und Aufsteigend = WAHR die optional voreingestellte Sortierreihenfolge ist. Seit Version 2.00 kann auch eine Matrixformel (Arrayformel) erstellt werden, d. h. die Koeffizienten dürfen einzeilige oder einspaltige Zellbereiche oder Matrizen sein, nachvollziehbar im Tabellenblatt “Test-Matrixformel”!
Die grundlegende Funktionalität wird im Tabellenblatt “Test” mittels Zufallszahlen zwischen -1 und 1 für die 5 Koeffizienten präsentiert (wenn man ein paar Mal F9 gedrückt hat, dann möchte man gar nicht mehr aufhören – jedenfalls ist das bei mir so):

Versionstabelle

Polynom-Nullstellen-97-2003-1.10