# Ejemplos de aplicaciones del cálculo diferencial
a funciones de una variable

## Continuidad, derivabilidad, máximos y mínimos

  EJERCICIO 1 SOBRE CONTINUIDAD, DERIVABILIDAD Y EXTREMOS

Comenzaremos dibujando la función.


IMPORTANTE: Los comandos draw2d y draw3d (más potentes que  plot2d  y  plot3d) requieren cargar el paquete draw.
Sóla hay que hacerlo una vez, salvo que reiniciemos Maxima. Hay dos posibilidades para realizar la carga:

1. Manualmente mediante   el comando  load(draw)$
2. Que Maxima se ocupe de cargarlo automáticamente si lo necesita. Esta posibilidad está explicada en el "manualico"  

wxdraw2d(proportional_axes=xy,
         explicit( sqrt(1+x), x,-1,0),
         explicit( sin(x)/x,  x,0,2),
              yrange=[-1,2])$

Aparentemente f es continua. Es clara la continuidad en [-1,0) y en (0,2] por tratarse de fórmulas 
en las que aparecen funciones continuas. El punto 0 es el problemático porque en él
se "empalman" dos funciones continuas: ¿es f continua en x=0?

g(x):= sqrt(1+x);           G(x):= sin(x)/x;
limit(g(x),x,0,minus);
tlimit(G(x),x,0,plus);

La función f es continua porque los límites 
por la izquierda y por la derecha en 0 coinciden y valen 1.

Al igual que antes la derivabilidad esta garantizada, salvo el algún punto
que hay que analizar con más cuidado, y el valor de la derivada se
calcula fácilmente

diff(g(x),x);
diff(G(x),x);
wxdraw2d(explicit( diff(g(x),x), x,-0.9,0),
    explicit(diff(G(x),x),x,0,2))$

A la vista de las fórmulas (y de las gráficas) los puntos problemáticos son x=-1 y x=0.
Los analizamos por separado

limit( (g(0+h)-1)/h, h, 0, minus);
limit( (G(0+h)-1)/h, h, 0, plus);
print("Los límites laterales existen, pero no coinciden: f no es derivable en 0")$


limit( (g(-1+h)-1)/h, h, 0, plus);
print("En x=-1 f no es derivable")$

Como f es continua en el intervalo [-1,2] que es compacto, tiene extremos relativos.
En x=0 hay máximo absoluto y el mínimo absoluto está en x=-1. En x=2 hay un mínimo relativo.

Comenzamos por dibujar la función en diferentes intervalos para hacernos
una idea sobre sus extremos en base al grafismo.

f(x):=exp(x)+exp(-x)+2*cos(x);

wxdraw2d( proportional_axes=xy,
    explicit(f(x), x,-3,3));

wxplot2d(f(x),[x,-3,3]);
print("Esta gráfica no está adecuadamente dimensionada: despista")$

A la vista de las gráficas diríase que f tiene un mínimo absoluto en x=0 y que 
no tiene máximo absoluto. 

La figura muestra la simetría respecto al eje 0Y: evidente, pues cambiar x por -x en
la fórmula produce el mismo resultado. 

Si nos facilita el estudio podemos suponer que x > = 0. 

Que f no está acotada superiormente es evidente porque la exponencial 
no está acotada superiormente.

Su desarrollo de Taylor limitado afianza la conjetura del mínimo relativo está el origen
y que su valor es 4.

taylor(f(x),x,0,20);

Los posibles extremos de f (función infinitamente derivable) son puntos críticos.
Le pedimos a Maxima que derive y resuelva la ecuación

