Você está na página 1de 50

1.

Introduo ao Matlab
Um computador uma ferramenta essencial na resoluo de problemas de
Engenharia. Nestes apontamentos faz-se uma introduo ao Matlab, um pacote de
software com a capacidade de computao numrica, anlise de dados e grficos.
O software Matlab foi originalmente desenvolvido para um uso especfico e da a
origem do seu nome Matrix Laboratory. Actualmente as suas capacidades vo
muito alm das originalmente pensadas: um sistema interactivo e permite todas
as capacidades de uma linguagem de programao. Como propriedade
fundamental o facto de que o Matlab faz uso de matrizes como estrutura de dados
bsica.
Depois de inicializar uma sesso em Matlab visualizado o sinal de prompt (>>)
que significa que o Matlab est pronto a receber um comando do utilizador.

1.1 Tipo de Dados Fundamentais


O Matlab trabalha fundamentalmente com um tipo de dados: matrizes de nmeros reais ou
complexos. Casos especiais de matrizes so escalares (matriz 1x1) e vectores (matriz linha 1xn
ou matriz coluna nx1).
1.1.1 Matrizes
Quando se pretende resolver um problema de engenharia importante ter em conta a forma como
vo ser visualizados os dados relativos ao problema em questo. Por vezes os dados so um
nico nmero, como por exemplo o raio de um crculo. Noutros casos o conjunto de dados pode
ser a coordenada de um ponto no plano e tem-se um conjunto de dados constitudo por um par de
nmeros (x,y). Noutros ainda podemos ter um conjunto de dados da forma (x,y,z).
Contudo, quaisquer que sejam os dados, sempre possvel represent-los usando a notao
matricial. Uma matriz no seno um conjunto de nmeros ordenados em linhas ou colunas.
1

1.1 Tipos de dados fundamentais

Assim um nico ponto x pode ser considerado uma matriz com uma linha e uma coluna,
x - matriz (1x1)
Um ponto (x,y) como uma matriz de uma linha e duas colunas.
[ x, y] - matriz (1x2)

1.1.2 Inicializao de matrizes


Vamos agora ver como podem ser definidas e inicializadas matrizes no Matlab. Sero
apresentados quatro mtodos para o fazer: de uma forma explicita, como resultado de uma
operao, como resultado da leitura de um ficheiro de dados e introduzida directamente pelo
utilizador. Para os exemplos que se iro apresentar consideram-se as seguintes matrizes:
1 2 3
A=

4 5 6

1 2
B = 3 4
5 6

De uma forma explcita

A forma mais simples de definir uma matriz usar uma lista de nmeros entre parnteses rectos.
Assim a matriz A pode ser definida como,
>>

A = [ 1 2 3 ; 4 5 6 ]

O nome de uma matriz dever comear por uma letra e conter at um mximo de 19 caracteres.
Podem ser utilizadas virgulas ou espaos em branco para separar colunas e para separar linhas
devem ser utilizados pontos e vrgulas ou mudanas de linha. Outra alternativa definio da
matriz A poderia ser:
>>

A = [ 1,2,3

4,5,6]

Como resultado de alguma operao

tambm possvel definir uma matriz como o resultado de alguma operao. Por exemplo se
desejar conhecer o dobro da matriz A, ento pode-se definir uma nova matriz C.

Matlab: Ferramenta de simulao computacional e clculo numrico

1.1 Tipos de dados fundamentais


>>

C = 2*A

A partir de um ficheiro de dados

Outra forma de definir matrizes a partir de informao previamente armazenada em ficheiros


de dados. possvel lidar com dois tipos de ficheiros em Matlab: MAT-files e ASCII. No
primeiro caso os dados so armazenados segundo um formato binrio; no segundo caso os dados
so constitudos por caracteres ASCII.
Os ficheiros MAT so gerados no Matlab a partir do comando Save, que deve conter o nome da
matriz a guardar e o respectivo nome do ficheiro. Automaticamente o Matlab atribui-lhe a
extenso .MAT.
Por exemplo o comando
>>

save dados B

permite armazenar num ficheiro de nome dados a matriz B. Assim possvel, mesmo numa
futura sesso, aceder novamente ao valor de B, tendo que para isso executar o comando Load.
>>

load dados

Automaticamente o Matlab permite definir a matriz B.


Se forem utilizados ficheiros ASCII ento os valores a armazenar tero obrigatoriamente de
conter apenas informao numrica possvel de ser facilmente gerada com um qualquer vulgar
editor ou processador de texto. Outra alternativa gerar o ficheiro custa do Matlab usando o
comando save e a opo /ascii.
>>

save dados1.dat B -ascii

O resultado da operao anterior seria a criao de um ficheiro de texto com a seguinte


informao:

-1.00000

-2.00000

-3.00000

-4.00000

-5.00000

-6.00000

Matlab: Ferramenta de simulao computacional e clculo numrico

1.1 Tipos de dados fundamentais

Tal como no caso anterior possvel aceder posteriormente a esta informao usando o
comando load.
>>

load dados1.dat

Contudo neste caso o nome da matriz que se definia seria dados1 e no B, portanto o nome do
ficheiro em causa e no a varivel que a foi armazenada.
Introduo de Dados pelo Utilizador. Operador (;)

Os valores de uma matriz podem ser introduzidos atravs do teclado directamente pelo utilizador
usando o comando input. Por exemplo a seguinte instruo:
>>

numero = input( Valor do numero )

permite ao utilizador definir um dado valor para a varivel numero. Se o comando no for
finalizado por (;) o valor de numero ser mostrado no cran, caso contrrio o valor de numero
apenas armazenado na varivel e no mostrado.
>>

numero = input( Valor do valor de numero ) ;

Este uso do operador (;) no final de cada instruo vlido para qualquer comando Matlab.
1.1.3 Referncia a elementos de matrizes

Uma vez que uma matriz um conjunto de valores organizados segundo linhas e colunas deve
ser possvel aceder a um dos seus elementos ou mesmo a um subconjunto dos seus elementos.
Um elemento (escalar)

Para aceder a um elemento da matriz deve-se indicar qual a linha e a coluna. Assim,
>>

a=A(2,3)

permite aceder ao elemento localizado na segunda linha e terceira coluna da matriz A, portanto
a=6. De uma forma geral pode-se escrever:

Matlab: Ferramenta de simulao computacional e clculo numrico

1.1 Tipos de dados fundamentais


A(i,j) - elemento situado na linha i e coluna j

Subconjunto de elementos, operador (:)

Para aceder a um subconjunto de elementos usado o operador dois pontos (:). Eis alguns
exemplos que permitem compreender o seu funcionamento:
>>

C= A(1:2, 2:3)

Significa que se pretendem os elementos da matriz A, desde a primeira segunda linha e desde a
segunda at terceira coluna. O resultado seria portanto
2 3
C=

5 6
De uma forma geral pode-se escrever:
A( imin : imax , jmin : jmax)

O resultado obtido so todos os elementos da matriz A definidos pelas linhas imin at imax e
pelas colunas jmin at jmax. possvel tambm aceder a todos os elementos de uma linha/coluna
mesmo que no se conhea a sua dimenso.
Por exemplo:
>>

