Before reading this notebook evaluate it by using the manu item Evaluation, then choosing Evaluate notebook.

I like to know in which directory is the notebook that I am reading. For that I use

NotebookDirectory[]

Circles touching Exp[x] and the x-axis

th1=0.007;th0=0.0025; ps1=0.015; ps0=0.01;

To figure out the equation of one of these circles we consider the normal to the graph at a generic point (t,Exp[t]).  The x-intercept of this normal is

Clear[t];Solve[-Exp[-t](x-t)+Exp[t]==0,x]

Thus the legs of the right triangle ABC are Exp[t] and Exp[2 t], A = (t, Exp[t]), B = (t, 0), C = (Exp[2t], 0). The second coordinate of D is r. The first coordinate we calculate from the equation of the normal.

Solve[-Exp[-t](x-t)+Exp[t]==r,x]

Thus  D =((e^(2 t))-(e^t) r+t,r).  We need D to be at the distance r from A. Thus

Solve[(((Exp[t]-r))^2)+((((E^(2 t))-(E^t) r+t-t))^2)==(r^2),r]

We are interested in the smaller radius. Since the first solution is smaller that is the radius.

Which can further be simplified to

(E^(-t)) +(E^t)-(Sqrt[(E^(-2 t)) +1])

And the first coordinate of the center is

Clear[t];FullSimplify[Solve[-Exp[-t](x-t)+Exp[t]==(E^(-t))+(E^t)-(Sqrt[1+(E^(-2 t))]),x],t>0]

To place a purple circle at a specific point I select the following special value for  t.

x0s=.4

Plot[{Exp[x],-Exp[-x0s](x-x0s)+Exp[x0s],Exp[x0s](x-x0s)+Exp[x0s]},{x,-4,10},PlotStyle->{{RGBColor[0,0,.5],Thickness[th1]},{RGBColor[0,.5,.5],Thickness[th0]},{RGBColor[0,.5,0],Thickness[th0]}},Prolog->{{GrayLevel[.7],Table[{Circle[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]},{t,-3,3,.04}]},{Thickness[0.001],Dashing[{0.005,.01}],Line[{{x0s,0},{x0s,Exp[x0s]}}],Line[{({-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))}),({-1+(Sqrt[1+(E^(2 t))])+t, 0})}]/.{t->x0s}}},
Epilog->{{RGBColor[0.5,0,0.5],Thickness[th1],Circle[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]/.{t->x0s}},{Red,PointSize[0.015],Point[{x0s,Exp[x0s]}]},{RGBColor[0.5,0,0.5],PointSize[0.015],Point[({-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))}/.{t->x0s})]},{Text[Style["A",Italic,FontSize->16],{x0s,Exp[x0s]}+{-.03,.12}]},{PointSize[0.012],Point[{x0s,0}],Point[{x0s+Exp[2x0s],0}],Point[({-1+(Sqrt[1+(E^(2 t))])+t, 0}/.{t->x0s})]},
{Text[Style["B",Italic,FontSize->16],{x0s,0}+{-.03,-.12}]},
{Text[Style["C",Italic,FontSize->16],{x0s+Exp[2 x0s],0}+{-.03,-.12}]},
{Text[Style["D",Italic,FontSize->16],({-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))}/.{t->x0s})+{.03,.12}]},
{Text[Style["E",Italic,FontSize->16],({-1+(Sqrt[1+(E^(2 t))])+t, 0}/.{t->x0s})+{.0,-.12}]}},PlotRange->{{-2,3},{-.5,4}},AspectRatio->Automatic,ImageSize->400]

The above plot contains much more than circles. Here is the “only circles” plot.

Plot[{Exp[x]},{x,-4,10},PlotStyle->{{RGBColor[0,0,.5],Thickness[th1]}},Prolog->{{GrayLevel[.7],Table[{Circle[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]},{t,-3,3,.04}]}},PlotRange->{{-2,3},{-.5,4}},AspectRatio->Automatic,ImageSize->400]

Or, adding the unit circle as a translucent disk

x0sUC=t/.Solve[(E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1])==1,t][[1]]

Plot[{Exp[x]},{x,-4,10},PlotStyle->{{RGBColor[0,0,.5],Thickness[th1]}},Prolog->{{GrayLevel[.7],Table[{Circle[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]},{t,-3,3,.04}]}},
Epilog->{{RGBColor[0.5,0,0.5],Opacity[0.2],Disk[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]/.{t->x0sUC}},{RGBColor[0.5,0,0.5],Thickness[th1],Circle[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]/.{t->x0sUC}},{RGBColor[0.5,0,0.5],PointSize[0.015],Point[({-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))}/.{t->x0sUC})]}},PlotRange->{{-2,3},{-.5,4}},AspectRatio->Automatic,ImageSize->400]

Or putting all together win Manipulate.