diff(f(x),x);
solve(%,x);
print("Maxima parece no saber resolverla.
Es una ecuación difícil de resolver.
    
Por lo menos hay una solución sencilla x=0, ")$

Vamos a hacer más derivadas, a ver si la convexidad, Taylor... nos dan alguna idea
para abordar analíticamente el problema. 

A nivel visual la función parece estrictamente creciente, y no sólo eso,
la pendiente parece ser cada vez mayor

f(x);
Df: diff(f(x),x);
diff(f(x),x,2);
diff(f(x),x,3);
diff(f(x),x,4);

print("Curioso, f coincide con su cuarta derivada")$

La función f es la suma de dos exponenciales (> 0) y un coseno que en [0, %pi/2]
es positivo y por tanto también f, a partir de %pi/2 empieza a restar pero
exp(%pi/2) ya supera a 1 que es lo máximo que puede restar el coseno (y sigue creciendo).

Consecuencia f(x)> 0 para todo x ( podemos suponer x>0 por la simetría).

exp(%pi/2),numer;

Luego diff(f(x),x,4)>0 para todo x.
En consecuencia diff(f(x),x,3) es estrictamente creciente. Y en x=0 vale 0.
En consecuencia diff(f(x),x,3)>0 en (0, inf)

Repitiendo el razonamiento se obtiene que diff(f(x),x,2)>0 en (0, inf). Y en x=0 vale 0.

Volviendo a repetir el razonamiento se obtiene que diff(f(x),x)>0 en (0, inf). Y en x=0 vale 0.
 

En resumen f alcanza en 0 su mínimo absoluto (relativo, en particular)
y en los demás puntos es estrictamente creciente, no existiendo máximo alguno
(ni absoluto, ni relativo).

## Analizando la veracidad de algunas desigualdades

        EJERCICIO SOBRE DESIGUALDADES

Comenzaremos haciendo un dibujo, por si nos resultara útil en los razonamientos.

f(x):=log(1+x^2)$
g(x):=log(2)*x$


wxdraw2d( key_pos=top_left,   /* Posición de la leyenda log(1+x^2)...*/
          color=blue,
          key="log(1+x^2)",   /* Etiqueta de la leyenda  */
explicit(f(x), x,0,4),
          key="x*log(2)",
          color=red,
explicit(g(x), x,0,4))$

El dibujo confirma lo que deseamos demostrar.
Vamos a dibujar las funciones en un intervalo más grande.

wxdraw2d( key_pos=top_left,
          color=blue,
          key="log(1+x^2)",
explicit(f(x), x,-1,6),
          key="x*log(2)",
          color=red,
explicit(g(x), x,-1,6))$

    /* Los punto de corte de f y g */
solve(f(x)=g(x),x);

print("Para un humano es claro que x=0 y x=1 son soluciones.
Pero hay más, la gráfica lo muestra.
Maxima no se atreve a dar soluciones de la ecuación.

La gráfica nos permite ayudarle a obtener, al menos, soluciones aproximadas")$
find_root(f(x)=g(x),x,-1,0.5);
find_root(f(x)=g(x),x, 0.5,1.5);
find_root(f(x)=g(x),x, 2, 5);

Visualmente la función f parece cóncava para x>1 y convexa para x<1.
De ser así las desigualdades estarían claras:
(1) porque la secante entre dos puntos de la curva se sitúa por encima 
    de ella cuando hay convexidad
(2) porque la secante se sitúa por debajo en caso de concavidad

Calculemos la derivada segunda de f y sus ceros a fin de analizar la convexidad

    print("La derivada segunda de f es")$
D2f:  diff(f(x),x,2);
    print("que, operando, se transforma en")$
D2f,fullratsimp;
   /* El denominador siempre es positivo, pero el numerador cambia de signo,
      ¿donde se anula el numerador y por tanto la derivada segunda de f? 
      La respuesta es muy fácil para usted (y para Maxima) */
solve(%,x);
    print("son los ceros de la derivada segunda de f")$

Resulta entonces claro de lo anterior que:
A) la segunda derivada de f es positiva en [0,1], siendo f convexa en dicho intervalo, 
B) la segunda derivada de f es negativa en [1,4], siendo f cóncava en dicho intervalo.

    /* Pedimos a Maxima que lo compruebe, sólo por ponerlo a prueba */
assume(0 <x, x<1)$                   is (D2f >0);
forget(0 <x, x<1)$ assume(x>1,x<4)$  is (D2f <0);

