There is not a one-size-fit-all solution for this, I think.
If you are more interested in comparing those functions on the same scale:
q1 = Plot[u[t] /. sol2, {t, 0, 1}, PlotStyle -> Red, PlotRange -> All];
q2 = Plot[v[t] /. sol2, {t, 0, 1}, PlotStyle -> Blue,
PlotRange -> All];
Show[{q1, q2}, PlotRange -> Full, ImageSize -> Scaled[0.6]]
If you are interested in fine structure of those functions then this representation should be more helpful:
q1 = Plot[
u[t] /. sol2, {t, 0, 1}
, PlotStyle -> Red
, ImagePadding -> {{45, 45}, {20, 0}}
, Frame -> {True, True, True, False}
, FrameStyle -> {Automatic, Red, Automatic, Automatic}
, ImageSize -> Scaled[0.6]
];
q2 = Plot[
v[t] /. sol2, {t, 0, 1}
, PlotStyle -> Blue
, ImagePadding -> {{45, 45}, {20, 0}}
, Frame -> {False, False, False, True}
, FrameTicks -> {{None, All}, {None, None}}
, FrameStyle -> {Automatic, Automatic, Automatic, Blue}
, ImageSize -> Scaled[0.6]
];
Overlay[{q1, q2}]
Show
command comes from the first plot. If you useShow[q1, q2, PlotRange -> {0.68, 0.81}]
you should see both plots. However, they look like flat lines because the plot ranges are so different (look at the y-axis of the plots for q1 and q2). $\endgroup$