var('x,y')
f(x,y)=x^2+x*y+y^2
implicit_plot(f(x, y)==3, (x, -5, 5), (y, -5, 5))
fx=diff(f(x, y), x)
fy=diff(f(x, y), y)
m(x,y)=-fx/fy
x0=1
y0=1
p1=implicit_plot(f(x, y)==3, (x, -5, 5), (y, -5, 5))
p2=implicit_plot(y-y0==m(x0,y0)*(x-x0), (x, -5, 5), (y, -5, 5), color='red')
show(p1+p2)