08/30/2014, 01:41 PM

Hi, maybe too easy but I have problems.

I waant to find set of all fixed points for complex z^x.

I know that I can do:

L = fixed_point(b^z) for all b in Complex plane.

I'm doing:

fix_point(b) := Lambert_W(a), where a = -ln(b)

Labmert_W(a) := Tania(t), where t = ln(a)-1

Tania(t):

4 different implementations (after citizendium), depending on t values (imag/real).

I can get fixed points quite OK, for:

b=e, b=sqrt(2), b=2.

I'm computing:

L=fix_point(b)

fL = f(L) = pow(b, L)

Then I check |L-fL| and get values < 1e-19, which is OK.

My only problem is:

I want ALL fixed points for ALL complex bases b

f(b) = set(L), set(L) = set of fixed points not just one.

Problem is that for b=sqrt(2) i get L=4, which is OK, but I want to get L=2 --> how to do that?

Anybody will help?

My goal is to have complex map of

f(z) = set { fixed points of pow(z) }

I mean I want multivalued mapping.

EDIT:

It behaved really bad for bases near e^(1/e), specially equal and little below.

This was due to log of values with negative real part and almost zero imag part - which returned really bad results (because log of negative real is cut line), but more itarations helped.

Code updated to "adjust" iterations untill they behave OK. So there is limit 100 iterations, but after each one I check added value (in Tania function), if value drops |s| < EPS (1e-16) then abort iterations and return Tania result.

This helped for e^(1/e) and its vicinity but....

there is NO convergence of Tania function (this is the one from citizendium) when b = PI/3 (I wanted some special PI related value, and less than e^(1/e) and I tested PI/3 and Tania is not converging)

Checked such values:

//z = C(-1.0, 0.);

//z = C(0., 0.);

//z = C(1., 0.);

//z = C(exp(1.), 0.);

//z = C(exp(2.), 0.);

//z = C(exp(-exp(1.)), 0.0);

//z = C(exp(1./exp(1.)), 0.0);

//z = C(exp(1./exp(1.)-0.00000001), 0.0);

//z = C(exp(1./exp(1.)+0.00000001), 0.0);

//z = C(sqrt(2.), 0.0);

//z = C(M_PI/3., 0.0);

Updated code

I waant to find set of all fixed points for complex z^x.

I know that I can do:

L = fixed_point(b^z) for all b in Complex plane.

I'm doing:

fix_point(b) := Lambert_W(a), where a = -ln(b)

Labmert_W(a) := Tania(t), where t = ln(a)-1

Tania(t):

4 different implementations (after citizendium), depending on t values (imag/real).

I can get fixed points quite OK, for:

b=e, b=sqrt(2), b=2.

I'm computing:

L=fix_point(b)

fL = f(L) = pow(b, L)

Then I check |L-fL| and get values < 1e-19, which is OK.

My only problem is:

I want ALL fixed points for ALL complex bases b

f(b) = set(L), set(L) = set of fixed points not just one.

Problem is that for b=sqrt(2) i get L=4, which is OK, but I want to get L=2 --> how to do that?

Anybody will help?

My goal is to have complex map of

f(z) = set { fixed points of pow(z) }

I mean I want multivalued mapping.

EDIT:

It behaved really bad for bases near e^(1/e), specially equal and little below.

This was due to log of values with negative real part and almost zero imag part - which returned really bad results (because log of negative real is cut line), but more itarations helped.

Code updated to "adjust" iterations untill they behave OK. So there is limit 100 iterations, but after each one I check added value (in Tania function), if value drops |s| < EPS (1e-16) then abort iterations and return Tania result.

This helped for e^(1/e) and its vicinity but....

there is NO convergence of Tania function (this is the one from citizendium) when b = PI/3 (I wanted some special PI related value, and less than e^(1/e) and I tested PI/3 and Tania is not converging)

Checked such values:

//z = C(-1.0, 0.);

//z = C(0., 0.);

//z = C(1., 0.);

//z = C(exp(1.), 0.);

//z = C(exp(2.), 0.);

//z = C(exp(-exp(1.)), 0.0);

//z = C(exp(1./exp(1.)), 0.0);

//z = C(exp(1./exp(1.)-0.00000001), 0.0);

//z = C(exp(1./exp(1.)+0.00000001), 0.0);

//z = C(sqrt(2.), 0.0);

//z = C(M_PI/3., 0.0);

Updated code