Un límite es el valor al que tiende una función a medida que la variable independiente x se acerca a otro valor “a”, tanto por la izquierda, como por la derecha. Se dice que el límite de f, cuando x se acerca a a, es L. Formalmente, para todo epsilon mayor que cero ε> 0, existe un delta mayor que cero δ> 0 tal que para todo x real, 0 < |x - a| < δ implica que |f (x) - L| < ε. Dicho de otro modo, f (x) se acerca cada vez más a L a medida que x se acerca cada vez más a “a”.
Para calcular un límite en wxMaxima (una interfaz gráfica multiplataforma y amigable para el sistema de álgebra computacional Maxima), usamos el comando limit con la siguiente sintaxis: limit(f(x), x, a). Algunos ejemplos son: limit(3*x+4, x, 2); devuelve 10; limit(x^2+3, x, 1); devuelve 4; y limit(sin(x)/x, x, 0); da como resultado 1.
sin(1⁄x) oscila entre -1 y 1 un número infinito de veces entre cero y cualquier valor x positivo, sin importar lo pequeño (cercano al cero) que sea. Como consecuencia, no existe el límite para sin(1⁄x) cuando x se acerca al cero.
WolframAlpha también proporciona funcionalidad para evaluar límites. Observa que la función x*sin(1⁄x) es una historia algo diferente de sin(1⁄x). Como -1 ≤ sin(1⁄x) ≤ 1, -x ≤ x * sin(1⁄x) ≤ x, entonces cuando x se aproxima a cero, también lo hace x*sin(1⁄x).
Escribe en WolframAlpha, limit(sqrt(x), x, infinite), limit(1/x, x, infinite), y limit(1/x, x, 0). También puedes calcular límites unilaterales: lim 1/x as x->0+ (por la derecha).
Un límite unilateral es el valor al que tiende una función conforme los valores de x tienden a un valor específico “a” por un solo lado, es decir, cuando x se acerca a “a” ya sea por la izquierda o por la derecha.
El signo menos indica “por la izquierda” y el signo más indica “por la derecha”. Dicho de otro modo, f (x) se acerca cada vez más a L a medida que x se acerca más y más a “a” por la izquierda o por la derecha .
Por favor, observa que no consideramos 1⁄0 como ∞ o −∞. La división por cero no está definida. De manera similar, el límite de 1⁄x cuando x se acerca a 0 tampoco está definido. Sin embargo, si tomas el límite de 1⁄x cuando x se acerca a cero desde la izquierda o desde la derecha, obtienes un menos infinito y un más infinito respectivamente. Estos límites no son iguales y, en consecuencia, el límite de 1⁄x cuando x se acerca a 0 no existe.
x = 0 es una asíntota vertical de 1⁄x. En general, si el límite de la función f (x) es ± ∞ cuando x → a desde la izquierda o la derecha, x = a es una asíntota vertical de la gráfica de la función y = f (x).
También podemos aprovechar la potencia de Python para calcular límites. Usaremos la librería SymPy. Se trata de “una biblioteca de Python para realizar matemáticas simbólicas. Su objetivo es convertirse en un sistema de álgebra computacional con toda la funcionalidad de un CAS pero manteniendo el código lo más simple posible para que sea comprensible y fácilmente extensible.”
user@pc:~$ python
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import * # Importa la biblioteca SymPy de cálculo simbólico que permite resolver analíticamente múltiples problemas matemáticos: límites, derivadas, integrales, series, etc.
>>> x = symbols('x') # Definimos una nueva variable simbólica que se guarda en x que es un objeto de la clase Symbol. Con la variable x así definida, ya podemos comenzar a formar expresiones algebraicas y a realizar cálculo simbólico.
>>> limit(sin(x), x, 0) # Con SymPy puedes calcular límites con la función limit. Su sintaxis es limit(f(x), x, a).
0
>>> limit(x**2, x, 0)
0
>>> limit(sqrt(x), x, oo) # Infinito se escribe oo, una 'o' minúscula repetida dos veces.
oo # Una función tiene un límite infinito si aumenta o disminuye sin límite cuando x crece o decrece sin límite.
>>> limit(1/x, x, 0, '+') # El límite tiene un cuarto argumento, dir, que especifica una dirección.
oo
>>> limit(1/x, x, 0, '-')
-oo
>>> from sympy.plotting import plot # El módulo de plotting te permite representar gráficos 2-D y 3-D. Utiliza la bibliotea Matplotlib como backend.
>>> plot(1/x, (x, -1, 1), ylim= (-100, 100), line_color = 'blue') # Representa gráficamente 1⁄x. ylim define los límites del eje "y" y line_color especifica el color de la línea de trazado.
Maxima calcula el límite de expr (limit (expr, x, a, dir)) cuando x se acerca a “a” desde la dirección dir. dir puede tener el valor “plus” para un límite por la derecha, “minus” para un límite por la izquierda, o puede omitirse. También deberías intentar f(x):= (x-2)⁄(x+2); limit(f(x), x, infinity); Devuelve 1.
y = 1 es una asíntota horizontal de(x-2)⁄(x+2). En general, si el límite de la función f(x) es “a” cuando x→± ∞, y = a es una asíntota horizontal de la gráfica de la función y = f (x) .
Veamos un último ejemplo, f(x) = x2 +2*x -2⁄x2+3*x +7. y = 1 es una asíntota horizontal de x2 +2*x -2⁄x2+3*x +7
Una función continua es aquella que no presenta cambios bruscos de valor ni discontinuidades a medida que cambia el valor de x, es decir, a pequeños variaciones de la variable independiente x, le corresponde también pequeñas variaciones de la variable dependiente y = f(x). Otra manera de verlo es que puedes dibujar la gráfica sin levantar el lápiz del papel.
De manera más intuitiva, podemos decir que si queremos que todos los valores de f (x) estén encerrados en un pequeño vecindario o entorno alrededor de “f (a)”, simplemente necesitamos elegir un vecindario lo suficientemente pequeño para los valores de x alrededor de “a “o digámoslo en términos diferentes, si escogemos un x lo suficientemente próximo a “a”, obtendremos un f(x) tan cerca como queramos de “f(a)”.
Ejemplos de funciones continuas son los polinomios (x, 2*x2 − 7*x + 4), la función exponencial (ex), la función seno, la función coseno, etc. 1⁄x es continua siempre que x sea distinto de cero. Sin embargo, 1⁄x no está definida en x = 0, por lo que es discontinua en x = 0.
Una función por partes (una función definida por múltiples subfunciones, expresiones o ecuaciones, donde cada subfunción se aplica a un intervalo diferente en el dominio) es continua si sus funciones constituyentes son continuas (x2, x) en los intervalos o subdominios correspondientes, y no hay discontinuidad en los extremos de los subdominios (x = 0).
Vamos a utilizar WolframAlpha para demostrar que la función por partes f(x) es continua:
Comprobemos en wxMaxima que la siguiente función por partes f (x) es continua en todos los puntos excepto en 0:
Finalmente, determinaremos la continuidad de una función en Python.
user@pc:~$ python
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import * # Importa la biblioteca SymPy de cálculo simbólico que permite resolver analíticamente múltiples problemas matemáticos: límites, derivadas, integrales, series, etc.
>>> x = symbols('x') # Definimos una nueva variable simbólica que se guarda en x que es un objeto de la clase Symbol. Con la variable x así definida, ya podemos comenzar a formar expresiones algebraicas y a realizar cálculo simbólico.
>>> f = sp.Piecewise( (x**3-2*x+1, x<=2), (2*x-3, x > 2) )
# Representa una función por partes. Cada argumento es una tupla de 2 términos que define una expresión y una condición.
>>> sp.limit(f, x, 2, '+') # Con SymPy puedes calcular límites con la función limit. Su sintaxis es limit(f(x), x, a, dir). El cuarto argumento de Limit, dir, especifica una dirección.
1
>>> sp.limit(f, x, 2, '-')
5 # La función no es continua en x=2.
>>> from sympy.plotting import plot # El módulo de plotting te permite representar gráficos 2-D y 3-D. Utiliza la bibliotea Matplotlib como backend.
>>> plot(f, (x, -5, 5), ylim=(-10,10), line_color='blue') # Representa gráficamente la función por partes f. ylim define los límites del eje "y" y line_color especifica el color de la línea de trazado.
La derivada de una función es la razón o velocidad de cambio de una función en un punto. La derivada de una función en un punto dado es la pendiente de la recta tangente a la función en dicho punto.
Formalmente, y = f (x) es diferenciable en un punto “a” de su dominio, si su dominio contiene un intervalo I que contiene a,
La orden diff(expr, x) en Maxima devuelve la derivada de expr con respecto a x.
Recuerda algunas derivadas básicas: f’(xn) = n*xn-1, (f(x)±g(x))’ = f’(x) ± g’(x) (son fórmulas de derivación que necesitas para diff(x^4 +3*x^2- 7*x +15, x); cos’(x) = -sin(x), (f(g(x))’ = f’(g(x)) * g’(x) (diff(cos(4*x^3 +12*x^2 +5), x);)
Veamos que la función valor absoluto f(x)=|x| es continua pero no derivable en x = 0.
user@pc:~$ python # Trabajemos con derivadas en Python
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import * # Importa la biblioteca SymPy de cálculo simbólico que permite resolver analíticamente múltiples problemas matemáticos: límites, derivadas, integrales, series, etc.
>>> x = symbols('x') # Definimos una nueva variable simbólica que se guarda en x que es un objeto de la clase Symbol. Con la variable x así definida, ya podemos comenzar a formar expresiones algebraicas y a realizar cálculo simbólico.
>>> init_printing(use_unicode=True) # Ejecutamos init_printing que renderiza las expresiones resultantes y hace más agradable leer los resultados.
>>> diff(x**4+3*x**2-7*x+15, x) # Para calcular derivadas, usamos la función diff.
3
4⋅x + 6⋅x - 7
>>> diff(cos(4*x**3+12*x**2+5), x)
⎛ 2 ⎞ ⎛ 3 2 ⎞
-⎝12⋅x + 24⋅x⎠⋅sin⎝4⋅x + 12⋅x + 5⎠
>>> diff((2*x+1)/(x**2+1), x)
2⋅x⋅(2⋅x + 1) 2
- ───────────── + ──────
2 2
⎛ 2 ⎞ x + 1
⎝x + 1⎠
>>> simplify(diff((2*x+1)/(x**2+1), x)) # "Una de las características más útiles de SymPy es la capacidad de simplificar expresiones matemáticas. SymPy tiene docenas de funciones para realizar varios tipos de simplificación y una función general llamada simplify () que intenta aplicar todas estas funciones de manera inteligente para llegar a la forma más simple de una expresión," [Sympy's Manual](https://docs.sympy.org/latest/tutorial/simplification.html).
⎛ 2 ⎞
2⋅⎝- x - x + 1⎠
────────────────
4 2
x + 2⋅x + 1
>>>
La derivada de una función en un punto es la pendiente de la recta tangente en dicho punto.
user@pc:~$ python # Todo esto puede sonarte un poco abstracto, así que veámoslo gráficamente en Python.
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import symbols, init_printing, diff, simplify # Importa la biblioteca SymPy de cálculo simbólico que permite resolver analíticamente múltiples problemas matemáticos: límites, derivadas, integrales, series, etc. Más específicamente, importamos symbols, init_printing, diff, y simplify.
>>> x = symbols('x') # Definimos una nueva variable simbólica que se guarda en x que es un objeto de la clase Symbol. Con la variable x así definida, ya podemos comenzar a formar expresiones algebraicas y a realizar cálculo simbólico.
>>> init_printing(use_unicode=True) # Ejecutamos init_printing que renderiza las expresiones resultantes y hace más agradable leer los resultados.
>>> diff(x**2-3*x+4, x) # Usamos la función diff para calcular la derivada de f(x) = x2 -3*x +4
2⋅x - 3
>>> diff(x**2-3*x+4, x).subs(x, 3) # El método subs reemplaza o sustituye todas las instancias de una variable o expresión con otro valor o expresión.
3 # f'(3) = 3
>>> (x**2-3*x+4).subs(x, 3)
4 # f(3) = 4. La recta tangente en x = 3 es: y = f'(3)(x - 3) + f(3) = 3(x -3) + 4 = 3*x -9 +4 = 3*x -5
>>> from sympy.plotting import plot # El módulo de plotting te permite representar gráficos 2-D y 3-D. Utiliza la bibliotea Matplotlib como backend.
>>> p1 = plot(x**2-3*x+4, show=False) # Representa gráficamente f(x). Sin embargo, show=False, por lo que aún no mostrará el gráfico.
>>> p2 = plot(3*x-5, show=False, line_color='red') # Dibuja f'(x). show=False, es decir, áun no mostrará el gráfico. line_color='red' especifica el color rojo para la línea de trazado.
>>> p1.append(p2[0]) # Para añadir el objeto que representa el segundo gráfico al primero, usamos el método append
>>> p1.show() # Muestra el gráfico
Establece que para dos funciones f y g que son diferenciables en un intervalo I abierto excepto posiblemente en un punto “a” contenido en I,
Observa que la regla de L’Hospital es un gran atajo para calcular algunos límites. Nos dice que si tenemos un límite que produce una forma indeterminada 0/0 (sin(x)⁄x, ln(x)⁄x-1) o ∞/∞ todo lo que necesitamos hacer es diferenciar el numerador y el denominador y luego resolver el límite. Sin embargo, a veces, incluso las aplicaciones repetidas de esta regla no nos ayudan a resolver un límite.
Una serie es una descripción de la operación de sumar infinitas cantidades, una tras otra, a una determinada cantidad inicial. También se puede definir como la suma de una sucesión, donde una sucesión es una lista ordenada de números como, por ejemplo, 1, 2, 3, 4, …. o 1, 2, 4, 8, …
Se escribe o representa por una expresión como a1 + a2 + a3 + … Cuando existe este límite, la sucesión a1 + a2 + a3 + … es sumable o la serie es convergente o sumable y al límite se le denomina suma de la serie . De lo contrario, se dice que la serie es divergente.
Una serie geométrica es la suma de los términos de una progresión geométrica (una secuencia ordenada de números en la que cada término, después del primero, se obtiene multiplicando el anterior por un número constante (razón) distinto de cero: a, ar, ar2, ar3… Su término general es an = a1rn-1.
La convergencia de la serie geométrica depende del valor de la razón r. Si |r| < 1 (en el ejemplo previo r=1⁄3), la serie converge a a⁄1-r = 1⁄1-1⁄3 = 1⁄2⁄3 = 3⁄2 =1.5. Si r = 1, todos los términos son idénticos y la serie es infinita. Cuando r = -1, los términos toman dos valores alternativamente (como, por ejemplo, 3, -3, 3, -3, …) y la suma oscila entre dos valores (3, 0, 3, 0, 3 , …). Finalmente, si |r|> 1, la suma de los términos se hace cada vez más grande y la serie es divergente. En conclusión, la serie diverge si |r| ≥ 1.
Calculemos series con wxMaxima. En primer lugar, a[n]:=1/(3^n); define una serie. La sintaxis básica de la orden para trabajar con series en Maxima es la siguiente: sum (a[i] -la expresión a sumar-, i -el índice-, 0, inf -los límites superior e inferior-), simpsum (simplifica el resultado);
a[n]:=1/(2^n); es una serie geométrica con r=1⁄2<1. Converge a la suma a⁄1-r = 1⁄1-1⁄2 = 1⁄1⁄2 = 2. wxMaxima puede computar otras series también: a[n]:=1/(n^2); coverge a π2⁄6. Además, podemos calcular la suma de los primeros n-términos de la sucesión: sum(i, i, 0, n), simpsum; = n2 + n⁄2 o sum(2*i-1,i, 1, n), simpsum; = n2.
Preguntemos a Wolfram Alpha sobre otras series: sum(1/(n*(n+1)), n=1..infinity) (= 1), sum(1/(n^2), n=1..infinity) (= π2⁄6), and sum((7*n^2+5*n-3)/(3*n^2-4*n+2), n=1..infinity). La última diverge.
Una prueba simple para la divergencia de una serie infinita es:
Maxima puede calcular integrales para muchas funciones y expresiones. integrate (expr, x); intenta calcular simbólicamente la integral de expr con respecto a “x”.
Wolfram Alpha también puede calcular integrales indefinidas o primitivas y definidas, por ejemplo: integrate x^2*(sin^3x) dx, integrate sin(x) dx, integrate x^3+3*x^2+5*x-7 dx, y integrate -1/(x+2)^3 dx.
user@pc:~$ python # Trabajemos con integrales con Python
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import * # Importa la biblioteca SymPy de cálculo simbólico que permite resolver analíticamente múltiples problemas matemáticos: límites, derivadas, integrales, series, etc.
>>> x = symbols('x') # Definimos una nueva variable simbólica que se guarda en x que es un objeto de la clase Symbol. Con la variable x así definida, ya podemos comenzar a formar expresiones algebraicas y a realizar cálculo simbólico.
>>> init_printing(use_unicode=True) # Ejecutamos init_printing que renderiza las expresiones resultantes y hace más agradable leer los resultados.
>>> integrate(sin(x), x) # El módulo de integrales en SymPy implementa métodos para calcular integrales definidas e indefinidas.
-cos(x)
>>> integrate(x**3+3*x**2+5*x-7, x)
4 2
x 3 5⋅x
── + x + ──── - 7⋅x
4 2
>>> integrate(-1/(x+2)**3,x)
1
──────────────
2
2⋅x + 8⋅x + 8
>>> integrate(2*x*sqrt(x**2+1),x)
________ ________
2 ╱ 2 ╱ 2
2⋅x ⋅╲╱ x + 1 2⋅╲╱ x + 1
──────────────── + ─────────────
3 3
= 2⁄3 (x2+1)(x2+1)1⁄2 = 2⁄3 (x2+1)3⁄2
>>> integrate(x**3 +3*x**2 +5*x -7, (x, 1, 2)) # Sympy puede calcular integrales definidas: integrate(f, (x, a, b))
45/4
>>> integrate(x**3, (x, -2, 2))
0
>>> integrate(1/x, (x, 1, e))
1.00000000000000
Volviendo a Maxima, integrate (expr, x) calcula integrales indefinidas, mientras que integrate (expr, x, a, b) calcula integrales definidas, con límites de integración a y b.
La solución a una integral definida es el área con signo de la región que está delimitada por la gráfica de la función y el eje x sobre el intervalo [a, b]. Convencionalmente, el área del gráfico sobre el eje x se define como positivo y el área por debajo del eje x se define como negativo.
Sea f una función definida en [a, b] que admite una antiderivada o primitiva F en [a, b] (f (x) = F ‘(x)). Si f es integrable en [a, b] entonces, Veamos algunos ejemplos más.
La serie de Taylor de una función f es una aproximación o representación de la función como una suma infinita de términos que se calculan a partir de los valores de las derivadas de la función en un solo punto. Supongamos que f es una función infinitamente diferenciable en el entorno de un punto “a” de su dominio. La serie de Taylor de f sobre a es la serie de potencias:
Comenzamos con la serie de Taylor de la función exponencial con base e en x=0:
Recuerda que la derivada de la función exponencial con base e es la función en sí, es decir, (ex)’=ex.
En una fiesta de funciones, todas están bailando a tope, excepto la función exponencial que se encuentra sola, apartada en un rincón y sentada en una silla. Le ve la función coseno y se acerca para animarla: —¿Pero qué haces aquí tan sola? Venga, ¡intégrate! —¿Para qué? Si da lo mismo
También podemos especificar el punto central “a” y el orden de la expansión: series sin x at x=pi/2 to order 8, series ln (1-x) at x=0.
Maxima contiene dos funciones (taylor y powerseries) para calcular la serie de Taylor de funciones diferenciables. powerseries (expr, x, a) devuelve la forma general de la serie de Taylor para expr en la variable x sobre el punto a. taylor (expr, x, a, n) expande la expresión expr en una serie de Taylor respecto de la variable x alrededor del punto a, con términos hasta (x-a)n.
user@pc:~$ python # Calculemos Series de Taylor con Python
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import * # Importa la biblioteca SymPy de cálculo simbólico que permite resolver analíticamente múltiples problemas matemáticos: límites, derivadas, integrales, series, etc.
>>> x = symbols('x') # Definimos una nueva variable simbólica que se guarda en x que es un objeto de la clase Symbol. Con la variable x así definida, ya podemos comenzar a formar expresiones algebraicas y a realizar cálculo simbólico.
>>> init_printing(use_unicode=True) # Ejecutamos init_printing que renderiza las expresiones resultantes y hace más agradable leer los resultados.
>>> series(cos(x),x) # series(expr, x, a, n) calcula el desarrollo en serie de Taylor de expr alrededor del punto x = a. n es el número de términos hasta los cuales se expandirá la serie.
2 4
x x ⎛ 6⎞
1 - ── + ── + O⎝x ⎠
2 24
>>> series(tan(x),x,0,6)
3 5
x 2⋅x ⎛ 6⎞
x + ── + ──── + O⎝x⎠
3 15
>>> series(ln(1-x),x)
2 3 4 5
x x x x ⎛ 6⎞
-x - ── - ── - ── - ── + O⎝x ⎠
2 3 4 5
>>> series(exp(x),x)
2 3 4 5
x x x x ⎛ 6⎞
1 + x + ── + ── + ── + ─── + O⎝x ⎠
2 6 24 120
>>> series(sin(x),x,pi/2,8)
2 4 6
⎛ π⎞ ⎛ π⎞ ⎛ π⎞
⎜x - ─⎟ ⎜x - ─⎟ ⎜x - ─⎟
⎝ 2⎠ ⎝ 2⎠ ⎝ 2⎠
1 - ──────── + ────── - ───── + O(...)
2 24 720