Você está na página 1de 10

TEORIA DOS SISTEMAS

2007/08

LICENCIATURA EM ENGENHARIA FSICA


LICENCIATURA EM ENGENHARIA E GESTO
INDUSTRIAL
LICENCIATURA EM ENGENHARIA MECNICA
LICENCIATURA EM ENGENHARIA QUMICA

1 aula prtica
[ Para uma reviso sobre nmeros complexos consultar o ANEXO I.]

1. MATLAB: Introduo
O MATLAB um programa fcil de usar que permite realizar, de
forma simples, clculos matemticos complicados.

Para realizar as operaes bsicas basta introduzir os clculos que


se pretende efectuar ( no final de cada linha carregue na tecla Enter e
observe o resultado):
4-10
3*5

tambm possvel usar variveis para guardar valores e


resultados de operaes:
y=2
x=3+5
x+y

Tambm esto disponveis as principais funes matemticas:


x=log(8)
exp(x)
y=cos(pi/4)
log(sqrt(4))
x=5^2
sin(pi)

O MATLAB utiliza alguns caracteres com funes especiais. Um


deles o ;. Execute a duas sequncias de comandos seguintes:
a=3 b=3;
a+1 b+1

Qual a principal diferena entre os resultados obtidos?

O MATLAB possui tambm comandos com funes especiais.


Experimente:
a=44/7
format long
a
format short
a
who
clear
a
who

2. Vectores e matrizes
O MABLAB tambm trabalha com vectores e matrizes:
A=[1 2 3]
B=[6 5 4]
A+B

Para definir matrizes o smbolo ; usado para separar as linhas


da matriz:
B=[2 ; -1]
A*B

Os elementos de uma matriz ou vector podem ser acedidos


individualmente usando um comando da forma matriz(linha , coluna):
A(1,2)=99

Frequentemente fazemos uso de sequncias com, por exemplo, os


nmeros inteiros entre 2 e 7:
x=2:7

Ou ento os nmeros entre 0 e 2, espaados de 0,2:

Para o MATLAB uma sequncia um vector linha como


qualquer outro. A sua nica caracterstica especial a forma usada para o
originar. Deste modo, para o MATLAB ambos os comandos seguintes
produzem o mesmo resultado:
a=0:5
a=[0 1 2 3 4 5]

O MATLAB executa as operaes bsicas entre matrizes, tal


como so aprendidas na Matemtica. O nico cuidado a ter que as
operaes que se pretende executar sejam dimensionalmente correctas:
A=[1 2 3]
B=[6 5 4]
A+B
% O caracter % serve para introduzir
% comentrios. Escusa de introduzir estas linhas.
% O exemplo seguinte d erro - Porqu?
A=[A 4] % o mesmo que A=[1 2 3 4]
A+B

A operao de diviso entre matrizes A/B equivalente a


A*inv(B). Para se poder realizar esta operao , naturalmente, necessrio
que a matriz B seja quadrada:
A=[1 2]
B=[6 5 ; 3 4]
A/B
A*inv(B)
A*B^(-1)

Para alm das habituais operaes com matrizes existem as


chamadas operaes elemento-a-elemento: .*, ./, .^. Para se
poderem realizar, as operaes de multiplicao e diviso elemento-a-
elemento requerem que as matrizes tenham a mesma dimenso:
x=[0 1 -1 3 4];
z=x*3;
x.*z
x./z
x*z
x=[x z];
x=x.*y;

O MATLAB utiliza as matrizes e os vectores do mesmo modo


que qualquer outra varivel:
x=[0 0.25 0.5 0.75 1]*pi
sin(x)

Possui tambm um conjunto de funes especficas para


processamento de matrizes:

inv(A) inversa da matriz


sum(A) soma de cada uma das colunas da matriz
det(A) determinante da matriz
eye(n_linhas,n_colunas) produz uma matriz identidade
ones(n_linhas,n_colunas) produz uma matriz totalmente
preenchida com 1s
zeros(n_linhas,n_colunas) produz uma matriz totalmente
preenchida com 0s
rand(n_linhas,n_colunas) produz uma matriz preenchida com
aleatrios
size(A) calcula o nmero de linhas e colunas da matriz
length(A) calcula o comprimento da matriz. o maior valor de
entre o nmero de linhas e o nmero de colunas da
matriz

