I am trying to calculate the differences in natural frequencies between two different dynamic models, and I would like to plot these error contours in terms of ues
(mass ratio) and nel
(frequency ratio). err1
corresponds to the error when nel
> 1 and err2
corresponds to the error when nel
< 1.
Naturally these error contours should be plotted on a single graph, but I cannot find a way to combine these on a single graph, especially since nel
needs to be plotted on a log X-axis. I have tried Show[]
, but I cannot get it to plot the graph with the following requirements:
- Logarithmic X-axis (
ues
) - Filled in Contours
- Contour Plot Range (error) shall be {0 , 0.5}
- X-Axis (
ues
) Range shall be {0 , 1} - Y-Axis (
nes
) Range shall be {0 , 3.5}
Here are two separate graphs that accomplish the requirements above but are not combined:
ClearAll["Global`*"]
err1 = -1 + Sqrt[2]/Sqrt[1 + ues + nel^2*(1 + ues) -
Sqrt[(1 + ues)*((-1 + nel^2)^2 + (1 + nel^2)^2*
ues)]]
err2 = 1 - Sqrt[2]/Sqrt[1 + ues + nel^2*(1 + ues) +
Sqrt[(1 + ues)*((-1 + nel^2)^2 + (1 + nel^2)^2*
ues)]]
(* Plot Error 1 Contour *)
Show[ContourPlot[
Tooltip[err1, Row[{"ues = ", ues}]], {ues, 0, 1}, {nel, 1, 3.5},
PlotRange -> {0, 0.501},
Contours -> Join[{0.01}, Range[0.05, 0.50, 0.05]],
AxesLabel -> Automatic, ScalingFunctions -> {"Log", None}],
AxesLabel -> {None, None},
FrameLabel -> {{HoldForm[nel], None}, {HoldForm[ues], None}},
PlotLabel -> None, LabelStyle -> {GrayLevel[0]}]
(* Plot Error 2 Contour *)
Show[ContourPlot[
Tooltip[err2, Row[{"ues = ", ues}]], {ues, 0, 1}, {nel, 0, 1},
PlotRange -> {0, 0.501},
Contours -> Join[{0.01}, Range[0.05, 0.50, 0.05]],
AxesLabel -> Automatic, ScalingFunctions -> {"Log", None}],
AxesLabel -> {None, None},
FrameLabel -> {{HoldForm[nel], None}, {HoldForm[ues], None}},
PlotLabel -> None, LabelStyle -> {GrayLevel[0]}]
Note I use ScalingFunctions
from Mathematica 11.