Saltar al contenido

Pregunta sobre trazar una curva y rectas tangentes

Queremos compartirte la mejor información que hallamos por todo internet. Nosotros deseamos que te sirva de ayuda y si quieres comentarnos alguna mejora hazlo con total libertad.

Solución:

Lo hiciste bien, no hay error. Solo se elige x2, por lo que “Fun3” está muy abajo en la dirección -y. Elija x0=1 para hacerlo más simple:

f[x_] := x^3;
x0 = 1;
l[x_] := f[x0] + f'[x0] (x - x0);
x2 = x /. Solve[l[x] == x^3, x][[1]];
Plot[f[x], l[x], x, -8, 8, Mesh -> x0, x2, MeshStyle -> Red, 
 PlotRange -> -8, 8, -15, 15, 
 Epilog -> Text["Fun1", x0, f[x0] + 1, .1], 
   Text["Fun2", x2, f[x2] + 1, .1]]

ingrese la descripción de la imagen aquí

Abordaría este problema definiendo las funciones derivada y tangente de forma un poco diferente. También trabajaría en un buen conjunto de intersecciones de las tangentes con la curva antes de trazar. Al igual que:

Definiciones basicas

f[x_] := x^3;
df[x_] = f'[x];
tan[x_, x0_] := f[x0] + df[x0] (x - x0)

Encontrar puntos de intersección

Empezando con x0 = 1.2 basado en mi conocimiento de lo que x^3 parece.

With[x0 = 1.2, NSolve[tan[x, x0] == f[x], x]]
x -> -2.4, x -> 1.2, x -> 1.2

Asi que x1 = -2.4 y ahora se usa para encontrar x2.

With[x1 = -2.4, NSolve[tan[x, x1] == f[x], x]]
x -> -2.4, x -> -2.4, x -> 4.8

haciendo la trama

Module[x, pts, names, offsets, ptlbls, arealbls,
  x[0] = 1.2; x[1] = -2.4; x[2] = 4.8;
  pts = x[0], f[x[0]], x[1], f[x[1]], x[2], f[x[2]];
  names = "Fun1", "Fun2", "Fun3";
  offsets = 10, -10, 10, -10, -15, 3; 
  ptlbls = MapThread[Text[#1, Offset[#2, #3]] &, names, offsets, pts];
  arealbls = 
    Text["A", Offset[-20, 2, (pts[[1]] + pts[[2]])/2]],
    Text["B", Offset[0, -35, (pts[[2]] + pts[[3]])/2]]; 
  Plot[[email protected]
f[x], tan[x, x[0]], tan[x, x[1]], x, -3, 5, Epilog -> ptlbls, Red, AbsolutePointSize[5], Point[pts], arealbls]]

gráfico

Puedes usar MeshFunctions para buscar y marcar las intersecciones de la curva con la recta tangente seleccionada:

ClearAll[f, t]
f[x_] := x^3
t[x0_][x_] := f[x0] + f'[x0] (x - x0)

plot = With[x0 = 2, Plot[f @x , t[x0]@x, x, -5, 5,
   PlotRange -> -5, 5, -80, 80, 
   MeshFunctions -> # &, f @ # - t[x0] @ # &, 
   Mesh -> x0, 0, 
   MeshStyle -> Directive[PointSize @ Large, Red],
   ClippingStyle -> False]]

ingrese la descripción de la imagen aquí

y post-proceso para inyectar las etiquetas:

plot /. Point[x_] :> Point[x], 
   MapThread[Text[Style[#, 16, Black], #2, 1, -3/2] &, "fun1", "fun2", x]

ingrese la descripción de la imagen aquí

Alternativamente, combine los dos pasos en un solo paso usando la opción DisplayFunction para hacer el post-procesamiento dentro Plot:

With[x0 = 2, Plot[f @x , t[x0]@x, x, -5, 5,
  PlotRange -> -5, 5, -80, 80, 
  MeshFunctions -> # &, [email protected]# - t[x0]@# &, Mesh -> x0, 0, 
  MeshStyle -> Directive[PointSize[Large], Red],
  ClippingStyle -> False, 
  DisplayFunction -> (Show[# /. Point[x_] :> Point[x], 
   MapThread[Text[Style[#, 16, Black], #2, 1, -3/2] &, 
     "fun1", "fun2", x]] &)]]

ingrese la descripción de la imagen aquí

Nota: En la versión 11.3.0 reemplazar x en la última línea con x[[;;;;2]].

Actualizar: También podemos inyectar las etiquetas usando la opción MeshStyle. Este viejo truco (usar una función como el MeshStyle ajuste) todavía funciona en la versión 12.1.2:

meshStyle = PointSize[Large], Red, #, 
   If[# === , , 
     MapThread[Text[Style[#, 16, Black], #2, 1, -3/2] &, 
        "fun1", "fun2", #[[1]]]] &;

With[x0 = 2, Plot[f[x], x, -5, 5, 
    MeshFunctions -> # &, f[#] - t[x0][#] &, Mesh -> x0, 0, 
    ClippingStyle -> False,   
    MeshStyle -> meshStyle,
    PlotRange -> -5, 5, -80, 80, 
    Epilog -> Orange, InfiniteLine[x0, [email protected], 1, f'[x0]]]]  

ingrese la descripción de la imagen aquí

Sección de Reseñas y Valoraciones

Puedes añadir valor a nuestro contenido contribuyendo tu veteranía en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *