Plano tanxente a unha superficie $z=f(x,y)$ nun punto

{{{id=0| #auto %hide var('x,y,z') @interact def example(f='sin(x*y)^2', rango_x='(-2, 2)', rango_y='(-2,2)',punto='(1,0)'): xmin, xmax = sage_eval(rango_x); ymin, ymax = sage_eval(rango_y);px,py=sage_eval(punto); f=f.replace('^','**') tg(x,y) = eval(f) Pt=tg(px,py)+(x-px)*diff(tg,x)(px,py)+(y-py)*diff(tg,y)(px,py) html('

O plano tanxente é $z=%s$

'%latex(Pt)) S = plot3d(eval(f), (x, xmin, xmax), (y, ymin, ymax),opacity=0.4) T = plot3d(Pt, (x, xmin, xmax), (y, ymin, ymax),color='red') show(S+T) ///
f 
rango_x 
rango_y 
punto 
}}} {{{id=2| /// }}}