Module[{x0s},Manipulate[Plot[{Exp[x],-Exp[-x0s](x-x0s)+Exp[x0s],Exp[x0s](x-x0s)+Exp[x0s]},{x,-4,10},PlotStyle->{{RGBColor[0,0,.5],Thickness[th1]},{RGBColor[0,.5,.5],Thickness[th0]},{RGBColor[0,.5,0],Thickness[th0]}},Prolog->{{GrayLevel[.7],Table[{Circle[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]},{t,-3,3,.04}]},{Thickness[0.001],Dashing[{0.005,.01}],Line[{{x0s,0},{x0s,Exp[x0s]}}],Line[{({-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))}),({-1+(Sqrt[1+(E^(2 t))])+t, 0})}]/.{t->x0s}}},
Epilog->{{RGBColor[0.5,0,0.5],Opacity[0.2],Disk[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]/.{t->x0s}},{RGBColor[0.5,0,0.5],Thickness[th1],Circle[{-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))},((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))]/.{t->x0s}},{Red,PointSize[0.015],Point[{x0s,Exp[x0s]}]},{RGBColor[0.5,0,0.5],PointSize[0.015],Point[({-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))}/.{t->x0s})]},{Text[Style["A",Italic,FontSize->16],{x0s,Exp[x0s]}+{-.03,.12}]},{PointSize[0.012],Point[{x0s,0}],Point[{x0s+Exp[2x0s],0}],Point[({-1+(Sqrt[1+(E^(2 t))])+t, 0}/.{t->x0s})]},
{Text[Style["B",Italic,FontSize->16],{x0s,0}+{-.03,-.12}]},
{Text[Style["C",Italic,FontSize->16],{x0s+Exp[2 x0s],0}+{-.03,-.12}]},
{Text[Style["D",Italic,FontSize->16],({-1+(Sqrt[1+(E^(2 t))])+t, ((E^(-t))+(E^t)-(Sqrt[(E^(-2t))+1]))}/.{t->x0s})+{.03,.12}]},
{Text[Style["E",Italic,FontSize->16],({-1+(Sqrt[1+(E^(2 t))])+t, 0}/.{t->x0s})+{.0,-.12}]}},PlotRange->{{-2,3},{-.5,4}},AspectRatio->Automatic,ImageSize->400],{{x0s,.4,"x0"},-2,2}]]

Circles touching Sq[x]

Plot[{(x^2)},{x,-3,3},PlotStyle->{{RGBColor[0,0,.5],Thickness[th1]}},Prolog->{{GrayLevel[.7],Table[{Circle[{0, ((t^2)+1/2)},((Sqrt[(t^2)+1/4]))]},{t,0,4,.04}]}},
Epilog->{{Thickness[0.005],Red,Circle[{0,(1/2)+(((((Sqrt[3])/2)))^2)},1],PointSize[0.012],Point[{0,(1/2)+(((((Sqrt[3])/2)))^2)}]}},

PlotRange->{{-2.75,2.75},{-0.02,7}},AspectRatio->Automatic]

Manipulate[Plot[{(x^2)},{x,-3,3},PlotStyle->{{RGBColor[0,0,.5],Thickness[th1]}},Prolog->{{GrayLevel[.7],Circle[{0,Abs[t]+5/4},1]}},

PlotRange->{{-2.75,2.75},{-0.02,7}},AspectRatio->Automatic],
{t,-7,7,.1}]

Many tangents

64 16

figSinTLs1=Plot[{Sin[x]},{x,-10,10},PlotStyle->{{RGBColor[0,0,0.5],Thickness[0.004]}}];

figSinTLs2=Plot[Evaluate[Table[Cos[x0](x-x0)+Sin[x0],{x0,-8 Pi,8 Pi,Pi/64}]],{x,-10,10},PlotStyle->{{GrayLevel[0.6],Thickness[0.001]}}];
figSinTLs=Show[figSinTLs2,figSinTLs1,PlotRange->{{-3Pi,3Pi},{-3 Pi,3Pi}},Ticks->{Range[-7/2 Pi,7/2 Pi,(Pi/2)],Range[-10 Pi,10 Pi,Pi/2]},AspectRatio->Automatic,ImageSize->600,TicksStyle->Directive[Black,14]]

figSinTLs1=Plot[{Sin[x]},{x,-10,10},PlotStyle->{{RGBColor[0,0,0.5],Thickness[0.006]}}];


Manipulate[Show[Plot[Evaluate[Table[Cos[x0](x-x0)+Sin[x0],{x0,-8 Pi,Xend,Pi/32}]],{x,-10,10},PlotStyle->{{GrayLevel[0.6],Thickness[0.001]}}],figSinTLs1,PlotRange->{{-3Pi,3Pi},{-3 Pi,3Pi}},Ticks->{Range[-7/2 Pi,7/2 Pi,(Pi/2)],Range[-10 Pi,10 Pi,Pi/2]},AspectRatio->Automatic,ImageSize->400,TicksStyle->Directive[Black,14]],{Xend,-8 Pi+(Pi/64),8 Pi,(Pi/8)}]