C = A(1:1,:)

define a matriz C como sendo

C = [1 2 3]

ou seja definidos pela primeira linha e todas as colunas. Uma expresso equivalente anterior
seria:
>>

C = A(1,:)

No seguinte exemplo define-se a matriz C como sendo igual A.


Matlab: Ferramenta de simulao computacional e clculo numrico

1.1 Tipos de dados fundamentais


>>

C = A(:,:)

O operador (:) permite em Matlab definir um vector da seguinte forma:


>>

valor=inicio:incremento:fim

O resultado um vector cujo primeiro valor igual a inicio e os restantes sero incrementados
com um valor igual a incremento at ao ltimo valor que ser igual a fim.
Por exemplo executar o seguinte comando
>>

tempo=0:2:10

teria o mesmo resultado que:


>>

tempo = [ 0

10 ]

1.1.4 Formatos e visualizao numrica

Existem vrias formas de visualizar o contedo de uma matriz. A mais simples digitar o nome
da matriz e automaticamente o seu valor ser mostrado. Existem vrios formatos pr-definidos
em Matlab. Referem-se quatro:
format short
format long
format short e
format long e

Os dois primeiros utilizam uma formatao corrente e os dois ltimos cientfica. Para perceber as
diferenas entre eles apresenta-se o seguinte exemplo: admite-se que existe uma varivel com o
valor de 1/7. A sua representao em cada um dos formatos referidos seria:
short:
long:
short e:
long e:

0.1429
0.14285714285714
1.4286e-001
1.428571428571428e-001

Matlab: Ferramenta de simulao computacional e clculo numrico

1.1 Tipos de dados fundamentais

1.1.5 Visualizao grfica

Suponhamos agora que se pretende fazer um grfico com os valores da matriz em vez de, como
na seco anterior, fazer apenas a sua visualizao numrica. Na seco 1.5 este assunto ser
tratado com pormenor, por agora apresenta-se apenas uma breve introduo indicando o modo de
visualizar um grfico (x,y) a partir de dados armazenados em dois vectores.
Horas

Temperatura

10

10

12

14

14

17

16

15

18

13

20

11

22

10

Tabela 1.1: Valores da temperatura do ar.

Consideremos que foram observados os valores da temperatura do ar num determinado local


durante as 24 horas do dia, de duas em duas horas. Os valores recolhidos mostram-se na tabela
1.1.
Assumindo que os valores foram guardados em dois vectores,
>>

x=[ 0: 2: 22]

>>

y=[ 9 8 6 5 8 10 14 17 15 13 11 10]

ento o comando,
>>

plot(x,y)

permite visualizar os dados da seguinte forma:

Matlab: Ferramenta de simulao computacional e clculo numrico

1.1 Tipos de dados fundamentais


20

15

10

10

15

20

Figura 1.1: Grfico x-y.

1.2 Operaes Elementares


As operaes de adio, subtraco, multiplicao e adio so consideradas as operaes
fundamentais. Nesta seco alm destas mostra-se como podem ser efectuadas outras operaes
tais como, raiz quadrada, logaritmos, etc., aplicadas a escalares, vectores e matrizes. Sero
tambm definidas formas de tratar nmeros complexos.
1.2.1 Valores escalares especiais

O Matlab dispe de um nmero de valores pr-definidos:


ans

Varivel usada para guardar o valor da ltima operao efectuada

pi

Valor de =3.1415...

i,j

1 - Utilizado em nmeros complexos

Inf

- Valor de infinito

Nan

Significa que no um nmero

eps

Preciso do computador usado, ou seja, a diferena entre 1.0 e o


valor decimal mais prximo

Matlab: Ferramenta de simulao computacional e clculo numrico

1.2 Operaes elementares

1.2.2 Matrizes especiais

Tal como no caso de escalares o Matlab dispe de matrizes com valores especiais. Aquelas com
mais interesse enumeram-se de seguida:
Zeros (Zeros)

Permite gerar uma matriz com todos os elementos nulos. Se o argumento for apenas um escalar,
por exemplo,
>>

A= zeros(6)

ento a matriz A gerada uma matriz quadrada, neste caso de 6 linhas e 6 colunas. Podem, no
caso mais genrico, ser definidos dois parmetros. Por exemplo,
>>

A= zeros(2,3)

permite gerar uma matriz A de 2 linhas e 3 colunas em que todos os elementos so nulos.
Uns (Ones)

A funo ones idntica zeros, diferindo apenas no facto de que a matriz gerada no
constituda por valores nulos mas todos os elementos so iguais a 1. Assim, por exemplo,
>>

A= ones(1,1)

permite gerar uma matriz (escalar) A=1.


Identidade (Eye)

Esta funo permite criar uma matriz identidade. Uma matriz identidade uma matriz quadrada
de valores nulos com excepo dos elementos da diagonal que so unitrios. Um exemplo:
>>

A= eye(3)

permite gerar a seguinte matriz:

Matlab: Ferramenta de simulao computacional e clculo numrico

1.2 Operaes elementares

1 0 0
A = 0 1 0
0 0 1
1.2.3 Operaes com Escalares

As operaes elementares possveis de efectuar com escalares mostram-se na tabela seguinte


Operao

Forma Algbrica

Matlab

Adio

a+b

a+b

Subtraco

ab
a b
a
b
b
a

ab
a b

ab

a^ b

Multiplicao
Diviso direita
Diviso esquerda
Exponencial

a/b
a \b

Tabela 1.2: Operaes com escalares.

1.2.4 Operaes elemento a elemento: vectores

Admitamos que dispomos de dois vectores:


>>

A = [ 2 5 6 ]

>>

B = [ 2 3 5 ]

Deseja-se definir um terceiro vector que seja o resultado da multiplicao elemento a elemento
deste dois vectores. Uma forma seria efectuar repetidamente:
>>

C(1) = A(1)*B(1)

>>

C(2) = A(2)*B(2)

>>

C(3) = A(3)*B(3)

Evidentemente tal processo seria invivel para vectores de maiores dimenses. Utilizando o
Matlab tal operao pode ser facilmente efectuada usando o seguinte comando:

Matlab: Ferramenta de simulao computacional e clculo numrico

10

1.2 Operaes elementares


>>

C = A.*B

O ponto final (.) antes do sinal de multiplicao (*) representa portanto uma operao elemento a
elemento. Refira-se que se este fosse omitido estaria a fazer uma multiplicao normal entre duas
matrizes. Uma vez explicado o que se entende por operao elemento a elemento mostra-se na
tabela seguinte as operaes possveis em Matlab.
Operao

Forma Algbrica

Matlab

Adio

a+b

a+b

Subtraco

ab

ab

ab
a
b
b
a

a. b

ab

a.^ b

Multiplicao
Diviso direita
Diviso esquerda
Exponencial

a. / b
a. \ b

Tabela 1.3: Operaes com vectores.

Para melhor entender este tipo de operaes mostram-se alguns exemplo considerando os
vectores A e B acima definidos.
>>

C = A.*B

O resultado C = [ 4 15 30 ]
>>

C = A./B

O resultado C = [ 1 1.667 1.2 ]


>>

C = A.\B

