Você está na página 1de 25

Matlab - Manual para a Disciplina de

Desenho Assistido por Computador

MESTRADO INTEGRADO EM ENG. ELECTROTÉCNICA E DE COMPUTADORES

Departamento de Engenharia Electrotécnica


2009
Índice

1 Introdução 5

1.1 Área de Trabalho 5

1.2 Bibliotecas do Matlab 5

1.3 Comandos Básicos de Matlab 6

2 Tipos de dados em Matlab 7

2.1 Matrizes 7

2.2 Constantes do Matlab 9

2.3 Variáveis do Matlab 9

2.4 Exemplos 9

3 Programação em Matlab 11

3.1 Expressões 11

3.2 Operações Básicas Sobre Matrizes 11

3.3 Controlo da Sequência do Programa 12

3.4 Funções Elementares 15

3.5 Exemplo 16

4 Ficheiros 17

4.1 O Editor do Matlab 17

4.2 Guardar Variáveis em Ficheiros 18

4.3 Ler Variáveis de Ficheiros 18

5 Visualização de Dados 19

5.1 Gráficos a Duas Dimensões 19

5.2 Gráficos a Três Dimensões 20

6 Bibliografia 25

3
1 Introdução
De acordo com os seus autores, o Matlab (de MATrix LABoratory) é uma linguagem de alto
desempenho para computação técnica, sendo vocacionado para aplicações tão diversas como
programação, desenvolvimento de algoritmos, aquisição de dados, modelização, simulação,
prototipagem, análise de dados, e desenvolvimento de interfaces gráficas, entre outras.

De facto, o Matlab é uma ferramenta poderosa no âmbito da Engenharia Electrotécnica, mais


concretamente na sua vertente de Desenho Assistido por Computador, englobando um
ambiente de desenvolvimento, vastas bibliotecas de funções matemáticas, uma linguagem de
programação de alto nível, e extensas possibilidades a nível gráfico.

O presente manual pretende servir apenas de breve introdução a esta ferramenta, estando
disponível na internet uma completíssima bibliografia (www.mathworks.com) para quem deseje
ou necessite de tirar partido das inúmeras possibilidades que oferece o Matlab.

Existem, principalmente a partir da sua versão 6, várias formas de aceder a certos comandos ou
funções do Matlab, seja através de ícones, seja através de menus. Deixa-se contudo ao leitor a
tarefa de explorar este aspecto.

1.1 Área de Trabalho

A área de trabalho é parte constituinte do ambiente de desenvolvimento, assim como a linha de


comandos, e contém as variáveis criadas durante a sessão de Matlab. Para se visualizar todas
estas variáveis, deve-se introduzir na linha de comando:
>> who

Este comando mostra todas as variáveis criadas pelo utilizador, pelo que no início de uma sessão
não retornará nada, uma vez que nenhuma foi ainda criada. Note-se que os caracteres >>
indicam o início da linha de comando (prompt), não constituindo parte do comando em si. Por
esta razão, e visando evitar equívocos, deste ponto em diante esses caracteres serão omitidos.

A janela onde se encontra a linha de comandos é chamada a janela de comandos (command


window). O Matlab permite aceder ao historial de comandos introduzidos através das setas cima e
baixo. Para se ir directamente para um comando já introduzido, pode-se escrever a sua primeira
letra e então carregar na tecla cima.

1.2 Bibliotecas do Matlab

O Matlab apresenta uma série de comandos, operadores e funções primitivas, organizadas por
categorias, assim como rotinas específicas de diversas áreas da engenharia, organizadas em
bibliotecas (toolboxes). Estas categorias e bibliotecas são designadas por tópicos primários. O
comando
help

permite visualizar todos estes tópicos, que correspondem a directorias do Matlab.

Alguns tópicos primários são:

general comandos gerais

5
ops operadores e caracteres especiais

control biblioteca de sistemas de controlo

daq biblioteca de aquisição de dados

signal biblioteca de processamento de sinais

nnet biblioteca de redes neuronais

pde biblioteca de equações às diferenças parciais

optim biblioteca de optimização

