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 "Objetivo: mostrar a relação entre uma superfície e os vetores " print "vetor posição, vetor perpendicular. O vetor posição aparece apontando para print "o ponto \"posição\" na superfície uma vez que sua equação é " print " (a,b,F(a,b)) " print "e o vetor perpendicular é obtido com a derivada da função z = F(x,y) " print "e ele aparece na origem, indicando qual é a direção perpendicular ao plano" print "tangente. Lembre-se da equação do plano tangente! " print "As coordenadas do vetor perpendicular são os números" print " A , B , 1" print "com " print " A = - F_{x}(a,b) e b = - F_{y}(a,b) " print "a notação para derivadas parciais de F, calculadas no ponto (a,b) que " print "interessa." print "Experimente o programa, altere as equações, volte a rodar o programa." print "Atenção: Não se esqueça de recalcular as derivadas parciais quando trocar" print "as equações. Se você esquecer, dará tudo errado! nenhum problema, errar é" print "normal, refaça tudo! correto, então" print "Errar, até o professor erra em aula, obviamente, por razões pedagógicas! " print "Aperte enter para continuar!" pause -2 set title "Verifique onde vai ser desenhado o vetor perpendicular!"; pow(x,n) = x**n; F(x,y) = pow(x,2) + pow(y,2) + 7; DF_x(x,y) = 2*x; DF_y(x,y) = 2*y; a=-5.0;b=-7.0; ### O vetor posição (a,b,F(a,b)); set arrow from 0,0,0 to a, b, F(a,b) ; ## vetor posição ## A(x-a) + B(y-b) + (z-F(a,b) = 0 - equação de um plano por (a,b,F(a,b)) ## z = P(x,y); z - F(a,b) - DF_x(a,b)*(x-a) - DF_y(a,b)*(y-b) = 0 ## um vetor perpendicular A = - DF_x(a,b); B = - DF_y(a,b); C = 1 A = - DF_x(a,b); B = - DF_y(a,b); C = 1 set arrow from 0,0,0 to A, B, C ; ## um vetor perpendicular - origem set arrow from a, b, F(a,b) to a+A, b+B, F(a,b)+1 ## ative os três comandandos seguintes para ver que o vetor é perpendicular set xrange [a-15:a+15] ## para ativar, apague o sinal de comentário, ## set xrange [b-15:b+15] ## no início da linha, mas não estes internos set zrange [F(a,b)-20:F(a,b)+20] ## que você deve deixar. P(x,y) = F(a,b) + DF_x(a,b)*(x-a) + DF_y(a,b)*(y-b) ## equação do pl. tangente splot F(x,y),P(x,y) print "Aperte enter para continuar!" pause -2 print "O vetor pependicular ao plano no ponto (", a, ",", b, ",", F(a,b),") é"; print "(", A, ",", B, ",", 1,")"; print "Aperte enter para continuar!" pause -2 set title "Vetor tangente - um vetor deslocado para o plano tangente." print "O plano tangente ao gráfico de uma função z = F(x,y), sabemos, tem por equação" print " z = P(x,y) = F(a,b) + J(F)(x-a, y-b)^{t}" print "Observe o significado da notação:" print " J(F) é a jacobianda de F - a matriz das derivada parciais." print " J(F) é uma vetor-linha - uma matriz 1x2" print " (x-a y-b) é uma vetor-linha - uma matriz 1x2 " print "então não posso multiplicar " print " J(F)(x-a, y-b) " print "mas posso multiplicar " print " J(F)(x-a, y-b)^{t}" print "a jacobiana pela transposta de (x-a, y-b). Isto dá equação" print " z = P(x,y) = F(a,b) + F_x(a,b)(x-a) + F_y(a,b)(y-b)" print "Se eu tomar dois pontos neste plano eles determinam um segmento de reta que" print "deslocado para o ponto (a,b,F(a,b)) será um vetor tangente ao gráfico de " print "z = F(x,y) no ponto (a,b,F(a,b)). Eu vou fazer as contas no programa e lhe" print "mostrar, graficamente, um vetor tangente ao gráfico de z = F(x,y) no ponto " print " (a,b,F(a,b))." print "Aperte enter para continuar!" pause -2 print "A equação do plano tangente " print " z = P(x,y) = F(a,b) + F_x(a,b)(x-a) + F_y(a,b)(y-b)" print "Escolhendo dois valores para pontos sobre o plano ...... " print "mas,... eu quero que um dos valores seja (a,b,F(a,b)), então basta" print "escolhe outro valor em cima do plano e ligar com um segmento de reta. Vou" print "fazer isto agora de de forma bem simples:" print "Defino deltax = 1; deltay = 1.; (podiam ser diferentes, veremos isto depois)" print "Defino a1 =a+deltax; b1 = b+deltay;" print "garantindo que ponto (a1, b1) não esteja muito longe de (a,b)." print "Como quero que o novo ponto esteja sobre o plano, calculo a terceira coordenada" print "com a equação do plano:" print "z1 = P(a1, b1)" print "e peço uma seta ao gnuplot" print "set arrow from a,b,F(a,b) to a1, b1, P(a1,b1);" print "que é mesmo que" print "set arrow from a,b,F(a,b) to a1, b1, z1;" print ".... e agora você pode ver no gráfico um segmento de reta que tem esta sobre" print "o plano tangente com uma das estremidades no ponto-posição (a,b,F(a,b))" print " " print "Aperte enter para continuar!" pause -2 unset arrow; deltax = 1; deltay = 1; a1 =a+deltax; b1 = b+deltay; z1 = P(a1, b1); set arrow from a,b,F(a,b) to a1, b1, z1; splot F(x,y), P(x,y) print "Aperte enter para continuar!" pause -2 print "Uma forma de trabalhar com vetores que fiquem próximos de um ponto dado, consiste" print "de colocar um círculo em volta do ponto principal e controlar a distância com " print "o raio do círculo - raio pequeno, pontos muito próximos do centro." print "Qual é a tecnologia que preciso para isto:" print "1) Equação do círculo de raio rho - rho cos(alpha), rho sen(alpha) " print " rho( cos(alpha), sen(alpha))" print " isto produz um conjunto de vetores pequenos na direção escolhida pelo angulo" print " alpha. " print "2) Levar o círculo para o plano tangente " print " P(rho cos(alpha), rho sin(alpha))" print " é a imagem de um pequeno vetor, com direção escolhida, sobre o plano tangente." print "3) deslocá-lo para o ponto desejado no plano tangente." print "Mova o gráfico porque os vetores podem estar numa posição que os torne" print "invisíveis! " print "Aperte enter para ver os vetores !" pause -2 unset arrow; rho = 1; alpha = 0.5; ## aproximadamente 30° a1 = a+rho*cos(alpha); b1 = a+rho*sin(alpha); z1 = P(a1, b1); set arrow from a,b,F(a,b) to a1, b1, z1; alpha = 1; a2 = a+rho*cos(alpha); b2 = a+rho*sin(alpha); z2 = P(a2, b2); set arrow from a,b,F(a,b) to a2, b2, z2; alpha = 1.5; a3 = a+rho*cos(alpha); b3 = a+rho*sin(alpha); z3 = P(a3, b3); set arrow from a,b,F(a,b) to a3, b3, z3; alpha = 2; a4 = a+rho*cos(alpha); b4 = a+rho*sin(alpha); z4 = P(a4, b4); set arrow from a,b,F(a,b) to a4, b4, z4; splot F(x,y), P(x,y) print "Aperte enter para terminar !" pause -2