Você é o visitante n°:

contador de visitas

terça-feira, 26 de julho de 2011

VISUALIZAÇÃO DE GRÁFICOS EM 3D USANDO O SOFTWARE 'GNUPLOT'

NOTA: É necessário que o leitor até aqui tenha um conhecimento do referido software; se quiser pode visualizar o arquivo http://profleonardomatematica.blogspot.com/2011_04_01_archive.html, que contém algumas instruções básicas a respeito do mesmo.

1.0   SUPERFÍCIES

       Para começar, grosso modo, podemos considerar o espaço R3 como sendo o conjunto de triplas ordenadas da forma (x, y, z), onde x, y e z são números pertencentes aos conjunto dos números reais.
       Intuitivamente, também temos a noção de superfície e de sólidos. Uma superfície seria então um objeto no espaço R3 que possua apenas área, enquanto sólido é um objeto em R3 que possua volume; para ilustrar bem o que tento dizer: pense em uma laranja :sua casca nos traduz agora a noção de superfície (embora seja um conceito bem grosseiro, já que superfície não tem espessura), e o conjunto interior do fruto - casca nos traduz a ideia de sólido. Para leitores mais familiarizados com cálculo diferencial, superfícies são objetos de dimensão 2 em R3, e  sólidos são objetos de dimensão 3 em R3.
       São exemplos de superfícies (todas elas desenhadas com o software gnuplot):
Exemplo 01: plano
Exemplo 02: calha

Exemplo 03: parabolóide
Exemplo 04: f(x, y) = ln(x^2 + y^2)
       Já deu para perceber bem que nem sempre a representação gráfica de funções de duas variáveis é algo simples, e as vezes é bem complicado! Existem vários métodos, alguns privilegiam curvas de nível dessa superfície, outros consideram a instersecção de planos com a superfície considerada, inclusive a intersecção desta mesma com os planos coordenados. Vamos então ao que nos interessa: como esboçar o gráfico de superfícies no espaço 3D?

2.0    COMANDOS NECESSÁRIOS PARA O ESBOÇO DE GRÁFICOS EM 3D:

       Abra o programa gnuplot, e no prompt de comando digite a seguinte função:
gnuplot> f(x,y) = x + y - 7
       Ao digitarmos o texto acima, acabamos de definir a função f(x,y). Para visualizarmos, faremos uso do comando splot:
gnuplot> splot f(x,y)
        Veja então o que aparece:

        O comando splot nada mais é do que o comando utilizado para gráficos em 3D. Quando digitamos "splot f(x,y)", o programa imediatamente mostrará o gráfico da função no espaço tridimensional. Vamos agora aprender a dar uma incrementada nesse gráfico. Se você fechar o gráfico e digitar o comando "set isosamples 80,80", e depois plotar o gráfico, o resultado será esse:

        A função do comando "set isosamples a,b" é melhorar a resolução do gráfico, fechar um pouco mais a malha utilizada para compô-lo. Se quisermos aumentar ainda mais a resolução do gráfico, basta digitar números maiores para 'a' e 'b', mas lembre-se que um gráfico com uma resolução muito grande pode demorar muito para ser processado, porém útil para serem enxergados mais detalhes; é como uma foto, no geral, melhor a resolução, maior a riqueza em detalhes.
        Outro comando bem interessante é o "set hidden3d"! Vejamos: digite no prompt de comando a opção "set hidden3d", tecle enter e em seguida plote o gráfico da função f(x,y) = 4 - x^2 - y^2, veja só:

      Esse comando tem uma função estética interessante: ele "esconde" a parte de trás do gráfico, dando a ele um aspecto sólido. Embora pareça uma coisa fútil, é bom lembrar que esse comando pode nos dar uma ajuda e tanto na hora de enxergarmos o gráfico de uma função qualquer tridimensional; veja os exemplos abaixo; em ambos está esboçado o gráfico da função f(x,y) = sin(x) + cos(y); veja e tire suas conclusões!


Sem o "hidden3d"

Com o "hidden3d". Olha a diferença!
        Bem interessante também é o comando set pm3d! Observe por exemplo como ficaria essa função acima com esse comando: no prompt de comando, digite "set pm3d" e tecle enter em seguida, depois peça para ele plotar o gráfico da função dada. Veja como fica:

        Interessante também relembrar que todas as opções que são válidas no modo 2D também são válidas no modo 3D, como por exemplo, set xtics, set ytics, set title, etc; agora podemos acrescentar a essa lista as opções "set zrange [a:b]", para definirmos um domínio em Oz; "set ztics 'a'", com 'a' sendo uma constante escalar, que define o tamanho dos intervalos de subdivisão do eixo Z e set zlabel "nome", para atribuirmos um "nome" ao eixo Oz.


3.0    VISUALIZANDO CURVAS DE NÍVEL EM GRÁFICOS 3D

      Curvas de nível são a projeção da intersecção de planos com o gráfico de uma função qualquer f(x,y) sobre o plano xy , sendo que elas são sempre subconjunto do domínio da função f(x,y) e possuem a  forma genérica f(x,y) = k, onde 'k' é uma constante escalar. São instrumentos bastante utilizados em engenharia,  meteorologia, termodinâmica, topografia, etc; em um mapa, pode indicar se determinado ponto tem altitude positiva ou negativa; em meteorologia servem para indicar se determinada região tem pluviosidade alta ou baixa, e assim vai! São instrumentos importantes na matemática, pois sua análise nos diz bastante coisa a respeito do comportamento de uma função.
       Para visualizarmos as curvas de nível usando gnuplot, faremos uso de um dos comandos:
01) set contour base
02) set contour surface
03) set contour both
       Mas como que eu vou saber qual utilizar? Calma! Vamos utilizar cada um de uma vez para que você possa compreender as diferenças, vantagens e desvantagens de cada um deles. Para começar, digite as linhas de comando abaixo:
