Re: What do I do to get better curves?
- To: mathgroup at smc.vnet.net
- Subject: [mg120946] Re: What do I do to get better curves?
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Thu, 18 Aug 2011 03:23:14 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Reply-to: hanlonr at cox.net
The function definitions should explicitly include all parameters.
p[k_, w_, r_] := Sqrt[w^2/r^2 - k^2];
q[k_, w_, r_] := Sqrt[w^2 - k^2];
a[k_, w_, p_, q_, r_] := (k^2 - w^2)^2 Sin[p] Cos[q] + 4 k^2 p q Cos[p] Sin[q];
a[k_, w_, r_] := a[k, w, p[k, w, r], q[k, w, r], r];
For the function to be real valued the arguments of the square roots must be nonnegative.
FullSimplify[Reduce[Thread[
Cases[a[k, w, r], Sqrt[z_] -> z, Infinity] > 0],
k], {w >= 0, k >= 0, r > 1}]
k r < w
Checking the function value on the boundary
a[k, k*r, r]
0
Or equivalently,
a[w/r, w, r]
0
So the line k = w/r is part of the contour.
Manipulate[Show[
Plot[w/r, {w, 0, 6}, PlotStyle -> Blue],
ContourPlot[a[k, w, r] == 0, {w, 0, 6}, {k, 0, w/r},
ContourStyle -> Directive[Red, AbsoluteThickness[2]]],
AspectRatio -> 1,
Frame -> True,
Axes -> False,
PlotRange -> {0, 6}],
{{r, 6197/3122}, 1, 5, Appearance -> "Labeled"}]
Bob Hanlon
---- becko <becko565 at hotmail.com> wrote:
=============
Run the following code in mathematica:
r=6197/3122;
p[k_,w_]:=Sqrt[w^2/r^2-k^2];q[k_,w_]:=Sqrt[w^2-k^2];
a[k_,w_,p_,q_]:=(k^2-w^2)^2 Sin[p]Cos[q]+4k^2 p q Cos[p]Sin[q]
a[k_,w_]:=a[k,w,p[k,w],q[k,w]];
ContourPlot[a[k,w]==0,{w,0,6},{k,0,14}]
The curves thus obtained are very inaccurate. I tried raising the
PlotPoints and WorkingPrecision opions of ContourPlot, but it doesn't
work. Morevoer, you see that the only parameter that shows up, 'r', is
an exact rational number. I don't know what else to try. Thanks.