• Nenhum resultado encontrado

6 5 1 M atlab R ápido e P rático

N/A
N/A
Protected

Academic year: 2021

Share "6 5 1 M atlab R ápido e P rático"

Copied!
6
0
0

Texto

(1)

Capítulo 3

Neste Capítulo

1 Construção de gráficos 2D

5 Construção de gráficos 3D

6 Exercícios

UNESP

www.feg.unesp.br/~anibal Guaratinguetá, SP, Brasil

Gráficos

por Anibal Azevedo

Nesta seção serão abordadas técnicas de visualização de funções matemáticas a partir de gráficos de duas e três dimensões, ou ainda a visualização de resultados a partir de histogramas e gráficos de torta.

CONSTRUÇÃO DE GRÁFICOS 2-D A função básica para a elaboração de gráficos bidimensionais é o comando plot:

>> x = -10:1:10;

>> y = x.^2;

>> plot(x,y,'-r');

>> title('Grafico de x^2');

A seqüência anterior de comandos gera um gráfico da função f ( x )  x

2

. Basicamente, o comando plot conecta os i pontos, fornecidos por x e y, cujas coordenadas são dadas por ( x

i

, y

i

) .

Isto pode ser melhor observado, se o número de pontos para construir o gráfico for reduzido:

>> x = -10:10:10;

>> y = x.^2;

>> plot(x,y,'-r');

>> title('Grafico de x^2');

Erro comum:

Ao se construir um gráfico com o comando plot é importante ter em mente que se um espaçamento adequado não for considerado, o gráfico apresentado pode não ser representativo da função matemática em questão. No caso anterior, a função f ( x )  x

2

pode acabar sendo confundida com

x x

f ( )  .

O terceiro parâmetro do comando plot é a seqüência ‘-r’. O caracter ‘-‘ define o estilo da linha (‘-’ = linha contínua) que será utilizada para o gráfico da função.

Já o caracter ‘r’ (red = vermelho) fornece a cor que será utilizada para construir o gráfico da função.

Ao invés de construir o gráfico da função com linhas que conectam os pontos fornecidos pelos vetores x e y, apenas os pontos (marcadores) poderiam ter sido colocados no gráfico:

M atlab R ápido e P rático

(2)

>> plot(x,y,'or');

>> title('Grafico de x^2');

O comando title adiciona como título do gráfico os caracteres que forem digitados entre aspas simples.

A tabela a seguir mostra os estilos de linha, marcadores e cores disponíveis para se construir o terceiro argumento do comando plot:

Símbolo Cor b Azul g Verde r Vermelho c Ciano

m Magenta

y Amarelo k Preto w Branco

Símbolo Marcador . Ponto o Círculo x Cruz

+ Sinal de Positivo

* Estrela ou asterisco s Quadrado

d Losango

v Triângulo para baixo

^ Triângulo para cima

< Triângulo para esquerda

> Triângulo para direita p Pentagrama

h Hexagrama

Símbolo Cor

- Linha contínua : Linha pontilhada -. Traço e pontos -- Linha tracejada

Para se construir mais um gráfico de função simultaneamente, pode ser utilizada a seguinte seqüência de comandos:

>> x = -10:1:10;

>> y = x.^2;

>> z = x.^3;

>> plot(x,y,x,z,'-.r');

>> title('Graficos de x^2 e x^3');

Observe que a função cúbica foi desenhada com a cor vermelha (‘r’) e estilo de linha tracejado com traços e pontos, porém a função quadrática utilizou a combinação default do MATLAB que é a cor azul (‘b’) com linha contínua (‘-’). Se uma cor não for especificada o MATLAB segue ciclicamente pelas sete primeiras cores da tabela para cada nova curva.

Para especificar diferentes cores e marcadores para vários gráficos construídos com um único comando plot:

>> plot(x,y,'b:p',x,z,'c-',x,1.2*z,'m+');

Tarefa relâmpago1:

Criar uma espiral de arquimedes

empregando as

seguintes equações em coordenadas polares:

x = r * cos( ) y = r * sin( )

Utilize a= 1 e b = 2, bem como os comandos plot e comet.

Tarefa relâmpago2:

Criar em um mesmo gráfico duas cardióides

empregando as

seguintes equações em coordenadas polares:

x = cos( ) + 0.5*cos( )

y = sin( )+0.5 * sin( )

z = sin( )-0.5 * sin( )

Utilize o comando plot

para desenhar em um

mesmo gráfico: x por y e

x por z.

(3)

A.T.Azevedo 3 Informação

complementar:

Para se construir mais de um gráfico de função em uma mesma figura, o comando hold on pode ser utilizado.

A seqüência anterior ficaria:

>> plot(x,y,'b:p');

>> hold on;

>> plot(x,z,'c-');

>> plot(x,y,'m+');

Se um dos argumentos for uma matriz e o outro um vetor, o comando plot representa cada coluna da matriz versus o vetor:

>> W = [y;z;1.2*z];

>> plot(x,W);

>> title('Grafico de y, z e 1.2*z');

Observe que, neste caso, não é possível especificar as cores e o estilo da linha para cada função, sendo que o MATLAB faz isto de acordo com seu padrão default.

Informação complementar:

O gráfico acima também poderia ter sido

obtido sem a

especificação dos valores de x. Neste caso, o MATLAB irá supor que para cada elemento de uma linha de W corresponde ao vetor x=0:1:21:

>> plot(W');

>> title('Grafico de y, z e 1.2*z');

Se a ordem dos argumentos for mudada, então, o gráfico será girado em 90

o

graus:

>> plot(W,x);

>> title('Grafico com giro de 90 graus de y, z e 1.2*z');

O comando grid on adiciona linhas de grade ao gráfico atual e o comando grid off remove a grade. Os eixos horizontais e verticais podem ser nomeados com os comandos xlabel, ylabel e, para o caso tridimensional, zlabel:

>> plot(x,y,'b:p',x,z,'c-',x,1.2*z,'m+');

>> title('Graficos de y, z e 1.2*z');

>> xlabel('Eixo x');

>> ylabel('Eixo y');

>> grid on;

Os comandos text e gtext podem adicionar um texto em qualquer lugar da figura. O comando text(x,y,’Algum1’) coloca o texto “Algum1”, cujo início está na posição (x,y) do gráfico. Já para

o comando gtext(‘Texto2’) a especificação da posição (x,y) é feita por meio do mouse.

>> text(0,250,'Algum1');

>> gtext('Texto2');

Aplicando esta seqüência de comandos ao gráfico anterior, o gráfico terá as seguintes adições:

Para adicionar legendas das funções em um gráfico basta utilizar o comando legend:

>> legend('y','z','1.2*z');

Para controlar as proporções dos eixos de uma figura existe o comando axis.

Os muitos usos deste comando são descritos na seguinte tabela:

Comandos Descrição axis([xmin

xmax ymin ymax])

Define os valores máximo e mínimo dos eixos.

axis auto Retorna o escalamento de eixos para o modo automático.

axis(axis) Congela a escala nos

seus limites atuais.

(4)

axis xy Usa coordenadas cartesianas.

axis ij Usa coordenada

matricial, onde a origem do sistema encontra-se no canto superior esquerdo.

axis square O gráfico atual se torna um quadrado e não um retângulo.

axis equal O fator de escalamento para ambos os eixos é igualado.

axis normal Desliga axis equal e axis square.

axis off Desliga todos os nomes de eixos e grades e marcadores.

axis on Liga nomes de eixos, marcadores e grade.

Para criar dois ou mais gráficos em janelas distintas basta usar o comando figure(n), onde n é o número da nova janela. Ele cria uma nova janela gráfica que automaticamente será a janela ativa.

Uma mesma janela de figuras, por outro lado, pode conter mais de um conjunto de eixos. O comando subplot(m,n,p) subdivide a janela atual em matriz m por n áreas gráficas e faz com que a p- ésima área fique ativa. Os subgráficos são numerados da esquerda para a direita, ao longo da linha superior, continuando ao longo da segunda linha e assim sucessivamente até a última linha.

A seqüência de comandos apresentada a seguir fornece uma idéia da utilização do comando subplot:

>> x = -10:0.1:10;

>> y = x.^2;

>> z = 1.2*y;

>> subplot(2,2,1)

>> plot(x,y,'-r');

>> title('Funcao x^2');

>> xlabel('Eixo x');

>> ylabel('Eixo y');

>> subplot(2,2,2)

>> plot(x,z,':b');

>> title('Funcao 1.2*x^2');

>> ylabel('Eixo y');

>> xlabel('Eixo x');

>> subplot(2,2,3);

>> plot(x,5*y,'-.m');

>> title('Funcao 5*x^2');

>> xlabel('Eixo x');

>> ylabel('Eixo y');

>> subplot(2,2,4);

>> plot(x,x.^3,'-g');

>> grid on;

>> xlabel('Eixo x');

>> ylabel('Eixo y');

>> title('Funcao x^3');

Para retomar à formatação padrão, uma janela inteira com um único conjunto de eixos, basta usar o comando subplot(1,1,1).

Um comando muito útil para construção de estatísticas é o comando hist(v,n), pois constrói um histograma com os valores, contidos no vetor v, e distribuídos em, no máximo, n grupos.

Caso n seja omitido, então, o MATLAB irá considerar que n = 10.

>> v = [1 2 3 4 1 2 3];

>> hist(v);

Para construir uma figura com as probabilidades de ocorrência de um conjunto de eventos, pode ser usado o comando pie:

>> t = [30 20 10 20 15 5];

>> pie(t,{'Evento 1','Evento 2','Evento 3','Evento 4','Evento 5','Evento 6'});

>> title('Probabilidade de cada Evento');

Outras possibilidades de comandos para gerar gráficos, e que possuem a mesma sintaxe do comando plot, são dadas na tabela a seguir:

Comando Descrição plot Plotagem linear.

loglog Plotagem com escala log- log.

semilogx Plotagem com escala mono- log, eixo dos x logaritmo.

semilogy Plotagem com escala mono- log, eixo dos y logaritmo.

hist Histograma.

bar Gráfico de barras.

comet Gráfico animado tipo cometa.

compass Gráfico de bússola.

errorbar Gráfico de barras de erro.

feather Gráfico de pena.

polar Gráfico de coordenadas polares.

rose Histograma angular.

stairs Gráfico de escala.

stem Gráfico de haste para dados

seqüenciais discretos.

(5)

A.T.Azevedo 5 Um último comando dos gráficos

bidimensionais que merece destaque é o fplot. Este comando oferece uma maneira de se construir o gráfico de uma função de uma variável, entre limites especificados, sem a necessidade de criação de um conjunto de dados para a variável. O comando fplot(‘fun’,[xmin xmax]) cria um gráfico da função fun(x) sobre o intervalo [xmin, xmax], com escalamento automático do eixo y. Para especificar também o intervalo em y, basta utilizar fplot(‘fun’,[xmin xmax ymin ymax]).

>> f = 'x.^2*cos(x) + x';

>> fplot(f,[-10 10]);

>> grid on;

>> title('Grafico da funcao x^2*cos(x) + x');

>> xlabel('Eixo x');

>> ylabel('Eixo y');

CONSTRUÇÃO DE GRÁFICOS 3-D Para construir gráficos tridimensionais existe o comando plot3, cuja sintaxe é similar ao do comando plot, excetuando o acréscimo de uma terceira coordenada.

>> t=0:pi/100:50*pi;

>> plot3(sin(t),cos(t),t,':r');

>> grid on;

>> title('Helice Circular');

>> ylabel('Eixo cos(t)');

>> xlabel('Eixo sin(t)');

>> zlabel('Eixo t');

Para os gráficos 3D também é possível inserir comentários, utilizando os comandos gtext, text e axis. É importante lembrar que o caso 3D exige três coordenadas.

Para construir superfícies, o MATLAB utiliza a mesma metodologia que o comando plot utiliza para construir gráficos. A partir das coordenadas 3D de alguns pontos, o MATLAB define uma “malha” que liga estes pontos:

>> x = linspace(-10,10,100);

>> y = x;

>> [X,Y] = meshgrid(x,y);

>> Z = (X.^4).*cos(Y);

>> mesh(X,Y,Z);

Basicamente, x e y são vetores cujos valores foram gerados pelo comando linspace. A partir dos valores de x e y, são geradas duas matrizes: X e Y. As linhas da matriz X são copias do vetor x, e a mesma coisa é válida para a matriz Y. Para cada ponto ( X

ij

, Y

ij

)

será calculado o valor Z

ij

por meio de uma expressão matemática que relacione z com x e y (z = f(x,y)).

Ao se utilizar o comando mesh(X,Y,Z), os valores dos eixos x e y serão automaticamente ajustados de acordo com os valores contidos nas matrizes X e Y. Observe a inserção de uma grade sem o uso do comando grid on.

>> meshc(Z);

>> grid off;

Da seqüência de comandos anterior:

 Para retirar a grade default dos gráficos 3D é necessário usar, logo após o comando mesh, o comando grid off.

 Sem especificar as matrizes X e Y, os eixos x e y ficam sem relação com os valores de X e Y fornecidos.

 Ao utilizar o comando meshc no lugar de mesh, as curvas de nível (ou de Tarefa relâmpago3:

Criar uma hélice circular empregando o comando comet3. O que acontece? Empregar x e y da equação da cardióde, usados na Tarefa relâmpago 2, na primeira e segunda coordenadas do gráfico.

Depois empregar o

comando hold on e usar

x e z da cardióde usados

na tarefa relâmpago 2.

(6)

contorno) são construídas em conjunto com o gráfico tridimensional.

Para construir gráficos com as curvas de contorno da função z projetada nos eixos x e y:

>> contour(X,Y,Z,70);

O comando anterior constrói as curvas de nível de z, escalando os eixos x e y de acordo com os valores contidos em X e Y. Além disso, um número de 70 curvas de contorno é utilizado para o gráfico.

Para preencher as curvas de contorno com uma cor associada a cada valor da função objetivo z:

>> contourf(X,Y,Z,40);

Muitos outros tipos de gráficos 3D podem ser construídos através dos comandos contidos na tabela a seguir.

Comando Descrição

plot3 Pontos e linhas em 3D.

comet3 Gráfico animado de cometa em 3D.

contour Gráfico de contorno.

contourf Gráfico de contorno com preenchimento.

contour3 Gráfico de contorno 3D.

pcolor Gráfico de pseudocores.

mesh Superfície 3D.

meshc Superfície 3D com gráfico de contorno.

surf Surfície 3D com preenchimento.

ribbon Gráfico de faixas 3D.

bar3 Gráfico de barra vertical 3D.

bar3h Gráfico de barra horizontal 3D.

pie3 Gráfico de pizza 3D.

ezplot3 Gráfico 3D a partir de equações paramétricas x(t), y(t) e z(t).

stem3 Gráficos de seqüências discretas no espaço 3D.

EXERCÍCIOS

(1) Defina a função

2 ).^

