Plot between multiple curves
f[s_] := Plot[{U1[del], U2[del], Dead[del],
If[s[U2[del], #], #, U2[del]] &@Max[U1[del], Dead[del]]},
{del, 0, 1}, PlotRange -> {0, 1},
PlotStyle -> {{Blue, Dashed, Thick},
{Red, Dashed, Thick},
{Green, Dashed, Thick},
Transparent},
Filling -> {2 -> {4}}, Frame -> True]
f /@ {Less, Greater}
I strongly applaud Dr. belisarius' use of an invisible curve to control the filling, but I think the following implementation of his idea is easier to understand.
U1[del_] := (1 - del)/del
U2[del_] := del
Dead[del_] := del^3
controlCurve[del_] :=
Piecewise[
{{U2[del], U1[del] > U2[del]},
{U1[del], U1[del] > Dead[del]}},
Dead[del]]
Plot[{U1[del], U2[del], Dead[del], controlCurve[del]}, {del, 0, 1},
PlotRange -> {0, 1},
PlotStyle ->
{{Blue, Dashed, Thick}, {Red, Dashed, Thick},
{Green, Dashed, Thick}, Transparent},
Filling -> {2 -> {{4}, Yellow}},
Frame -> True]