Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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]}]
share|improve this question
    
Solve,and then Epilog.Or MeshFunctions –  Chenminqi Jul 2 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 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 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}]

Mathematica graphics

share|improve this answer
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}
  ]

enter image description here

share|improve this answer
    
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 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}]

plot1

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

plot2

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

plot3

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.