3. Nmeros complexos
O MATLAB trabalha com nmeros complexos to facilmente
como o faz com nmeros reais:
z = 2 + 2*j
y=1-4*j
z-y
z*y
y/z

ATENO: as variveis i e j esto pr-definidas com o valor 1 .

No entanto o seu valor pode ser alterado, como se de uma varivel normal
se tratasse. Se fizer isto ter mais dificuldade em trabalhar com nmeros
complexos, e poder ser causa de erros. Nunca atribua valores s
variveis i e j.

Existem diversas funes especiais para o tratamento de nmeros


complexos:
conj(z)
abs(z)
real(z)
imag(z)

Os nmeros complexos podem tambm ser tratados na forma


polar:
3*exp(i*pi)
exp(j*[ pi/4 -pi/4 ])
exp(j*[ pi/4:0.1:-pi/4 ])
angle(z)

4. Representao grfica
O MATLAB tem mecanismos poderosos para representao
grfica. Nesta introduo ficaremos apenas pelos mais simples.

O grfico de uma funo , basicamente, uma representao


visual de uma sequncia de valores que a funo toma:
y = [0 0.5 1 0.5 -0.5 0];
plot(y)

A representao obtida grosseira, pois apesar de serem visveis


os valores tomados por y, os valores representados no eixo horizontal
(abcissas), no tm significado. Um grfico mais til pode ser obtido
fazendo:
t= 0:0.4:4*pi
y = sin(t);
plot(t,y)

No mesmo grfico podemos ver mais do que uma sequncia.


Acrescentando os comandos anteriores com:
z = cos(t);
plot(t,y,t,z)

E, se quisermos identificar melhor as curvas, podemos atribuir-


lhes cores:
plot(t,y,r,t,z,b)

Neste caso y aparecer a vermelho (red) e z a azul (blue).


Podemos ainda acrescentar-lhes tipos de linha diferentes.

Para saber mais sobre este comando faa: help plot.

ainda possvel acrescentar o ttulo do grfico, assim como


outras formas de identificao:
title(Funes)
xlabel(t)
ylabel(Seno e Co-seno)

Se no quisermos que os pontos do grfico sejam unidos, e


preferirmos ver apenas os valores contidos na sequncia, podemos
substituir a funo plot pela funo stem:
stem(t,y)

Existem muitos outras funes associadas com a representao


grfica no MATLAB. Algumas das mais utilizadas so:

grid, axis, zoom, ginput, loglog, semilogx, mesh, contour

Pode aprender mais sobre estas funes usando o comando help,


por exemplo:
help grid
5. Programao Com O Matlab
possvel tornar mais eficiente a utilizao do MATLAB
automatizando algumas das tarefas mais frequentes ou complicadas. Isto
conseguido recorrendo a duas facilidades:

Automatizao de sequncias de comandos

Adio de novas funes

Ambas estas facilidades passam pela criao de ficheiros.

Comece por dar o comando:


cd c:\alunos\t_sinais

A partir deste momento o MATLAB comear por procurar os


seus ficheiros no directrio c:\alunos\t_sinais do seu computador.

Para automatizar uma sequncia de comandos de MATLAB basta


criar, no seu directrio de trabalho (c:\alunos\t_sinais) um ficheiro com a
extenso .m, contendo os comandos que se pretende dar. Com o seu
editor de texto abra um ficheiro e escreva a seguinte sequncia de
comandos:
t= 0:0.4:4*pi
y = sin(t);
z = cos(t);
figure(1)
stem(t,y)
figure(2)
stem(t,z)

Salve o ficheiro no seu directrio de trabalho, com o nome


tarefa1.m .
Em seguida, no MATLAB, d o comando tarefa1.

Para alm dos comandos que j aprendeu, o MATLAB possui


uma verdadeira linguagem de programao que inclui comandos como:
if .. then .. else
for
while
switch

Para mais informaes sobre a utilizao destes comandos recorra


ao help.

A adio de novas funes ao MATLAB, no sendo complicada,


no se enquadra no carcter introdutrio deste documento.

[ O ANEXO II fornece mais detalhes e exemplos de utilizao do


MATLAB.]