pow(x,n) = x**n; ## definida pow(x,n)
f(x,y) = sqrt(4 - pow(x,2) - pow(y,2));
m = sqrt(2);
set xrange [-m:m] ;
set yrange [-m:m] ;
Dfx(x,y) = -2*x/f(x,y); Dfy(x,y) = -2*y/f(x,y);
a=-1.0;b=1.0; c=f(a,b);
A = Dfx(a,b); B = Dfy(a,b); C = f(a,b);
## eq. do plano tangente z = f(a,b) + Dfx(a,b)*(x-a) + Dfy(a,b)*(y-b)
## eq. do plano tangente z - f(a,b) - Dfx(a,b)*(x-a) - Dfy(a,b)*(y-b)= 0
## eq. do plano tangente z - C - A(x - a) - B(y - c)
## vetor perp ao pl tan (-A, -B, 1)
## z = P(x,y) = C + A*(x-a) + B*(y-b);
P(x,y) = C + A*(x-a) + B*(y-b)
## P = (a,b,f(a,b))
## vetor perpendicular (-A,-B, 1) ===> (a,b,f(a,b)) + (-A, -B, 1)=(a-A, b-B,f(a,b)+1)
set arrow from 0,0,0 to a,b,f(a,b) ## coloca um vetor no gráfico
set arrow from 0,0,0 to -A,-B, 1; ## aparece quando usar plot ou splot
set arrow from a,b,f(a,b) to a-A, b-B,f(a,b)+1 ## um vetor no gráfico
splot f(x,y), P(x,y);
print "Aperte enter para continuar"
pause -2
unset arrow ## apaga as setas - para poder usar novos vetores
a=1.0;b=1.0; c=f(a,b);
A = Dfx(a,b); B = Dfy(a,b); C = f(a,b);
## eq. do plano tangente z = f(a,b) + Dfx(a,b)*(x-a) + Dfy(a,b)*(y-b)
## eq. do plano tangente z - f(a,b) - Dfx(a,b)*(x-a) - Dfy(a,b)*(y-b)= 0
## eq. do plano tangente z - C - A(x - a) - B(y - c)
## vetor perp ao pl tan (-A, -B, 1)
## z = P(x,y) = C + A*(x-a) + B*(y-b);
P(x,y) = C + A*(x-a) + B*(y-b)
## P = (a,b,f(a,b))
## vetor perpendicular (A,B, -1) ===> (a,b,f(a,b)) + (-A, -B, 1)=(a-A, b-B,f(a,b
set arrow from 0,0,0 to -A,-B, 1;
set arrow from 0,0,0 to a,b,f(a,b)
set arrow from a,b,f(a,b) to a-A, b-B,f(a,b)+1
splot f(x,y), P(x,y)
print "Aperte enter para continuar"
pause -2
unset arrow ## apaga as setas - para poder usar novos vetores
a=2.0;b=-2.0; c=f(a,b);
A = Dfx(a,b); B = Dfy(a,b); C = f(a,b);
## eq. do plano tangente z = f(a,b) + Dfx(a,b)*(x-a) + Dfy(a,b)*(y-b)
## eq. do plano tangente z - f(a,b) - Dfx(a,b)*(x-a) - Dfy(a,b)*(y-b)= 0
## eq. do plano tangente z - C - A(x - a) - B(y - c)
## vetor perp ao pl tan (-A, -B, 1)
## z = P(x,y) = C + A*(x-a) + B*(y-b);
P(x,y) = C + A*(x-a) + B*(y-b)
## P = (a,b,f(a,b))
## vetor perpendicular (A,B, -1) ===> (a,b,f(a,b)) + (-A, -B, 1)=(a-A, b-B,f(a,b)+1)
set arrow from 0,0,0 to -A,-B, 1;
set arrow from 0,0,0 to a,b,f(a,b)
set arrow from a,b,f(a,b) to a-A, b-B,f(a,b)+1
splot f(x,y), P(x,y)
print "Aperte enter para continuar"
pause -2
## este trecho do programa produz o gráfico que se encontra na página
unset arrow ## apaga as setas - para poder usar novos vetores
a=0.0;b=0.0; c=f(a,b);
A = Dfx(a,b); B = Dfy(a,b); C = f(a,b);
## eq. do plano tangente z = f(a,b) + Dfx(a,b)*(x-a) + Dfy(a,b)*(y-b)
## eq. do plano tangente z - f(a,b) - Dfx(a,b)*(x-a) - Dfy(a,b)*(y-b)= 0
## eq. do plano tangente z - C - A(x - a) - B(y - c)
## vetor perp ao pl tan (-A, -B, 1)
## z = P(x,y) = C + A*(x-a) + B*(y-b);
P(x,y) = C + A*(x-a) + B*(y-b)
## P = (a,b,f(a,b))
## vetor perpendicular (A,B, -1) ===> (a,b,f(a,b)) + (-A, -B, 1)=(a-A, b-B,f(a,b)+1)
set arrow from 0,0,0 to -A,-B, 1;
set arrow from 0,0,0 to a,b,f(a,b)
set arrow from a,b,f(a,b) to a-A, b-B,f(a,b)+1
splot f(x,y), P(x,y)
print "Aperte enter para continuar"
pause -2