I have 3 functions: $$ \left(v(\text{k$\_$})=\frac{\partial \omega (k)}{\partial k}\right)\\ \left(g(\text{k$\_$})=\frac{a n}{\pi | v(k)| }\right)\\ \left(\omega (\text{k$\_$})=\sqrt{\frac{2 (f (1-\cos (2 a k))+\kappa (1-\cos (a k)))}{m}}\right) $$
Now, I want to plot $g(\omega)$ instead of $g(k)$. Is there a simple way to do it?
That is, I don't want $g(\omega(k))$. I want $g(k)$ plotted against each $\omega(k)$ corresponding to each $k$.
Here are the plots for $\omega(k)$:
And $g(k)$:
And here's ParametricPlot[{ ω[k], g[k]}, {k, 0, x}]
:
It doesn't produce what I want. My guess is that's because $\omega$ is not 1-to-1?
Here's the code:
Clear["Global`*"]
ω[k_] =
Sqrt[2/m (κ (1 - Cos[k a]) + f (1 - Cos[2 k a]))];
v[k_] = D[ω[k], k];
g[k_] = n a/π 1/Abs[v[k]];
x = π/a;
κ = 3;
f = 5;
m = 10;
a = 0.1;
Plot[ω[k], {k, -3 x, 3 x},
Ticks -> {{-3 x, -x, 0, x, 3 x}, Automatic}]
Plot[ω[k]/k, {k, -3 x, 3 x},
Ticks -> {{-3 x, -x, 0, x, 3 x}, Automatic}]
Plot[v[k], {k, -3 x, 3 x}, Ticks -> {{-3 x, -x, 0, x, 3 x}, Automatic}]
n = 10;
Plot[g[k], {k, 0, x},
Ticks -> {{0, 17.21364599572073, x}, {20, 40, 60}},
PlotRange -> {{0, x}, {0, 60}}]
ParametricPlot[{ ω[k], g[k]}, {k, 0, x},
PlotRange -> {{0, MaxValue[ω[k], k]}, {0, 10}},
Ticks -> {{0, Round[ω[x], 0.001],
Round[MaxValue[ω[k], k], 0.001]}, Automatic},
Exclusions -> None]
ParametricPlot
$\endgroup$AspectRatio
$\endgroup$