O resultado C = [ 1 0.6 0.833 ]


>>

C = A.^2

O resultado C = [ 4 25 36 ]
>>

C = (3).^A

O resultado C = [ 9 243 729 ]


Neste ltimo caso note que se o comando fosse 3.^A seria gerada uma mensagem de erro!!

Matlab: Ferramenta de simulao computacional e clculo numrico

11

1.2 Operaes elementares


>>

C = A.^B

O resultado C = [ 4 125 7776 ]


1.2.5 Operaes mais comuns

Alm das operaes comuns adio, subtraco, multiplicao e diviso, por vezes necessrio
outro tipo de operaes com os dados. O Matlab permite uma grande variedade de funes das
quais se destacam:

" abs(x)

Valor absoluto de x

" sqrt(x)

Raiz quadrada de x

" round(x)

Converte x para o valor inteiro mais perto

" fix(x)

Converte x para o valor inteiro mais perto em direco a zero

" floor(x)

Converte x para o valor inteiro mais perto em direco a -

" ceil(x)

Converte x para o valor inteiro mais perto em direco a

" sign(x)

Devolve -1 se x<0 ou 1 se x0

" rem(x,y)

Resto da diviso de x/y

" exp(x)

Exponencial de x e

" log(x)

Logaritmo natural de x na base e: ln x

" log10(x)

Logaritmo de x na base 10: log10 x

Note-se que x pode ser um escalar, vector ou matriz. Caso seja por exemplo uma matriz a
operao seno aplicada a cada um dos elementos da matriz. Alm disso, para qualquer uma das
funes assume-se que o valor de x se encontra na gama permitida, caso contrrio ser gerado
um erro.
1.2.6 Funes trigonomtricas
" sin(x)

Seno do ngulo x definido em radianos

" cos(x)

Coseno do ngulo x definido em radianos

" tan(x)

Tangente do ngulo x definido em radianos

" asin(x)

Arco seno ou inverso do seno de x [-1,..1]


A funo devolve um ngulo compreendido entre

Matlab: Ferramenta de simulao computacional e clculo numrico

2
12

1.2 Operaes elementares


Arco coseno ou inverso do coseno de x [-1,..1].

" acos(x)

A funo devolve um ngulo compreendido entre 0 e


Arco tangente ou inversa da tangente de x [-1,..1].

" atan(x)

A funo devolve um ngulo compreendido entre

Arco tangente ou inversa da tangente de x [-1,..1].

" atan2(x)

A funo devolve um ngulo compreendido entre - e

1.2.7 Nmeros complexos

Consideremos por exemplo a seguinte equao de segunda ordem:


f(x) = x2 + 3 x + 3
Admitindo que se deseja calcular os zeros, usando a formula resolvente
x1 =

3+ 3
= 1.5 + 0.87 1
2

x2 =

3 3
= 1.5 0.87 1
2

De forma a que estas razes tenham sentido surge a definio de nmeros complexos e tambm
de 1 . Um nmero complexo um nmero definido por a +b i tal que a e b so nmeros reais
e i = 1 .
Operaes Aritmticas com Nmeros Complexos

Dados dois nmeros complexos: c1 = a1 + ib1 e c 2 = a 2 + ib2 ento,


Operao

c1 + c 2
c1 c 2
c1 c 2
c1
c2
c1
c1

Resultado

(a1 + a2 ) + i(b1 + b2 )
(a1 a 2 ) + i(b1 b2 )
(a1a 2 b1b2 ) + i(a1b2 + a2 b1 )
a1 a 2 + b1b2 a 2 b1 b2 a1
2
+ i 2

2
2
a 2 + b2 a 2 + b2
a12 + b12

a1 ib1
Tabela 1.4: Operaes com nmeros complexos.

Matlab: Ferramenta de simulao computacional e clculo numrico

13

1.3 Definio de funes pelo utilizador: M files

1.3 Definio de Funes pelo Utilizador: M files


Seria bastante limitado se apenas fosse possvel executar as funes pr-definidas pelo Matlab.
Quase sempre surge a necessidade de criar novas funes. Vai-se ver agora como que isso
possvel usando o Matlab.
Ficheiros *.m - M Files

Antes de explicar o conceito de funo comecemos por descrever os ficheiros *.m utilizados pelo
Matlab. At agora tem-se falado em comandos isolados como sendo a nica hiptese de
comunicar com o Matlab. Supondo que se deseja somar trs nmeros x, y e z, usando os
comandos do Matlab, ter-se-ia:
>>

x=2

>>

y=3

>>

z=1

>>

c= x+y+z

Neste caso so necessrios apenas quatro comandos e facilmente se digitam os quatro comandos.
O problema pe-se se for necessrio digitar por exemplo 100 comandos para resolver um certo
problema Ser que sempre necessrio digitar todos os comandos ?
Certamente que no. O Matlab recorre ao uso de ficheiros *.m para resolver o problema.
1.3.1 Scripts

Um ficheiro *.m no seno um vulgar ficheiro de texto onde so armazenados os comandos a


serem executados pelo Matlab, um em cada linha e pela sequncia desejada. Por exemplo, para
somar os tais nmeros x, y e z, poder-se-ia criar um vulgar ficheiro ASCII com um qualquer
editor de texto que contivesse o seguinte texto.

x = 2
y = 3
z = 1
c = x+y+z

O ficheiro poderia ter qualquer nome apenas tendo como restrio a extenso que teria de ser .m
(da o nome de ficheiros *.m). Note-se que importante a extenso!! Um possvel nome para o
ficheiro de texto poderia ser soma.m.
Matlab: Ferramenta de simulao computacional e clculo numrico

14

1.3 Definio de funes pelo utilizador: M files

Uma vez criado este ficheiro soma.m bastaria agora digitar o seguinte comando na linha de
comando do Matlab (no necessrio a extenso).
>>

soma

Automaticamente o Matlab executa cada uma das linhas do ficheiro soma.m. A este tipo de
ficheiros em que os comandos so executados sequencialmente d-se o nome de Scripts para os
diferenciar das funes, como se ver mais adiante.
Assim sempre que se executa uma sesso em Matlab deve-se de preferncia criar um ficheiro de
texto e escrever a todos os comandos. Sempre que se queira executar todas as instrues basta
digitar um comando no Matlab. Doutra forma seria necessria digitar todas as instrues como
comandos de Matlab.
Alm disso, se for necessrio modificar algum dado (por exemplo alterar o valor do nmero x de
2 para 4) basta modificar o ficheiro de texto. No modo de comando seria necessrio, alm de
modificar o valor de x, digitar todas as restantes instrues.
1.3.2 Funes

Enquanto que um ficheiro *.m executa sequencialmente todas as instrues uma funo um
ficheiro *.m especial que devolve um ou mais valores. Distingue-se de um script principalmente
pela primeira linha, que da forma:
function [parmetros sada]] = nome_funo (parmetros entrada)

Suponha-se por exemplo que se implementa uma funo capaz de somar trs nmeros x, y e z.
Para resolver o problema comea-se por criar um ficheiro com o nome de, por exemplo, soma.m.
Uma possvel soluo para o contedo deste ficheiro ser:

function r =

soma( x, y, z)

