@Plano tanxente a unha superficie $F(x,y,z)=0$ nun punto
system:sage


<CENTER>
<HR>
<H3>Plano tanxente a unha superficie $F(x,y,z)=0$ nun punto</H3>
</CENTER>

{{{id=0|
#auto
%hide
var('x,y,z')
@interact
def example(f='x^2+y^2-z^2', rango_x='(-2, 2)', rango_y='(-2,2)',rango_z='(-2,2)',punto='(1,0,1)'):
    xmin, xmax = sage_eval(rango_x); ymin, ymax = sage_eval(rango_y);
    zmin, zmax = sage_eval(rango_z);px, py, pz = sage_eval(punto);
    f=f.replace('^','**');
    tg(x,y,z) = eval(f)
    if tg(px,py,pz) != 0:
        html('<h2>O punto $%s$ non está na superficie</h2>'%latex(punto))
    else:
        Pt=(x-px)*diff(tg,x)(px,py,pz)+(y-py)*diff(tg,y)(px,py,pz)+(z-pz)*diff(tg,z)(px,py,pz)   
        html('<h2>O plano tanxente é $0=%s$</h2>'%latex(Pt))
        S = implicit_plot3d(eval(f), (x, xmin, xmax), (y, ymin, ymax),(z, zmin, zmax),opacity=0.4)
        T = implicit_plot3d(Pt, (x, xmin, xmax), (y, ymin, ymax),(z, zmin, zmax),color='red')
        show(S+T)
///
<html><!--notruncate--><div padding=6 id='div-interact-0'> <table width=800px height=20px bgcolor='#c5c5c5'
                 cellpadding=15><tr><td bgcolor='#f9f9f9' valign=top align=left><table><tr><td align=right><font color="black">f&nbsp;</font></td><td><input type='text' value="x^2+y^2-z^2" size=80 onchange='interact(0, "_interact_.update(0, \"f\", 1, _interact_.standard_b64decode(\""+encode64(this.value)+"\"), globals());_interact_.recompute(0)")'></input></td></tr>
<tr><td align=right><font color="black">rango_x&nbsp;</font></td><td><input type='text' value="(-2, 2)" size=80 onchange='interact(0, "_interact_.update(0, \"rango_x\", 2, _interact_.standard_b64decode(\""+encode64(this.value)+"\"), globals());_interact_.recompute(0)")'></input></td></tr>
<tr><td align=right><font color="black">rango_y&nbsp;</font></td><td><input type='text' value="(-2,2)" size=80 onchange='interact(0, "_interact_.update(0, \"rango_y\", 3, _interact_.standard_b64decode(\""+encode64(this.value)+"\"), globals());_interact_.recompute(0)")'></input></td></tr>
<tr><td align=right><font color="black">rango_z&nbsp;</font></td><td><input type='text' value="(-2,2)" size=80 onchange='interact(0, "_interact_.update(0, \"rango_z\", 4, _interact_.standard_b64decode(\""+encode64(this.value)+"\"), globals());_interact_.recompute(0)")'></input></td></tr>
<tr><td align=right><font color="black">punto&nbsp;</font></td><td><input type='text' value="(1,0,1)" size=80 onchange='interact(0, "_interact_.update(0, \"punto\", 5, _interact_.standard_b64decode(\""+encode64(this.value)+"\"), globals());_interact_.recompute(0)")'></input></td></tr>
</table><div id='cell-interact-0'><?__SAGE__START>
        <table border=0 bgcolor='#white' width=100% height=100%>
        <tr><td bgcolor=white align=left valign=top><pre><?__SAGE__TEXT></pre></td></tr>
        <tr><td  align=left valign=top><?__SAGE__HTML></td></tr>
        </table><?__SAGE__END></div></td>
                 </tr></table></div>
                 </html>
}}}

{{{id=3|

///
}}}