You are on page 1of 8

Introduo ao Matlab

Ambiente Matlab

C
B

A Command Window: rea que permite a introduo de comandos e a visualizao de


resultados. Podem repetir-se os comandos j introduzidos com as
teclas .
B Workspace: Exibe as vrias variveis definidas durnate a sesso.
C Current Directory: Mostra os ficheiros contidos na directoria corrente.
D Command History: Guarda todos os comandos j executados.
E Menus [File, Edit, Debug, Desktop, Window, Help]: Contm menus com comandos que
permitem utilizar vrias opes do
Matlab.
Definio de Cleve Moler, criador do programa, O Matlab um ambiente de computao
tcnico-cientfica para desenvolvimento de sistemas sofisticados e eficientes

A primeira verso surgiu em 1984.


O Matlab dispem de:

Linguagem de programao de alto nvel baseada em matrizes.


Ferramenta de debuging
Funes para construir modelos numricos de excelente qualidade.
Grficos sofisticados e possibilidades de gerar interfaces grficas.
Interface com sistemas externos.

Para ter uma ideia mais precisa das capacidades do Matlab, basta escrever >>demo na
Command Window ou ento seleccionar a opo Demos no menu Help.
A opo MATLAB Help no menu Help permite obter informao sobre todos os comandos,
funes e capacidades do programa. Deve ser consultado sempre que necessrio pois contm
inmeros exemplos teis.

Nmeros, Vectores & Matrizes

Escalar:

Vector linha:

1N

=>

Vector coluna:

M1

=>

Matriz:

MN

=>

Matriz 3D:

MNP

=>

[A1

A2 K AN ]

A1
A
2
M

AM
A11
A
21
M

AM 1

A12
A22
M
AM 2

A1N
A2 N

L AMN
K
K
O

A12 P K A1NP
A11P
A
A22 P A K A2 NP
21121
P
K
A111 A
1N 1

A AM
M A O M
K
2N1
211 221

M AM 1MP AO
M 2 P ML AMNP

AM 11 AM 21 L AMN 1

Definio de vectores e matrizes:

Os elementos da matriz so definidos entre parntesis rectos [ ].


Os elementos podem ser escalares, vectores, matrizes, funes ou expresses.
As vrias colunas so separadas por espaos em branco ou por vrgulas.
As vrias linhas so separadas por ponto e vrgula ; .

Operadores aritmticos
Em Matlab actuam sobre escalares, vectores e matrizes. Considere-se:

1 2
a=

3 4

5 6
b=

7 8

O Operador [ valor inicial : incremento : valor final ] Define uma sequncia de valores.

Indexao de elementos de matrizes


Os elementos de uma matriz podem ser referidos atravs dos seus dois ndices :
Exemplo :
>> a=[1 2 3;4 5 6;7 8 9];
>> a(2,3)

-> resposta 6

Tambm podem ser indexados s com um ndice, neste caso os elementos so ordenados por
colunas.

1(1) 2( 4) 3(7)
a = 4( 2) 5(5) 6(8)

7(3) 8(6) 9(9)


Exemplo :
>> a(2)
>> a(7)

-> resposta 4
-> resposta 3

O smbolo : pode ser usado para definir intervalos de indexao e assim definir submatrizes:
Exemplo :
>> c= a(2,2:3)

-> resposta c=[5 6]

possvel identificar individualmente os elementos de uma matriz num nico comando com [ ]
Exemplo :
>> d= a([2 3 8 4])

-> resposta d=[4 7 6 2]

Funes de criao de matrizes


eye(n) Cria identidade uma matriz identidade de dimenso n.
zeros(n)
zeros(n,m) Cria uma matriz quadrada ou uma matriz nm com zeros
ones(n)
ones(n,m) Cria uma matriz quadrada ou uma matriz nm com todos os elementos iguais a
1.
rand(n)
rand(n,m) Cria uma matriz quadrada ou uma matriz nm com nmeros pseudo-aleatrios
uniformemente distribudos entre 0 e 1.

Funes de clculo matricial


det(a) Calcula o determinante de a.
cond(a) Indica o nmero de condio da matriz a, isto , o quociente entre o maior e o
menor valor singular da matriz (ver a teoria no fim deste texto).
inv(a) Calcula a inversa da matriz a.

eig(a) Calcula os valores prprios da matriz a.


size(a) Devolve um vector com o nmero de linhas e de colunas da matriz a.

