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

=================

3 Answers

3

=================

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}]