stats biblioteca de estatística

Outras bibliotecas abrangem campos tão variados como aquisição e processamento de imagem,
bio-informática, telecomunicações, finanças, lógica difusa, matemática simbólica, identificação
de sistemas e realidade virtual.

O comando
help item

fornece informação específica acerca de item. Se este for um tópico primário, então visualizar-
-se-ão os conteúdos do tópico, se for um comando, então será mostrada informação detalhada
sobre este.

1.3 Comandos Básicos de Matlab

Alguns comandos básicos de Matlab são

clear apaga todas as variáveis do espaço de trabalho

clc limpa a janela de comandos

ver informação sobre a versão de Matlab utilizada

demo permite visualizar demonstrações do Matlab

O operador percentagem, %, permite inserir comentários após comandos do Matlab. Tudo o que
esteja à direita desse operador será ignorado.

6
2 Tipos de dados em Matlab
2.1 Matrizes

Em Matlab os dados são armazenados essencialmente como matrizes. Desta forma, pode-se
pensar em alguns casos particulares, nomeadamente as matrizes 1x1 – escalares – ou as
formadas só por uma linha ou uma coluna – vectores. Alguns exemplos de matrizes são:

4 3 1 
Matriz A, 2x3: A   
5 7 0 

Escalar b, ou matriz 1x1: b  0,5

Matriz linha c, 1x4: c  3 4 2 8

Existem várias formas de especificar matrizes, para que se possa, posteriormente, manipulá-las.
Pode-se introduzir todos os valores dos seus membros, lê-las a partir de ficheiros, ou criá-las
através de funções, sejam estas do Matlab sejam definidas pelo utilizador.

Para introduzir explicitamente a matriz A anteriormente definida, devem-se usar parêntesis


rectos a delimitar os seus elementos. Estes serão separados por espaços dentro da mesma
linha, sendo estas finalizadas por ponto e vírgula. Ou seja, na linha de comando do Matlab
introduzir-se-ia:
A=[4 3 1; 5 7 0];

O ponto e vírgula no final da instrução impede que o Matlab mostre os dados introduzidos.
Caso não se coloque, seria visualizado o seguinte:
A =
4 3 1
5 7 0

2.1.1 Matrizes Elementares

O Matlab tem definidas algumas funções que criam matrizes elementares (tópico elmat,
matrizes elementares e manipulação de matrizes).

Existem, por exemplo:

zeros: cria uma matriz em que todos os elementos são nulos. As possíveis formas são

zeros(N): matriz NxN de zeros

zeros(N,M): matriz NxM de zeros

ones: cria uma matriz em que todos os elementos são a unidade. Admite as mesmas formas
da função zeros.

7
eye: matriz identidade

eye(N): matriz identidade NxN

eye(N,M): matriz NxM, com 1 na diagonal e 0 nos outros elementos

2.1.2 Acesso a Elementos Individuais numa Matriz

Para aceder ao elemento da linha i, coluna j, basta simplesmente introduzir o comando A(i,j).
Assim, com A(1,2)e A(2,3) obter-se-ia, respectivamente, 3 e 0.

Caso se queira aceder a um elemento fora das dimensões da matriz, o resultado será uma
mensagem de erro. Por outro lado, se se definir um novo elemento, numa posição que exceda as
dimensões da matriz, então esta será redimensionada, por forma a incluir esse novo elemento,
sendo as novas posições preenchidas com 0. Por exemplo, fazendo A(3,5)=5, resulta em:
A =

4 3 1 0 0

5 7 0 0 0

0 0 0 0 5

2.1.3 O Operador :

O operador : (dois pontos) tem uma função muito abrangente em Matlab. Por exemplo, a
instrução
d = 1:10

cria uma matriz d, linha, em que os seus elementos são


1 2 3 4 5 6 7 8 9 10

Para se obter um espaçamento não unitário entre elementos, por exemplo 0,1, desde 1 até 2,
deve-se fazer:
d = 1:0.1:2

obtendo-se
1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00

Note-se que as casas decimais são separadas por um ponto. O operador : também pode ser
utilizado para aceder a porções de uma matriz. Se se quisesse obter a primeira linha da matriz A,
após a redefinição do ponto anterior, far-se-ia:
A(1,:)

obtendo-se
4 3 1 0 0

Para se obter a porção entre a segunda e quarta colunas, na segunda linha, o comando seria:

8
A(2,2:4)

e o resultado
7 0 0

2.2 Constantes do Matlab

O Matlab fornece algumas constantes muito úteis, nomeadamente:

pi : 3.14159265358979

i : unidade imaginária, 1

j : o mesmo que i

eps : precisão relativa da vírgula flutuante, isto é, a distância de 1 ao próximo decimal

realmin : menor número decimal definido

realmax : maior número decimal definido


Inf : infinito, valor que é gerado após uma divisão por zero ou numa operação que
excede realmax

NaN : Not-a-number, valor gerado quando se tenta calcular 0/0 ou Inf/Inf

2.3 Variáveis do Matlab

O Matlab cria automaticamente a variável ans (de ANSwer), que guarda o valor da última
expressão calculada, quando este não tiver sido atribuído a nenhuma outra variável.

2.4 Exemplos

Apresentam-se a seguir alguns exemplos de aplicação dos conceitos estudados.

Criação de um vector teta com valores entre 0 e 2*, em intervalos de /4

teta=0:pi/4:2*pi

Definição do complexo 5+j9

5+9j ou 5+9i

Criação de uma matriz de 5x6 com -6 em todos os elementos

-6*ones(5,6)

9
3 Programação em Matlab
A programação em Matlab é simultaneamente simples e poderosa. Abrange diversos aspectos
(Simulink, Graphical User Interfaces), mas aqui será apenas referida a programação através da linha
de comando.

3.1 Expressões

As expressões em Matlab podem envolver matrizes inteiras, ao invés de obrigar a trabalhar


apenas elemento a elemento, como acontece em muitas linguagens de programação.

3.1.1 Variáveis

As variáveis em Matlab não necessitam de ser explicitamente declaradas, pois, como se viu
anteriormente, são geralmente do tipo matriz (de reais e/ou complexos). O seu nome forma-se
com uma letra, seguida de um qualquer número de letras, dígitos ou travessão inferior
(underscore). É feita a distinção entre maiúsculas e minúsculas.

3.1.2 Números

Os números podem ser introduzidos como inteiros (apenas dígitos), como negativos (com um
sinal de “menos” a precedê-los), como decimais (com um ponto a separar a parte inteira da parte
fraccionária), como complexos (seguidos de i ou j), ou em notação científica (em que as
potências de 10 se indicam com a letra e). Assim, pode-se ter, por exemplo:
2546 -465.003 4.643 87i 343.54j 1.5e-5

3.1.3 Operadores Aritméticos

Os operadores aritméticos, definidos com as precedências habituais, são a soma (+), a subtracção
(-), a multiplicação (*), a divisão (/), e a potenciação (^).

3.2 Operações Básicas Sobre Matrizes

Ao contrário de outras linguagens de programação, o Matlab permite realizar operações sobre


matrizes inteiras com comandos simples.

Transposta

A transposta da matriz A obtém-se pelo operador apóstrofe. Assim, para a matriz anteriormente
definida, o comando
A'

tem como resultado


4 5 0

3 7 0

1 0 0

0 0 0

0 0 5

11
Inversa

A inversa é dada pela função inv. Se H for uma matriz quadrada (note-se que não se podem
inverter matrizes não quadradas) de determinante não nulo, então
inv(H)

fornece a matriz que multiplicada à esquerda ou à direita por H resulta na matriz identidade.
Note-se que a divisão de duas matrizes quadradas da mesma dimensão, por exemplo H/G,
corresponde à expressão H*inv(G).

Determinante

O determinante da matriz quadrada H é dado por


det(H)

Dimensão

A dimensão da matriz A obtém-se através de


size(H)

A resposta será o número de linhas e de colunas.

Operadores

Os operadores que podem ser aplicados a matrizes incluem, além da adição, subtracção,
multiplicação e divisão, a multiplicação elemento a elemento (.*), a divisão elemento a elemento
(./), e a potenciação elemento a elemento (.^). Por exemplo, a multiplicação elemento a
elemento significa que o resultado de
Z=X.*Y

será uma matriz Z, em que cada elemento Z(i,j) é dado por


Z(i,j)=X(i,j)*Y(i,j)

e não pela regra habitual de multiplicação de matrizes, que equivaleria à expressão


Z=X*Y

3.3 Controlo da Sequência do Programa

O Matlab apresenta diversos comandos para controlar a sequência dos programas, como por
exemplo os ciclos for ou o teste de condições if.

3.3.1 Ciclos

Os ciclos permitem repetir instruções um número pré-determinado de vezes, ou até que uma
condição se verifique.

12
Ciclo for

Este ciclo consiste em atribuir um valor inicial a uma variável, executar instruções especificadas,
e incrementar a variável, ou de 1, por defeito, ou de um passo determinado. Isto repete-se até
que seja atingido ou ultrapassado um valor final permitido. O ciclo termina com a instrução
end., e a sua sintaxe é:

for variável = valor_inicial : [passo :] valor_final,

{instruções}

end

Como referido, caso o passo não seja especificado, terá, por defeito, valor unitário.

Por exemplo, para preencher um vector p de dez elementos com uma sequência de potências de
2 (não esquecer que a posição genérica i do vector p se acede através de p(i)), poder-se-ia
fazer:
for i = 1 : 10,

p(i) = 2^(i-1);

end

O vector p seria assim constituído por:

1 2 4 8 16 32 64 128 256 512

Para construir um vector de 100 elementos representando dois períodos de uma sinusóide, ter-
se-ia, por exemplo:
wt = 0 : 4*pi/99 : 4*pi % cria um vector de 100 pontos

% equidistantes, de 0 a 4*pi

for i = 1 : 100,

s(i) = sin(wt(i)); % a função ‘sin’ devolve o seno do argumento

end

Note-se que este exemplo pretende ser apenas meramente ilustrativo do funcionamento do ciclo
for, já que o vector s poderia ter sido criado, de forma mais compacta, através de:

s = sin(wt)

O vector s está representado na Figura 3-1.

Comandos Relacionados

Outros comandos relacionados com ciclos, que se deixa a cargo do leitor a tarefa de descortinar
o seu funcionamento, são os comandos while, continue, e break.

13
1

0.8

0.6

0.4

0.2

−0.2

−0.4

−0.6

−0.8

−1
0 2 4 6 8 10 12

Figura 3-1: Sinal sinusoidal

3.3.2 Testes Lógicos

Os testes lógicos consistem na avaliação do valor ou estado de expressões, e na execução de


instruções conforme esse valor ou estado.

Teste if

O teste if avalia uma expressão e executa um grupo de instruções se essa for verdadeira. As
instruções a executar se a expressão tiver valor lógico falso podem opcionalmente ser definidas
através do comando else. O comando end termina o teste, cuja sintaxe é:
if expressão

{instruções_se_expressão_verdadeira}

else

{instruções_se_expressão_falsa}

end

Por exemplo, para o vector s anteriormente definido, se se quisesse definir a sinusóide só nos
semi-ciclos positivos, e nos negativos forçá-la a zero (sinusóide simplesmente rectificada), a sua
definição passaria a ser, por exemplo:
for i=1:100,

a=sin(wt(i)); % variavel auxiliar

if a>0 % testa se o valor calculado e’ positivo

s(i)=a;

else % caso em que o valor e’ menor ou igual a 0

s(i)=0;

end

end

14
1

0.8

0.6

0.4

0.2

−0.2

−0.4

−0.6

−0.8

−1
0 2 4 6 8 10 12

Figura 3-2: Sinusóide simplesmente rectificada

A sinusóide simplesmente rectificada está representado na Figura 3-2.

Comandos Relacionados

switch

3.4 Funções Elementares

O Matlab tem definidas várias funções elementares no tópico elfun (de ELementary FUNctions),
de que a seguir se referem alguns exemplos.

Funções Trigonométricas

sin(X) seno, em radianos, dos elementos da matriz X

cos(X) coseno, em radianos, dos elementos da matriz X

tan(X) tangente, em radianos, dos elementos da matriz X

Exponenciais e Logaritmos

exp(X) exponencial dos elementos da matriz X; se X for uma matriz de


complexos, X=A+jB, então retorna exp(A)*(COS(B)+i*SIN(B))

log(X) logaritmo natural dos elementos da matriz X

log10(X) logaritmo de base 10 dos elementos da matriz X

sqrt(X) raiz quadrada dos elementos da matriz X

Outras Funções

abs(X) valor absoluto dos elementos da matriz X; se X for uma matriz de


complexos, então retorna a magnitude ou módulo dos elementos
de X

angle(X) fase, em radianos, dos elementos da matriz de complexos X

15
real(X) parte real dos elementos da matriz de complexos X

imag(X) parte imaginária dos elementos da matriz de complexos X

3.5 Exemplo

Serão agora apresentados um conjunto de instruções que permitem criar as funções


t

y 1 t   e   cost 
t

y 2 t   e 

t

y 3 t   e 

Estas funções, como terá oportunidade de verificar noutras disciplinas do curso, estão
intimamente ligadas com a resposta de circuitos eléctricos com uma resistência, uma bobina e
um condensador (circuitos RLC).
t=0:0.1/999:0.1 % cria vector de tempo, com 1000 elementos

tau=0.02; w=2*pi*50; % variáveis auxiliares ‘tau’ e ‘w’

for i=1:1000,

y1(i)=exp(-t(i)/tau)*cos(w*t(i));

y2(i)=exp(-t(i)/tau);

y3(i)=-exp(-t(i)/tau);

end

As funções obtidas estão representadas na Figura 3-3.

y2

y1

y3

Figura 3-3: Funções representando a resposta de um circuito RLC

16
4 Ficheiros
A utilização e gestão de ficheiros em Matlab apresenta aspectos muito importantes. A
programação através da linha de comandos pode-se tornar exasperante, pois um simples engano
num carácter pode tornar inúteis os comandos anteriormente introduzidos, se se estiver, por
exemplo, a meio de um ciclo. Este problema é ultrapassado se os comandos forem gravados
num ficheiro, e este corrido a partir do Matlab. Por outro lado, os valores de determinadas
variáveis de interesse, ou de todo o espaço de trabalho, podem ser guardadas e utilizadas
posteriormente.

4.1 O Editor do Matlab

O editor do Matlab permite não só a criação de ficheiros com código de programação, mas
também correr os programas e fazer a sua depuração (debug).

Um ficheiro de Matlab é criado através do comando edit. Este comando, por si só, abre um
editor, onde se pode escrever um programa, para posterior utilização. O comando
edit nome

abre o ficheiro nome.m para ser editado. Para correr um programa gravado num ficheiro, basta
introduzir na linha de comando o seu nome, neste caso:
nome

Note-se que é necessário que a directoria de trabalho coincida com aquela onde está o ficheiro
(ou que esta esteja indicada na path). Na Figura 4-1 apresenta-se o editor do Matlab aberto para
um ficheiro existente.

Figura 4-1: Editor do Matlab

17
4.1.1 Gestão de Directorias

Para se saber qual a directoria de trabalho, introduz-se


cd

Este comando permite ainda as seguintes possibilidades:

cd .. muda para a directoria (ou pasta, ou folder) imediatamente acima;


repare que deve sempre existir um espaço entre o comando cd e
qualquer opção a seguir

cd direct muda para a subdirectoria direct, que se encontra dentro da


directoria de trabalho actual

cd \ muda para a directoria raiz (root)

cd d: muda para o disco d

Se a directoria incluir caracteres especiais (espaços, acentos, etc.), então deverá ser usada a
seguinte forma, por exemplo para a pasta ‘Os meus documentos’:
cd(‘\windows\Os meus documentos’)

Para listar os ficheiros da directoria de trabalho, utiliza-se o comando dir. Por exemplo, o
comando
dir *.m

lista apenas os ficheiros cuja extensão seja m.

4.2 Guardar Variáveis em Ficheiros

As variáveis do ambiente de trabalho podem ser gravadas através da função save (e lidas
posteriormente com load). Existem assim as seguintes opções:

save nome grava todas as variáveis para o ficheiro nome.mat

save nome X grava a variável X no ficheiro nome.mat

save nome X Y Z grava as variáveis X, Y e Z no ficheiro nome.mat

4.3 Ler Variáveis de Ficheiros

Como foi referido acima, a recuperação de variáveis a partir de ficheiros faz-se com a função
load:

load nome recupera todas as variáveis gravadas no ficheiro nome.mat

load nome X recupera apenas a variável X, gravada no ficheiro nome.mat

load nome X Y Z recupera as variáveis X, Y e Z, gravadas no ficheiro nome.mat

18
5 Visualização de Dados
Um dos pontos fortes do Matlab é a facilidade de visualização gráfica de dados, tanto em duas
como em três dimensões. Estes gráficos são visualizados numa janela independente, designada
figura (figure), como a representada na Figura 5-1, correspondendo ao exemplo da Secção 3.5.
Como se pode observar, existem vários ícones e menus, que permitem aceder a diversas opções
sobre o aspecto e escalas do gráfico, ou mesmo gravá-lo sob diferentes formatos.

Figura 5-1: Janela de visualização de gráficos

5.1 Gráficos a Duas Dimensões

O comando que permite visualizar gráficos a duas dimensões, com escalas lineares, é o comando
plot. Este apresenta diferentes possibilidades:

plot(X,Y) desenha o gráfico cujas abcissas são os elementos do vector X e as


ordenadas os elementos do vector Y

plot(X) desenha o gráfico cujas abcissas são os elementos do vector X e as


ordenadas os seus índices

plot(X,Y,X,Z) desenha o gráfico cujas abcissas são os elementos do vector X e as


ordenadas os elementos do vector Y e os do vector Y

O comando plot permite ainda especificar a cor de cada curva desenhada, mas esta tarefa pode
ser acedida directamente a partir da janela do gráfico, pelo que não será por ora explanada.

Visualização de Curvas no Mesmo Sistema de Eixos

Como referido, através de plot(X,Y,X,Z,X,…) podem-se desenhar inúmeros gráficos tendo


eixos comuns, dados pelo vector X. Note-se que todos os vectores envolvidos têm
obrigatoriamente de apresentar a mesma dimensão.

Visualização de Curvas em Diferentes Sistemas de Eixos

Para se visualizar em simultâneo vários gráficos na mesma janela, utiliza-se o comando subplot.
Este divide a janela numa matriz NxM, ao mesmo tempo que acede à posição em que se
pretende desenhar o respectivo gráfico. Voltando ao exemplo da Secção 3.5, suponha-se que se

19
pretendia desenhar, separadamente, os gráficos dos sinais y1, y2 e y3, e um gráfico conjunto desses
mesmos sinais. Antes de mais, a sintaxe do comando subplot é:

subplot(N,M,i) divide a janela em N linhas e M colunas, e activa a i-ésima posição


para desenhar o gráfico; as posições contam-se da esquerda para a
direita e de cima para baixo

Note-se que o comando subplot deve preceder um plot, que efectivamente desenhará os
gráficos. Continuando com o exemplo, os comandos seriam:
subplot(2,2,1) % selecciona a primeira posição da matriz 2x2

plot(t,y1) % desenha a curva y1 na posição seleccionada

subplot(2,2,2) % selecciona a segunda posição

plot(t,y2)

subplot(2,2,3) % selecciona a terceira posição

plot(t,y3)

subplot(2,2,4) % selecciona a quarta posição

plot(t,y1,t,y2,t,y3)

O resultado destas instruções é a janela representada na Figura 5-2.

Alteração das Propriedades dos Gráficos

As propriedades dos gráficos (espessura e cor das linhas, título, texto, escalas, fontes e dimensão
do texto, tipo de eixos, etc.) podem ser alteradas, quer através de comandos, quer
interactivamente. Só esta última forma será aqui sumariamente descrita.

Para se poder alterar as propriedades do gráfico, deve-se primeiro entrar em modo de edição
(edit mode). Isso é feito activando o ícone respectivo, representado na Figura 5-3. Após esta
operação, basta clicar duas vezes na curva (estilo, espessura, cor) ou nos eixos (título, legenda
dos eixos, limites, tipo de gráfico). Podem ainda ser inseridos texto, setas e segmentos, através
dos ícones respectivos, também representados na Figura 5-3.

5.2 Gráficos a Três Dimensões

O Matlab permite a visualização de superfícies e de funções de duas variáveis, z  f(x,y) , ou


seja, de gráficos tridimensionais. Isto pode ser feito através das funções mesh (superfície
formada por segmentos unindo pontos adjacentes, geralmente conhecida por wire-frame surface)
ou surf (superfície formada por polígonos facetados unindo pontos adjacentes).

Se Z(i,j) for uma matriz em que cada elemento corresponde à altura de uma superfície sobre
uma grelha (i,j), então os comandos seguintes permitirão visualizar essa superfície:
mesh(z)

surf(z)

20
Figura 5-2: Comando subplot

Inserir segmentos

Modo de edição
Inserir setas

Inserir texto
Figura 5-3: Alteração das propriedades de uma figura

A visualização de funções z  f(x,y) implica adicionalmente a definição dos domínios, isto é,


das matrizes X e Y, além da matriz Z correspondente. Para tal, pode-se recorrer à função
[X,Y] = MESHGRID(dx,dy)

que cria as matrizes X e Y, correspondentes aos vectores domínio dx e dy, adequadas a serem
utilizadas pelas funções mesh e surf. Se os domínios forem iguais, pode-se utilizar a forma mais
compacta
[X,Y] = MESHGRID(d)

A utilização destas funções será mais facilmente descrita através de um exemplo. Assim, admita-
se que se pretendia visualizar a função

z  sincx , y  

sin x 2  y 2 
x 2  y2

com domínios entre -10 e 10, tanto em x como em y. Uma forma possível de o fazer seria:

21
d=-10:.5:10; % definicao do dominio, isto e, um vector de -10 a

% 10, com um passo de 0.5

[X,Y]=meshgrid(d); % definicao das matrizes que serao utilizadas para

% construir a funcao z=sinc(x,y)

R=sqrt(X.^2+Y.^2)+eps; % definicao de uma matriz auxiliar. Note-se a

% potenciacao tem que ser feita elemento a

% elemento. A constante do Matlab eps foi

% adicionada apenas para evitar a multiplicacao

% por zero, no passo seguinte, e evitar uma

% mensagem de aviso.

Z=sin(R)./R; % definicao da matriz Z

Uma vez definidas as matrizes X, Y e Z, introduzir-se-iam os comandos mesh(X,Y,Z) ou


surf(X,Y,Z), consoante o tipo de superfície pretendida. O resultado destes comandos pode-se
observar nas Figura 5-4 e Figura 5-5.

Alteração das Propriedades dos Gráficos

O modo de edição permite alterar inúmeras propriedades da superfície, como sejam a


luminosidade, cor das faces e dos segmentos, vista, perspectiva, etc. Deixa-se ao leitor a tarefa de
explorar essas possibilidades, representando-se na Figura 5-6 um exemplo de alteração das
propriedades da superfície anteriormente definida.

Figura 5-4: Exemplo da função mesh

22
Figura 5-5: Exemplo da função surf

Figura 5-6: Alteração das propriedades de uma superfície

23
6 Bibliografia
Adicionalmente à sumária introdução ao Matlab apresentada neste manual, encontra-se, como já
referido, uma extensa bibliografia em www.mathworks.com, no formato pdf, da qual se
destacam:

Geting Started with MATLAB, Version 6.

Using MATLAB Graphics, Version 6.

25

Você também pode gostar