Buscar

TP4 (2)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1TP4 Aplicacionais para Ciências e Engenharia
Aplicacionais para Ciências e 
Engenharia
Aula 4
2TP4 Aplicacionais para Ciências e Engenharia
Sumário
• Gráficos
– Gráficos 2D (cartesianos e de variável complexa)
– Gráficos 3D (linhas e superfície)
3TP4 Aplicacionais para Ciências e Engenharia
Gráficos 2D
4TP4 Aplicacionais para Ciências e Engenharia
– A função plot() permite criar gráficos. Na sua forma mais
simples temos:
x=0:2*pi/359:2*pi; % Quantos pontos?
y=sin(x);
plot(y);
– Para criarmos o gráfico de y=f(x) devemos
fazer:
plot(x,y); % numel(x)=numel(y)
– … e para legendar os eixos e colocar um título:
xlabel('x');ylabel('y=sin(x)');
title('Gráfico de sin(2*pi)')
Criar um gráfico
Neste caso temos o gráfico de sin(x), no intervalo [0,2π]
em que o eixo das abcissas tem valores de 1 a 360
(índices do vetor y)
0 100 200 300 400
-1
-0.5
0
0.5
1
0 2 4 6
x
-1
-0.5
0
0.5
1
Gráfico de sin(2*pi)
5TP4 Aplicacionais para Ciências e Engenharia
Criar vários gráficos numa janela
plot(x,sin(x),x,sin(x-pi/4),x,sin(x-pi/2))
legend('sin(x)','sin(x-pi/4)','sin(x-pi/2)’) % legenda
grid on % coloca uma grelha no gráfico
Neste caso adicionámos uma legenda para fácil identificação das curvas e
uma grelha
0 1 2 3 4 5 6 7
-1
-0.5
0
0.5
1
sin(x)
sin(x-pi/4)
sin(x-pi/2)
6TP4 Aplicacionais para Ciências e Engenharia
Especificação do tipo e cores
das linhas
7TP4 Aplicacionais para Ciências e Engenharia
Especificação do tipo e cores
das linhas
8TP4 Aplicacionais para Ciências e Engenharia
Especificação do tipo e cores
das linhas
9TP4 Aplicacionais para Ciências e Engenharia
Outras propriedades:
‒ FontSize Define o tamanho da letra no título, legenda e eixos
‒ LineWidth Define a espessura da linha
‒ MarkerEdgeColor Define a cor dos marcadores sem área definida ou do
contorno dos marcadores com área definida
‒ MarkerFaceColor Define a cor do preenchimento dos marcadores com uma
área definida
‒ MarkerSize Define o tamanho do marcador
Especificação do tipo e cores
das linhas
10TP4 Aplicacionais para Ciências e Engenharia
Exemplo:
Especificação do tipo e cores
das linhas
x=linspace(0,2*pi,20);
plot(x,sin(x),'-.r*')
hold on % Permite acrescentar mais gráficos na mesma janela
plot(x,sin(x-pi/4),':bs')
plot(x,sin(x-pi/2),'-mo',... % Permite continuar na linha
'LineWidth',2,... linha seguinte
'MarkerSize',10,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[.5 1 .6])
legend('sin(x)','sin(x-pi/4)',...
'sin(x-pi/2)','FontSize',15)
hold off
0 1 2 3 4 5 6
-1
-0.5
0
0.5
1
sin(x)
sin(x-pi/4)
sin(x-pi/2)
11TP4 Aplicacionais para Ciências e Engenharia
– A abertura de uma janela gráfica pode ser feita com a função plot() ou
com outras funções que criam gráficos de outro tipo
– O Matlab permite criar janelas “vazias”, e adicionar o(s) gráfico(s) a
posteriori
Exemplo:
Criar várias janelas gráficas
figure, figure, figure
% São criadas 3 janelas gráficas
% A última criada é a janela ativa
figure(1)
% A janela ativa passa a ser a 1 
close(2)
% Fecha a janela 2
close all
% Fecha todas as janelas gráficas
12TP4 Aplicacionais para Ciências e Engenharia
Subgráficos
– A função subplot(m,n,p) permite
criar uma janela gráfica numa
configuração semelhante a uma matriz
de linhas e colunas sendo que a
posição p, neste caso, é obtida por
linhas, ao contrário do que acontece
numa matriz.
Exemplo:
x=linspace(-pi,pi); % 100 pontos
subplot(2,3,1) % p=1
plot(x,sin(x))
subplot(2,3,4) % p=4
plot(x,cos(x))
subplot(2,3,2) % p=2
x=(-pi/2)+0.01:0.01:(pi/2)-0.01;
plot(x,tan(x))
subplot(2,3,5) % p=5
x1=-pi+0.01:0.01:-0.01;
x2=0.01:0.01:pi-0.01;
plot(x1,cot(x1),x2,cot(x2))
subplot(2,3,3) % p=3
x1=-pi/2+0.01:0.01:pi/2-0.01;
x2=pi/2+0.01:0.01:(3*pi/2)-0.01;
plot(x1,sec(x1),x2,sec(x2))
subplot(2,3,6) % p=6
x1=-pi+0.01:0.01:-0.01;
x2=0.01:0.01:pi-0.01;
plot(x1,csc(x1),x2,csc(x2))
-2 0 2
-1
-0.5
0
0.5
1
-2 0 2
-1
-0.5
0
0.5
1
-2 0 2
-100
-50
0
50
100
-2 0 2
-100
-50
0
50
100
0 2 4
-100
-50
0
50
100
-2 0 2
-100
-50
0
50
100
p=2p=1 p=3
p=4 p=5 p=6
p=2p=1 p=3
p=4 p=5 p=6
13TP4 Aplicacionais para Ciências e Engenharia
Limites e marcas dos eixos
‒ O Matlab ajusta os limites dos eixos e marcas de forma a exibir o gráfico
de forma clara
‒ Também permite a sua personalização através de funções dedicadas:
axis(), xlim(), ylim() e zlim() para gráficos 3D
x=(-pi/2)+0.005:0.01:(pi/2)-0.005;
plot(x,tan(x)) % Gráfico 1
axis([-pi/2,pi/2,-3,3]) % xmin,xmax,ymin,ymax
% Gráfico 2
axis auto % repõe formatação anterior
grid on % coloca a grelha
grid off % retira a grelha
axis off % elimina os eixos
axis on % repõe os eixos
axis square % eixos x e y com o mesmo tamanho
axis equal % eixos x e y com a mesma escala
axis auto normal % repõe formatação original
xlim([xmin xmax])
ylim([ymin ymax])
zlim([zmin zmax]) % alteram os eixos x, y e z
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
-200
-150
-100
-50
0
50
100
150
200
-1.5 -1 -0.5 0 0.5 1 1.5
-3
-2
-1
0
1
2
3
Gráfico 1
Gráfico 2
14TP4 Aplicacionais para Ciências e Engenharia
Números complexos
• Um número complexo tem a forma
a+ib ou a+jb
a parte real
b parte imaginária
i,j unidade imaginária (sqrt(-1))
• Pode ser representado num plano complexo por um ponto
x=1; y=1 
z=x+j*y;
plot(x,y,'xk')
hold on
plot(z,'or') % marca o mesmo
ponto no plano
15TP4 Aplicacionais para Ciências e Engenharia
Funções matlab associadas a 
complexos
– real() Parte real do número complexo
– imag() Parte imaginária do número complexo
– angle() Ângulo (fase) do número complexo
– abs() Módulo do número complexo (mesmo
que distância de um ponto ao centro do
plano complexo)
z=3+4*i;
a=real(z);
b=imag(z);
fi=angle(z);
m=abs(z);
16TP4 Aplicacionais para Ciências e Engenharia
A formula de Euler
– A fórmula de Euler dada por:
é uma função periódica com período 2
– Facilita a representação de círculos (basta variar o
ângulo num período completo da função)
– O cálculo de distâncias entre pontos no plano
complexo é “mais fácil” do que no plano cartesiano
17TP4 Aplicacionais para Ciências e Engenharia
Gráficos de variável complexa
omega=linspace(0,2*pi)
c1=-1-i; % centros dos círculos
c2=2+3i;
z1=2*exp(i*omega)+c1; % 2 corresponde ao raio do círculo
z2=exp(i*omega)+c2;
plot(z1,'r') % ou plot(real(z1),imag(z1),'r')
hold on
plot(z2,'b') % plot(z1,z2) não é correto
plot(-1,-1,'*k',2,3,'*k',[-1 2],[-1 3],'-k')
% plot dos centros e reta que une os centros
text(1,1,'\leftarrow Distância') % ilustração no gráfico
%texto numa dada posição
grid,axis equal
distancia=abs(c1-c2)
% Em coordenadas cartesianas mais trabalhoso:
% distancia=sqrt((x2-x1)^2+(y2-y1)^2)
distancia =
5
18TP4 Aplicacionais para Ciências e Engenharia
Gráficos de variável complexa
-4 -2 0 2 4
-2
-1
0
1
2
3
 Distância
19TP4 Aplicacionais para Ciências e Engenharia
Outro tipo de gráficos
‒ O Matlab permite criar vários tipos de gráficos para aplicações
diversas
‒ Pode verificar todos os tipos se procurar no help do Matlab
por:
“Types of MATLAB Plots”
Podemos encontrar gráficos de linhas, histogramas, barras,
contorno, superfície, …
20TP4 Aplicacionais para Ciências e Engenharia
Gráfico stairs
• O tipo de gráfico deve ser criteriosamente escolhido em função
das características da grandeza que se pretende representar
Exemplo1:
Para fazer o gráfico de uma função de variável continua (caso do seno e do co-
seno) devemos usar o plot(). O plot() liga pontos seguidos com segmentos de
reta o que permite, mesmo com um número de pontos relativamente baixo, obter
um gráfico de boa qualidade
Para obter gráficos em que a função é discreta
por natureza (só se conhece a intervalos de
tempo fixos) o gráfico que melhor se ajusta é
obtido com a função stairs()
A sua utilização é em tudo semelhante à que
vimos para o plot()
Nota: Recomenda-se aos alunos que vejam no help
do Matlab esta função 0 1 2 3 4 5 6
-1
-0.5
0
0.5
1
21TP4 Aplicacionais para Ciências e Engenharia
Gráfico stairs
Exemplo2:
Podemostambém fazer vários gráficos usando matrizes para valores de
abcissas e ordenadas, desde que o número de pontos seja o mesmo
x1=linspace(0,2*pi)';
x2=linspace(0,3*pi)';
x3=linspace(0,4*pi)';
%100 pontos em cada gráfico
X=[x1,x2,x3];
% Valores por colunas
Y=[4*cos(x1),2*sin(x1),...
x3.*cos(2*x3)];
stairs(X,Y),grid
0 5 10 15
-15
-10
-5
0
5
10
15
22TP4 Aplicacionais para Ciências e Engenharia
-0.4
-0.2
0
0.2
0.4
0.6
0 10 20 30 40 50
Gráfico stem
• Outro gráfico especialmente indicado para dados discretos, como as
sequências de valores, é o stem()
Exemplo:
n=1:50;
un=(-1).^(n+1)./(n+sqrt(n));
stem(n,un,'r');
23TP4 Aplicacionais para Ciências e Engenharia
Gráfico semilogx
Existem gráficos que numa escala linear
apresentam uma variação (por década*)
cada vez menor (logarítmica). Nestes casos
devemos usar no gráfico uma escala
logarítmica para o eixo dos xx
Exemplo:
x=0:100:10000;
x(1)=1; % Como log(0)=-Inf
este ponto não aparece no 
gráfico.
Assim força-se um ponto em y=0
y=log(x); % ou log10
plot(x,y,'*r'),grid
figure
semilogx(x,y),grid
* Uma década corresponde a uma relação de valores 
igual a 10
24TP4 Aplicacionais para Ciências e Engenharia
Gráfico semilogy
… também existem gráficos que apresentam
uma variação (por década) cada vez maior.
Nestes casos devemos usar no gráfico uma
escala logarítmica para o eixo dos yy
Exemplo:
x=0:1:10;
y=exp(x); % ou 10.^x
plot(x,y,'*r'),grid
figure
semilogy(x,y,'r'),grid
0 2 4 6 8 10
0
0.5
1
1.5
2
2.5
104
25TP4 Aplicacionais para Ciências e Engenharia
Gráfico loglog
… e ainda existem gráficos que apresentam uma gama muito grande de
valores quer no eixo dos xx quer no eixo dos yy. Neste caso é conveniente
usar uma escala logarítmica em ambos os eixos
Exemplo:
x=logspace(-1,3,20);
y=exp(x);
loglog(x,y,'-s')
grid on
% Recomenda-se aos
alunos que consultem
o help do Matlab para
a função logspace
10-1 100 101 102 103
100
10100
10200
10300
26TP4 Aplicacionais para Ciências e Engenharia
Gráfico em décibeis (dBs)
‒ Existem várias grandezas que são expressas em escalas
logarítmicas: o decibel (dB), o neper (Np), a escala de Richter,
o pH, entre muitas outras
‒ O dB (décima do Bell) é uma medida da relação entre dois
valores, usado na eletrónica, telecomunicações e na física (um
dos exemplos é a medida da resposta do ouvido humano à
intensidade sonora que é medido em dBs)
‒ Uma das grandes vantagens em usar uma escala em dBs é que
a multiplicação/divisão de grandezas passa a ser feita com
somas/diferenças em dBs
27TP4 Aplicacionais para Ciências e Engenharia
Gráfico em décibeis (dBs)
  36 1010,10
1
1
)( 

 


i
iH
Exemplo:% Espaçamento linear
wlin = linspace(10,1e6,10);
Hlin = 1./(1 + wlin*1e-3*i); 
Amplin = 20*log10(abs(Hlin));
semilogx(wlin,Amplin,'-b*'); 
hold on
% Espaçamento logarítmico
wlog = logspace(1,6,10);
Hlog = 1./(1 + wlog*1e-3*i); 
Amplog = 20*log10(abs(Hlog));
semilogx (wlog,Amplog,'-ro');
axis([10 1e6 -60 0]); grid on
legend('linspace','logspace')
xlabel('\Omega (rad/s)')
ylabel('Atenuação (dB)')
28TP4 Aplicacionais para Ciências e Engenharia
Gráfico em décibeis (dBs)
101 102 103 104 105 106
 (rad/s)
-60
-50
-40
-30
-20
-10
0
linspace
logspace
29TP4 Aplicacionais para Ciências e Engenharia
Gráficos 3D
30TP4 Aplicacionais para Ciências e Engenharia
Gráfico plot3
• Os gráficos de linhas em 3D seguem todas as regras dos 2D
• Múltiplos gráficos podem combinar matrizes e vetores nas
coordenadas (pelo menos uma coordenada tem de ser uma
matriz)
Exemplo:
t = 0:pi/500:pi;
X(1,:) = sin(t).*cos(10*t);
X(2,:) = sin(t).*cos(12*t);
Y(1,:) = sin(t).*sin(10*t);
Y(2,:) = sin(t).*sin(12*t);
Z=cos(t);
plot3(X,Y,Z),axis off
31TP4 Aplicacionais para Ciências e Engenharia
Gráfico stem3
t=linspace(0,2*pi) % Gera t com 100 valores
X=[sin(t);4*sin(t)];
Y=[cos(t);4*cos(t)];
stem3(X,Y,2*ones(2,100));
axis equal
32TP4 Aplicacionais para Ciências e Engenharia
Gráficos de superfície
• Gráficos de superfície são gráficos de funções
matemáticas representados num espaço tri-
dimensional
• Representam superfícies que podem ser fechadas, isto
é, podem também representar volumes
• Os gráficos de superfície mais
comuns podem ser criados pelas
funções surf() e mesh()
• Um exemplo ilustrativo é o
próprio ícone do Matlab
33TP4 Aplicacionais para Ciências e Engenharia
Gráficos de superfície
• A criação de um gráfico de superfície não é possível sem
a correta utilização da função meshgrid()
• Para uma função , devemos usar:
[X,Y]=meshgrid(x,y)
onde x y são vetores e X Y são matrizes que definem uma
grelha sobre a qual a função é avaliada (plano X-Y)
• X é uma matriz em que cada linha é uma cópia de x
• Y é uma matriz em que cada coluna é uma cópia de y
• A grelha representada pelas coordenadas X e Y tem um
nº de linhas igual a length(y) e um nº de colunas igual a
length(x)
34TP4 Aplicacionais para Ciências e Engenharia
Gráficos de superfície
Exemplo:
x=1:8;
y=1:6;
[X,Y]=meshgrid(x,y);
plot(X,Y,'or'),grid
xlabel('\bfX')
ylabel('\bfY')
disp(X)
disp(Y)
1 2 3 4 5 6 7 8
X
1
2
3
4
5
6
35TP4 Aplicacionais para Ciências e Engenharia
Gráfico surf
Exemplo:
Gráfico de em que x e y são representados por
51 pontos, ambos no intervalo
x=linspace(-3,3,51);
y=linspace(-3,3,51);
[X,Y]=meshgrid(x,y);
% Cálculo da função
exp1=-((X+1).^2 + (Y+1).^2);
exp2=-5*((X-1).^2 +(Y-1).^2);
fxy=2*exp(exp1)+exp(exp2);
% Gráfico de superfície
surf(X,Y,fxy)
axis tight
% Ajusta os eixos aos limites de x,y,fxy
36TP4 Aplicacionais para Ciências e Engenharia
Gráfico surf
Notas:
− Em qualquer janela gráfica, as propriedades dos gráficos
produzidos podem sempre ser alteradas
− Sugere-se que, após rotação,
tentem obter uma figura
semelhante à mostrada ao
lado
− Estas alterações podem ser
adicionadas através de:
colormap jet
colorbar
37TP4 Aplicacionais para Ciências e Engenharia
Gráfico surf
• Podemos ainda alterar o tipo de preenchimento das
áreas da superfície do gráfico:
shading flat
shading interp
shading faceted
38TP4 Aplicacionais para Ciências e Engenharia
Gráfico mesh
• A função mesh() é em tudo semelhante à função surf(),
sem o preenchimento das áreas da superfície
mesh(X,Y,fxy)
axis tight
colormap jet
box on
ax=gca; %returns the 
current axes or chart for the 
current figure
ax.BoxStyle='full'
0.5
-3 2
1
-2
1.5
-1 00 1 -22 3
% current axes
39TP4 Aplicacionais para Ciências e Engenharia
Gráfico pcolor
• A função pcolor() cria um gráfico de pseudo cor com
informação dos valores da função através de cores
z=peaks; % Função implicita no Matlab 
surf(z)
axis off
z=peaks;
pcolor(z)
shading interp
axis off
colorbar
40TP4 Aplicacionais para Ciências e Engenharia
Gráfico contour
• A função contour() cria um gráfico de contorno planar
(curvas de nível ou cortes) com informação dos valores da
função através de cores
z=peaks;
contour(z,20)
shading interp
axis off
colorbar
41TP4 Aplicacionais para Ciências e Engenharia
Sobreposição de gráficos
• Podemos juntar gráficos de contorno com gráficos de pseudo
cor e legendar os contornos para uma mais fácil interpretação
z=peaks;
pcolor(z)
shading interp
hold on
[c,h]=contour(z,10,'k');
% 10 linhas de contorno
clabel(c,h) %Legenda contorno
axis image %same length; axes box 
tightly
axis off

Outros materiais