︠787e7811-43d2-4eee-8f55-7b85ad8399bbi︠ %html e

Esta es la grafica de cualquier cosa

︡997bd89f-86f9-4987-842d-84f91811ece1︡{"html": "e\n\n

Esta es la grafica de cualquier cosa

"}︡ ︠a2b8d7cb-dafd-4783-9aed-d5c89881f37aai︠ %hide %auto # This is an Spanish commented adaptation of the code in: # http://wiki.sagemath.org/interact/calculus # for making 3D plots with boundary curves. # # Se definen las variables: x,y, t, u, v =var('x y t u v') # Se define la función por omisión INI_func='x^2-2*x+y^2-2*y' # Los límites de graficación para x,y INI_box='-1,3.2,-1,3.2' # Puntos que unen las curvas: INI_points='(1,1,\'green\'),(3/2,3/2),(0,1),(1,0),(0,0,\'black\'),(3,0,\'black\'),(0,3,\'black\')' # Curvas iniciales. Se trata de funciones lineales que definen el cambio de un parámetro y como este se # refleja como curvas en la superficie. INI_curves='(t,0,0,3,\'red\'),(0,t,0,3,\'green\'),(t,3-t,0,3)' ################################################################################ # A continuación empieza la parte interactiva. @interact # La definición de la función tiene el conjunto de parámetros empleados para hacer cálculos con ella # "input_box" crea una caja de diálogo con los siguientes parámetros: # * La variable a la que se le va a asignar el valor de la caja de diálogo # * La etiqueta que aparecerá en la caja de diálogo, escrita en código html # * El tipo de variable, en la mayoría de los casos es string # * El "\" al final indica nuevos renglones en la interface def _(func=input_box(INI_func,label="f(x,y)=",type=str),\ # límites de la gráfica bounds=input_box(INI_box,label="xmin,xmax,ymin,ymax",type=str),\ # puntos de las curvas de nivel st_points=input_box(INI_points,\ label="points
(comma separated pairs, optionally with color)", type=str),\ # Curvas de nivel bnd_curves=input_box(INI_curves,label="curves on boundary
(x(t),y(t),tmin,tmax,'opt_color')", type=str),\ # Opciones binarias: mostrar planos, ejes y la tabla de valores show_planes=("Show zero planes", False), show_axes=("Show axes", True), show_table=("Show table", True)): f=sage_eval('lambda x,y: ' + func) html(r'Function $ f(x,y)=%s$ '%latex(f(x,y))) xmin,xmax,ymin,ymax=sage_eval('('+bounds+')') A=plot3d(f(x,y),(x,xmin,xmax),(y,ymin,ymax),opacity=0.5) if not(bool(st_points=='')): st_p=sage_eval('('+st_points+',)') html(r'') for current in range(len(st_p)): point_color='red' if bool(len(st_p[current])==3): point_color=st_p[current][2] x0=st_p[current][0] y0=st_p[current][1] z0=f(x0,y0) if show_table: html(r'\ '%(latex(x0),latex(y0),z0.n())) A=A+point3d((x0,y0,z0),size=9,rgbcolor=point_color) html(r'
$\quad f(%s,%s)\quad $$\quad %s$
') if not(bool(bnd_curves=='')): bnd_cc=sage_eval('('+bnd_curves+',)',locals={'t':t}) for current in range(len(bnd_cc)): bnd_c=bnd_cc[current]+('black',) A=A+parametric_plot3d((bnd_c[0],bnd_c[1],f(bnd_c[0],bnd_c[1])),\ (t,bnd_c[2],bnd_c[3]),thickness=3,rgbcolor=bnd_c[4]) if show_planes: A=A+plot3d(0,(x,xmin,xmax),(y,ymin,ymax),opacity=0.3,rgbcolor='gray') zmax=A.bounding_box()[1][2] zmin=A.bounding_box()[0][2] A=A+parametric_plot3d((u,0,v),(u,xmin,xmax),(v,zmin,zmax),opacity=0.3,rgbcolor='gray') A=A+parametric_plot3d((0,u,v),(u,ymin,ymax),(v,zmin,zmax),opacity=0.3,rgbcolor='gray') if show_axes: zmax=A.bounding_box()[1][2] zmin=A.bounding_box()[0][2] A=A+line3d([(xmin,0,0), (xmax,0,0)], arrow_head=True,rgbcolor='black') A=A+line3d([(0,ymin,0), (0,ymax,0)], arrow_head=True,rgbcolor='black') A=A+line3d([(0,0,zmin), (0,0,zmax)], arrow_head=True,rgbcolor='black') show(A) ︡6afbcd5b-3b6b-43a1-a811-206cdfa223ec︡︡