gnuplot> set isosamples 30,60
gnuplot> set contour base
gnuplot> splot sin(x) + cos(y)
      E o gráfico:

    O comando "set contour base" projeta as curvas de nível da função abaixo do gráfico da mesma, dando esse aspecto aí observado no desenho, porém se você digitar agora "set contour surface", o resultado é esse:

     Viu só! Ele desenhou as curvas de nível na própria superfície! Seu uso é desvantajoso, pois dificulta um pouco a observação das curvas. E finalmente se escolhermos a opção "set contour both":

      Esse último comando simplesmente junta os outros dois anteriores, dando esse aspecto na visualização do gráfico!
      Importante também sabermos que podemos definir o intervalo entre duas curvas de nível, bem como restringi-las a um domínio específico. Para entendermos melhor, digite a seguinte linha de comando:
gnuplot> reset
gnuplot> set isosamples 30,60
gnuplot> set hidden3d
gnuplot> set contour base
gnuplot> set cntrparam levels incremental -2, 0.2, 2
gnuplot> splot sin(x) + cos(y)
      Eis o resultado:
      Explica-se: o comando "cntrparam levels incremental" serve para informar ao programa que você irá alterar o número de curvas de nível na função; os números das extremidades (-2 e 2) informam o intervalo no eixo z ao qual as curvas de nível estão restritas, e o número do meio (0.2) nos diz o intervalo entre duas curvas de nível consecutivas. Note que no gráfico ficou uma legenda muito extensa, informando as linhas utilizadas para todas as curvas de nível, nesse caso, como prejudica a visualização do gráfico, podemos digitar em seguida o comando "unset key":


4.0    O MODO PARAMETRIC

4.1    SUPERFÍCIES NA FORMA PARAMÉTRICA


No começo desse artigo definimos de uma maneira breve o conceito de superfície. De um modo geral, no estudo do cálculo vetorial em R3, consideramos de extrema importância o conceito de sólido e de superfície. De um modo intuitivo, dizemos que um sólido é um objeto em R3 que possua volume diferente de zero, ao passo que superfície possui área, porém em seu interior temos que o volume que ali se encontra é zero. De um modo mais formal e matemático, sólido é um objeto que possui dimensão 3 em R3 e superfície é um objeto de dimensão 2 em R3.
No nosso caso particular, consideraremos as superfícies. Uma superfície ‘S’ em R3 fica caracterizada como sendo um conjunto de pontos (uma aplicação) de R2 em R3. Tais aplicações estão definidas por equações que são chamadas de equações paramétricas, e o conjunto de pontos gerados por essas equações é que dão origem à superfície, que fica conhecida por superfície paramétrica:
S(u,v)) = (x(u,v), y(u,v), z(u,v))                               
                   
  As funções x, y e z são também chamadas de funções coordenadas de S.

Uma outra maneira de se representar a equação de uma superfície paramétrica é usar a notação vetorial:

                                      S(u,v) = x(u,v)i + y(u,v)j + z(u,v)k      
Um exemplo de superfície paramétrica é o plano gerado pelas equações x(u, v) = u; y(u, v) = v e z(u, v) = 2u + 3 (*), que analiticamente falando corresponde ao plano z = 2x + 3:
Bom, para não perdermos o foco de nosso estudo, vamos ver como se faz para representarmos as superfícies na forma paramétrica usando o prompt de comando do gnuplot.


4.1    O MODO PARAMETRIC


No prompt de comando do gnuplot, digite "set parametric" e em seguida tecle enter:
Pronto! O programa agora está apto a trabalhar com objetos matemáticos na forma paramétrica! Veja que agora não utilizaremos as variáveis 'x' e 'y', e sim as variáveis 'u' e 'v' (e se você percebeu, devemos utilizar a variável 't' para representarmos curvas paramétricas). Agora, vamos ver um exemplo de como trabalharemos as superfícies na forma paramétrica. Pegue como exemplo o exemplo dado em (*). Depois de passar o programa para a forma paramétrica, digite:
gnuplot> splot u, v, 2*u + 3
Teclando enter:
Viu só como não é difícil!
Um outro exemplo: se quisermos representar em R3 uma superfície esférica de raio 2, podemos representa-la através da parametrização (2sen(u)cos(v), 2sen(u)sen(v),2cos(u)). No gnuplot, olha só como é que fica:
gnuplot> set parametric
gnuplot> set isosamples 30,50
gnuplot> set hidden3d
gnuplot> splot 2*sin(u)*cos(v), 2*sin(u)*sin(v), 2*cos(u)


Teste você também essas opções e aprimore seus conhecimentos a respeito desse programa.


5.0   REFERÊNCIAS BIBLIOGRÁFICAS:

·        *  Stewart, James. Cálculo.Volume II , 5ª edição, Manchester University. Tradução Antônio Carlos Moretti e  Antônio Carlos Gilli Martins. Cencage Martins, São Paulo, 2006
·         * Mirian Buss Gonçalves, Dra. E Diva Maria Flemming, Dra. Cálculo C 3ª edição. Funções vetoriais, integrais curvilíneas e integrais de superfície. Makon Books do Brasil Ltda – São Paulo, 1991
·         * Cálculo volume III. Campos vetoriais/ VILCHE, Maurício A. e CORRÊA, Maria L. – publicado no site da UFRJ;
·         * Introdução ao uso do aplicativo gnuplot; Galo, Maurício. Editora da UNESP, Presidente Prudente, 2003
·         *Steinbruch, Alfredo e Winterle, Paulo. Geometria analítica, 2ª Ed. – São Paulo : McGraw-Hill, 1987
·

Nenhum comentário: