I am new to Mathematica and trying to reproduce the following figure using ContourPlot
:
(From: https://iopscience.iop.org/article/10.1088/1402-4896/abb2e0/meta)
My code:
n1 = 0.5
n2 = 0.5
sig1 = 0.1
sig2 = 0.1
U1 = -1
U2 = 1
ContourPlot[n1/((Omg - K*U1)^2 - 3*K^2*sig1) + n2/((Omg - K*U2)^2 - 3*K^2*sig2) - 1/K^2 == 1,
{K, 0, 1}, {Omg, -2, 2}, Axes -> True, Exclusions ->
{(Omg - K*U1)^2 - 3*K^2*sig1 == 0, (Omg - K*U2)^2 - 3*K^2*sig2 == 0}]
The output:
As seen in the output plot, ContourPlot
only returns and plots the real solutions.
Is there another Mathematica function that plots both the complex and real solutions with different line styles, and a double axis as shown in the first figure?
I am using Mathematica 10. I tried to use ReImPlot
but no luck.
The code for 'ReImPlot':
ReImPlot[n1/((Omg - K*U1)^2 - 3*K^2*sig1) + n2/((Omg - K*U2)^2 - 3*K^2*sig2) - 1/K^2 == 1, {K, 0, 1}, {Omg, -2, 2}, Axes -> True, Exclusions ->
{(Omg - K*U1)^2 - 3*K^2*sig1 == 0, (Omg - K*U2)^2 - 3*K^2*sig2 == 0}]
The output: