Gnuplot: Exercícios do livro do Thomas - 4 Ulysses Sodré e Sônia F. L. Toffoli Londrina-PR, 27 de Junho de 2007, arquivo: sacgnu04.tex 1 Funções e Superfícies no espaço R 3 Limpe a memória (do PC) com reset. 1. Plotamos uma função z = f(x, y) = xy [fig.1] no espaço R 3, com: splot x*y Figura 1: A superfície z = xy Figura 2: Duas superfícies no gráfico 2. Plotamos z = x 2 + y 2 e z = x 2 y 2, [fig.2] em cores, com: splot x**2+y**2, x**2-y**2 3. Exercício: Funções que podem ser plotadas da mesma forma, são: z = x 3 + y 2 + 3, z = x 2 + y 2, z = cos(x) e z = xy/(x 2 + y 2 ). 4. Acrescentaremos a função z = xy ao gráfico anterior, sem digitar tudo de novo, com. rep x*y
Seção 2 Inserindo grade 2 2 Inserindo grade Inserimos uma grade no domínio com set grid. Com a grade normal, plotaremos z(x, y) = x 2 + y 2 e z(x, y) = x 2 y 2, [fig.3]. set grid splot x**2+y**2, x**2-y**2 Figura 3: Gráfico com grade Figura 4: Gráfico melhor definido 3 Melhorando a definição gráfica Melhoramos a malha gráfica [fig.4], com samples e isosamples. set samples 20 set isosamples 21 splot x**2+y**2 4 Superfícies sem grades ou marcas nos eixos Podemos plotar um gráfico sem grades ou marcas nos eixos usando nogrid, noxtics e noytics. 1. Excluímos a grade com: set nogrid
Seção 5 Domínio fixado para uma função z=f(x,y) 3 2. Após excluir a grade, plotaremos uma superfície com pontos: splot x*y with points 3. Excluímos as marcas no eixo x com e as marcas no eixo y com. plotará o último gráfico sem marcas. 5 Domínio fixado para uma função z=f(x,y) 1. Vamos fixar o domínio [ 1, 1] [ 1, 1] e plotar três superfícies sem grades ou marcas, com estilos diferentes. set xrange [-1:1] set yrange [-1:1] splot x*y with lines, x**2*y**3 with dots, \ x**3*y*2 with points 2. No eixo x escreveremos baixo em 3, meio em 0, alto em 3 e no eixo y poremos as marcas de -2 a 2 de 1 em 1 unidade, [fig.5]. set xtics ("baixo" -3, "meio" 0, "alto" 3) set ytics -2,1,2 set xrange [-3:3] set yrange [-3:3] splot x**2 Figura 5: Marcas diferentes nos eixos Figura 6: Gráficos com níveis diferentes
Seção 6 Gráficos com diferentes alturas 4 6 Gráficos com diferentes alturas Plotaremos em sequência, a função z = x 2, [fig.6] nos planos z = 0, z = 2 e z = 0.5, com ticslevel. set ticslevel 0.0 rep set ticslevel 2.0 rep set ticslevel 0.5 rep 7 Várias funções sobre um mesmo domínio Sobre um domínio, plotaremos z = sin(x) e z = 3x y, [fig.7], com: set xtics 1.0 set ytics 1.0 set isosamples 20 splot [-pi:pi][-pi:pi] sin(x), 3*x-y Figura 7: Domínio determinado Figura 8: A esfera de raio 5 8 Relação que não é função Como a esfera z 2 + x 2 + y 2 = 25 [fig.8] não é uma função, decompomos a mesma em z(x, y) = (25 x 2 y 2 ) e z(x, y) = (25 x 2 y 2 ) e plotamos tais funções no mesmo desenho.
Seção 9 Curvas de nível com altura dada 5 9 Curvas de nível com altura dada 1. Obtemos as curvas de nível de z = xy com: set contour splot x*y 2. Podemos melhorar a malha gráfica, colocar algumas notações nos eixos e um título, [fig.9], com: set samples 20 set isosamples 21 set xlabel "eixo-x" -5,-2 set ylabel "eixo-y" 4,-1 set zlabel "eixo-z" set title "Curvas de nível" splot x*y Figura 9: Curvas de nível 3. Curvas de nível a cada 20 unidades set cntrparam levels 20 splot x**2+y**2 4. Curvas de nível com cotas automáticas a cada 10 unidades:
Seção 10 Curvas de nível na superfície e no plano z=0 6 set cntrparam levels auto 10 splot x**2-y**2 5. Curvas de nível de 0 a 100 com incremento de 10 unidades, [fig.10]. set cntrparam levels incr 0,10,100 Figura 10: Curvas de nível de 10 em 10 Figura 11: Curvas de nível 6. Curvas de nível com cotas pré-determinadas, [fig.11]. set cntrparam levels disc -75,-50,0 splot -x**2-y**2 10 Curvas de nível na superfície e no plano z=0 1. Curvas de nível na superfície set contour surface splot x**2-y**2 2. Curvas de nível na superfície e no plano, [fig.12]. set contour both
Seção 11 Curvas parametrizadas no espaço tridimensional 7 Figura 12: Curvas de nível na superfície Figura 13: Curva helicoidal 11 Curvas parametrizadas no espaço tridimensional 1. Para iniciar esta seção, é necessário limpar o programa da memória do computador com reset. 2. Nesta seção, para plotar curvas parametrizadas no espaço R 3, da forma r(t) = (x(t), y(t), z(t)), usaremos um truque que não está no Help do Gnuplot, mas que é similar à plotagem de uma superfície parametrizada. Desse modo, definiremos o padrão como: 3. Para plotar a curva helicoidal r(t) = (cos(t), sen(t), t) com t no domínio [0, 4π], [fig.13], substituímos o parâmetro t pelo parâmetro u, que é o padrão para plotar superfícies parametrizadas. set urange [0:4*pi] splot cos(u), sin(u), u 4. Plotamos a curva parabólica parametrizada r(t) = (t+1, t 2, 1 2t) com t no domínio [0, 2π], com: set urange [0:2*pi] splot u+1, -u**2, 1-2*u 5. Plotamos a curva parabólica parametrizada r(t) = (t, t 2, t 3 ) com t no domínio [0, 2π], com:
Seção 12 Superfícies parametrizadas 8 set urange [0:2*pi] splot u, u**2, u**3 6. Para eliminar a confusão de números junto aos eixos, podemos usar os comandos xtics, ytics e ztics, para obter a [fig.14]. set xtics -1,.5,1 set ytics -1,.5,1 set ztics 0,2.5,10 Figura 14: Curva helicoidal com tics Figura 15: Curva helicoidal com tics 7. Melhoramos o desenho inserindo um título com set title e um ponto de vista diferente com ângulos φ e θ através de set view, como está na [fig.15]. set title "Curva helicoidal" set view 60,50 12 Superfícies parametrizadas 1. Para iniciar esta seção, é necessário limpar o programa da memória do computador com reset. 2. A esfera parametrizada:
Seção 12 Superfícies parametrizadas 9 set isosamples 50,10 set key below set urange [-pi/2:pi/2] set vrange [0:2*pi] set ztics nomirror -1.0,0.25,1.0 set view 45,50 splot cos(u)*cos(v), cos(u)*sin(v), sin(u) 3. A mesma esfera parametrizada comprimida em z: set view,,,0.7 # 0.7 = 70% da altura 4. A mesma esfera parametrizada ampliada em z: set view,,,1.4 # 1.4 = 140% da altura 5. Cilindro circular reto parametrizado: set urange [0:2*pi] set vrange [-4:4] splot cos(u), sin(u), v 6. Toro parametrizado: set view,,,1.0 set urange [0:2*pi] set vrange [0:2*pi] set zrange [-1:1] splot (1-0.2*cos(v))*cos(u), \ (1-0.2*cos(v))*sin(u), 0.2*sin(v) 7. Prisma hexagonal: set urange [-1.3:1.3] set vrange [0:2*pi] set autoscale z
Seção 12 Superfícies parametrizadas 10 set ticslevel 0. set view,,0.7,1.4 set ztics autofreq splot cos(v)**3*cos(u)**3, \ sin(v)**3*cos(u)**3, sin(u)**3 8. Hélice parametrizada: set view,,1.,1. set isosamples 100,20 set urange [0:10*pi] set vrange [0:2*pi] set autoscale z splot (1-0.1*cos(v))*cos(u), \ (1-0.1*cos(v))*sin(u), 0.1*(sin(v)+u/1.7-10) 9. Concha parametrizada (limitada em z): set isosamples 40,20 set view 50,30,1.0 set urange [0:2*pi] set vrange [0:2*pi] set zrange [-3:1.5] splot cos(u)*u*(1+cos(v)/2), \ sin(v)*u/2, sin(u)*u*(1+cos(v)/2) 10. Concha parametrizada (livre em z): set autoscale z 11. Dois toros parametrizados entrelaçados: set urange [-pi:pi] set vrange [-pi:pi] set isosamples 50,20 splot cos(u)+.5*cos(u)*cos(v), \ sin(u)+.5*sin(u)*cos(v),.5*sin(v) with lines, \ 1+cos(u)+.5*cos(u)*cos(v),.5*sin(v), \ sin(u)+.5*sin(u)*cos(v) with lines
Seção 12 Superfícies parametrizadas 11 12. Interseção de cilindros: set isosamples 40,40 set nokey set urange [-2:2] set vrange [-2:2] set zrange [-2:2] splot u, sqrt(4-u**2), v, u, -sqrt(4-u**2), v, \ sqrt(4-v**2), u, v, -sqrt(4-v**2), u, v 13. Interseção de dois cilindros: set isosamples 30,30 set view 75,45,1.0 set urange [-2:2] set vrange [-2:2] set zrange [-2:2] splot u, sqrt(4-u**2), v rep u, -sqrt(4-u**2), v rep sqrt(4-v**2), u, v rep -sqrt(4-v**2), u, v 14. Cilindro parabólico: set isosamples 40,40 set nokey set urange [-2:2]
Seção 13 Sólidos limitados por superfícies 12 set vrange [-2:2] set zrange [-2:2] splot u, v, -u**2 13 Sólidos limitados por superfícies 1. Sólido limitado por superfícies (Leithold:seção18.2-19) set isosamples 20,20 set view 40,115,1.0 set nokey set urange [-2:2] set vrange [-2:2] set zrange [-2:2] splot u, sqrt(4-u**2), v, \ u, -sqrt(4-u**2), v, u, v, 4*u 2. Sólido limitado por superfícies (Leithold:seção18.2-20) set isosamples 30,30 set view 30,60,1.0 set nokey set xrange [0:2] set yrange [0:2] set zrange [0:5] splot 3*(x-y-1), -3*y+3, 0
Seção 13 Sólidos limitados por superfícies 13 3. Sólido limitado por superfícies (Leithold:seção18.2-20) set isosamples 30,30 set view 40,60,1.0 set nokey set xrange [0:2] set yrange [0:2] set zrange [0:5] splot (x-y-1)/2, -3*y+3, 0 4. Sólido limitado por superfícies (Leithold: seção18.2-23) set isosamples 30,30 set view 40,60,1.0 set nokey set urange [-2:2] set vrange [-2:2] set zrange [-1:1] splot u, v, sqrt(1-u), u, v, -sqrt(1-u), \ u, u, v, v**2, v, u