# How to show the intersection points of three functions?

How can I show the intersection points of three functions in my Plot? I really can't figure it out.

LogPlot[{(4.058*10^31)/M, (1.647*10^60)/M^2 , M}, {M, 0, 2*10^20},
PlotRange -> {10^9, 10^21} , Filling -> 3 -> Axis,
AxesLabel -> {Subscript[M, U], Subscript["Λ", U]}]

-
Solve,and then Epilog.Or MeshFunctions – Apple Jul 2 '14 at 8:35
forgive my ignorance but I dont know why it is not working Solve[[CapitalLambda] == (4.058*10^31)/M && [CapitalLambda] == ( 1.647*10^60)/M^2 && [CapitalLambda] == M, {[CapitalLambda], M}] – user16277 Jul 2 '14 at 8:46
Because the three points of intersection are spaced so many orders of magnitude apart, I don't see how a meaningful visualization can be achieved with a single LogPlot. – m_goldberg Jul 2 '14 at 11:19

Like said in the comments, use Solve and Epilog.

sel = First[Select[Cases[#1, _Real], #1 > 0 &]] &;
pts = {#, Log@#} & /@ {sel[M /. Solve[(1.647*10^60)/M^2 == M, M]],
sel[M /. Solve[(4.058*10^31)/M == M, M]]};
LogPlot[{(4.058*10^31)/M, (1.647*10^60)/M^2, M}, {M, 0, 2*10^20},
Epilog -> {Red, PointSize@.02, Point@pts}]


-
p1 = {M, Log[(4.058 10^31)/M]} /.
Solve[(4.058 10^31)/M == M && M > 0, Reals]


{{6.37024*10^15, 36.3904}}

p2 = {M, Log[(1.647 10^60)/M^2]} /.
Solve[(1.647 10^60)/M^2 == M && M > 0, Reals]


{{1.18095*10^20, 46.218}}

p3 = {M, Log[(1.647 10^60)/M^2]} /.
Solve[(1.647 10^60)/M^2 == (4.058 10^31)/M && M > 0, Reals]


{{4.05865*10^28, 6.9076}}

plot = LogPlot[
{(4.058 10^31)/M, (1.647 10^60)/M^2, M}, {M, 0, 2 10^20},
PlotRange -> {10^9, 10^21},
Filling -> 3 -> Axis,
AxesLabel -> {Subscript[M, U], Subscript["Λ", U]},
Epilog -> {PointSize[Large], Red,
Sequence @@ Point /@ p1,
Sequence @@ Point /@ p2,
Sequence @@ Point /@ p3}
]


-
Your epilog can be better written as Epilog -> {PointSize[Large], Red, Point @@@ {p1, p2, p3}} or even Epilog -> {PointSize[Large], Red, Point @ Join[p1, p2, p3]}. Also, since p3 is way off the visible part of the x-axis, you might as well leave it out. – m_goldberg Jul 2 '14 at 11:15

I really don't see how the three points of intersection can reasonably be displayed on one plot. I would do it with three.

{p1, p2, p3} = {{6.37024*10^15, 36.3904}, {1.18095*10^20, 46.218}, {4.05865*10^28, 6.9076}};

plot = LogPlot[{(4.058 10^31)/M, M}, {M, 0, 10 ^16},
PlotRange -> {10^14, 10^17},
AxesLabel -> {Subscript[M, U], Subscript["Λ", U]},
Epilog -> {PointSize[Large], Red, Point@p1}]


plot = LogPlot[{(1.647 10^60)/M^2, M}, {M, 0, 5 10 ^20},
PlotRange -> {10^18, 10^21},
AxesLabel -> {Subscript[M, U], Subscript["Λ", U]},
Epilog -> {PointSize[Large], Red, Point@p2}]


plot = LogPlot[{(4.058 10^31)/M, (1.647 10^60)/M^2}, {M, 3 10 ^28, 5 10 ^28},
PlotRange -> 10^5,
AxesLabel -> {Subscript[M, U], Subscript["Λ", U]},
Epilog -> {PointSize[Large], Red, Point@p3}]


-