Programao
Declaraes e Variveis
O Matlab uma linguagem de expresses. As expresses usadas so interpretadas e avaliadas
pelo sistema. As declaraes no Matlab so frequentemente da forma:
>> varivel = expresso
As expresses so constitudas por operadores e outros caracteres especiais, funes e nomes das
variveis. A avaliao das expresses produz matrizes, que so mostradas na Command Window
e atribudas s variveis para uso futuro. Se o nome da varivel e o sinal de igual = so
omitidos, uma varivel com o nome ans (answer) automaticamente criada e toma o valor
calculado.
Se o ltimo caracter da declarao for um ponto e vrgula, a escrita de resultados suprimida.
Esta opo normalmente seguida quando se escreve um programa utilizando um ficheiro *.m.
Uma varivel deve ter o seu nome comeado por uma letra e case-sensitive, isto , a
utilizao de maisculas e minsculas permite diferenciar duas variveis.
O comando who lista todas as variveis do workspace.
O comando whos indica o nome e o tipo dessas variveis.

Expresses lgicas
Estas expresses assumem o valor FALSO (ou 0) ou VERDADEIRO (qualquer valor diferente
de 0) e permitem controlar o funcionamento do programa. So usadas em todas as instrues
while e if, como adiante se ver. So construdas a partir de operadores lgicos e de funes
lgicas.
Smbolo
==
~=
<
>
<=
>=
~

Operador
Igual
Diferente
Menor que
Maior que
Menor ou igual
Maior ou igual
Negao

Exemplo
i==j
i~=j
i<j
i>j
i<=j
i>=j
~i

&
|

E (conjuno)
OU (disjuno)

i&j
i|j

Tambm se podem usar funes lgicas, que calculam um valor que pode ser FALSO ou
VERDADEIRO:
Funo
isempty
isequal
isnumeric
ischar
issparse

Devolve VERDADEIRO se
matriz M vazia
matrizes so numericamente
iguais
matriz M numrica
matriz M alfanumrica
matriz M esparsa

Exemplo
isempty (M)
isequal (M1,M2)
isnumeric (M)
ischar (M)
issparse (M)

Instrues de repetio ou de ciclo


for i=a

end

Exemplo :
for i=1:4
disp(a(i));
end

-> resultado 1 4 7 2

A instruo de repetio for usa-se quando se pretende executar um conjunto de expresses um


nmero exacto de vezes, e esse nmero conhecido antes de iniciar a execuo da instruo
for.

Instrues de controlo da execuo


if <expresso lgica> ... end
if <expresso lgica> ... else ... end
if <expresso lgica> ... elseif ... else ... end
A instruo if desempenha um papel fundamental em qualquer programa, ao permitir executar
um conjunto de vrias expresses de uma forma condicional.

Teoria
Nmero de condio de uma funo: O valor

xf ' ( x )
f ( x)

cond f ( x ) =

Designa-se por nmero de condio da funo f no ponto x.


Uma funo diz-se mal condicionada se o nmero de condio for muito elevado, e bem
condicionada, se o seu nmero de condio for pequeno. Em geral, diz-se que um problema
bem condicionado se pequenas perturbaes nos dados provocarem pequenas variaes nos
resultados, e mal condicionado, se suceder o contrrio.
Nmero de condio de uma matriz:
O nmero de condio de uma matriz mede a sensibilidade da soluo do sistema de equaes
lineares a perturbaes no segundo membro.
Sistema inicial e sistema perturbado

Ax = b

A( x + x ) = b + b
x+x a soluo do sistema perturbado. Pode tentar determinar-se quo grande pode ser x e,
em particular, tentar saber se a pequenas perturbaes de b correspondem ou no a pequenas
perturbaes x.
Subtraindo as duas equaes anteriores,

Ax = b
ou

x = A 1b

Aplicando normas a ambos os membros desta igualdade, resulta que

x A 1 b
Ento o valor de ||A-1|| que determina a maior ou menor influncia das perturbaes b na
soluo. No entanto o valor de ||x || s por si no significa muito pois um determinado ||x ||
pode ser aceitvel se ||x|| for um valor elevado e no ser aceitvel se ||x|| tiver um valor baixo.
Faz mais sentido trabalhar com erros relativos,

x
x

A 1

b
x

Mas por outro lado, aplicando normas a ambos os membros de Ax = b, conclui-se que,

b = Ax A x x

b
A

Introduzindo na relao anterior,

x
x

A A 1

b
b

A quantidade ||A|| ||A-1|| relaciona as perturbaes relativas no segundo termo com as


perturbaes induzidas na soluo e tem uma importncia fundamental na anlise de erros em
sistemas de equaes. Esta quantidade designa-se por nmero de condio da matriz A,

cond A = A A 1
O Matlab calcula o nmero de condio de uma matriz A, fazendo uma decomposio em
valores singulares e determinando o quociente entre o maior e o menor desses valores singulares.
Comando cond(a).
Os valores singulares de uma matriz A com r linhas linearmente independentes so as r razes
quadradas positivas dos valores prprios de AT A.