La función g corresponde a la secante que une los puntos de coordenadas (0,0) y (1,log(2))
y siendo f convexa en dicho intervalo se tiene demostrada la primera desigualdad 
por las propiedades de las funciones convexas.

wxdraw2d( key_pos=top_left,
          color=blue,
          key="log(1+x^2)",
explicit(f(x), x,0,1),
          key="x*log(2)",
          color=red,
explicit(g(x), x,0,1))$

La función g puede ser vista también como una secante que une los puntos
(1,log(2)) y (c,log(1+c^2)) para cierto punto c situado visualmente en el dibujo
entre 4 y 5 y que corresponde, como antes hemos visto a 4.257461914447933

wxdraw2d( key_pos=top_left,
          color=blue,
          key="log(1+x^2)",
explicit(f(x), x,1,4.5),
          key="x*log(2)",
          color=red,
explicit(g(x), x,1,4.5))$

 Otro ejercicio sobre desigualdades

Probar esta desigualdad es equivalente a probar que la función 
f(x):=tan(x) * sin(x) - x^2
verifica f(x)>0 en (0,%pi/2)     y eso es lo que probaremos.

### Una forma de abordar el problema

f(x):=tan(x) * sin(x) - x^2;

Están claros los límites laterales de f en 0 y %pi/2

f(0);
limit(f(x),x,%pi/2,minus);

A tenor de lo anterior dibujamos la gráfica de f para visualizar si 
la desigualdad es razonable. La gráfica no deja lugar a dudas

wxdraw2d( explicit(f(x), x,0,%pi/2-0.2 ));  /* algo menos de %pi/2  para evitar la asíntota */;
wxdraw2d( explicit(f(x), x,0,0.2 ));        /* cerca de 0  */;

Parece que f es estrictamente creciente. Si así fuera,
como en f(0)= 0, habríamos acabado.

Calculemos entonces f'(x) para ver si lo conseguimos.

diff(f(x),x);
    
   /* a ver  si simplificando fuera más fácil verlo  */
trigsimp(%);

No está claro  que sea f'>0 en (0, %pi/2), ¿cierto?

1. Parece convexa: ¿lo será? 

2. Si lo fuera ¿podemos garantizar que f(x)> 0  en (0, %pi/2)?

diff(f(x),x,2);
trigsimp(%);
factor(%);

A la vista de las cuentas que acabamos de realizar
(porque visualmente no hay dudas)
¿podemos responder a las dos preguntas anteriores?

     SU TURNO

### ¿Disponemos de más herramientas?

Las funciones trigonométricas que figuran en la definición f son las que
están creando las dificultades para poder responder a las preguntas 
(naturales a la luz de la gráfica) que nos hemos ido planteando. 

Si f hubiera sido un polinomio, quizá hubiera sido más sencillo

¿Polinomio, polinomios...? ¡¡Se me ocurre usar otra herramienta!! 

taylor(f(x),  x, 0,  7 );  /* desarrollo de Taylor en 0 hasta grado 7 */
                           /* observe la etiqueta en la output */;

Pero eso significa que f(x)=x^4/6 + R siendo R el resto de Lagrange 
de orden 4 en un punto  c  situado entre 0 y x. 
Vamos a calcularlo.

diff(f(x),x,4);

print("¡Socorro! ¿Alguien puede prestar ayuda?")$

D4:   trigsimp( diff(f(x),x,4)  );

R4: ev( D4 , x=c)*x^4/4! ;

print("No podemos evaluar R, pero es claro que  R > 0
       ¿por qué? ")$

print("Resumiendo: f(x)>0 en (0,%pi/2).
    La desigualdad era cierta (la gráfica permitía  visualizarlo) ")$

Hacer el desarrollo de Taylor hasta el orden 3, ¿serviría?

trigsimp( diff(f(x),x,3)  );
D3:  ev(%, x=c);  /* derivada tercera en c */

print("El valor de f(x) coincide con: ")$
taylor(f(x),x,0,3)  +  D3*x^3/3!;  

print("Claramente esa expresión es > 0 cuando x y c pertenecen a  (0, %pi/2)")$