cos(

) 2 .^

sen( x x

y   . Usando

janelas distintas construa o gráfico da função por meio dos comandos plot e fplot. Compare os resultados.

(2) Em uma mesma figura, construa em diferentes eixos os gráficos a seguir (Dica: use o comando subplot):

(i) yx

3

 5 x  2 , x  [ 20 , 20 ] . (ii) y  sen( x ) cos( x ) ,

] 2 , 2 [   

x .

(iii) y  cos( e

x

) , x  [ 0 , 20 ] .

(iv) ye

(x35x2)

cos( x ) ,

] 10 , 0

 [

x .

(3) Use o comando plot para construir o gráfico do vetor:  ( t )  ( x ( t ), y ( t )) ,

onde: x ( t )  cos( t )( 2 cos( t  1 ) ,

) 1 ) cos(

2 )(

( )

( tsin t t

y e t   .

(4) Use o comando plot3 para construir o gráfico do seguinte vetor:

) ), sen(

), cos(

( )

( te

t

t e

t

t e

t

,

onde t   .

(5) Repita os exercícios (3) e (4), usando os comandos ezplot e ezplot3.

(6) O comando mesh desenha uma superfície 3D à partir dos dados fornecidos por uma matriz. Estude como o programa a seguir realiza isto na matriz Z.

x = -8:0.5:8;

y = x’;

X = ones(y)*x;

Y = y*ones(x);

R = sqrt(X.^2 + Y.^2) + eps;

Z = sin(R) ./ R;

mesh(Z);

(7) Qual a utilidade de se somar um valor eps na variável R do exercício (11)? Como será o gráfico resultante se, ao invés de se usar o comando mesh, o comando surf for usado ?

(8) Construa os gráficos das funções a seguir:

F(x,y) = x, y 

2

2

y

x[ 5 , 5 ]

2 / 1 2

2

)

1

(  xy [ 0 . 5 , 0 . 5 ] y

x  [ 0 , 1 ] )

( x

2

y

2

arctg[ 8 , 8 ] )

/(

)

( xy xy [ 10 , 10 ] )

/(

)

( xy x

2

y

2

[ 10 , 10 ] )

3 / cos(

) 2 /

sen( xy [   ,  ]

Referências

Documentos relacionados

75 do RICMS/CE, o prazo para recolhimento do imposto cujo vencimento ocorra em data em que, por qualquer motivo, não funcione agência bancária localizada no domicílio

Meta Final 11) identifica elementos do ambiente natural (exemplos: estados de tempo, rochas, acidentes orográficos, linhas de água, flora…) e social (exemplos:

1- A vida das comunidades recoletoras era muito difícil, devido ao frio intenso e aos animais ferozes, mas também porque era difícil encontrar comida e lugares onde se abrigarem.. 2-

Por vezes, o localizador necessita de alterar não só o texto como também possíveis imagens ou a forma como estas são apresentadas, sendo o exemplo mais óbvio o caso de

A participação nos conselhos escolares, disciplinares e de reuniões de colegiado de curso faz parte das atividades do pedagogo na Escola Técnica de Saúde da Universidade Federa

4 - Valores da Refl ectância Bidirecional (em fração, de 0 a 1) versus o comprimento de onda central da banda obtidos para a vegetação na imagem sem correção atmosférica e

Não houve diferença significativa para as variáveis comprimento de raízes comerciais e diâmetro de raízes comerciais; os clones 06 e 14 e a cultivar sergipana apresentaram

REQUISITOS VILA DO CONDE PÓVOA DE VARZIM PORTO VILA DO CONDE PORTO VILA DO CONDE MAIA LOCALIDADE N.º OFERTA OFERTAS DE EMPREGO.. Unidade Emissora: Data de Emissão N.º