r = x + y + z
end

Ou seja, como parmetros de entrada tem-se os valores de x, y e z. Como parmetro de sada


temos o valor r que a soma dos trs valores. Em Matlab aceder-se-ia a esta funo
simplesmente fazendo:

Matlab: Ferramenta de simulao computacional e clculo numrico

15

1.3 Definio de funes pelo utilizador: M files


>>

r = soma( 1, 2 ,3)

e o resultado seria r = 6.
Suponhamos que se deseja uma funo que calcule a soma e o produto dos trs elementos x, y e
z. Da mesma forma cria-se um ficheiro de nome somaprod.m com o seguinte contedo:

function [ soma, produto] = soma_produto( x, y, z)


soma = x + y + z ;
produto = x * y * z ;
end

Para usar esta funo em Matlab executa-se,


>>

[s,p]] = somaprod( 2, 2, 3)

resultando s= 7 e p= 12.
Nota importante: O Matlab identifica a funo pelo nome do ficheiro (neste caso somaprod) e

no pelo nome que lhe atribui dentro do ficheiro de texto (neste caso soma_produto).

1.4 Controlo de Fluxo


Se por vezes uma srie de instrues executada de uma forma sequencial permite resolver um
determinado problema, noutros casos existe a necessidade de se executar apenas parte dos
comandos em funo de uma determinada condio. Pode por exemplo existir a necessidade de
repetir o mesmo comando um grande nmero de vezes, etc. Qualquer destas situaes possvel
de implementar em Matlab e designam-se por operaes de controlo de fluxo.
1.4.1 Operadores relacionais

Em Matlab existem seis operadores que permitem comparar duas matrizes de igual dimenso:
Operador

Interpretao

<

Menor do que

<=

Menor ou igual do que

>

Maior do que

Matlab: Ferramenta de simulao computacional e clculo numrico

16

1.4 Controlo de fluxo


>=

Maior ou igual do que

==

Igual

~=

Diferente
Tabela 1.5: Operadores relacionais.

O resultado de uma destas operaes igual a um nmero inteiro 1 se a condio verdadeira e 0


se falsa. Por exemplo, considerando a e b escalares, o comando
>>

a < b

ser igual a 1 se a menor do que b ou zero se isso no acontecer.


No caso de matrizes os operadores so aplicados elemento a elemento. Consideremos
seguinte vectores:
>>

a = [ 2

6 ]

>>

b = [ 3

1 ]

>>

a < b

>>

ans = [ 1

os

0 ]

O resultado da operao a<b portanto verdadeira para os dois primeiros elementos e falsa para
o terceiro.
1.4.2 Operadores lgicos

possvel combinar duas expresses lgicas usando para isso operadores lgicos e (and), ou (or)
ou no (not).
Operador Lgico

Smbolo

and

&

or

not

Tabela 1.6: Operaes lgicas.

Matlab: Ferramenta de simulao computacional e clculo numrico

17

1.4 Controlo de fluxo

Os operadores lgicos so possveis de aplicar a matrizes de zeros e uns. Por exemplo a


expresso,
>>

a<b & b<c

vlida se cada uma das matrizes resultantes (da operao a<b e b<c) tiverem a mesma
dimenso.
1.4.3 Condio If

A sintaxe para o comando if a seguinte:


if expresso lgica
instrues
end

Significa que se a expresso lgica for verdadeira ento o conjunto de instrues executado; se
a expresso lgica for falsa o programa salta o conjunto de instrues. Consideremos o
seguinte exemplo:

if a<50
soma=soma+a
end

Assumindo que a um escalar, se a<50 ento o valor da soma incrementado de a unidades;


caso a50 no faz nada.
tambm possvel definir condies if dentro de condies if, por exemplo:
if expresso lgica 1
instrues 1
if expresso lgica 2
instrues 2
end
instrues 3
Matlab: Ferramenta de simulao computacional e clculo numrico

18

1.4 Controlo de fluxo


end

Se a expresso lgica 1 verdadeira so executadas as instrues 1 e 3. Se for falsa nada


executado. Se a expresso lgica 2 verdadeira executado o conjunto de instrues 2.
1.4.4 Condio If Else

Adicionado ao comando if o comando else permite optar por um conjunto de instrues se uma
expresso lgica for verdadeira ou por outro conjunto de instrues se a expresso lgica for
falsa.

if expresso lgica
instrues 1
else
instrues 2
end

1.4.5 Condio ElseIf

Quando necessrio implementar vrios nveis de condies if-else prefervel utilizar a


condio elseif
if expresso lgica 1
instrues 1
elseif expresso lgica 2
instrues 2
elseif expresso lgica 3
instrues 3
end

Se a expresso lgica 1 verdadeira apenas o conjunto de instrues 1 executado, se a


expresso lgica 1 for falsa e a expresso lgica 2 verdadeira apenas o conjunto de instrues 2
executado e se a expresso lgica 1 e 2 forem falsas e a expresso lgica 3 for verdadeira
Matlab: Ferramenta de simulao computacional e clculo numrico

19

1.4 Controlo de fluxo

apenas o conjunto de instrues 3 executado. Claro que tambm possvel obter o mesmo
resultado apenas com instrues if, mas como se percebe, com um maior grau de complexidade.
1.4.6 Funes lgicas

O Matlab fornece um conjunto de funes lgicas teis em condies if. Eis algumas delas:
" any(x)

Para cada coluna da matriz x esta funo devolve 1


se algum valor no nulo e 0 em caso contrrio

" all(x)

Para cada coluna da matriz x esta funo devolve 1


se todos os valores forem no nulos e 0 em caso contrrio

" isnan(x)

Devolve uma matriz com uns nos elementos de valor infinito


e zero se no o forem

" isempty(x)

Devolve 1 se a matriz uma matriz vazia, 0 em caso contrrio

Seguem-se alguns exemplos. Seja a matriz A definida por:


0 2 0 4
A = 0 1 0 6
0 5 6 7

>>

any(A)

O resultado ser [0
>>

1]

1]

all(A)

