3
$\begingroup$

this is my code:

f[x_] := 1 - 2 x + x^2;    
tangent[f_, a_] := f[a] + f'[a] (x - a)    
slope[x_] := f'[x]      
sol = x /. Solve[tangent[f, 2] == tangent[f, 3], x] // N          
sol[[1]]              
f[2.5] // N 

Plot[{f[x], tangent[f, 2], tangent[f, 3]}, {x, 0, 4}, Epilog -> {Red, PointSize[0.02], Point[{2.5, 2.25}]}]

Manipulate[Plot[{f[x], tangent[f, t], tangent[f, t + 0.1]}, {x, 0, 4}, 
Epilog -> {Red, PointSize[0.02], Point[{2.5, 2.25}]}], {{t, 4,"time"}, 0, 4, 0.05}]

The red point dont' move together the lines.

I fixed my code, but my notebook flash now.

Manipulate[  Module[{x}, f[x_] := 1 - 2 x + x^2; 
  tangent[f_, a_] := f[a] + f'[a] (x - a);
  slope[x_] := f'[x]  ;
  sol = x /. NSolve[tangent[f, t] == tangent[f, t + 1], x]; 
  resul = sol /. sol -> sol[[1]];
  Plot[{f[x], tangent[f, t], tangent[f, t + 1]}, {x, 0, 4}, 
   Epilog -> {Red, PointSize[0.02], Point[{resul, f[resul]}]}]]
 , {{t, 4, "tiempo"}, 0, 4, 0.05}]
$\endgroup$
  • $\begingroup$ Point[{2.5, 2.25}] specifies a constant location, so it wouldn't move with the lines. You probably want to start there. $\endgroup$ – eyorble May 5 '18 at 15:32
  • $\begingroup$ You may want to use NSolve[...] instead of Solve[...] // N. $\endgroup$ – AccidentalFourierTransform May 5 '18 at 15:42
  • $\begingroup$ How fit the code Point[{2.5, 2.25}]}] to dynamic $\endgroup$ – Andres May 5 '18 at 15:46
2
$\begingroup$

Finally this is my ultimate code

Remove["Global`*"]
Module[{x = x1},
 f[x_] := 3.87 + 0.98 Exp[-(x/166)^0.72] + 1.15 Exp[-(x/7255)^0.75];
 tangent[x_, a_] := f[a] + f'[a] (x - a);

 Manipulate[
  interx = 
   Ceiling[x1 /. NSolve[tangent[x1, t] == tangent[x1, t + dt], x1]] //
     Simplify;
        localization = {interx, tangent[interx, t + dt]} // Flatten;
  p1 = Graphics[{Dashed, Thick, 
     Line[{{0, tangent[interx, t + dt][[1]]}, {interx[[1]], 
        tangent[interx, t + dt][[1]]}, {interx[[1]], 0}}]}];
  p2 = Graphics[{Dashed, Thick, Line[{{0, f[t]}, {t, f[t]}, {t, 0}}]}];
  p1textsX = {Style[Text[t, {t + 1000, f[t] + 0.03}], Bold, 14]};
  p2textsX = {Style[
     Text[interx[[1]], {interx[[1]] + 1130, 
       tangent[interx, t + dt][[1]] + 0.01}], Bold, 14]};
  title = 
   Style[Text[
     "Δm = slope 2 (green) - slope 1 (yellow) ", {17000,
       4.95}], Italic, Bold, 14];
  pend = EngineeringForm[f'[interx[[1]]] - f'[t], 3];
  m = Style[Text[HoldForm[Δm] == pend , {19590, 4.85}], 
    Bold, 14];

  Show[{Plot[{f[x1], tangent[x1, t], tangent[x1, t + dt]}, {x1, 0, 
      25000}, PlotRange -> {{0., 25000.}, {3.96, 5.}}, 
     Epilog -> {title, m, p1textsX, p2textsX , Black, 
       PointSize[0.015], Point[{t, f[t]}], Point[localization]}, 
     AxesStyle -> Thick], p1, p2, 
    Plot[f[x1], {x1, 3000, 10000}, PlotStyle -> {Red, Thick}]}, 
   ImageSize -> Large], {{t, 2500, "Red Zone (t)"}, 2500, 10000, 10, 
   Appearance -> "Labeled"}, {{dt, 10, "Slope Angle (dt)"}, 10, 10000,
    10, Appearance -> "Labeled"}, SaveDefinitions -> True]]
$\endgroup$
0
$\begingroup$

To update the position of the red point dynamically, just make it depend on the Manipulate variables appropriately, for example:

Manipulate[
 Plot[{f[x], tangent[f, t], tangent[f, t + 0.1]}, {x, 0, 4}, 
  Epilog -> {Red, PointSize[0.02], Point[{t, f[t]}]}],
   {{t, 4, "time"}, 0, 4, 0.05}]

Specifically, focus on Point[{t, f[t]}]. It seems that the intent is to highlight point of contact between the function and the tangent line, so we need to input that point as where the Point will be positioned. It should be obvious that {t, f[t]} will be a point on the plot of the function f. We also know that t is the x-position of the tangent intercept, so that's the point we're interested in. So just plug that point into Point.

The output is essentially equivalent to @m_goldberg's answer.

$\endgroup$
  • $\begingroup$ grateful for everything $\endgroup$ – Andres May 5 '18 at 16:37
0
$\begingroup$
ClearAll[f, tangent]
f[x_] := 1 - 2 x + x^2;
tangent[x_, a_] := f[a] + f'[a] (x - a)

Manipulate[Plot[{f[x], tangent[x, t], tangent[x, t + 0.1]}, {x, 0, 4}, 
  Mesh -> {{t}}, MeshStyle -> Directive[Red, PointSize[Large]], 
  PlotRange -> {{0, 5}, {-5, 10}}], {{t, 2.5, "time"}, 0, 4, 0.05}]

enter image description here

$\endgroup$
  • $\begingroup$ grateful for everything $\endgroup$ – Andres May 5 '18 at 16:37
  • $\begingroup$ @Andres, glad you found it useful. Welcome to mma.se. $\endgroup$ – kglr May 5 '18 at 16:41
0
$\begingroup$
f[x_] := 1 - 2 x + x^2;
tangent[f_, x_, a_] := f[a] + f'[a] (x - a)
isectx = x /. 
   First@Solve[tangent[f, x, t] == tangent[f, x, t + 1], x] // Simplify
dotloc[t_] = {isectx, f[isectx]}
Manipulate[
 Plot[{f[x], tangent[f, x, t], tangent[f, x, t + 1]}, {x, 0, 4}, 
  PlotRange -> {-15, 15},
  Epilog -> {Red, PointSize[0.02], Point@dotloc[t]}], {{t, 4, "time"},
   0, 4, 0.05}]
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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