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.

I'm trying to illustrate the solutions numerically and graphically for an equation such as Tan[x] == x. I think I did everything ok except I wanted to mark each intersection between Tan[x] and x.

Does anyone know how such a thing can be done?

share|improve this question
1  
Comment by the OP (migrated from the question) -> ** I'm sorry if I'm not 'commenting' properly. I'll figure it out when I get more time here. I wanted to say THANKS to EVERYONE that posted. This is exactly what I was looking for. I will use all the input and make sure I learn from what was given. What a goldmine this site is for learning something like this. Thanks again, it's greatly appreciated!! –  belisarius Sep 12 '12 at 19:23
add comment

3 Answers

up vote 31 down vote accepted

Edited to make it a function. For the strange Exclusions specification I use below, see my answer here. Thanks to @Oleksandr and @JM for their great comments.

plInters[{f1_, f2_}, {min_, max_}] :=
 Module[{sol, x},
         sol = x /. NSolve[f1[x] == f2[x] && min < x < max, x];
         Framed@Show[
                  ListPlot[{#, f1[#]} & /@ sol, PlotStyle -> PointSize[Large]],
                  Plot[{f1[x], f2[x]}, {x, min, max}, Exclusions -> {True, f2[x] == 10, f1[x] == 10}]
    ]
  ]


GraphicsRow[plInters[#, {-10, 10}] & /@ {{# &, Tan}, {Tan, Coth}, {Sin, 1/# &}}]

Mathematica graphics

share|improve this answer
1  
Damn, yours is better. –  kale Sep 12 '12 at 1:00
1  
@kale That is one of the good things in this site. You can always find other ways. –  belisarius Sep 12 '12 at 1:01
1  
Anyway definite +1 from me. –  kale Sep 12 '12 at 1:06
1  
I don't really know why Plot can sometimes determine exclusions properly and sometimes not. Still, this'll look a bit better if you set Exclusions -> Pi/2 Range[-5, 5, 2] for Plot (otherwise, it may be harder for students to see that these aren't really solutions). –  Oleksandr R. Sep 12 '12 at 1:45
1  
@Oleksandr, for exclusions for the tangent function, it's slightly neater to use Exclusions -> {Cos[x] == 0}... –  J. M. Sep 12 '12 at 1:53
show 7 more comments

You can also use MeshFunctions:

  Plot[{Cos[x], x Sin[x]}, {x, -3 Pi, 3 Pi}, 
     MeshFunctions -> {(Cos[#] - # Sin[#]) &}, Mesh -> {{0}}, 
     MeshStyle -> Directive[Red, PointSize[Large]]]

plot of Cos[x] and x Sin[x]

Update: Dealing with Tan[x] using Exclusions

Plot[{Tan[x], x Sin[x]}, {x, -3 Pi, 3 Pi}, 
   MeshFunctions -> {(Tan[#] - # Sin[#]) &}, Mesh -> {{0}}, 
   MeshStyle -> Directive[Red, PointSize[Large]], 
   Exclusions -> Range[-5 Pi/2, 5 Pi/2, Pi]]
   (* or Exclusions -> (Cos[x] == 0) *)

plot of Tan[x] and x Sin[x]

Update 2: Using just Mesh and MeshStyle:

points = NSolve[Tan[x] == x Sin[x] && -3 Pi < x < 3 Pi, x][[All, 1, 2]];
Plot[{Tan[x], x Sin[x]}, {x, -3 Pi, 3 Pi},
  Mesh -> {points},
  MeshStyle -> {Directive[Red, PointSize[Large]]},
  Exclusions -> Range[-5 Pi/2, 5 Pi/2, Pi]]
(* same picture as above *)
share|improve this answer
    
very nice! :) $ $ –  rm -rf Sep 12 '12 at 1:45
3  
This has some problems with the exclusions :( –  belisarius Sep 12 '12 at 5:03
1  
@R.M thank you. Belisarius, right... without excluding the vertical segments of the Tan function (using Exclusions or RegionFunction) MeshFunctions do not work. –  kguler Sep 12 '12 at 5:43
    
But that is not always easy > mathematica.stackexchange.com/q/10501/193 –  belisarius Sep 12 '12 at 13:28
add comment

See also the solution using RootsInRange. This solution is more general as it will work when either the exact intersections are not known, or NSolve fails.

share|improve this answer
add comment

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.