O resultado ser [0
>>

isnan(A)

0 0 0 0
O resultado ser 0 0 0 0
0 0 0 0

Matlab: Ferramenta de simulao computacional e clculo numrico

20

1.4 Controlo de fluxo


>>

isempty(A)

O resultado ser 0.
1.4.7 Ciclo de repetio For

Em Matlab existem duas formas possveis de executar ciclos: os comandos for e while. Nesta
seco apresenta-se o ciclo for e na seco seguinte o ciclo While. A diferena principal entre
ambos a seguinte: no ciclo for o nmero de repeties do ciclo perfeitamente conhecida, no
while esse nmero desconhece-se partida. A sintaxe do comando for a seguinte:
for index=expresso
instrues
end

Suponha que dispe de 10 nmeros armazenados num vector A e que pretende contar quais so
positivos e quais so negativos. Uma possvel soluo seria:

positivo = 0;
negativo = 0;
for i=1:10
if A(i) >0
positivo=positivo+1;
else
negativo=negativo+1;
end;
end;

De uma forma genrica a expresso para o index pode ser definida como:
for k = inicio:incremento:fim

ou seja k toma o valor inicial inicio e incrementada de incremento at ao valor final fim.

Matlab: Ferramenta de simulao computacional e clculo numrico

21

1.4 Controlo de fluxo

Consideremos um exemplo. Suponhamos o mesmo problema em que a dimenso do vector A


desconhecida e pretende-se apenas contar os elementos positivos e negativos das colunas
mpares. Uma possvel soluo seria:

positivo = 0;
negativo = 0;
for i=1:2:length(A)
if A(i) > 0
positivo=positivo+1;
else
negativo=negativo+1;
end;
end;

1.4.8 Ciclo de repetio While

Ao contrrio do ciclo for, no ciclo while o ciclo executado no um nmero predeterminado de


vezes mas enquanto uma expresso lgica for verdadeira. A sintaxe do ciclo while a seguinte:
while expresso lgica
instrues
end

Ou seja, enquanto a expresso lgica for verdadeira executado o conjunto de instrues. Caso
seja falsa interrompido o ciclo.
O primeiro exemplo de contagem de nmeros positivos e negativos pode ser solucionado usando
um ciclo while:

positivo = 0;
negativo = 0;
i=1;
while i<=10
if A(i) >0
positivo=positivo+1;
else;

Matlab: Ferramenta de simulao computacional e clculo numrico

22

1.4 Controlo de fluxo


negativo=negativo+1;
end;
i=i+1;
end;

1.5 Grficos 2D
1.5.1 Comando Plot

A maioria dos grficos necessrios so, sem dvida, do tipo x-y. Os dados consistem
normalmente num conjunto de pares ordenados de pontos e da a designao de grficos (x,y).
Recorde-se a tabela 1.1, onde se mostram os valores observados da temperatura do ar num
determinado local durante as 24 horas do dia, de duas em duas horas. Assumindo que os valores
foram guardados em dois vectores
>>

x =[ 0: 2: 22]

>>

y =[

10

14

17

15

13

11

10 ]

ento, como j se referiu, o comando


>>

plot(x,y)

permite visualizar os dados da seguinte forma:

20

15

10

10

15

20

Figura 1.2: Grfico da temperatura do ar.

Matlab: Ferramenta de simulao computacional e clculo numrico

23

1.5 Grficos 2D
Ttulos

ainda possvel introduzir facilmente ttulos, designaes nos eixos e grelhas. Para isso poderse-iam usar os seguinte comandos:
>>

xlabel(Horas do dia)

>>

ylabel(Valores da Temperatura)

>>

title(Recolha de Valores da Temperatura do Ar)

>>

grid

Recolha de Valores da Temperatura do Ar

20
V
a
l
o
r
e
s

15

d
a
T
e
m
p
e
r
at
u
r
a

10

10

15

20

Horas do dia

Figura 1.3: Alterao do grfico da temperatura do ar.

1.5.2 Grficos de barras

Outra possibilidade grfica que o Matlab permite a utilizao de grfico de barras. Existem
quatro comandos,
" bar(y)

Desenha um grfico de barras com os elementos do vector y

" bar(x,y)

Desenha um grfico de barras com os elementos do vector y


segundo as localizaes especficas do vector x que se assume ter
elementos igualmente espaados e ordenados por ordem
crescente

" stairs(y)

Desenha um grfico em degraus com os elementos do vector y

" stairs(x,y)

Desenha um grfico em degraus com os elementos do vector y


segundo as localizaes especficas do vector x que se assume ter

Matlab: Ferramenta de simulao computacional e clculo numrico

24

1.5 Grficos 2D
elementos igualmente espaados e ordenados por ordem
crescente

A seguir mostram-se exemplos destes comandos utilizando o exemplo j conhecido da


temperatura do ar.
>>

bar(x,y)

20
18
16
14
12
10
8
6
4
2
0

10

15

20

Figura 1.4: Grfico de barras da temperatura do ar.

>>

stairs(x,y)

20

15

10

10

15

20

Matlab: Ferramenta de simulao computacional e clculo numrico

25

1.5 Grficos 2D
Figura 1.5: Grfico de barras da temperatura do ar.

1.5.3 Opes de grficos

Apresentam-se agora algumas opes relativas ao traado de grficos.


Representao da rea da curva: fill

possvel, usando a funo fill, representar no s a funo mas tambm a rea por ela definida
numa determinada cor. Por exemplo o comando a seguir,
>>

fill(x,y,c)

em que x e y so os vectores definidos para o exemplo da temperatura do ar, permite representar


o grfico definindo um polgono de cor c, neste caso cyan.

R e co lha de V alo re s da T em p era tura d o A r


20

15

10

10
H o ra s do dia

15

20

Figura 1.6: Definio de um polgono.

Representao simultnea de vrias curvas no mesmo grfico

Suponha que, para alm da temperatura, foi recolhido tambm o valor da velocidade do vento
durante o dia, armazenado no vector w.
Horas

Temperatura

Vento

12

13

14

Matlab: Ferramenta de simulao computacional e clculo numrico

26

1.5 Grficos 2D
6

15

17

10

10

13

12

14

19

14

17

11

16

15

18

13

20

11

22

10

14

Tabela 1.7: Valores da temperatura do ar e velocidade do vento.

Deseja-se portanto representar simultaneamente a temperatura e velocidade do vento no mesmo


grfico. Em Matlab tal possvel fazendo:
>>

plot(x,y,x,w)

20

15

10

10

15

20

Figura 1.7: Grfico simultneo de vrias curvas.

Alm de poder representar vrias curvas no mesmo grfico pode-se ainda desejar visualizar de
forma diferente (para melhor as distinguir) cada uma das curvas. Em Matlab possvel
representar cada curva usando dois parmetros: tipo de linha e cor. A expresso geral :
plot(x,y,ct)

em que c identifica a cor e t o tipo de linha. Existem as seguintes possibilidades:

Matlab: Ferramenta de simulao computacional e clculo numrico

27

1.5 Grficos 2D
Cor

Tipo

Amarelo

Ponto

Mangenta

Circulo

Cian

Snal mais

Vermelho

Snal x

Verde

Slido

Azul

Ponteado

Branco

-.

Trao Ponto

Preto

--

Tracejado

Tabela 1.8: Opes de visualizao.

Assim, o comando
>>

plot(x,y,'-.,x,w,'x')

teria como resultado,


20

15

10

10

15

20

Figura 1.8: Vrios tipos de curvas.

Representao simultnea de vrios grficos

Alm de por vezes se desejar visualizar vrias linhas no mesmo grfico deseja-se visualizar
vrios grficos no mesmo cran. O Matlab permite-o fazer usando o comando subplot. A sintaxe
deste comando a seguinte:
subplot(a,b,c)

Matlab: Ferramenta de simulao computacional e clculo numrico

28

1.5 Grficos 2D

Os parmetros a b e c so nmeros inteiros que definem:


a - o nmero de linhas segundo a qual o cran vai ser dividido
b - o nmero de colunas segundo a qual o cran vai ser dividido
c - permite escolher qual o subcran da matriz definida por (a,b)

Um exemplo:
>>

subplot(2,2,3)

Este comando permite definir o cran em duas linhas e duas colunas e seleccionar o terceiro
elemento, ou seja a posio, (2,1). O prximo grfico ser visualizado apenas neste cran.
Retomando o exemplo da temperatura e velocidade do vento suponha que foram executados os
seguintes comandos no Matlab,
>>

subplot(2,2,2)

>>

plot(x,y)

>>

title(' Temperatura ')

>>

subplot(2,2,3)

>>

plot(x,w)

>>

title(' Velocidade do Vento ')

Tem peratura
20
15
10
5

10

20

V elocid ade d o V en to
20
15
10
5

10

20

Figura 1.9: Diviso do cran.

Matlab: Ferramenta de simulao computacional e clculo numrico

29

1.5 Grficos 2D

Divide-se portanto o cran em duas linhas e duas colunas, selecciona-se o segundo elemento e
visualiza-se a curva da temperatura, selecciona-se o terceiro elemento e visualiza-se a curva da
velocidade do vento.
Definio da Escala

O Matlab automaticamente define qual a gama de visualizao para os eixos vertical e horizontal
de um grfico. contudo possvel definir a gosto do utilizador a gama e o tipo de escalas a
utilizar. Para isso existe o comando axis. Eis algumas possibilidades:
" axis(v)

Permite definir as escalas em que v um vector de quatro


elementos reais v=[ xmin xmax ymin ymax]

" axis

Permite retornar ao valor original da escala antes de ser


definida pelo comando anterior.

"axis(normal)

o valor por defeito.

" axis(square)

Especificao do aspecto do grfico como quadrado.

Controlo do cran

Existem em Matlab duas janelas: de comandos e de grficos. Na janela de comandos so


inseridos os comandos e na de grficos so visualizados os grficos gerados por exemplo com o
comando plot. A seguir mostram-se alguns dos comandos capazes de operar com estas duas
janelas:
" shg

Visualizar a janela de grficos

" qualquer tecla

Visualizar a janela de comandos

" clc

Apagar a janela de comandos

" clg

Apagar a janela de grficos

" home

Ir para a posio inicial da janela de comandos

1.6 Grficos 3D
Nesta seco estudam-se algumas das possibilidades do Matlab na representao de grficos
tridimensionais.
Matlab: Ferramenta de simulao computacional e clculo numrico

30

1.6 Grficos 3D

1.6.1 Comando Plot3

semelhana do comando plot para curvas 2D existe o comando plot3 para representar no
espao tridimensional os vectores X, Y, e Z.
>>

plot3(x,y,z)

Por exemplo a seguinte sequncia de comandos,


>>

t=0:0.1:5*pi;

>>

plot3( sin(t), cos(t), t)

>>

xlabel(x)

>>

ylabel(y)

>>

zlabel(z)

>>

grid

permite obter o seguinte grfico:

20
15
10
z
5
0
1
0 .5

1
0 .5

-0 .5
y

-0.5
-1

-1

Figura 1.10: Plot 3D.

Note-se a existncia do comando zlabel a utilizar na terceira coordenada.


1.6.2 Superfcies Mesh
Matlab: Ferramenta de simulao computacional e clculo numrico

31

1.6 Grficos 3D

Uma superfcie mesh gerada a partir de um conjunto de pontos existente numa matriz: cada
ponto da matriz representa o valor da superfcie.
Por exemplo pretende-se gerar uma superfcie tridimensional tal que as variveis x e y so as
variveis independentes (representam o plano horizontal) e a varivel z a dependente
(representa a terceira coordenada de cada ponto no espao).
Suponhamos por exemplo que se deseja traar o grfico da funo
z = f ( x, y ) = 1 x 2 y 2

ou de outra forma
x2 + y2 + z2 = 1
que se sabe ser uma esfera centrada na origem e raio 1. Sabe-se ainda que -0.5 x 0.5 e tambm
-0.5 y 0.5.
Primeiro procede-se criao da matriz z que contm valores de f(x,y).

i=1;
for x=-0.5:0.1:0.5;
j=1;
for y=-0.5:0.1:0.5;
z(i,j)=sqrt(abs(1-x.^2-y.^2));
j=j+1;
end
i=i+1;
end

Para traar o grfico basta executar,


>>

mesh(z)

>>

title ( Grafico 3D)

Matlab: Ferramenta de simulao computacional e clculo numrico

32

1.6 Grficos 3D
G rafico 3 D
1
0 .9 5
0.9
0 .8 5
0.8
0 .7 5
0.7
15
15

10
10

5
0

Figura 1.11: Grfico 3D - funo mesh.

tambm possvel gerar automaticamente a superfcie definindo o domnio de x e y a partir do


comando meshgrid. O mesmo exemplo poderia ser solucionado da seguinte forma:

>>

[xdom,ydom]]=meshgrid( -0.5:0.1:0.5, -0.5:0.1:0.5);

>>

z= sqrt(abs(1-xdom.^2-ydom.^2));

>>

mesh(z)

O comando mesh(z) visualiza a superfcie sendo da responsabilidade do Matlab definir a gama


de visualizao. possvel alterar esta facto sendo a gama especificada pelo utilizador custa do
comando.
>>

mesh(X,Y,z)

Neste caso a superfcie representada seria (note-se alm disso a introduo de uma grelha com o
comando grid).

Matlab: Ferramenta de simulao computacional e clculo numrico

33

1.6 Grficos 3D
G rafico 3D

1
0.9 5
0 .9
0.8 5
0 .8
0.7 5
0 .7
0.5
0.5
0

0
-0 .5

-0 .5

Figura 1.12: Alterao de um grfico 3D.

Modificao do ngulo de Vista

Pode ser desejado visualizar uma figura segundo um ngulo diferente. A posio de vista
definida em termos de azimute (rotao horizontal) e elevao vertical, ambas especificadas em
graus. Um valor positivo de azimute indica uma rotao no sentido contrrio ao dos ponteiros do
relgio. Valores positivos para a elevao vertical indicam uma rotao para cima e negativos
uma rotao para baixo. O valor de defeito utilizado pelo Matlab -37.5 para o azimute e 30 para
a elevao vertical.
possvel especificar estes parmetros no comando mesh, por exemplo, o comando
>>

mesh(z, [ -37.5, 0]])

