{ "cells": [ { "cell_type": "markdown", "id": "7fde2c0c", "metadata": {}, "source": [ ">Uso de interactive python" ] }, { "cell_type": "code", "execution_count": 1, "id": "08e6bca6", "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "### Hola **Usuario1**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$f(x) = \\int_{-\\infty}^{\\infty} e^{-x^2} dx$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle f(x) = \\int_{-\\infty}^{\\infty} e^{-x^2} dx$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/json": { "usuario": { "nombre": "Ana", "roles": [ "admin", "editor" ] } }, "text/plain": [ "" ] }, "metadata": { "application/json": { "expanded": false, "root": "root" } }, "output_type": "display_data" }, { "data": { "image/jpeg": "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", "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.display import display, Markdown, Latex, JSON, IFrame, YouTubeVideo, Math\n", "import sympy as sp\n", "import time\n", "\n", "usuario = \"Usuario1\"\n", "\n", "display(Markdown(f\"### Hola **{usuario}**\"))\n", "\n", "\n", "display(Latex(r\"$$f(x) = \\int_{-\\infty}^{\\infty} e^{-x^2} dx$$\"))\n", "\n", "display(Math(\"f(x) = \\int_{-\\infty}^{\\infty} e^{-x^2} dx\"))\n", "\n", "datos = {\"usuario\": {\"nombre\": \"Ana\", \"roles\": [\"admin\", \"editor\"]}}\n", "\n", "display(JSON(datos))\n", "\n", "display(YouTubeVideo(\"dQw4w9WgXcQ\", width=600, height=400))" ] }, { "cell_type": "code", "execution_count": 2, "id": "a85c3a34", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x + 2$" ], "text/plain": [ "x + 2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"Cancelacion de fracciones (Simplificacion)\"\"\"\n", "\n", "x, y, z = sp.symbols('x y z')\n", "expr1 = (x**2 - x -6 ) / (x-3)\n", "display(sp.simplify(expr1))" ] }, { "cell_type": "code", "execution_count": 3, "id": "80e2b865", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 4 x$" ], "text/plain": [ "4*x" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"Reduccion de terminos combinados\"\"\"\n", "expr2 = (x + 1)**2 - (x - 1)**2\n", "display(sp.simplify(expr2))" ] }, { "cell_type": "code", "execution_count": 4, "id": "7ffc73ca", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"Simplificacion trigonometrica\"\"\"\n", "expr3 = sp.sin(x)**2 + sp.cos(x)**2\n", "display(sp.simplify(expr3))" ] }, { "cell_type": "code", "execution_count": 5, "id": "754cfdc8", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\tan{\\left(x \\right)}$" ], "text/plain": [ "tan(x)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"Simplificacion por tangentes\"\"\"\n", "expr4 = sp.sin(x) / sp.cos(x)\n", "display(sp.simplify(expr4))" ] }, { "cell_type": "code", "execution_count": 6, "id": "a7631da4", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle a b$" ], "text/plain": [ "a*b" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"Simplificacion de raices y potencias\"\"\"\n", "a, b = sp.symbols('a b', positive=True)\n", "\n", "expr5 = sp.sqrt(a) * sp.sqrt(b) * sp.sqrt(a * b)\n", "display(sp.simplify(expr5))" ] }, { "cell_type": "code", "execution_count": 7, "id": "af254b85", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\log{\\left(\\frac{b}{a} \\right)}$" ], "text/plain": [ "log(b/a)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Tiempo de simplify: x + 1 0.005581378936767578\n", "Tiempo del metodo directo cancel: x + 1 0.0007517337799072266\n" ] } ], "source": [ "expr6 = sp.log(a) + sp.log(b) - sp.log(a**2)\n", "display(sp.simplify(expr6))\n", "\n", "\"\"\"\n", "-> sp.factor() para factorizar\n", "-> sp.trigsimp() para simplificacion trigonometrica\n", "-> sp.radsimp() para simplificcion por tangente\n", "-> sp.cancel()\n", "\"\"\"\n", "\n", "expr = (x**2 + 2*x + 1) / (x + 1)\n", "t = time.time()\n", "print(\"Tiempo de simplify: \", sp.simplify(expr), time.time() - t)\n", "t = time.time()\n", "print(\"Tiempo del metodo directo cancel: \", sp.cancel(expr), time.time() - t)\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "73a8ac25", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 9 x^{2} - 42 x y + 49 y^{2}$" ], "text/plain": [ "9*x**2 - 42*x*y + 49*y**2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "expr1 = (3*x - 7*y)**2\n", "display(sp.expand(expr1))" ] }, { "cell_type": "code", "execution_count": 9, "id": "6712edc6", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x^{5} + 5 x^{4} y - 5 x^{4} z + 10 x^{3} y^{2} - 20 x^{3} y z + 10 x^{3} z^{2} + 10 x^{2} y^{3} - 30 x^{2} y^{2} z + 30 x^{2} y z^{2} - 10 x^{2} z^{3} + 5 x y^{4} - 20 x y^{3} z + 30 x y^{2} z^{2} - 20 x y z^{3} + 5 x z^{4} + y^{5} - 5 y^{4} z + 10 y^{3} z^{2} - 10 y^{2} z^{3} + 5 y z^{4} - z^{5}$" ], "text/plain": [ "x**5 + 5*x**4*y - 5*x**4*z + 10*x**3*y**2 - 20*x**3*y*z + 10*x**3*z**2 + 10*x**2*y**3 - 30*x**2*y**2*z + 30*x**2*y*z**2 - 10*x**2*z**3 + 5*x*y**4 - 20*x*y**3*z + 30*x*y**2*z**2 - 20*x*y*z**3 + 5*x*z**4 + y**5 - 5*y**4*z + 10*y**3*z**2 - 10*y**2*z**3 + 5*y*z**4 - z**5" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "expr2 = (x + y - z)**5\n", "\n", "display(sp.expand(expr2))" ] }, { "cell_type": "code", "execution_count": 10, "id": "b6b78fcb", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle - 8 y^{3} + 4.0 y^{2} z - 0.666666666666667 y z^{2} + 0.037037037037037 z^{3}$" ], "text/plain": [ "-8*y**3 + 4.0*y**2*z - 0.666666666666667*y*z**2 + 0.037037037037037*z**3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "expr3 = (3*y - 5*y + (1/3)*z)**3\n", "display(sp.expand(expr3))" ] }, { "cell_type": "code", "execution_count": 11, "id": "21437ec4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(x, y, -(b*y + c)/x, b, c, -(g*y + h)/x, g, h)]" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "x->" ] }, { "data": { "text/latex": [ "$\\displaystyle x$" ], "text/plain": [ "x" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "y->" ] }, { "data": { "text/latex": [ "$\\displaystyle y$" ], "text/plain": [ "y" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "a->" ] }, { "data": { "text/latex": [ "$\\displaystyle - \\frac{b y + c}{x}$" ], "text/plain": [ "-(b*y + c)/x" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "b->" ] }, { "data": { "text/latex": [ "$\\displaystyle b$" ], "text/plain": [ "b" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "c->" ] }, { "data": { "text/latex": [ "$\\displaystyle c$" ], "text/plain": [ "c" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "f->" ] }, { "data": { "text/latex": [ "$\\displaystyle - \\frac{g y + h}{x}$" ], "text/plain": [ "-(g*y + h)/x" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "g->" ] }, { "data": { "text/latex": [ "$\\displaystyle g$" ], "text/plain": [ "g" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "h->" ] }, { "data": { "text/latex": [ "$\\displaystyle h$" ], "text/plain": [ "h" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, y, z, a, b, c, f, g, h = sp.symbols('x y z a b c f g h')\n", "resolucion = sp.solve(\n", " (sp.Eq(a*x + b*y + c, 0),\n", " sp.Eq(f*x + g*y + h, 0)), \n", " (x, y, a, b, c, f, g, h)\n", ")\n", "\n", "display(resolucion)\n", "\n", "for r, incognita in zip(resolucion[0], (x, y, a, b, c, f, g, h)):\n", " print(incognita, end=\"->\")\n", " display(r)" ] }, { "cell_type": "markdown", "id": "6d3553aa", "metadata": {}, "source": [ ">Inecuaciones o desigualdades" ] }, { "cell_type": "code", "execution_count": 12, "id": "8fd1244f", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 3 x + 5 > 11$" ], "text/plain": [ "3*x + 5 > 11" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 2 < x \\wedge x < \\infty$" ], "text/plain": [ "(2 < x) & (x < oo)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, y = sp.symbols('x y')\n", "ineq = 3*x + 5 > 11\n", "\n", "res = sp.reduce_inequalities(ineq, x)\n", "display(ineq)\n", "display(res)" ] }, { "cell_type": "code", "execution_count": 13, "id": "ae5610a5", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x^{2} \\leq 4$" ], "text/plain": [ "x**2 <= 4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle x > 0$" ], "text/plain": [ "x > 0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle x \\leq 2 \\wedge 0 < x$" ], "text/plain": [ "(x <= 2) & (0 < x)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ineq2 = [x**2 <= 4, x > 0]\n", "res = sp.reduce_inequalities(ineq2, x)\n", "\n", "for i in ineq2:\n", " display(i)\n", "\n", "display(res)" ] }, { "cell_type": "code", "execution_count": 14, "id": "b19dd100", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 1 < x \\wedge x < 5$" ], "text/plain": [ "(1 < x) & (x < 5)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"\n", " | x - 3 | < 2\n", "\n", " caso 1: x - 3 > 2\n", " x > 5\n", " \n", " caso 2: x - 3 > -2\n", " x > 1\n", " \"\"\"\n", "ineq_abs = sp.Abs(x - 3) < 2\n", "res = sp.reduce_inequalities(ineq_abs,x )\n", "\n", "display(res)" ] }, { "cell_type": "markdown", "id": "12b8d7f0", "metadata": {}, "source": [ ">Inecuaciones para multiples variables" ] }, { "cell_type": "code", "execution_count": 15, "id": "92ae1421", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x > 6 - y \\wedge 2 < y \\wedge y < \\infty$" ], "text/plain": [ "(2 < y) & (y < oo) & (x > 6 - y)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sistema = (x + y > 6, y > 2)\n", "resultado = sp.reduce_inequalities(sistema, x)\n", "display(resultado)" ] }, { "cell_type": "code", "execution_count": 16, "id": "b268c6a9", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 4$" ], "text/plain": [ "4" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = sp.Symbol('x')\n", "f = x**3 - 4\n", "display(f.subs(x, 2))" ] }, { "cell_type": "code", "execution_count": 17, "id": "fbc4b29e", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 x + 1$" ], "text/plain": [ "2*x + 1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\mathbb{R}$" ], "text/plain": [ "Reals" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left(-\\infty, \\infty\\right)$" ], "text/plain": [ "Interval(-oo, oo)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] }, { "data": { "text/latex": [ "$\\displaystyle 3 x^{2} + 2 x - 1$" ], "text/plain": [ "3*x**2 + 2*x - 1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\mathbb{R}$" ], "text/plain": [ "Reals" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left[- \\frac{4}{3}, \\infty\\right)$" ], "text/plain": [ "Interval(-4/3, oo)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{2 x + 1}{x - 1}$" ], "text/plain": [ "(2*x + 1)/(x - 1)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left(-\\infty, 1\\right) \\cup \\left(1, \\infty\\right)$" ], "text/plain": [ "Union(Interval.open(-oo, 1), Interval.open(1, oo))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left(-\\infty, 2\\right) \\cup \\left(2, \\infty\\right)$" ], "text/plain": [ "Union(Interval.open(-oo, 2), Interval.open(2, oo))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\sqrt{x - 1}$" ], "text/plain": [ "sqrt(x - 1)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left[1, \\infty\\right)$" ], "text/plain": [ "Interval(1, oo)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left[0, \\infty\\right)$" ], "text/plain": [ "Interval(0, oo)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\sqrt{x^{2} - 9}$" ], "text/plain": [ "sqrt(x**2 - 9)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left(-\\infty, -3\\right] \\cup \\left[3, \\infty\\right)$" ], "text/plain": [ "Union(Interval(-oo, -3), Interval(3, oo))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left[0, \\infty\\right)$" ], "text/plain": [ "Interval(0, oo)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sympy.calculus.util import continuous_domain, function_range\n", "\n", "f1 = 2*x + 1\n", "f2 = 3*x**2 + 2*x - 1\n", "f3 = (2*x + 1) / (x - 1)\n", "f4 = sp.sqrt(x - 1)\n", "f5 = sp.sqrt(x**2 - 9)\n", "\n", "display(f1)\n", "display(continuous_domain(f1, x, sp.S.Reals))\n", "display(function_range(f1, x, sp.S.Reals))\n", "\n", "\n", "print(\"\\n\")\n", "display(f2)\n", "display(continuous_domain(f2, x, sp.S.Reals))\n", "display(function_range(f2, x, sp.S.Reals))\n", "\n", "\n", "print(\"\\n\")\n", "display(f3)\n", "display(continuous_domain(f3, x, sp.S.Reals))\n", "display(function_range(f3, x, sp.S.Reals))\n", "\n", "\n", "\n", "print(\"\\n\")\n", "display(f4)\n", "display(continuous_domain(f4, x, sp.S.Reals))\n", "display(function_range(f4, x, sp.S.Reals))\n", "\n", "\n", "print(\"\\n\")\n", "display(f5)\n", "display(continuous_domain(f5, x, sp.S.Reals))\n", "display(function_range(f5, x, sp.S.Reals))\n", "\n" ] }, { "cell_type": "markdown", "id": "1924a47e", "metadata": {}, "source": [ ">Limites" ] }, { "cell_type": "code", "execution_count": 18, "id": "0c96f73b", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{1}{x}$" ], "text/plain": [ "1/x" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\infty$" ], "text/plain": [ "oo" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle -\\infty$" ], "text/plain": [ "-oo" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\infty$" ], "text/plain": [ "oo" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = sp.Symbol('x')\n", "f = 1/x\n", "display(f)\n", "\n", "display(f.subs(x, 1)) #Se le da un valor a X con el metodo subs\n", "\n", "display(f.limit(x, 0)) #Limit requiere dos arguumentos, la variable simbolica y el valor al que tiende el limite (lim -> 0)\n", "display(f.limit(x, -sp.oo))\n", "display(f.limit(x, 0, dir='-')) #Dir indica la direccion de aproximacionn del limite, si es por la izquierda o derecha (en el plano)\n", "display(f.limit(x, 0, dir='+'))\n", "display(f.limit(x, sp.oo))\n" ] }, { "cell_type": "code", "execution_count": 19, "id": "5f4b7724", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{x^{3} - 4 x^{2} + x + 6}{x + 1}$" ], "text/plain": [ "(x**3 - 4*x**2 + x + 6)/(x + 1)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'Limit: '" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 12$" ], "text/plain": [ "12" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Ejercicio 1. cuando el limite x -> -1\n", "numerador = x**3 - 4*x**2 + x + 6\n", "denominador = x + 1\n", "fn = numerador/denominador\n", "display(fn)\n", "display(\"Limit: \", fn.limit(x, -1))" ] }, { "cell_type": "code", "execution_count": 20, "id": "d656e556", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{2 x - \\sin{\\left(x \\right)}}{x}$" ], "text/plain": [ "(2*x - sin(x))/x" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Ejercicio 2.- x -> 0\n", "fn = ((2*x) - (sp.sin(x)))/x\n", "display(fn)\n", "display(fn.limit(x, 0))" ] }, { "cell_type": "code", "execution_count": 21, "id": "0ee6e1f6", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{x^{2} + 2 x}{e^{3 x} - 1}$" ], "text/plain": [ "(x**2 + 2*x)/(exp(3*x) - 1)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Ejercicio 3 x -> inf\n", "numerador = x**2 + 2*x\n", "denominador = sp.exp(3*x)-1\n", "\n", "fn = numerador/denominador\n", "display(fn)\n", "display(fn.limit(x, sp.oo))" ] }, { "cell_type": "code", "execution_count": 22, "id": "39a79529", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{\\log{\\left(x + e^{x} \\right)}}{3 x}$" ], "text/plain": [ "log(x + exp(x))/(3*x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\frac{1}{3}$" ], "text/plain": [ "1/3" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Ejercicio 4 x-> oo\n", "fn = sp.log((x+sp.exp(x)))/(3*x)\n", "display(fn)\n", "display(fn.limit(x, sp.oo))" ] }, { "cell_type": "markdown", "id": "1584c6cc", "metadata": {}, "source": [ ">Derivadas" ] }, { "cell_type": "code", "execution_count": 23, "id": "d8119b7c", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle f'(c) = \\lim_{h \\to 0} \\frac{f(c + h) - f(c)}{h}$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(Math(r\"f'(c) = \\lim_{h \\to 0} \\frac{f(c + h) - f(c)}{h}\")) #Definicion formal de la derivada" ] }, { "cell_type": "code", "execution_count": 24, "id": "8afaad5c", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 x$" ], "text/plain": [ "2*x" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 80.5376777919744$" ], "text/plain": [ "80.5376777919744" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "h = sp.Symbol('h', real=True)\n", "f_prima = sp.limit(((x + h)**2 - x**2) / h, h, 0)\n", "display(f_prima)\n", "\n", "m = f_prima.subs(x, 3)\n", "alpha = (sp.atan(m)*180/sp.pi).evalf()\n", "display(alpha)" ] }, { "cell_type": "code", "execution_count": 25, "id": "0374a070", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 2 x$" ], "text/plain": [ "2*x" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle a_{1} + 2 a_{2} x + 3 a_{3} x^{2}$" ], "text/plain": [ "a1 + 2*a2*x + 3*a3*x**2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\operatorname{sign}{\\left(x \\right)}$" ], "text/plain": [ "sign(x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\cos{\\left(x \\right)}$" ], "text/plain": [ "cos(x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle - \\sin{\\left(x \\right)}$" ], "text/plain": [ "-sin(x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\tan^{2}{\\left(x \\right)} + 1$" ], "text/plain": [ "tan(x)**2 + 1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle e^{x}$" ], "text/plain": [ "exp(x)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, c = sp.symbols('x c', real=True)\n", "a = sp.symbols('a0:4', real=True)\n", "\n", "\n", "f1 = c\n", "f2 = x\n", "f3 = x**2\n", "f4 = a[-1]*x**3 + a[-2]*x**2 + a[-3]*x + a[0]\n", "f5 = sp.Abs(x)\n", "f6 = sp.sin(x)\n", "f7 = sp.cos(x)\n", "f8 = sp.tan(x)\n", "f9 = sp.exp(1)\n", "f10 = sp.exp(2)\n", "f11 = sp.exp(x)\n", "\n", "derivadas = [sp.diff(f, x) for f in [f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11]]\n", "\n", "for d in derivadas:\n", " display(d)" ] }, { "cell_type": "code", "execution_count": 26, "id": "77d1d89a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Constante pura\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} c = 0$" ], "text/plain": [ "Eq(Derivative(c, x), 0)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Identidad\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} x = 1$" ], "text/plain": [ "Eq(Derivative(x, x), 1)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Potencia cuadrada\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} x^{2} = 2 x$" ], "text/plain": [ "Eq(Derivative(x**2, x), 2*x)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Potencia enésima (General)\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{\\partial}{\\partial x} x^{n} = \\frac{n x^{n}}{x}$" ], "text/plain": [ "Eq(Derivative(x**n, x), n*x**n/x)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Raíz cuadrada\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\sqrt{x} = \\frac{1}{2 \\sqrt{x}}$" ], "text/plain": [ "Eq(Derivative(sqrt(x), x), 1/(2*sqrt(x)))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Polinomio cúbico general\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{\\partial}{\\partial x} \\left(a_{0} + a_{1} x + a_{2} x^{2} + a_{3} x^{3}\\right) = a_{1} + 2 a_{2} x + 3 a_{3} x^{2}$" ], "text/plain": [ "Eq(Derivative(a0 + a1*x + a2*x**2 + a3*x**3, x), a1 + 2*a2*x + 3*a3*x**2)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Valor absoluto\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\left|{x}\\right| = \\operatorname{sign}{\\left(x \\right)}$" ], "text/plain": [ "Eq(Derivative(Abs(x), x), sign(x))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Constante de Euler (e^1)\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} e = 0$" ], "text/plain": [ "Eq(Derivative(E, x), 0)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Constante e^2\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} e^{2} = 0$" ], "text/plain": [ "Eq(Derivative(exp(2), x), 0)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Exponencial natural (e^x)\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} e^{x} = e^{x}$" ], "text/plain": [ "Eq(Derivative(exp(x), x), exp(x))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Exponencial compuesta (e^(x^2))\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} e^{x^{2}} = 2 x e^{x^{2}}$" ], "text/plain": [ "Eq(Derivative(exp(x**2), x), 2*x*exp(x**2))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Exponencial de base general (a^x)\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{\\partial}{\\partial x} a^{x} = a^{x} \\log{\\left(a \\right)}$" ], "text/plain": [ "Eq(Derivative(a**x, x), a**x*log(a))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Logaritmo natural (ln(x))\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\log{\\left(x \\right)} = \\frac{1}{x}$" ], "text/plain": [ "Eq(Derivative(log(x), x), 1/x)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Logaritmo base cualquiera (log_a(x))\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{\\partial}{\\partial x} \\frac{\\log{\\left(x \\right)}}{\\log{\\left(a \\right)}} = \\frac{1}{x \\log{\\left(a \\right)}}$" ], "text/plain": [ "Eq(Derivative(log(x)/log(a), x), 1/(x*log(a)))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Seno\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\sin{\\left(x \\right)} = \\cos{\\left(x \\right)}$" ], "text/plain": [ "Eq(Derivative(sin(x), x), cos(x))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Coseno\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\cos{\\left(x \\right)} = - \\sin{\\left(x \\right)}$" ], "text/plain": [ "Eq(Derivative(cos(x), x), -sin(x))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Tangente\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\tan{\\left(x \\right)} = \\tan^{2}{\\left(x \\right)} + 1$" ], "text/plain": [ "Eq(Derivative(tan(x), x), tan(x)**2 + 1)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Secante\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\sec{\\left(x \\right)} = \\tan{\\left(x \\right)} \\sec{\\left(x \\right)}$" ], "text/plain": [ "Eq(Derivative(sec(x), x), tan(x)*sec(x))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Cosecante\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\csc{\\left(x \\right)} = - \\cot{\\left(x \\right)} \\csc{\\left(x \\right)}$" ], "text/plain": [ "Eq(Derivative(csc(x), x), -cot(x)*csc(x))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Cotangente\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\cot{\\left(x \\right)} = - \\cot^{2}{\\left(x \\right)} - 1$" ], "text/plain": [ "Eq(Derivative(cot(x), x), -cot(x)**2 - 1)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Arcoseno\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{asin}{\\left(x \\right)} = \\frac{1}{\\sqrt{1 - x^{2}}}$" ], "text/plain": [ "Eq(Derivative(asin(x), x), 1/sqrt(1 - x**2))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Arcocoseno\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{acos}{\\left(x \\right)} = - \\frac{1}{\\sqrt{1 - x^{2}}}$" ], "text/plain": [ "Eq(Derivative(acos(x), x), -1/sqrt(1 - x**2))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Arcotangente\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{atan}{\\left(x \\right)} = \\frac{1}{x^{2} + 1}$" ], "text/plain": [ "Eq(Derivative(atan(x), x), 1/(x**2 + 1))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Arcosecante\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{asec}{\\left(x \\right)} = \\frac{1}{x^{2} \\sqrt{1 - \\frac{1}{x^{2}}}}$" ], "text/plain": [ "Eq(Derivative(asec(x), x), 1/(x**2*sqrt(1 - 1/x**2)))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Arcocosecante\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{acsc}{\\left(x \\right)} = - \\frac{1}{x^{2} \\sqrt{1 - \\frac{1}{x^{2}}}}$" ], "text/plain": [ "Eq(Derivative(acsc(x), x), -1/(x**2*sqrt(1 - 1/x**2)))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Arcocotangente\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{acot}{\\left(x \\right)} = - \\frac{1}{x^{2} + 1}$" ], "text/plain": [ "Eq(Derivative(acot(x), x), -1/(x**2 + 1))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Seno hiperbólico\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\sinh{\\left(x \\right)} = \\cosh{\\left(x \\right)}$" ], "text/plain": [ "Eq(Derivative(sinh(x), x), cosh(x))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Coseno hiperbólico\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\cosh{\\left(x \\right)} = \\sinh{\\left(x \\right)}$" ], "text/plain": [ "Eq(Derivative(cosh(x), x), sinh(x))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Tangente hiperbólica\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\tanh{\\left(x \\right)} = 1 - \\tanh^{2}{\\left(x \\right)}$" ], "text/plain": [ "Eq(Derivative(tanh(x), x), 1 - tanh(x)**2)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Argumento seno hiperbólico (asinh)\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{asinh}{\\left(x \\right)} = \\frac{1}{\\sqrt{x^{2} + 1}}$" ], "text/plain": [ "Eq(Derivative(asinh(x), x), 1/sqrt(x**2 + 1))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Argumento coseno hiperbólico (acosh)\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{acosh}{\\left(x \\right)} = \\frac{1}{\\sqrt{x - 1} \\sqrt{x + 1}}$" ], "text/plain": [ "Eq(Derivative(acosh(x), x), 1/(sqrt(x - 1)*sqrt(x + 1)))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Argumento tangente hiperbólica (atanh)\n" ] }, { "data": { "text/latex": [ "$\\displaystyle \\frac{d}{d x} \\operatorname{atanh}{\\left(x \\right)} = \\frac{1}{1 - x^{2}}$" ], "text/plain": [ "Eq(Derivative(atanh(x), x), 1/(1 - x**2))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "x = sp.symbols('x', real=True)\n", "c = sp.symbols('c', real=True) \n", "n = sp.symbols('n', real=True) \n", "a_base = sp.symbols('a', positive=True, real=True) \n", "coefs = sp.symbols('a0:4') \n", "\n", "funciones_licenciatura = {\n", " # --- CONSTANTES Y ALGEBRAICAS BÁSICAS ---\n", " \"Constante pura\": c,\n", " \"Identidad\": x,\n", " \"Potencia cuadrada\": x**2,\n", " \"Potencia enésima (General)\": x**n,\n", " \"Raíz cuadrada\": sp.sqrt(x),\n", " \"Polinomio cúbico general\": coefs[3]*x**3 + coefs[2]*x**2 + coefs[1]*x + coefs[0],\n", " \"Valor absoluto\": sp.Abs(x),\n", " \n", " # --- EXPONENCIALES Y LOGARÍTMICAS ---\n", " \"Constante de Euler (e^1)\": sp.exp(1),\n", " \"Constante e^2\": sp.exp(2),\n", " \"Exponencial natural (e^x)\": sp.exp(x),\n", " \"Exponencial compuesta (e^(x^2))\": sp.exp(x**2),\n", " \"Exponencial de base general (a^x)\": a_base**x,\n", " \"Logaritmo natural (ln(x))\": sp.ln(x),\n", " \"Logaritmo base cualquiera (log_a(x))\": sp.log(x, a_base),\n", " \n", " # --- TRIGONOMÉTRICAS DIRECTAS ---\n", " \"Seno\": sp.sin(x),\n", " \"Coseno\": sp.cos(x),\n", " \"Tangente\": sp.tan(x),\n", " \"Secante\": sp.sec(x),\n", " \"Cosecante\": sp.csc(x),\n", " \"Cotangente\": sp.cot(x),\n", " \n", " # --- TRIGONOMÉTRICAS INVERSAS ---\n", " \"Arcoseno\": sp.asin(x),\n", " \"Arcocoseno\": sp.acos(x),\n", " \"Arcotangente\": sp.atan(x),\n", " \"Arcosecante\": sp.asec(x),\n", " \"Arcocosecante\": sp.acsc(x),\n", " \"Arcocotangente\": sp.acot(x),\n", " \n", " # --- HIPERBÓLICAS DIRECTAS E INVERSAS ---\n", " \"Seno hiperbólico\": sp.sinh(x),\n", " \"Coseno hiperbólico\": sp.cosh(x),\n", " \"Tangente hiperbólica\": sp.tanh(x),\n", " \"Argumento seno hiperbólico (asinh)\": sp.asinh(x),\n", " \"Argumento coseno hiperbólico (acosh)\": sp.acosh(x),\n", " \"Argumento tangente hiperbólica (atanh)\": sp.atanh(x),\n", "}\n", "\n", "for nombre, f in funciones_licenciatura.items():\n", " df = sp.diff(f, x)\n", " print(nombre)\n", " display(sp.Eq(sp.Derivative(f, x), df))\n", " print()" ] }, { "cell_type": "code", "execution_count": 27, "id": "ab920f91", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 3 x^{2} + 10 x - 2$" ], "text/plain": [ "3*x**2 + 10*x - 2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 2 \\left(3 x + 5\\right)$" ], "text/plain": [ "2*(3*x + 5)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 6$" ], "text/plain": [ "6" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"Variedades de la funcion derivada\"\"\"\n", "f = x**3 + 5*x**2 - 2*x + 7\n", "f_prima = sp.diff(f, x)\n", "display(f_prima)\n", "\n", "f_biprima = sp.diff(f, x, 2)\n", "display(f_biprima)\n", "\n", "f_terza = sp.diff(f, x, x, x)\n", "display(f_terza)\n", "\n" ] }, { "cell_type": "code", "execution_count": 28, "id": "26b9a47b", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x^{2} y^{3} + y e^{x}$" ], "text/plain": [ "x**2*y**3 + y*exp(x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 2 x y^{3} + y e^{x}$" ], "text/plain": [ "2*x*y**3 + y*exp(x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 3 x^{2} y^{2} + e^{x}$" ], "text/plain": [ "3*x**2*y**2 + exp(x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 6 x y^{2} + e^{x}$" ], "text/plain": [ "6*x*y**2 + exp(x)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = x**2 * y**3 + sp.exp(x) * y\n", "display(f)\n", "\n", "display(sp.diff(f, x))\n", "display(sp.diff(f, y))\n", "display(sp.diff(f, x, y))" ] }, { "cell_type": "code", "execution_count": 29, "id": "e26677cd", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 2 x y^{2}$" ], "text/plain": [ "2*x*y**2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 2 x^{2} y$" ], "text/plain": [ "2*x**2*y" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 4 x y$" ], "text/plain": [ "4*x*y" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = x**2 * y**2\n", "display(sp.diff(f, x))\n", "display(sp.diff(f, y))\n", "display(sp.diff(f, x, y))" ] }, { "cell_type": "code", "execution_count": 30, "id": "ffc73eca", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{\\partial}{\\partial x} x^{2} y^{2}$" ], "text/plain": [ "Derivative(x**2*y**2, x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 2 x y^{2}$" ], "text/plain": [ "2*x*y**2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"Derivada formal\"\"\"\n", "derivada_formal = sp.Derivative(f, x) #Representa la derivada\n", "display(derivada_formal)\n", "display(derivada_formal.doit()) #Resuelve la derivada" ] }, { "cell_type": "code", "execution_count": 31, "id": "f07e2392", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\sin{\\left(2 x^{3} e^{x^{2}} \\right)}$" ], "text/plain": [ "sin(2*x**3*exp(x**2))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left(4 x^{4} e^{x^{2}} + 6 x^{2} e^{x^{2}}\\right) \\cos{\\left(2 x^{3} e^{x^{2}} \\right)}$" ], "text/plain": [ "(4*x**4*exp(x**2) + 6*x**2*exp(x**2))*cos(2*x**3*exp(x**2))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = sp.sin(2*x**3 * sp.exp(x**2))\n", "\n", "display(f)\n", "\n", "display(sp.diff(f, x))" ] }, { "cell_type": "code", "execution_count": 77, "id": "8645c4a1", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle x^{4} - 4 x^{3} + 4 x^{2}$" ], "text/plain": [ "x**4 - 4*x**3 + 4*x**2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 4 x^{3} - 12 x^{2} + 8 x$" ], "text/plain": [ "4*x**3 - 12*x**2 + 8*x" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "[0, 1, 2]" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Minimo en f(0, 0)\n", "Maximo en f(1, 1)\n", "Minimo en f(2, 0)\n" ] } ], "source": [ "\"\"\"Puntos criticos\"\"\"\n", "f = x**4 - 4*x**3 + 4*x**2\n", "\n", "display(f)\n", "\n", "f_diff = sp.diff(f, x)\n", "f_second_diff = sp.diff(f_diff, x)\n", "display(f_diff)\n", "critical_points = sp.solve(f_diff, x)\n", "display(critical_points) #Resolvemos para obtener los puntos criticos f_prima = 0\n", "\n", "for p in critical_points:\n", " evaluation = sp.diff(f, x, x).subs(x, p)\n", " \n", " if evaluation > 0:\n", " print(f\"Minimo en f({p}, {f.subs(x, p)})\")\n", " elif evaluation < 0:\n", " print(f\"Maximo en f({p}, {f.subs(x, p)})\")\n", " else: \n", " print(f\"La prueba no es concluyente en f({p}, {f.subs(x, p)})\")\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "id": "fc2caad5", "metadata": {}, "source": [ ">Integral" ] }, { "cell_type": "code", "execution_count": 33, "id": "0fab85c6", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle c + \\frac{x^{4}}{4} + \\frac{3 x^{2}}{2}$" ], "text/plain": [ "c + x**4/4 + 3*x**2/2" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = x**3 + 3*x\n", "\n", "integral_indefinida = sp.integrate(f, x)\n", "display(integral_indefinida + c) # si se quiere representar estrictamente con la C se le debe de agregar debido a que los metodos de sympy no la muestran" ] }, { "cell_type": "code", "execution_count": 34, "id": "8b209f9c", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 32$" ], "text/plain": [ "32" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "integral_definida = sp.integrate(f, (x, 1, 3)) #Con respecto a x, limite inferior b y superior a\n", "display(integral_definida)" ] }, { "cell_type": "code", "execution_count": 35, "id": "96b57ef5", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\sqrt{\\pi}$" ], "text/plain": [ "sqrt(pi)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = sp.exp(-x**2)\n", "integral_impropia = sp.integrate(f, (x, -sp.oo, sp.oo))\n", "display(integral_impropia)" ] }, { "cell_type": "code", "execution_count": 94, "id": "6c26f368", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle 8$" ], "text/plain": [ "8" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = 2*x + 4*y\n", "integral_doble = sp.integrate(f, (y, 0, 1), (x, 0, 2))\n", "display(integral_doble)" ] }, { "cell_type": "code", "execution_count": 37, "id": "33d35f8f", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\frac{e^{- \\frac{i \\pi}{3}} \\Gamma\\left(\\frac{1}{3}\\right) \\gamma\\left(\\frac{1}{3}, e^{i \\pi}\\right)}{9 \\Gamma\\left(\\frac{4}{3}\\right)}$" ], "text/plain": [ "exp(-I*pi/3)*gamma(1/3)*lowergamma(1/3, exp_polar(I*pi))/(9*gamma(4/3))" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle 1.34190441797742 - 6.7762635780344 \\cdot 10^{-21} i$" ], "text/plain": [ "1.34190441797742 - 6.7762635780344e-21*I" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = sp.exp(x**3) #No tiene primitiva elemental\n", "resultado_exacto = sp.integrate(f, (x, 0, 1))\n", "display(resultado_exacto)\n", "display(resultado_exacto.evalf())" ] }, { "cell_type": "code", "execution_count": 38, "id": "cc2a50e7", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\int \\frac{1}{x^{2} + 1}\\, dx$" ], "text/plain": [ "Integral(1/(x**2 + 1), x)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\operatorname{atan}{\\left(x \\right)}$" ], "text/plain": [ "atan(x)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = 1 / (1 + x**2)\n", "\n", "integral_formal = sp.Integral(f, x) #Representa la integral (no la resuelve)\n", "display(integral_formal) \n", "display(integral_formal.doit()) #Doit para resolverla" ] }, { "cell_type": "code", "execution_count": null, "id": "7414fa7a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 76, "id": "654997b2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[3*x**2 - 3*y**2, -6*x*y]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "[{x: 0, y: 0}]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}6 x & - 6 y\\\\- 6 y & - 6 x\\end{matrix}\\right]$" ], "text/plain": [ "Matrix([\n", "[ 6*x, -6*y],\n", "[-6*y, -6*x]])" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle - 36 x^{2} - 36 y^{2}$" ], "text/plain": [ "-36*x**2 - 36*y**2" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "0 0\n" ] } ], "source": [ "\"\"\"Algoritmo de tarea\"\"\"\n", "f = x**3 - 3*x*y**2\n", "\n", "gradient = [sp.diff(f, x), sp.diff(f, y)]\n", "display(gradient)\n", "\n", "puntos_criticos = sp.solve(gradient, (x,y), dict=True)\n", "\n", "display(puntos_criticos)\n", "\n", "Hess = sp.Matrix([\n", " [sp.diff(f, x, x), sp.diff(f, x, y)],\n", " [sp.diff(f, y, x), sp.diff(f, y, y)]\n", "])\n", "\n", "D = sp.det(Hess)\n", "\n", "display(Hess)\n", "display(D)\n", "\n", "for p in puntos_criticos:\n", " x_val = p[x]\n", " y_val = p[y]\n", "\n", " D_punto = D.subs({x: x_val, y: y_val})\n", "\n", " dH_x_punto = Hess[0, 0].subs({x: x_val, y: y_val})\n", " print(D_punto, dH_x_punto)\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 100, "id": "122a3a81", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\log{\\left(x - 3 \\right)} - \\log{\\left(x - 2 \\right)}$" ], "text/plain": [ "log(x - 3) - log(x - 2)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = 1/(x**2-5*x+6)\n", "display((sp.integrate(f, x)))" ] }, { "cell_type": "code", "execution_count": 101, "id": "fa030134", "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left(-\\infty, 2\\right) \\cup \\left(2, 3\\right) \\cup \\left(3, \\infty\\right)$" ], "text/plain": [ "Union(Interval.open(-oo, 2), Interval.open(2, 3), Interval.open(3, oo))" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "continuous_domain(f, x, sp.S.Reals) " ] } ], "metadata": { "kernelspec": { "display_name": "propedeutico", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.20" } }, "nbformat": 4, "nbformat_minor": 5 }