|
|
Guten Morgen Richard, das Problem liegt nicht bei FixedPoint[], sondern in einer vorgängigen Konfusion. So, wie Ihr Beispiel daherkommt, ist immer b1 === b2 (da beide in g[B_] gleich F[a1, a2] gesetzt werden). FixedPoint[] erwartet, dass Urbild und Bild (Argumente und Werte) dieselbe Struktur haben. Welche Struktur das ist, ist FixedPoint[] schnuppe. Also zum Beispiel ist lt. Manual: In[7]:= FixedPoint[Log, 1. + I] Out[7]= 0.3181315052047643 + 1.3372357014306893*I Das lässt sich als Listeninput einfach nachbilden: In[12]:= Remove[unCoolLog]; unCoolLog[{b1_Real, b2_Real}] := {Re[Log[b1 + I*b2]], Im[Log[b1 + I*b2]]} In[14]:= FixedPoint[unCoolLog, {1., 1.}] Out[14]= {0.3181315052047643, 1.3372357014306893} Natürlich funktioniert weder FixedPoint[Log, {1., 1.}] noch FixedPoint[unCoolLog, 1. + I]. FixedPoint[Log, 1 + I] does not return too because it nests unevaluated and SameQ does correctly not find Log[Log[1 + I]] being the same as Log[1 + I], for example. Wenn B immer sicher eine zweielementige Liste ist, dann ist Ihre Funktion g nichts weiter als: g[B_] := {F[f1 @@ B, f2 @@ B], F[f1 @@ B, f2 @@ B]} /; Length[B] == 2 das Referenzproblem (B[i] oder B[[i]]) besteht also nicht wirklich für g, denn In[17]:= laber @@ {x, y, y} Out[17]= laber[x, y, y] wobei f1, f2 und F in der Session bekannt sein müssen, sonst geht es auch wieder nicht. Über das F müsste nachgedacht werden und welcherart f1 und f2 zusammengebaut werden, dort sollte ein Struktur- oder einfacher gesagt, ein Verschachtelungsproblem vorliegen. Mit den besten Grüssen Udo. RGollreiter@XXXXXXX.de wrote: Hallo Demug, |