permite visualizar a superfcie de uma elevao horizontal nula.


O comando,
>>

mesh(z, [ 30, 20]])

>>

grid

permite visualizar a superfcie de um azimute=30 e uma elevao horizontal=20.

Matlab: Ferramenta de simulao computacional e clculo numrico

34

1.6 Grficos 3D
G rafic o 3 D
1

0.9 5

0 .9

0.8 5

0 .8

0.7 5

0 .7
15

10

10

15

Figura 1.13: ngulo de vista num grfico 3D : - 37.5, 0.

G rafic o 3 D

1
0 .9 5
0.9
0 .8 5
0.8
0 .7 5
15
0.7
0

10
5

10

5
15

Figura 1.14: Azimute num grfico 3D: 30, 20.

1.6.3 Superfcies Surf

Com o comando mesh possvel definir uma superfcie tipo uma grelha. Usando o comando
surf possvel representar outro tipo de superfcies, como a seguir se indica.
Suponha-se por exemplo que se deseja traar o grfico da funo sin(z)/z, vulgarmente conhecida
por chapu mexicano. Utilizando o comando meshgrid possvel determinar z=f(x,y)

Matlab: Ferramenta de simulao computacional e clculo numrico

35

1.6 Grficos 3D
>>

x=-8:0.6:8;

