system "clear"; print " "; print " "; print "============================================================"; print " Os direitos do autor e a GPL "; print "============================================================"; print " "; print "Este programa é distribuido sob GPL. "; print "Se você não souber o que é a GPL, envie um e-mail ao autor "; print " tarcisio@member.ams.org "; print "mas em suma quer dizer que você pode usar livremente o sistema"; print "de programas aqui mencionados, desde que esta informação seja mantida"; print "em todas as alterações que você fizer dos programas e das cópias que "; print "você deles fizer - é a proteção do direito autoral que não lhe impede"; print "de usar livremente o conhecimento mas que mantém na memória quem "; print "participou de sua produção."; print "Este programa foi escrito por Tarcisio Praciano-Pereira "; print "professor da Universidade Estadual Vale do Acaraú - UeVA "; print "Laboratório de Matemática Computacional "; print "Sobral - Ceará - Brasil " ; print "Aperte enter para continuar!"; pause -2; system "clear"; print "Este programa produz o gráfico da superfície graf(f) - gráfico de uma função"; print "bivariada mostrando o plano tangente ao gráfico da função em alguns pontos."; print "Use este programa como um laboratório para entender as relações gráficos em"; print "3D - plano, plano tangente e gráfico de funções bivariadas."; print "Altere o programa para aumentar a sua intuição - não tema estragar o programa,"; print "basta pegar outra cópia do mesmo na página. Melhor será guardar uma cópia do"; print "programa com outro nome e alterar esta para evitar nova conexão à Internet."; print "O símbolo # é o de comentário para gnuplot, significa que depois deste símbolo"; print "ele ignora tudo até o final da linha. Por exemplo, na linha"; print " pow(x,n) = x**n; ## definição da função potência"; print "gnuplot lê a definição: pow(x,n) = x**n; e ignora o comentário que vem em"; print "seguida. Desta forma posso deixar informações para mim mesmo, ou para você,"; print "dentro de um programa."; print "Leia o programa e tente entendê-lo."; print "Aperte enter para continuar!"; pause -2; system "clear"; sign(x) = (x!=0)?x/abs(x):0 si(x) =(sign(x)>0)?"+":(x==0)?"+":"-" pow(x,n) = x**n; ## definição da função potência set title "O ponto de tangência é (a,b,c) = (-1.0, 1.0, f(-1,1))" u(x,y) = pow(x,2) + pow(y,2) + 1 u_x(x,y) = 2*x; u_y(x,y) = 2*y; v(x,y) = pow(x,2) - pow(y,2); v_x(x,y) = 2*x; v_y(x,y)= -2*y; f(x,y) = v(x,y)/u(x,y) f_x(x,y) = (v_x(x,y)*u(x,y) - u_x(x,y)*v(x,y))/pow(u(x,y),2); f_y(x,y) = (v_y(x,y)*u(x,y) - u_y(x,y)*v(x,y))/pow(u(x,y),2); m = sqrt(2); set xrange [-m:m] ; set yrange [-m:m] ; a=-1.0;b=1.0; c=f(a,b); A = f_x(a,b); B = f_y(a,b); c = f(a,b); ## eq. do plano tangente z = f(a,b) + f_x(a,b)*(x-a) + f_y(a,b)*(y-b) ## eq. do plano tangente z - f(a,b) - f_x(a,b)*(x-a) - f_y(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); ## equação do plano tangente P(x,y) = c + A*(x-a) + B*(y-b) ## P = (a,b,f(a,b)) ## vetor posição ## 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) ## mostra o vetor posição set arrow from 0,0,0 to -A,-B, 1; ## mostra o vetor perp ao pl tangente set arrow from a,b,f(a,b) to a-A, b-B,f(a,b)+1 ## leva o vet. perp p/ posição splot f(x,y), P(x,y) print "Aperte enter para continuar" pause -2 set title "O ponto de tangência é (a,b,c) = (1.0, 1.0, f(1,1)" unset arrow ## apaga as setas a=1.0;b=1.0; c=f(a,b); A = f_x(a,b); B = f_y(a,b); c = f(a,b); ## eq. do plano tangente z = f(a,b) + f_x(a,b)*(x-a) + f_y(a,b)*(y-b) ## eq. do plano tangente z - f(a,b) - f_x(a,b)*(x-a) - f_y(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 set title "O ponto de tangência é (a,b,c) = (1.14/2, -1.14.0/2, f(1.14,-1.14)" unset arrow ## apaga as setas a=sqrt(2)/2.0;b=-sqrt(2)/2.0; c=f(a,b); A = f_x(a,b); B = f_y(a,b); c = f(a,b); ## eq. do plano tangente z = f(a,b) + f_x(a,b)*(x-a) + f_y(a,b)*(y-b) ## eq. do plano tangente z - f(a,b) - f_x(a,b)*(x-a) - f_y(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