|
Numerischer Algorithmus fuer komplexe mehrdeutige iterative
Funktionen
TEIL 2 |
Gleichung 1
In Gleichung 1 traten folgende Probleme auf :
1) Die Abbildung fuehrt in jedem Iterationsschritt auf 2 Loesungen (+/-)
(Part 1)
2) Die Funktionswerte koennen komplexwertig sein
Zielsetzung war es eine Pol / Nullstellen-Darstellung der Verhulst , p(n) Polynome
zu berechnen.
Diese Pole koennen natuerlich komplex sein. KONRAD hat hierfuer eine einfache
iterative Methode vorgeschlagen.
Die Methode fuehrt darauf die Verhulst Gleichung "rueckwaerts" zu durchlaufen.
Jeder Iterationsschritt fuehrt dann auf zwei Loesungen. Es entseht ein Bianaerbaum.
Diese Problematik ist mit Algo aus PART 1 geloest.
zu 2)
Es fehlt nun noch die konkrete komplexe Rechenvorschrift der inversen Verhulst
Funktion, um die Polstellen nun endgueltig zu ermitteln.
Dazu rechnet man in Algorithmus von Anfang an mit komplexen Zahlen..
Im Bronstein S. 515 findet sich die komplexe Abbildung : Sqrt(Z) Z=x+iy. (komplexe
Variable)
Sqrt(x+iy)=u+iv
u = +-sqrt( (x+sqrt(x*x+y*y))/2)
v = +-sqrt( (-x+sqrt(x*x+y*y))/2)
Die +- Vorzeichen von Realteil und Imaginaerteil sind dabei gekoppelt .
Verwendet man bei Re das plus , muss man auch bei Im das plus verwenden. etc.
Die inverse logistische Abbildung als komplexer Algorithmus::
Wendet man die quadratische Loesungsformel an erhaelt man :
y(k+1)=1/2 +/- sqrt( 1/4 - y(k)/a)
jetzt betrachtet man y(k) komplex
y(k+1)=1/2 +/- sqrt( 1/4 - (u+Iv)/a), I=imaginaere Einheit
oder substituiert
y(k+1)=1/2 +/- sqrt(z)
z= alpha + I*beta
alpha= (a-4u)/4a
beta = -v/a
Fuer weitere Berechnung betrag = sqrt(alpha*alpa + beta*beta)
Als iterative Rechenvorschrift erhaelt man dann:
u=1/2 +/- Sqrt( 0.5* (betrag + alpha))
v= +/- Sqrt( 0.5* (betrag - alpha))
Anmerkung:
Die Formel im Bronstein gilt nur fuer Im>0
Fuer Im<0 muss man das Vorzeichen des Im(sqrt(z)) umdrehen
if(v<0) sign= - sign;
v= sign*Math.sqrt(0.5*(betrag-alpha));
Im Part 3 wird nun die endgueltige Implementation in Java mit Beispielen gezeigt.