>>

y=-8:0.6:8;

>>[X,Y]

= meshgrid(x,y);

>>

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

>>

Z = sin(Z)./Z;

>>

surf(Z)

Figura 1.15: Superfcie Surf - Shading Faceted.

Modificao do Tipo de Superfcie

possvel especificar uma de trs tipos de superfcies possveis:


SHADING FACETED - valor por defeito
SHADING FLAT - interpolao linear
SHADING INTERP - interpolao quadrtica

A seguir mostram-se tais opes fazendo uso do comando subplot j anteriormente explicado.
>>

surf(X,Y,Z)

>>

shading flat

>>

surf(X,Y,Z)

Matlab: Ferramenta de simulao computacional e clculo numrico

36

1.6 Grficos 3D
>>

shading interp

Figura 1.16: Superfcie Surf - Shading Flat.

Figura 1.17: Superfcie Surf - Shading Interp.

1.6.4 Outras Possibilidades


Modificao do ngulo de Vista

Vimos anteriormente que usando o comando mesh possvel definir um azimute e uma
elevao. De uma forma genrica pode ser usado o comando view.
>>

view(azimute, elevacao)

Matlab: Ferramenta de simulao computacional e clculo numrico

37

1.6 Grficos 3D

A seguir mostra-se o grfico da funo z = x e ( x


e elevao:

y2

) usando as seguintes definies de azimute

view(0,0)
view(0,90)
view(-45,30)
view(45,30)

Figura 1.18: ngulo de viso - comando View.

Eliminao dos Eixos

Entre outras possibilidades j estudadas anteriormente acerca dos eixos vulgar num grfico
tridimensional querer mostrar apenas a figura. Isso possvel com o comando,
>>

axis(off)

Para mostrar novamente os eixos deve-se fazer:


>>

axis(on)

Modificao da Cor

Matlab: Ferramenta de simulao computacional e clculo numrico

38

1.6 Grficos 3D

Em Matlab existe um comando, colormap (mapa), que permite optar por um mapa de cores. Eis
algumas das possibilidades: hsv, pink, prism e hot.

Figura 1.19: Mapa de cor: Hsv.

Figura 1.20: Mapa de cor: Pink.

Figura 1.21: Mapa de cor: Prism.

Figura 1.22: Mapa de cor: Hot.

Eliminao de partes da figura

Alm dos vectores X, Y e Z, no comando surf possivel especificar um quarto parmetro, a cor
da superfcie. De uma forma genrica o comando ser:
>>

surf(X,Y,X,C)

Por defeito, no sendo especificado o parmetro C, assume-se que a cor proporcional ao


valor dos elementos da superfcie, ou seja de Z. Seguindo este raciocnio possvel alterar a cor
individual de cada um dos elementos da superfcie.
Apesar deste assunto no ser aqui abordado, mostra-se como possvel introduzir buracos na
superfcie. Para isso os elementos a eliminar devero ter o valor de Nan (varivel pr definida
em Matlab). Segue-se um exemplo.
>>

C=Z;

>>

xburaco=5:13;

Matlab: Ferramenta de simulao computacional e clculo numrico

39

1.6 Grficos 3D
>>

yburaco=5:13;

>>

C(xburaco,yburaco)=nan*C(xburaco,yburaco);

>>

surf(X,Y,Z,C)

No so mostrados os elementos de X=[5..13] e Y=[5..13] da superfcie. Recorde-se que a


dimenso de X e Y foi definida por X=Y=-8:0.6:8, portanto 27 elementos.

Figura 1.23: Eliminao de Partes da figura.

1.7 Outros Comandos e Funes


Embora no se inserindo em qualquer das seces anteriores existem outros comandos que se
passam a explicar:
" who

Lista as variveis definidas at ao momento

" whos

Idntico ao who s que dada informao adicional (tamanho, )

" what

Lista dos ficheiros *.m, *.mat e*.mex

" exit, quit

Abandonar o Matlab

"!

Executar um comando DOS

" computer

Tipo de computador sobre o qual o Matlab se encontra a operar

" clear

Eliminar variveis do espao de trabalho

" ^c

Abortar uma aco que est a ser executada pelo Matlab

" ans

Varivel usada para armazenar o resultado da ltima operao

" help

Para aceder ajuda

Matlab: Ferramenta de simulao computacional e clculo numrico

40

1.7 Outros comandos e funes


"%

Para inserir uma linha de comentrios

" pause

Espera por uma aco do utilizador

Exemplos:
help abs

Permite aceder definio da funo abs ...


c=a+b

% soma de a e b

Permite comentar o resultado da operao a+b


! dir

Equivalente ao comando dir em DOS.

1.8 Exemplos
Apresentam-se agora alguns exemplos de aplicao em Matlab
1.8.1 Mximo, mnimo e mdia

Neste primeiro exemplo pretende-se, dada uma funo y=f(x), calcular o seu valor mximo,
mnimo e mdio, para um certo domnio de x. Para isso pretende-se construir uma funo que
permita determinar o mximo, mnimo e o valor mdio de um dado conjunto de valores.
Deve-se no final fazer a representao de f(x), assim como as rectas horizontais que definem o
seu mximo, mnimo e mdia.
Dados: A funo f ( x) = 3 e x sin(5 x) definido no intervalo [0,5].

Funo auxiliar: mamime.m

Function [ma,mi,me]=mamime(x)
Ma= max(x);

Matlab: Ferramenta de simulao computacional e clculo numrico

41

1.9 ndice de funes por assuntos


Mi= min(x);
Me= mean(x);
End

Programa principal: exemplo1.m

% -------------------- Definicao de t e x
x=0:0.1:5;
y=3*exp(-x).*sin(5*x);
% -------------------- Chamada da funcao
[ma,mi,me]=mamime(y);
% --------------------- Graficacao
N=length(y);
recta=ones(N,1);
plot(x,y,x,ma*recta,':',x,mi*recta,':',x,me*recta,':');
title( Maximo, Minimo e Media)

M a xim o , M in im o e M e d ia
2 .5
2
1 .5
1
0 .5
0
-0.5
-1
-1.5

Figura 1.24: Mximo, mnimo e mdia de uma funo.

1.8.2 Razes de um polinmio

Pretende-se neste exemplo implementar em Matlab um programa que permita ao utilizador


definir um polinmio de terceira ordem, traar o grfico e calcular as suas razes. Devem ainda
ser indicadas as razes reais (pelo menos uma das razes real).

Matlab: Ferramenta de simulao computacional e clculo numrico

42

1.9 ndice de funes por assuntos

