I want to find the intersection point using ComplexPlot3D. I have a function call it $f(\lambda,k)$ ($k$ is fixed) such that at two particular values of $\lambda_{1,2} = \{-1.08862 + 0.886562 i, 1.08862 - 0.886562 i\}$, the values of $f(\lambda_1,k_1)$ and $f(\lambda_2,k_2)$ coalesce.

I want to verify this using ComplexPlot3D. I plotted my functions, but everything is red and I don't know how to locate $\lambda_{1,2}$ from the plot. Here is my code:

n = 2; 
exceptional = {-1.08862447826713 + 0.8865616938781102*I, 
1.08862447826713 - 0.8865616938781103*I, -0.421205964382834 + 1.3897935393654808*I, 
0.421205964382834 - 1.3897935393654806*I, -0.421205964382834 - 1.389793539365481*I, 
0.421205964382834 + 1.389793539365481*I, -1.0886244782671313 - 0.8865616938781087*I, 
1.0886244782671313 + 0.8865616938781086*I}; 
quasi[λ_, k_] := (1 + λ^n + 2*λ^(n/2)*Cos[k])^(1/n); 
p1 = 1.666487633682845 + 0.06510032631908054*I; 
p2 = 1.4751050199069482 - 0.06510032631908054*I; 
quasi[exceptional[[1]], p1] == quasi[exceptional[[2]], p2]
{exceptional[[1]], exceptional[[2]]}
ComplexPlot3D[{quasi[λ, p1], quasi[λ, p2]}, {λ, -1.5 - I, 1.5 + I}, 
PlotLegends -> Automatic]

How do I find the intersection points of two complex functions using ComplexPlot3D?

  • $\begingroup$ Translate=move your function so that p1 is at the origin. Do the same with p2. Then ComplexPlot3D f1-f2 and hope that shows the origin is the only place where that difference is zero. Place your mouse cursor inside the plot, press and hold the left button and drag to rotate and tilt the plot to see if you can position the plot showing that the origin is the only place where the difference equals zero. $\endgroup$
    – Bill
    Feb 9 at 18:51
  • 2
    $\begingroup$ @ZHENGYAO HUANG: You do not seems to understand what Complex3DPlot represents. You can not see any intersection of two complex function on it. You can only see intersection of their absolute values on the plot. But having same absolute value they still can have different argument depicted by color on the plot. So are you willing to see only intersection of their absolute values? $\endgroup$ Feb 9 at 22:29

1 Answer 1


We define two functions f1 and f2 which according to p1 and p2 respectively and using ParametricPlot to draw the ReIm of the complex function f1 and f2.

For two values of exceptional[[1]] and exceptional[[2]] we draw two points f1[exceptional[[2]] and f2[exceptional[[2]]], We found that they are overlay.

Clear[f1, f2];
f1[λ_] := quasi[λ, p1];
f2[λ_] := quasi[λ, p2];
plot1 = Block[{λ = x + I*y}, 
   ParametricPlot[ReIm@f1[λ], {x, -1.5, 1.5}, {y, -1, 1}, 
    PlotStyle -> Directive@{Purple, HatchFilling[45  Degree]}]];
plot2 = Block[{λ = x + I*y}, 
   ParametricPlot[ReIm@f2[λ], {x, -1.5, 1.5}, {y, -1, 1}, 
    PlotStyle -> Directive@{Purple, HatchFilling[-45  Degree]}]];
{λ1, λ2} = {exceptional[[1]], exceptional[[2]]};
pt1 = Graphics[{Red, AbsolutePointSize[10], Point@ReIm@f1@λ1}];
pt2 = Graphics[{AbsolutePointSize[20], Opacity[.5], Cyan, 
Show[plot1, plot2, pt1, pt2]

enter image description here


Table[With[{boole = 
     quasi[exceptional[[i]], p1] == quasi[exceptional[[j]], p2]}, 
   If[boole, Framed[boole], boole]], {i, Length@exceptional}, {j, 
   Length@exceptional}] // MatrixForm

enter image description here

So we can use the same way to check {λ1, λ2} = {exceptional[[3]], exceptional[[4]]}; etc. ( see the indexs of True )


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.