{"id":24261,"date":"2026-03-08T15:34:02","date_gmt":"2026-03-08T20:34:02","guid":{"rendered":"https:\/\/blog.espol.edu.ec\/algoritmos101\/?p=24261"},"modified":"2026-04-16T07:23:54","modified_gmt":"2026-04-16T12:23:54","slug":"derivadas-parciales-3d-tangentes","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/cv-unidades\/derivadas-parciales-3d-tangentes\/","title":{"rendered":"2.2 Derivadas parciales 3D - tangentes y plano en x0,y0 con Python"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\n<p><a href=\"#ejemplo\">Ejemplo<\/a><\/p>\n\n\n\n<p><a href=\"#analitico\">anal\u00edtico<\/a><\/p>\n\n\n\n<p><a href=\"#algoritmo\">algoritmo<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ejemplo\">1. Ejemplo - Trayectoria 2D de una part\u00edcula<\/h2>\n\n\n\n<p><strong>Referencia<\/strong>: Stewart 14.3 Ejemplo 2 p915<\/p>\n\n\n\n<p>Sea f(x,y) la expresi\u00f3n dada, encuentre f<sub>x<\/sub>(1,1) y f<sub>y<\/sub>(1,1) e interprete estos n\u00fameros como pendientes<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(x,y) = 4 - x^2 - 2y^2<\/span>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2026\/04\/DerivadasParciales_ani.gif\" alt=\"Derivadas Parciales gr\u00e1fico animado\" class=\"wp-image-24265\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"analitico\">1.1 Desarrollo anal\u00edtico<\/h3>\n\n\n\n<p>Las derivadas parciales de f(x,y) son:<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f_x(x,y) = -2 x <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f_y(x,y) = - 4 y<\/span>\n\n\n\n<p>Se eval\u00faan las expresiones en el punto [x<sub>0<\/sub>,y<sub>0<\/sub>] = [1,1]<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f_x(1,1) = -2(1) = -2 <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f_y(1,1) = - 4 (1) = -4 <\/span>\n\n\n\n<p>Las tangentes se obtienen usando el modelo del plano tangente en el espacio<\/p>\n\n\n\n<p><strong>Referencia<\/strong>: Stewart 14.4 p928<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z-z_0 =f_x(x_0,y_0) (x-x_0) + f_y (x_0,y_0) (y-y_0)<\/span>\n\n\n\n<p>Cuando y=y<sub>0<\/sub> se tiene la tangente a la curva en y<sub>0<\/sub><\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z-z_0 =f_x(x_0,y_0) (x-x_0) <\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z =f_x(x_0,y_0) (x-x_0) + z_0<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z_0 = f(x_0,y_0) = 4 - x^2 - 2y^2= 4 - (1)^2 - 2(1)^2 = 1<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tan_{fy_0} =z =-2(x-1) + 1<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tan_{fy_0} =-2x+3<\/span>\n\n\n\n<p>Cuando x=x<sub>0<\/sub> se tiene la tangente a la curva en x<sub>0<\/sub><\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z-z_0 = f_y (x_0,y_0) (y-y_0)<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z = f_y (x_0,y_0) (y-y_0)+z_0<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tan_{fx_0} = z = -4 (y-1)+1<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tan_{fx_0} = -4 y+5<\/span>\n\n\n\n<p>La ecuaci\u00f3n del plano tangente en x<sub>0<\/sub>,y<sub>0<\/sub><\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z-z_0 =f_x(x_0,y_0) (x-x_0) + f_y (x_0,y_0) (y-y_0)<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> z-1 =-2 (x-1) -4 (y-1)<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tan_{xy} =-2 (x-1) -4 (y-1)+1<\/span>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> tan_{xy} =-2x -4 y+7<\/span>\n\n\n\n<p id=\"algoritmo\">1.2 Algoritmo con Python<\/p>\n\n\n\n<p>Se escriben las ecuaciones en formato Sympy para obtener las derivadas aplicando sym.diff(). Para la evaluaci\u00f3n de las funciones en la gr\u00e1fica se convierten a Numpy.<\/p>\n\n\n\n<p>Las tangentes se trazan a partir del punto de observaci\u00f3n x<sub>0<\/sub>,y<sub>0<\/sub> en el sentido paralelo a cada eje.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Derivadas parciales - tangentes\nf = -x**2 - 2*y**2 + 4\ndf\/dx = -2*x\ndf\/dy = -4*y\nDxf(x0,y0) = -2\nDyf(x0,y0) = -4\nx0,y0,F0 = &#091;1, 1, 1]\ntan_f_y0 = 3 - 2*x\ntan_f_x0 = 5 - 4*y\ntan_plano = -2*x - 4*y + 7<\/code><\/pre>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Stewart 14.3 Ejemplo2 p915\n# Derivadas parciales - tangentes\nimport numpy as np\nimport sympy as sym\n \n# INGRESO\nx = sym.Symbol('x')\ny = sym.Symbol('y')\n\nf = 4-x**2-2*y**2\n\nx0 = 1\ny0 = 1\n\nax = 0 # intervalo &#x5B;ax,bx] eje x \nbx = 2\nmuestrasx = 11 # tramosx = muestrasx-1\nay = 0 # intervalo &#x5B;ay,by] eje y\nby = 2\nmuestrasy = 11 # tramosy = muestrasy-1\ntitulo = 'Derivadas parciales - tangentes'\nverdecimales = 4\n \n# PROCEDIMIENTO\n# Derivadas parciales, formula Sympy\nDxf = sym.diff(f,x,1)\nDyf = sym.diff(f,y,1)\n\necuacion = {'f':f,\n            'df\/dx':Dxf,\n            'df\/dy':Dyf}\n\n# formulas Numpy\nf = sym.lambdify((x,y),f)\nDxf = sym.lambdify((x,y),Dxf)\nDyf = sym.lambdify((x,y),Dyf)\n\nxi = np.linspace(ax,bx,muestrasx)\nyj = np.linspace(ay,by,muestrasy)\n\n# Malla para cada eje X,Y\nXi, Yj = np.meshgrid(xi,yj)\nFij = f(Xi,Yj)\n\n# observaci\u00f3n en x0,y0\nF0 = f(x0,y0) # observaci\u00f3n en x0,y0\nf_y0 = f(xi,y0) # corte f en y0\nf_x0 = f(x0,yj) # corte f en x0\nDxf_y0 = Dxf(x0,y0) # derivada Dxf en y0\nDyf_x0 = Dyf(x0,y0)\n\necuacion&#x5B;'Dxf(x0,y0)'] = Dxf_y0\necuacion&#x5B;'Dyf(x0,y0)'] = Dyf_x0\n\n# Tangente f en y0 , f en x0\ntan_f_y0 = Dxf_y0*(xi-x0)+F0\ntan_f_x0 = Dyf_x0*(yj-y0)+F0\n\necuacion&#x5B;'x0,y0,F0'] = &#x5B;x0,y0,F0]\necuacion&#x5B;'tan_f_y0'] = Dxf_y0*(x-x0)+F0\necuacion&#x5B;'tan_f_x0'] = Dyf_x0*(y-y0)+F0\n\n# Plano tangente\ntan_xy = lambda x,y: Dyf_x0*(y-y0)+ Dxf_y0*(x-x0)+F0\ntan_plano = tan_xy(Xi,Yj)\necuacion&#x5B;'tan_plano'] = Dyf_x0*(y-y0)+ Dxf_y0*(x-x0)+F0\n\n# SALIDA\nnp.set_printoptions(verdecimales)\nprint(titulo)\nfor una_eq in ecuacion:\n    print(una_eq,'=', ecuacion&#x5B;una_eq])\n<\/pre><\/div>\n\n\n<p id=\"grafica\">1.3 Gr\u00e1fica en Python<\/p>\n\n\n\n<p>Para la gr\u00e1fica de f(x,y) se usa el tipo dispersi\u00f3n, permite observar la forma de la superficie y deja espacio para el trazado de los cortes en cada eje con x<sub>0<\/sub>,y<sub>0<\/sub>.<\/p>\n\n\n\n<p>Tambi\u00e9n se permite observar mas claro el trazado de las tangentes.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2026\/04\/DerivadasParciales_graf01.gif\" alt=\"Derivadas Parciales graf01\" class=\"wp-image-24263\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# GRAFICA 3D ------\nimport matplotlib.pyplot as plt\n  \n# Malla para cada eje X,Y\nfig3D = plt.figure()\ngraf3D = fig3D.add_subplot(111, projection='3d')\n \ngraf3D.scatter3D(Xi,Yj,Fij,marker='.',label='f(x,y)')\n\ngraf3D.plot(xi,y0,f_y0,label='f_y0')\ngraf3D.plot(x0,yj,f_x0,label='f_x0')\ngraf3D.plot(xi,y0,tan_f_y0,label='tanf_y0')\ngraf3D.plot(x0,yj,tan_f_x0,label='tanf_x0')\n\n# entorno de gr\u00e1fica\ngraf3D.set_xlabel('x')\ngraf3D.set_ylabel('y')\ngraf3D.set_zlabel('z')\ngraf3D.set_title(titulo)\ngraf3D.legend()\ngraf3D.view_init(35,40) # elevaci\u00f3n, rotaci\u00f3n grados\nplt.tight_layout()\n# plt.show()\n\n#plano tangente a f en x0,y0\nfigPT = plt.figure()\ngrafPT = figPT.add_subplot(projection='3d')\ngrafPT.scatter3D(Xi,Yj,Fij,marker='.',label='f(x,y)')\ngrafPT.plot_wireframe(Xi,Yj,tan_plano, color='green',\n                      label='tan_f(x0,y0)')\ngrafPT.scatter3D(x0,y0,F0,'o',color='red',label='&#x5B;x0,y0,F0]')\n\n# entorno de gr\u00e1fica\ngrafPT.set_xlabel('x')\ngrafPT.set_ylabel('y')\ngrafPT.set_zlabel('z')\ngrafPT.set_title(titulo)\ngrafPT.legend()\ngrafPT.view_init(35,40) # elevaci\u00f3n, rotaci\u00f3n grados\nplt.tight_layout()\nplt.show()\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2026\/04\/DerivadasParciales_planoTan01.gif\" alt=\"Derivadas Parciales plano Tangente x0,y0 gr\u00e1fica 3D\" class=\"wp-image-24279\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Ejemplo anal\u00edtico algoritmo gr\u00e1fica 1. Ejemplo - Trayectoria 2D de una part\u00edcula Referencia: Stewart 14.3 Ejemplo 2 p915 Sea f(x,y) la expresi\u00f3n dada, encuentre fx(1,1) y fy(1,1) e interprete estos n\u00fameros como pendientes 1.1 Desarrollo anal\u00edtico Las derivadas parciales de f(x,y) son: Se eval\u00faan las expresiones en el punto [x0,y0] = [1,1] Las tangentes se [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-unidades","format":"standard","meta":{"footnotes":""},"categories":[238],"tags":[],"class_list":["post-24261","post","type-post","status-publish","format-standard","hentry","category-cv-unidades"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/24261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=24261"}],"version-history":[{"count":10,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/24261\/revisions"}],"predecessor-version":[{"id":24296,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/24261\/revisions\/24296"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=24261"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=24261"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=24261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}