Clear
Clc
%-------------------------------- Definicao do polinomio
disp(' INTRODUCAO DOS COEFICIENTES ')
a3 = input(' Coeficiente de ordem tres : ' );
a2 = input(' Coeficiente de ordem dois : ' );
a1 = input(' Coeficiente de ordem um

: ' );

a0 = input(' Coeficiente independente

: ' );

polinomio=[ a3 a2 a1 a0];
%-------------------------------- Definicao da gama de x
xmin = input(' Valor minimo de x ' );
xmax = input(' Valor maximo de x ' );
%-------------------------------- Calculo de y=f(x)
x=xmin:0.01:xmax;
y= a3*x.^3 + a2*x.^2 + a1*x + a0;
plot(x,y, x,0*y)
title(' Polinomio de terceira ordem ')
xlabel(' x ')
ylabel(' y ')
%-------------------------------- Calculo das raizes
raizes=roots(polinomio);
for i=1:3
if isreal(raizes(i))
disp(' Tem uma raiz real em :')
disp( raizes(i) )
pause
end
end

A seguir mostra-se o exemplo para o seguinte polinmio: f(x) = x3 - 6 x2 -4 x + 24, cujas razes
so -2, 2 e 6.

Matlab: Ferramenta de simulao computacional e clculo numrico

43

1.9 ndice de funes por assuntos


P olin om io de terceira ord em
50
40
30
20
10
0
y
-10
-20
-30
-40
-50
-4

-2

2
x

Figura 1.25: Razes de uma funo.

1.9 - ndice de Funes por Assuntos


Apresentam-se agora as funes mais importantes em Matlab ordenadas por assunto.
Genricas

Geral
help

ajuda

demo

demonstrao

who

variveis definidas em memria

what

lista das *.m files

computer

tipo computador

size

dimenso de uma matriz

length

tamanho de um vector

clear

eliminar uma varivel

^c

abortar uma aco

quit

sair do Matlab

exit

idntica a quit

Caracteres Especiais
=

atribuio

definio de vectores e matrizes

ver [

precedncias em expresses

ver )

ponto decimal

Matlab: Ferramenta de simulao computacional e clculo numrico

44

1.9 ndice de funes por assuntos


...

continuao da instruo na prxima linha

separao de elementos a argumentos de uma funo

fim de linha, suprimir visualizao

comentrio

ndices, gerar vectores

executar comandos do sistema operativo DOS

Matrizes
Operadores
Matrizes

Vectores

adio

adio

subtraco

subtraco

multiplicao

.*

multiplicao

diviso direita

./

diviso direita

diviso esquerda

.\

diviso esquerda

potncia

potncia

transposta

^.

transposta

Funes Matemticas
abs

valor absoluto

sqrt

raiz quadrada

real

parte real de um nmero complexo

imag

parte imaginria de um nmero complexo

conj

conjugado de um nmero complexo

round

converte para o inteiro mais prximo

fix

converte para o inteiro mais prximo 0

floor

converte para o inteiro mais prximo -

ceil

converte para o inteiro mais prximo +

sign

sinal de nmero

rem

resto

fmin

mnimo de uma funo de uma varivel

fzero

zeros de uma funo de uma varivel

fmins

mnimo de uma funo de vrias variveis

fzeros

zeros de uma funo de vrias variveis

sin

seno

Matlab: Ferramenta de simulao computacional e clculo numrico

45

1.9 ndice de funes por assuntos


cos

coseno

tan

tangente

asin

arco seno

acos

arco coseno

atan

arco tangente

sinh

seno hiperblico

cosh

coseno hiperblico

tanh

tangente hiperblico

exp

exponencial (base e)

log

logaritmo natural (base e)

log10

logaritmo (base 10)

Matrizes...
Definio de Matrizes
diag

matriz diagonal

eye

matriz identidade

ones

matriz de uns

zeros

matriz de zeros

rand

matriz aleatria

magic

matriz mgica

tril

matriz triangular inferior

triu

matriz triangular superior

det

determinante de uma matriz

rank

caracterstica de uma matriz

Operaes por colunas/linhas (vectores)


max

mximo

min

mnimo

mean

valor mdio

std

desvio padro

median

mediana

sort

ordenao

sum

soma dos elementos

prod

produto dos elementos

diff

diferenas (aproximao da derivada)

hist

histograma

table1

interpolao linear

corr

matriz de correlao

cov

matriz de covarincia

spline

interpolao cbica

Matlab: Ferramenta de simulao computacional e clculo numrico

46

1.9 ndice de funes por assuntos


Valores Especiais
resposta de uma expresso no atribuda a uma

ans

varivel
eps

preciso

pi

= 3.14159...

inf

Nan

indica que no um nmero

clock

relgio

nargin

nmero de argumentos de entrada numa funo

nargout

nmero de argumentos de sada numa funo

Controlo Fluxo / Lgica

Controlo de Fluxo
if

expresso condicional

elseif

usada com if

else

usada com if

end

fim de if, for, while

for

repetio um nmero conhecido de vezes

while

repetio enquanto se verificar uma condio

break

terminar ciclos for ou while

return

retornar de funes

pause

pausa at carregar numa tecla

Operadores Lgicos e Relacionais


<

menor

&

AND

<=

menor ou igual

OR

>

maior

NOT

>=

maior ou igual

==

igual

~=

diferente

Funes Lgicas
any

condio lgica

all

condio lgica

find

procura de ndices de valores lgicos

isnan

detectar Nan

finit

detectar infinitos

isempt

detectar matrizes vazias

Matlab: Ferramenta de simulao computacional e clculo numrico

47

1.9 ndice de funes por assuntos


exist

se existe definida uma varivel

isstr

se uma string

Matlab: Ferramenta de simulao computacional e clculo numrico

48

1.9 ndice de funes por assuntos


Grficos
Grfica

Comando

plot

grfico linear x-y

format

formato de nmeros

polar

grfico polar

disp

visualizao

de

texto

ou

formatada

de

matrizes
mesh

superfcie 3D

fprintf

visualizao
nmeros

meshgrid

domnio em superfcies 3D

clc

apagar janela de comando

bar

grficos de barras

home

posio superior esquerda

grid

grelha

title

ttulo em grficos

xlabel

eixo dos x

ylabel

eixo dos y

text

texto

axis

definio de eixos

hold

manter um grfico

shg

mostrar a janela dos grficos

clg

apagar a janela dos grficos

subplot

diviso da janela de grficos

print

impresso de grficos

surf

superfcie 2D

plot3

curva 3D

view

ngulo de vista

shading

tipo superfcie

colormap

mapa de cores

caxis

modificao escala de xores

Matlab: Ferramenta de simulao computacional e clculo numrico

49

1.9 ndice de funes por assuntos


Outros

Texto e Strings
abs

converter strings em valores ASCII

num2str

converter nmeros em stribgs

int2str

converter inteiros para strings

setstr

indicar que uma matriz uma string

sprintf

converter nmeros para stringd

Polinmios
poly

polinmio caracterstico

roots

razes de um polinmio

polyval

clculo do valor de um polinmio

conv

multiplicao de polinmios

deconv

diviso de polinmios

residue

expanso em fraces parciais

polyfit

ajuste de curvas por um polinmio

Gesto de Ficheiros
chdir

mudana de directoria

delete

eliminar ficheiros

dir

lista de uma directoria

load

carregar um ficheiro de disco

save

guardar um ficheiro em disco

type

visualizao de um ficheiro

what

lista de ficheiros *.m

Matlab: Ferramenta de simulao computacional e clculo numrico

50