Mehrfach-Nullstellen und ungerade Polstellen

Mehrfach-Nullstellen

Bei der numerischen Berechnung von Nullstellen können so genannte Mehrfach-Nullstellen dann zu Problemen führen, wenn die Funktion keinen Nulldurchgang (mit unterschiedlichen Vorzeichen der Funktionswerte "links und rechts" von der Nullstelle) hat. Dies führt sowohl zu einem Problem beim Lokalisieren (beim "Scannen" eines Bereichs wird diese Nullstelle nicht gefunden) als auch bei der Berechnung verbesserter Werte (bei der Newtonformel und der Regula falsi nähert sich der Nenner dem Wert 0, bei den "Eingabel-Verfahren" haben immer alle Näherungswerte das gleiche Vorzeichen). Die Probleme werden an einem Beispiel demonstriert: Die Polynomfunktion

lässt in der Produktdarstellung erkennen, dass sie Nullstellen bei x1 = 0, x2 = 1 und x3 = 2 hat. Leider liegt eine Polynomfunktion in den seltensten Fällen in dieser Form vor. In der Regel muss man die Nullstellen aus der Analyse des Polynoms berechnen. Eine Polynomfunktion 6. Grades hat 6 Nullstellen, in diesem Fall eine einfache (x1), eine doppelte (x3) und eine dreifache (x2).

Das Programm "Funktionen analysieren" (zu finden unter TM-interaktiv) liefert bei der Nullstellensuche das nebenstehend zu sehende Ergebnis. Die doppelte Nullstelle bei x3 wird nicht gefunden. In diesem Fall gilt in besonderem Maße, was eigentlich immer bei der numerischen Nullstellenberechnung gilt: Man zeichne die Funktion im interessierenden Bereich! In diesem Fall kommt die Empfehlung hinzu: Man lasse auch die relativen Extremwerte berechnen.

Das Programm "Funktionen analysieren" hat dafür sogar ein spezielles Angebot: "Grafik, spezielle Punkte". Bei Auswahl dieses Angebots erscheint das nebenstehend zu sehende Ergebnis.

Ungerade Polstellen

Polstellen sind Unstetigkeitsstellen, die bei Annäherung an diese Stellen die Funktionswerte über alle Maßen wachsen lassen (typisches Beispiel: Division durch Null). Nebenstehend ist das Beispiel der Funktion

zu sehen, die bei x = 1 eine so genannte "ungerade Polstelle" hat: Links von dieser Stelle verschwindet die Funktion in Richtung "Minus Unendlich", um rechts von dieser Stelle aus der Richtung "Plus Unendlich" wieder zu erscheinen.

Ein Programm zur Nullstellen-Berechnung muss berücksichtigen, dass es hier mit dem Vorzeichenwechsel zwar nach der Existenz einer Nullstelle aussieht, es aber keine Nullstelle ist. Beim Lokalisieren der Nullstellen durch Scannen eines Bereichs auf Vorzeichenwechsel der Funktionswerte muss in der Regel (wenn die Polstelle nicht genau getroffen wird, was reiner Zufall wäre) eine Nullstelle vermutet werden. Bei der Verbesserung der Näherung der "vermuteten Nullstelle" muss stets überprüft werden, ob sich die Funktionswerte nicht immer weiter vergrößern. Nur durch ständigen Vergleich der Funktionswerte kann die Entscheidung "Nullstelle oder ungerade Polstelle?" getroffen werden.

Beispiel: Für den skizzierten Biegeträger sind die drei kleinsten Eigenkreisfrequenzen der Biegeschwingungen zu ermitteln. Gegeben sind die Biegesteifigkeit EI, die Massebelegung des Trägers ρA und die Trägerlänge l.

Im Kapitel "Systeme mit mehreren Freiheitsgraden" des Lehrbuchs "Dankert/Dankert: Technische Mechanik" wird gezeigt, dass für die Eigenkreisfrequenzen der Biegeschwingungen die Formel

gilt und dass die λi in dieser Formel der Gleichung

genügen müssen. Gesucht sind also die Nullstellen der Funktion f(λ).

Weil die tan-Funktion garantiert ungerade Polstellen in dieser Funktion erzeugt, muss das Programm zur Suche nach den Nullstellen die oben genannte Unterscheidung von Nullstellen und Polstellen liefern. Das Programm "Funktionen analysieren" erfüllt diese Bedingung.

Zur Bestimmung des Bereichs, in dem die drei kleinsten von Null verschiedenen Nullstellen zu finden sind, muss gegebenenfalls etwas probiert werden.

Nach dem Start des Programms wird zunächst die unabhängige Variable auf lambda umgestellt, dann kann im (gelben) Eingabefeld (links oben) die Funktion in der Form

f = tan(lambda) - tanh(lambda)

eingegeben werden (Eingabe abschließen mit der Enter-Taste oder mit Klick auf den Button "Funktion"). Rechts sieht man das Ergebnis, nachdem der zu untersuchende Bereich mit lambdaAnf = 0 bzw. lambdaEnd = 12 eingestellt und in der Auswahlliste "Aktionen mit Funktionen" die Offerte "Grafik, spezielle Punkte" angeklickt wurde.

Wie man erkennen kann, werden die speziellen Punkte nach den Eigenschaften "Nullstelle" bzw. "Polstelle" unterschieden.

Vorsicht bei Nullstellensuche mit Matlab!

Matlab bietet für die Nullstellensuche die Funktion fzero an, Matlab-Help: "x = fzero(fun,x0) tries to find a zero of fun near x0, if x0 is a scalar. fun is a function handle."

Wenn man allerdings den Funktionsaufruf genau so programmiert, wird gegebenenfalls auch eine ungerade Polstelle abgeliefert. In der Funktionsbeschreibung im Help-System von Matlab findet man ganz weit unten unter "Limitations" den Hinweis: "The fzero command finds a point where the function changes sign." Das kann also auch eine ungerade Polstelle sein, Matlab-Help: "For example, fzero(@tan,1) returns 1.5708."

Was man bei der Nullstellensuche mit Matlab beachten muss und wie es möglich ist, den Return-Wert von fzero als Nullstelle bzw. ungerade Polstelle zu unterscheiden, wird am Beispiel des oben demonstrierten Biegeschwingungs-Problems auf der Seite "Matlab: Beispiel einer Nullstellenberechnung" beschrieben.