Anda di halaman 1dari 50

Curso de MATLAB__________________________________________________________________________

APOSTILA

CURSO DE MATLAB

O que o MATLAB?.................................................................................................................... 3
Carregando o MATLAB................................................................................................................ 3
Editor de Linhas de Comando................................................................................................. 4
1 INTRODUO.............................................................................................................................. 5
1.1 Entrando com Matrizes Simples...................................................................................5
1.2 Elementos das Matrizes................................................................................................ 6
1.3 Declaraes e Variveis.............................................................................................. 7
1.4 Obtendo Informaes da rea de Trabalho................................................................8
1.5 Nmeros e Expresses Aritmticas.............................................................................9
1.6 Nmeros e Matrizes Complexas.....................................................................................9
1.7 Formato de Sada......................................................................................................... 10
1.8 As Facilidades do HELP (Ajuda)...............................................................................11
1.9 Funes.......................................................................................................................... 14
2 OPERAES COM MATRIZES..................................................................................................... 15
2.1 Transposta..................................................................................................................... 15
2.2 Adio e Subtrao...................................................................................................... 16
2.3 Multiplicao............................................................................................................... 17
2.4 Diviso.......................................................................................................................... 18
2.5 Exponenciao............................................................................................................... 19
3 OPERAES COM CONJUNTOS................................................................................................... 19
3.1 Adio e Subtrao...................................................................................................... 19
3.2 Multiplicao e Diviso............................................................................................ 19
3.3 Exponenciao............................................................................................................... 20
3.4 Operaes Comparativas.............................................................................................. 21
4 MANIPULAO DE VETORES E MATRIZES................................................................................21
4.1 Gerando Vetores........................................................................................................... 21
____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

4.2 Elementos das Matrizes.............................................................................................. 22


5 FUNES................................................................................................................................. 25
5.1 Integrao Numrica.................................................................................................... 26
5.2 Equaes No-Lineares e Otimizao........................................................................26
5.3 Equaes Diferenciais................................................................................................ 28
6 GRFICOS............................................................................................................................... 30
6.1 Grficos Bidimensionais............................................................................................ 30
6.2 Estilos de Linha e Smbolo......................................................................................33
6.3 Nmeros Complexos........................................................................................................ 34
6.4 Escala Logartmica, Coordenada Polar e Grfico de Barras..............................34
6.5 Plotando Grficos Tridimensionais e Contornos...................................................35
6.6 Anotaes no Grfico.................................................................................................. 36
7 CONTROLE DE FLUXO.............................................................................................................. 37
7.1 Lao for........................................................................................................................ 38
7.2 Lao while..................................................................................................................... 38
7.3 Declaraes if e break.............................................................................................. 39
8 ARQUIVOS .m...................................................................................................................... 40
9 OPERAES COM O DISCO....................................................................................................... 41
9.1 Manipulao do Disco.................................................................................................. 41
9.2 Executando Programas Externos.................................................................................42
9.3 Importando e Exportando Dados.................................................................................42
10 REFERNCIAS........................................................................................................................ 45
11 LISTA DE EXERCCIOS......................................................................................................... 46

O que o MATLAB?
MATLAB um software interativo de alta performance voltado para o clculo
numrico. O MATLAB integra anlise numrica, clculo com matrizes,
processamento de sinais e construo de grficos em ambiente fcil de usar onde
problemas e solues so expressos somente como eles so escritos
matematicamente, ao contrrio da programao tradicional.
O MATLAB um sistema interativo cujo elemento bsico de informao uma
matriz que no requer dimensionamento. Esse sistema permite a resoluo de muitos
problemas numricos em apenas uma frao do tempo que se gastaria para escrever
um programa semelhante em linguagem Fortran, Basic ou C. Alm disso, as solues
dos problemas so expressas no MATLAB quase exatamente como elas so escritas
matematicamente.
Carregando o MATLAB
No Gerenciador de Programas do Microsoft Windows deve-se abrir o grupo de
programas do MATLAB for Windows, que contm o cone do aplicativo MATLAB.
Um duplo clique no cone MATLAB carrega o aplicativo MATLAB.
____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

Quando o MATLAB carregado, duas janelas so exibidas: a Janela de


Comando (Command Windows) e Janela Grfica (Graphic Windows). A Janela de
Comando ativada quando se inicializa o MATLAB, e o prompt padro (>>)
exibido na tela.
A partir desse ponto, o MATLAB espera as instrues do usurio. Para entrar
com uma matriz pequena, por exemplo, usa-se
>> A = [1 2 3; 4 5 6; 7 8 9]
colocando colchetes em volta dos dados e separando as linhas por ponto e vrgula..
Quando se pressiona a tecla <enter> o MATLAB responde com
A=
1
4
7

2
5
8

3
6
9

Para inverter esta matriz usa-se


>> B = inv(A)
e o MATLAB responde com o resultado.

Editor de Linhas de Comando


As teclas com setas podem ser usadas para se encontrar comandos dados
anteriormente, para execuo novamente ou sua reedio. Por exemplo, suponha que
voc entre com
>> log (sqt(tan(pi/5)))
Como para calcular a raiz quadrada o comando certo sqrt, o MATLAB
responde com uma mensagem de erro:
??? Undefined funcion or variable sqt.
Ao invs de reescrever a linha inteira, simplesmente pressione a tecla seta para
cima. O comando errado retorna, e voc pode, ento, mover o cursor para trs
usando a tecla seta para esquerda ou o ponto de insero com o mouse ao lugar
apropriado para inserir a letra r. Ento, o comando retorna a resposta apropriada:
>> log (sqrt(tan(pi/5)))
____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

ans =
-0.1597
Alm das teclas com setas, pode-se usar outras teclas para reeditar a linha de
comando. A seguir dada uma breve descrio destas teclas:

Ctrl
Ctrl
Home
End
Del
Backspace

retorna a linha anterior


retorna a linha posterior
move um espao para a esquerda
move um espao para a direita
move uma palavra para a esquerda
move uma palavra para a direita
move para o comeo da linha
move para o final da linha
apaga um caracter a direita
apaga um caracter a esquerda

1 INTRODUO
O MATLAB trabalha essencialmente com um tipo de objeto, uma matriz
numrica retangular podendo conter elementos complexos (deve-se lembrar que um
escalar uma matriz de dimenso l x l e que um vetor uma matriz que possui
somente uma linha ou uma coluna).
1.1 Entrando com Matrizes Simples
As matrizes podem ser introduzidas no MATLAB por diferentes caminhos:
- digitadas na Janela de Comando (lista explcita de elementos),
- geradas por comandos e funes,
- criadas em arquivos ".m",
- carregadas a partir de um arquivo de dados externo.
O mtodo mais fcil de entrar com pequenas matrizes no MATLAB usando
uma lista explcita. Os elementos de cada linha da matriz so separados por espaos
em branco ou vrgulas e as colunas separadas por ponto e vrgula, colocando-se
colchetes em volta do grupo de elementos que formam a matriz. Por exemplo, entre
com a expresso
>> A=[ 1 2 3;4 S 6;7 8 9 ]
____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

Pressionando <enter> o MATLAB mostra o resultado


A=
l
4
7

2
5
8

3
6
9

A matriz A salva na memria RAM do computador, ficando armazenada para uso


posterior.
As matrizes podem, tambm, ser introduzidas linha a linha, o que indicado
para matrizes de grande dimenso. Por exemplo:
>>A =
>>
>>

[1 2 3
456
7 8 9]

Outra maneira para entrar com matrizes no MATLAB atravs de um arquivo


no formato texto com extenso ".m". Por exemplo, se um arquivo chamado "gera.m"
contm estas trs linhas de texto,
A=

[1 2 3
4S6
7 8 9]

ento a expresso "gera" l o arquivo e introduz a matriz A.


>>gera
O comando load pode ler matrizes geradas pelo MATLAB e armazenadas em
arquivos binrios ou matrizes geradas por outros programas armazenadas em
arquivos ASCII.
1.2 Elementos das Matrizes
Os elementos das matrizes podem ser qualquer expresso do MATLAB,
por exemplo.
>> x = [-1.3 sqrt(2) ((1+2+3)*4/5)^2]
resulta em

____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

x=
-l.3000

1.4142

23.0400

Um elemento individual da matriz pode ser reverenciado com ndice entre parnteses.
Continuando o exemplo,
>> x(6) = abs(x(l))
produz:
x=
-1.3000 1.4142

23.0400 0 0 1.3000

Note que a dimenso do vetor x aumentada automaticamente para acomodar


o novo elemento e que os elementos do intervalo indefinido so estabelecidos como
zero.
Grandes matrizes podem ser construdas a partir de pequenas matrizes. Por
exemplo, pode-se anexar outra linha na matriz A usando
>> r= [ l0 11 12];
>> A= [A;r]
que resulta em

A=
1 2
4 5
7 8
10 11

3
6
9
12

Note que o vetor r no foi listado porque ao seu final foi acrescentado ;.
Pequenas, matrizes podem ser extradas de grandes matrizes usando ;. Por
exemplo,
>> A = A(1:3,:);
seleciona as trs primeiras linhas e todas as colunas da matriz A atual, modificando-a
para sua forma original.
1.3 Declaraes e Variveis

____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

O MATLAB uma linguagem de expresses. As expresses usadas so


interpretadas e avaliadas pelo sistema. As declaraes no MATLAB so
freqentemente da forma
>> varivel = expresso
ou simplesmente
>> expresso
As expresses so compostas de operadores e outros caracteres especiais, de
funes e dos nomes das variveis. A avaliao das expresses produzem matrizes,
que so ento mostradas na tela e atribudas s variveis para uso futuro. Se o nome
da varivel e o sinal de igualdade = so omitidos, a varivel com o nome ans, que
representa a palavra answer (resposta), automaticamente criada. Por exemplo,
digite a expresso
>> 1900/81
que produz
ans=
23.4568
Se o ltimo caractere da declarao um ponto e vrgula, ;, a impresso na
tela suprimida, mas a tarefa realizada. Esse procedimento usado em arquivos
com extenso ".m" e em situaes onde o resultado uma matriz de grandes
dimenses e temos interesse em apenas alguns dos seus elementos.
Se a expresso to grande que no cabe em apenas uma linha, pode-se
continuar a expresso na prxima linha usando um espao em branco e trs
pontos,..., ao final das linhas incompletas. Por exemplo,
>> s = l - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 ...
>> - 1/8 + 1/9 - l/10 + 1/11 - 1/12 + 1/13;
calcula o resultado da srie, atribuindo a somatria varivel s, mas no imprime o
resultado na tela. Note que os espaos em branco entre os sinais =, + e - so
opcionais, mas o espao em branco entre 1/7 e ... obrigatrio.
As variveis e funes podem ser formadas por um conjunto de letras, ou por
um conjunto de letras e nmeros, onde somente os primeiros 19 caracteres do
conjunto so identificados. O MATLAB faz distino entre letras maisculas e
minsculas, assim a e A no so as mesmas variveis. Todas as funes devem ser
escritas em letras minsculas: inv(A) calcula a inversa de A, mas INV(A) uma
funo indefinida.
____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

1.4 Obtendo Informaes da rea de Trabalho


Os exemplos de declaraes mostrados nos itens acima criaram variveis que
so armazenadas na rea de Trabalho do MATLAB. Executando
>> who
obtm-se uma lista das variveis armazenadas na rea de Trabalho:
Your variables are:
A

ans

Que mostra as cinco variveis geradas em nossos exemplos, incluindo ans.


Uma informao mais detalhada mostrando a dimenso de cada uma das variveis
correntes obtido com whos que para nosso exemplo produz:

Name
A
ans
r
s
x

Size
3 by 3
1 by 1
1 by 3
1 by 1
1 by 6

Elements
9
1
3
1
6

Bytes
72
8
24
8
48

Density
Full
Full
Full
Full
Full

Complex
No
No
No
No
No

Grand total is 20 elements using 160 bytes


Cada elemento de uma matriz real requer 8 bytes de memria, assim nossa
matriz A de dimenso 3x3 usa 72 bytes e todas variveis utilizadas um total de 160
bytes.
1.5 Nmeros e Expresses Aritmticas
A notao decimal convencional, com ponto decimal opcional e o sinal de
menos, usada para nmeros. A potncia de dez pode ser includa como um sufixo.
A seguir so mostrados alguns exemplos de nmeros aceitos:
3

-99

0.00001

____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

9.637458638

1.602E-20

6.06375e23

As expresses podem ser construdas usando os operadores aritmticos usuais e


as regras de precedncia:
1
2
2
3
4
4

^
/
\
*
+
-

exponenciao
diviso a direita
diviso a esquerda
multiplicao
adio
subtrao

Deve-se notar que existem dois smbolos para diviso: as


expresses 1/4 e 4\1 possuem o mesmo valor numrico, isto ,
0,25. Parnteses so usados em sua forma padro para alterar o
mesmo a precedncia usual dos operadores aritmticos.
1.6 Nmeros e Matrizes Complexas
Nmeros complexos so permitidos em todas operaes e
funes no MATLAB. Os nmeros complexos so introduzidos
usando-se as funes especiais i e j. Por exemplo
>> z= 3 + 4*i
ou
>> z= 3 +4*j
Outro exemplo
>> w= r * exp(i*theta)
As seguintes declaraes mostram dois caminhos
convenientes para se introduzir matrizes complexas no MATLAB:
>> A= [1 2; 3 4]+i*[5 6;7 8]
e
>> A= [1+5*i 2+6*i; 3+7*i 4+8*i]
que produzem o mesmo resultado.
____________________________________________________________________________________________

Curso de MATLAB__________________________________________________________________________

Se i ou j forem usados como variveis, de forma que tenham


seus valores originais modificados, uma nova unidade complexa
dever ser criada e utilizada de maneira usual:
>> ii = sqrt(-1);
>> z = 3 + 4*ii
1.7 Formato de Sada
O formato numrico exibido na tela pode ser modificado
utilizando-se o comando format, que afeta somente o modo como
as matrizes so mostradas, e no como elas so computadas ou
salvas (o MATLAB efetua todas operaes em dupla preciso).
Se todos os elementos das matrizes so inteiros exatos, a
matrizes mostrada em um formato sem qualquer ponto decimal.
Por exemplo,
>> x = [-1 0 1]
sempre resulta em
x=
-1 0 1
Se pelo menos um dos elementos da matriz no inteiro
exato, existem vrias possibilidades de formatar a sada. O formato
default, chamado de formato short, mostra aproximadamente 5
dgitos significativos ou usam notao cientfica. Por exemplo a
expresso
>> x = [4/3 1.2345e-6]
mostrada , para cada formato usado, da seguinte maneira:
format
format
format
format

short
short e
long
long e

format hex
format rat
format bank

1.3333 0.0000
1.3333e+000 1.2345e-006
1.33333333333333 0.000000123450000
1.333333333333333e+000
1.234500000000000e-006
3ff5555555555555 3eb4b6231abfd271
4/3
1/810045
1.33 0.00

____________________________________________________________________________________________

10

Curso de MATLAB__________________________________________________________________________

format +

++

Com o formato short e long, se o maior elemento da matriz


maior que 1000 ou menor que 0.001, um fator de escala comum
aplicado para que a matriz completa seja mostrada. Por exemplo,
>> x = 1.e20*x
resultado da multiplicao ser mostrado na tela.
X=
l.0e+20 *
1.3333 0.0000
O formato + uma maneira compacta de mostrar matrizes de grandes
dimenses. Os smbolos "+", "-", e "espao em branco" so mostrados,
respectivamente para elementos positivos, elementos negativos e zeros.
1.8 As Facilidades do HELP (Ajuda)
O MATLAB possui um comando de ajuda (help) que fornece informaes
sobre a maior parte dos tpicos. Digitando
>> help
obtm-se uma lista desses tpicos disponveis:
HELP topics:
c:\matlab
matlab\general
matlab\ops
matlab\lang
matlab\elmat
matlab\specmat
matlab\elfun
matlab\specfun
matlab\matfun
matlab\datafun
matlab\polyfun
matlab\funfun
matlab\sparfun
matlab\plotxy

-Establish MATLAB session parameters.


-General purpose commands.
-Operators and special characters.
-Language constructs and debugging.
-Elementary matrices and matrix manipulation.
-Specialized matrices.
-Elementary math functions.
-Specialized math functions.
-Matrix functions - numerical linear algebra.
-Data analysis and Fourier transform functions.
-Polynomial and interpolation functions.
-Function functions: nonlinear numerical methods.
-Sparse matrix functions.
-Two dimensional graphics.

____________________________________________________________________________________________

11

Curso de MATLAB__________________________________________________________________________

matlab\piotxyz
matlab\graphics
matlab\color
matlab\sounds
matlab\strfun
matlab\iofun
matlab\demos
simulink\simulink
simulink\blocks
simulink\simdemos
nnet\exampies
nnet\nnet

-Three dimensional graphics.


-General purpose graphics functions.
-Color control and lighting model functions.
-Sound processing functions.
-Character string functions.
-Low-level file I/0 functions.
-Demonstrations and samples.
-SIMULINK model analysis.
-SIMULINK block library.
-SIMULINK demonstrations and samples.
- Neural Network Toolbox examples.
- Neural Network Toolbox.

For more help on directory/topic, type 'help topic".


Para obter informaes sobre um tpico especfico, digite help tpico.
Por exemplo,
>> help plotxy
que fornece uma lista de todos os comandos relacionados com grficos
bidimensionais:
Two dimensional graphics.
Elementary X-Y graphs.
plot
loglog
semilogx
semilogy
fill

- Linear plot.
- Log-log scafe plot.
- Semi-log scale plot.
- Semi-log scale plot.
- Draw filled 2-D polygons.

Specialized

X-Y graphs.

polar
bar
stem
stairs
errorbar
hist
rose
compass
feather

- Polar coordinate plot.


- Bar graph.
- Discrete sequence or & "stemm" plot.
- Stairstep plot.
- Error bar plot.
- Histogram plot.
- Angle histogram plot.
- Compass plot.
- Feather plot.

____________________________________________________________________________________________

12

Curso de MATLAB__________________________________________________________________________

fplot
comet

- Plot function
- Comet-like trajectory.

Graph annotation.
title
xlabel
ylabel
text
gtext
grid

- Graph title.
- X-axis label.
- Y-axis label.
- Text annotation.
- Mouse placement of text.
- Grid lines.

See also PLOTXYZ, GRAPHICS


Finalmente, para obter informaes sobre um comando especfico, por
exemplo title, digite:
>> help title
e informaes mais detalhadas sobre este comando sero exibidas:
TITLE Titles for 2-D and 3-D plots.
TITLE (text) adds text at the top of the current axis.
See also XLABEL, YLABEL, ZLABEL, TEXT.
Note que no exemplo mostrado para adicionar o ttulo em um grfico,
TITLE (TEXT) est escrito em letras maisculas somente para destacar.
Deve-se lembrar que todos os comandos do MATLAB devem ser escritas em
letras minsculas, portanto, para adicionar o texto Ttulo do Grfico em
um grfico, digite:
>> title (Ttulo do Grfico)
1.9 Funes
A fora do MATLAB vem de um conjunto extenso de funes. O MATLAB
possui um grande nmero de funes intrnsecas que no podem ser alteradas pelo
usurio. Outras funes esto disponveis em uma biblioteca externa distribudas
com o programa original (MATLAB TOOLBOX), que so na realidade arquivos
com a extenso .m criados a partir das funes intrnsecas. A biblioteca externa
(MATLAB TOOLBOX) pode ser constantemente atualizada medida que novas

____________________________________________________________________________________________

13

Curso de MATLAB__________________________________________________________________________

aplicaes so desenvolvidas. As funes do MATLAB, intrnsecas ou arquivos


".m", podem ser utilizadas apenas no ambiente MATLAB.
As categorias gerais de funes matemticas disponveis no MATLAB
incluem:

Matemtica elementar;

Funes especiais;

Matrizes elementares;

Matrizes especiais;

Decomposio e fatorizao de matrizes;

Anlise de dados;

Polinmios;

Soluo de equaes diferenciais;

Equaes no-lineares e otimizao;

Integrao numrica;

Processamento de sinais.
As sees subseqentes mostram mais detalhes dessas diferentes categorias de
funes.

2 OPERAES COM MATRIZES


As operaes com matrizes no MATLAB so as seguintes:

Adio;
Subtrao;
Multiplicao;
Diviso a direita;
Diviso a esquerda;
Exponenciao;
Transposta;

A seguir cada uma dessas operaes mostrada com mais detalhe.


2.1 Transposta
O caractere apstrofo, " ` " , indica a transposta de uma matriz. A declarao
>> A = [1 2 3; 4 5 6; 7 8 0]
>> B = A`
que resulta em
____________________________________________________________________________________________

14

Curso de MATLAB__________________________________________________________________________

A=
1
4
7

2
5
8

3
6
0

l
2
3

4
5
6

7
8
0

B=

e
>> x = [-1 O 2]`
produz
x=
-1
0
2
Se Z uma matriz complexa, Z ser o conjugado complexo composto. Para
obter simplesmente a transposta de Z deve-se usar Z., como mostra o exemplo
>> Z = [1 2; 3 4] + [5 6; 7 8]*i
>> Z1 = Z
>> Z2 = Z.
que resulta em
Z=
1.0000 + 5.0000i
6.0000 + 7.0000i

2.0000 + 6.0000i
4.0000 + 8.0000i

1.0000 - 5.0000i
2.0000 - 6.0000i

3.0000 - 7.0000i
4.0000 - 8.0000i

1.0000 + 5.0000i
2.0000 + 6.0000i

3.0000 + 7.0000i
4.0000 + 8.0000i

Z1 =
Z2 =

2.2 Adio e Subtrao

____________________________________________________________________________________________

15

Curso de MATLAB__________________________________________________________________________

A adio e subtrao de matrizes so indicadas, respectivamente, por + e -.


As operaes so definidas somente se as matrizes as mesmas dimenses. Por
exemplo, a soma com as matrizes mostradas acima, A + x, no correta porque A
3x3 e x 3x1. Porm,
>> C = A + B
aceitvel, e o resultado da soma
C=
2
6 10
6 10 14
10 14 0
A adio e subtrao tambm so definidas se um dos operadores um
escalar, ou seja, uma matriz l x l. Neste caso, o escalar adicionado ou subtrado de
todos os elementos do outro operador. Por exemplo:
>> y = x - 1
resulta em
y=
-2
-1
1
2.3 Multiplicao
A multiplicao de matrizes indicada por *. A multiplicao x*y
definida somente se a segunda dimenso de x for igual primeira dimenso de y. A
multiplicao
>> x'* y
aceitvel, e resulta em
ans =
4
evidente que o resultado da multiplicao y'*x ser o mesmo. Existem dois
outros produtos que so transpostos um do outro.

____________________________________________________________________________________________

16

Curso de MATLAB__________________________________________________________________________

>> x*y
ans =
2
0
-4

l
0
-2

-l
0
2

0
0
0

-4
-2
2

>> y*x
ans =
2
1
-1

O produto de uma matriz por um vetor um caso especial do produto entre


matrizes. Por exemplo A e X,
>> b = A'x
que resulta em
b=
5
8
-7
Naturalmente, um escalar pode multiplicar ou ser multiplicado por qualquer
matriz.
>> pi*x
ans =
-3.1416
0
6.2832
2.4 Diviso
Existem dois smbolos para diviso de matrizes no MATLAB "\" e "/". Se A
uma matriz quadrada no singular, ento A\B e B/A correspondem respectivamente
multiplicao esquerda e direita da matriz B pela inversa da matriz A, ou
inv(A)*B e B*inv(A)N, mas o resultado obtido diretamente. Em geral,
____________________________________________________________________________________________

17

Curso de MATLAB__________________________________________________________________________

X = A\B a soluo de A*X = B


X = B/A a soluo de X*A = B

Por exemplo, como o vetor b foi definido como A*x, a declarao


>> z = A\b
resulta em
z=
-1
0
2

2.5 Exponenciao
A expresso A^p eleva A p-sima potncia e definida se A matriz
quadrada e p um escalar. Se p um inteiro maior do que um, a exponenciao
computada como mltiplas multiplicaes. Por exemplo,
>> A^3
ans =
279
684
738

360
873
900

306
684
441

3 OPERAES COM CONJUNTOS


O termo operaes com conjuntos usado quando as operaes aritmticas so
realizadas entre os elementos que ocupam as mesmas posies em cada matriz
(elemento por elemento). As operaes com conjuntos so feitas como as operaes
usuais, utilizando-se dos mesmos caracteres (*, /, \, ^ e ) precedidos por
um ponto . (.*, ./, .\, .^ e . ).
3.1 Adio e Subtrao

____________________________________________________________________________________________

18

Curso de MATLAB__________________________________________________________________________

Para a adio e a subtrao, a operao com conjuntos e as operaes com


matrizes so as mesmas. Deste modo os caracteres "+" e "-" podem ser utilizados
tanto para operaes com matrizes como para operaes com conjuntos.
3.2 Multiplicao e Diviso
A multiplicao de conjuntos indicada por .*. Se A e B so matrizes com as
mesmas dimenses, ento A.*B indica um conjunto cujos elementos so
simplesmente o produto dos elementos individuais de A e B. Por exemplo, se
>> x = [1 2 3];

y = [4 5 6];

ento,
>> z = x .* y
resulta em
z=
4 10 18
As expresses A./B e A.\B formam um conjunto cujos elementos so
simplesmente os quocientes dos elementos individuais de A e B. Assim,
>> z = x .\ y
resulta em
z=
4.0000 2.5000

2.0000

3.3 Exponenciao
A exponenciao de conjuntos indicada por .^. A seguir so mostrados
alguns exemplos usando os vetores x e y. A expresso
>> z = x .^ y
resulta em
z=
l

32

729

A exponenciao pode usar um escalar.


____________________________________________________________________________________________

19

Curso de MATLAB__________________________________________________________________________

>> z = x..^2
z=
l

Ou, a base pode ser um escalar.


>> z = 2.^[x y]
z=
2 4 8 16 32 64

3.4 Operaes Comparativas


Estes so os seis operadores usados para comparao de duas matrizes com as
mesmas dimenses:
<
<=
>
>=
==
~=

menor
menor ou igual
maior
maior ou igual
igual
diferente

A comparao feita entre os pares de elementos correspondentes e o resultado


uma matriz composta dos nmeros um e zero, com um representando
VERDADEIRO e zero, FALSO. Por exemplo,
>> 2 + 2 ~= 4
ans =
0
Pode-se usar, tambm os operadores lgicos & (e) e I (ou). Por exemplo,
>> 1= = 1 & 4 = = 3
ans =
0
>> 1 = = 1 | 4 = = 3
____________________________________________________________________________________________

20

Curso de MATLAB__________________________________________________________________________

ans =
1
4 MANIPULAO DE VETORES E MATRIZES
O MATLAB permite a manipulao de linhas, colunas, elementos individuais e
partes de matrizes.
4.1 Gerando Vetores
Os dois pontos, : , um caractere importante no MATLAB. A declarao
>> x = 1 : 5
gera um vetor linha contendo os nmeros de 1 a 5 com incremento unitrio.
Produzindo
x=
l 2 3 4 5
Outros incrementos, diferentes de um, podem ser usados.
>> y = 0 : pi/4 : pi
que resulta em
y=
0.0000 0.7854 1.5708 2.3562 3.1416
Incrementos negativos tambm so possveis.
>> z = 6 : -l : l
z=
6 5 4 3 2 1
Pode-se, tambm, gerar vetores usando a funo linspace. Por exemplo,
>> k = linspace (0, l, 6)
k=
0 0.2000 0.4000 0.6000 0.8000 1.0000
____________________________________________________________________________________________

21

Curso de MATLAB__________________________________________________________________________

gera um vetor linearmente espaado de 0 a 1, contendo 6 elementos.


4.2 Elementos das Matrizes
Um elemento individual da matriz pode ser indicado incluindo os seus
subscritos entre parnteses. Por exemplo, dada a matriz A:
A=
l
4
7

2
5
8

3
6
9

a declarao
>> A(3,3) = A(1,3) + A(3,l)
resulta em
A=
l
4
7

2
5
8

3
6
10

Um subscrito pode ser um vetor. Se X e V so vetores, ento X(V) [X(V(1)),


X(V(2)), .... X(V(n))]. Para as matrizes, os subscritos vetores permitem o acesso
submatrizes contnuas e descontnuas. Por exemplo, suponha que A uma matriz
10x10.
A=
92
98
14
85
86
17
23
79
10
11

99
80
81
87
93
24
15
16
12
18

11
17
88
19
25
76
82
13
94
100

18
14
20
21
12
83
89
95
96
77

15
16
22
13
19
90
91
97
78
84

67
73
54
60
61
42
48
29
35
36

74
55
56
62
68
49
30
31
37
43

51
57
63
69
75
26
32
38
44
50

58
64
70
71
52
33
39
45
46
27

40
41
47
28
34
65
66
72
53
59

ento
>> A(1:5,3)
____________________________________________________________________________________________

22

Curso de MATLAB__________________________________________________________________________

ans =
11
17
88
19
25
especifica uma submatriz 5x1, ou vetor coluna, que consiste dos cinco primeiros
elementos da terceira coluna da matriz A. Analogamente,
>> A(1:5,7:10)
ans =
74
55
56
62
68

51
57
63
69
75

58
64
70
71
52

40
41
47
28
34

uma submatriz 5x4, consiste das primeiras cinco linhas e as ltimas quatro colunas.
Utilizando os dois pontos no lugar de um subscrito denota-se todos elementos
da linha ou coluna. Por exemplo,
>> A(1:2:5,:)
ans =
92
14
86

99
81
93

11
88
25

18
20
12

15
22
19

67
54
61

74
56
68

51
63
75

uma submatriz 3x10 que consiste da primeira, terceira e quinta linhas e todas
colunas da matriz A.
Muitos efeitos sofisticados so obtidos usando submatrizes em ambos os lados
das declaraes. Por exemplo, sendo B uma matriz 10x10 unitria,
>> B = ones (10)
B=
1
1

1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1

____________________________________________________________________________________________

23

58
70
52

Curso de MATLAB__________________________________________________________________________

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1

a declarao,
>> B(1:2:7,6:l0) = A(S:-1:2,1:5)
produz
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1

86
1
85
1
14
1
98
1
1
1

93
1
87
1
81
1
80
1
1
1

25
1
19
1
88
1
17
1
1
1

12
1
21
1
20
1
14
1
1
1

19
1
13
1
22
1
16
1
1
1

5 FUNES
Uma classe de comandos do MATLAB no trabalha com matrizes numricas,
mas com funes matemticas. Esses comandos incluem:

Integrao numrica;
Equaes no-lineares e otimizao;
Soluo de equaes diferenciais.

As funes matemticas so representadas no MATLAB por arquivos ".m". Por


exemplo, a funo
est
MATLAB
".m" chamado humps.m:

disponvel no
como um arquivo

function y = humps(x)
____________________________________________________________________________________________

24

Curso de MATLAB__________________________________________________________________________

y = l ./ ((x-.3).^2 + .0l) + 1./((x-.9).^2 + .04) - 6;


O grfico da funo :
>> x = -l:0.0l:2;
>> plot(x,humps(x))

5.1 Integrao Numrica


A rea abaixo da curva pode ser determinada atravs da integrao numrica da
funo humps(x), usando o processo chamado quadratura. Integrando a funo
humps(x) de -1 a 2:
>> q = quad (humps,-1,2)
q=
26.3450
Os dois comandos do MATLAB para integrao usando quadratura so:
quad
quad8

Calcular integral numericamente, mtodo para baixa ordem.


Calcular integral numericamente, mtodo para alta ordem.

5.2 Equaes No-Lineares e Otimizao


Os dois comandos para equaes no-lineares e otimizao incluem:
____________________________________________________________________________________________

25

Curso de MATLAB__________________________________________________________________________

fmin
fmins
fzero

Minimizar funo de uma varivel.


Minimizar funo de vrias variveis
Encontrar zero de funo de uma varivel.

Continuando o exemplo, a localizao do mnimo da funo humps(x) no


intervalo de 0.5 a 1 obtido da seguinte maneira,
>> xm = fmin(humps,0.5,1)
xm =
0.6370
>> ym = humps(xm)
ym =
11.2528
E o grfico deste intervalo com o ponto de mnimo pode ser construdo:
>> x = 0.5:0.01:1
>> plot(x, humps(x), xm, ym, o)

Pode-se ver que a funo humps(x) apresenta dois zeros no intercalo de -1 a


2. A localizao do primeiro zero prxima do ponto x = 0,
xzl = fzero('humps',0)
____________________________________________________________________________________________

26

Curso de MATLAB__________________________________________________________________________

xzl =
-0.1316
e a localizao do segundo zero prxima do ponto x= 1,
>> xz2=fzero('humps',1)
xz2 =
1.2995
O grfico da funo com os dois zeros obtido atravs da expresso:
>> x = -1:0.01:2
>> plot(x, humps(x), xzl, humps(xzl),'*', xz2, humps(xz2), '+'), grid

5.3 Equaes Diferenciais


Os comandos do MATLAB para resolver equaes diferenciais ordinrias
so:
ode23
ode23p
ode45

Resolver equao diferencial. mtodo baixa ordem.


Resolver e plotar solues.
Resolver equao diferencial. Mtodo para alta ordem

Considere a equao diferencial de segunda ordem chamada de Equao de


Van der Pol
____________________________________________________________________________________________

27

Curso de MATLAB__________________________________________________________________________

x + (x2 - 1) . x + x = 0
Pode-se reescrever esta equao como um sistema acoplado de equaes
diferenciais de primeira ordem
x1 = x1 . (1-x22) - x2
x2 = x1
O primeiro passo para simular esse sistema criar um arquivo .m contendo
essas equaes diferenciais. Por exemplo, o arquivo volpol.m:
function xdot=volpol(t,x)
xdot=[0 0]
xdot(l)=x(l).*(1- x(2).^2) - x(2);
xdot(2)=x(l);
Para simular a equao diferencial no intervalo 0 t 20, utiliza-se o comando
ode23
>> t0 = 0; tf = 20;
>> x0 = [0 0.25];
>> [t,x] = ode23('volpol', t0, tf, x0);
>> plot(t,x)

GRFICOS

A
grficos
mais uma
do
Atravs
simples

construo de
no MATLAB
das facilidades
sistema.
de comandos
pode-se obter

____________________________________________________________________________________________

28

Curso de MATLAB__________________________________________________________________________

grficos bidimensionais ou tridimensionais com qualquer tipo de escala e coordenada.


Existe no MATLAB uma vasta biblioteca de comandos grficos.
6.1 Grficos Bidimensionais
Estes so os comandos para plotar grficos bidimensionais:
plot
loglog
semilogx
semilogy
fill
polar
bar

stem
stairs
errorbar
hist
rose
compass
feather
fplot
comet

Plotar linear.
Plotar em escala loglog.
Plotar em semilog.
Plotar em semilog.
Desenhar polgono 2D.
Plotar em coordenada polar.
Grfico de barras.
Seqncia discreta.
Plotar em degrau.
Plotar erro.
Plotar histograma.
Plotar histograma em ngulo.
Plotar em forma de bssola.
Plotar em forma de pena.
Plotar funo.
Plotar com trajetria de cometa.

Se Y um vetor, plot(Y) produz um grfico linear dos elementos de Y versos o


ndice dos elementos de Y. Por exemplo, para plotar os nmeros [0.0, 0.48, 0.84, 1.0,
0.91, 0.6, 0,14], entre com o vetor e execute o comando plot:
>> Y = [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0,14];
>> plot(Y)
eo
mostrado
Grfica:

resultado
na Janela

Se
vetores

X e Y so
com
dimenses
comando
plot(X,Y)

iguais, o

____________________________________________________________________________________________

29

Curso de MATLAB__________________________________________________________________________

produz um grfico bidimensional dos elementos de X versos os elementos de Y, por


exemplo
>> t = 0:0.05:4*pi;
>> y = sin(t);
>> plot(t,y)
resulta em

O MATLAB
tambm plotar
mltiplas linhas
apenas um
grfico.
Existem duas
maneiras, a
primeira
apenas dois
argumentos,
em plot(X,Y),
e/ou Y so
matrizes.

pode
e

usado
como
onde X
Ento:

Se Y uma matriz e X um vetor, plot(X,Y) plota sucessivamente as

linhas ou colunas de Y versos o vetor X.

Se X uma matriz e Y um vetor, plot(X,Y) plota sucessivamente


as linhas ou colunas de X versos o vetor Y.

Se X e Y so matrizes com mesma dimenso, plot(X,Y) plota

sucessivamente as colunas de X versos as colunas de Y.


Se Y uma matriz, plot(Y) plota sucessivamente as colunas de Y

versos o ndice de cada elemento da linha de Y.


A segunda, e mais fcil, maneira de plotar grficos com mltiplas linhas
usando o comando plot com mltiplos argumentos. Por exemplo:
>> plot(t, sin(t), t, cos(t), t, sin(t + pi), t, cos(t + pi))

____________________________________________________________________________________________

30

Curso de MATLAB__________________________________________________________________________

6.2
Estilos
Linha e
Smbolo

de

Os
linhas,
cores
plotar
podem
controlados se os padres no so satisfatrios. Por exemplo,

tipos de
smbolos e
usados para
grficos
ser

>> X = 0:0.05:1;
>> subplot(l2l), plot(X,X.^2,k*)
>> subplot(l22), plot(X,X.^2,k --)

Outros tipos de linhas, pontos e cores tambm podem ser usados:


TIPO DE LINHA
____________________________________________________________________________________________

31

Curso de MATLAB__________________________________________________________________________

--.
:

----------------------------

TIPO DE PONTO

+
x

+++++++++
xxxxxxx
CORES

y
m
c
r
g
b
w
k

amarelo
lils
azul claro
vermelho
verde
azul escuro
branco
preto

6.3 Nmeros Complexos


Quando os argumentos para plotar so complexos, a parte imaginria
ignorada, exceto quando dado simplesmente um argumento complexo. Para este
caso especial plotada a parte real versos a parte imaginria. Ento, plot(Z), quando
Z um vetor complexo, equivalente a plot(real(Z),imag(Z)).
6.4 Escala Logartmica, Coordenada Polar e Grfico de
Barras
O uso de loglog, semilogx, semilogy e polar idntico ao uso de plot. Estes
comandos so usados para plotar grficos em diferentes coordenadas e escalas:
polar(Theta,R) plota em coordenadas polares o ngulo THETA, em

radianos, versos o raio R;


____________________________________________________________________________________________

32

Curso de MATLAB__________________________________________________________________________

loglog plota usando a escala log10xlog10;


semilogx plota usando a escala semi-logartmica. O eixo x log10 e o

eixo y linear;
semilogy plota usando a escala semi-logartmica. O eixo x linear e
o eixo y log10;
O comando bar(X) mostra um grfico de barras dos elementos do vetor X, e
no aceita mltiplos argumentos.
6.5 Plotando Grficos Tridimensionais e Contornos
Estes so alguns comandos para plotar grficos tridimensionais e contornos.
Plot3
fill3
comet3
contour
contour3
clabel
quiver
mesh
meshc
surf
surfc
surfil
slice
cylinder
sphere

Plotar em espao 3D.


Desenhar polgono 3D.
Plotar em 3D com trajetria de cometa.
Plotar contorno 2D.
Plotar contorno 3D.
Plotar contorno com valores.
Plotar gradiente.
Plotar malha 3D.
Combinao mesh/contour.
Plotar superfcie 3D.
Combinao surf/contour.
Plotar superfcie 3D com iluminao.
Plot visualizao volumtrica.
Gerar cilindro.
Gerar esfera.

O comando mesh(X,Y,Z) cria uma perspectiva tridimensional plotando os


elementos da matriz Z em relao ao plano definindo pelas matrizes X e Y. Por
exemplo,
>> [X,Y] = meshdom(-2:.2:2, -2:.2:2);
>> Z = X.* exp(-X..^2 - Y.^2);
>> mesh(X,Y,Z)

____________________________________________________________________________________________

33

Curso de MATLAB__________________________________________________________________________

eo

comando

contour(Z,10) mostra a projeo da superfcie acima no plano xy com 10 iso-linhas:

6.6
no

Anotaes
Grfico
O MATLAB
comandos de
utilizao para
adicionar
informaes em
grfico:

possui
fcil
um
title
xlabel
ylabel
zlabel
text
gtext
grid

Ttulo do grfico.
Ttulo do eixo-X.
Ttulo do eixo-Y.
Ttulo do eixo-Z.
Inserir anotao no grfico.
Inserir anotao com o mouse.
Linhas de grade.

Por exemplo:
>> fplot(sin, [-pi pi])
>> title(Grfico da funo f(x)=seno(x), -pi<x<pi)
>> xlabel(x)
>> ylabel(f(x))
>> grid
____________________________________________________________________________________________

34

Curso de MATLAB__________________________________________________________________________

CONTROLE
DE FLUXO

Os
comandos
que
controlam o
fluxo
especificam
a
ordem em
que a
computao

feita. No
MATLAB
estes
comandos
so semelhantes aos usados na linguagem C, mas com uma estrutura diferente.
7.1 Lao for
O lao for o controlador de fluxo mais simples e usado na prograo
MATLAB. Analisando a expresso
>>for i=1:5,
X(i)=i^2;
end
pode-se notar que o lao for dividido em trs partes:
A primeira parte (i=1) realizada uma vez, antes do lao ser

inicializado.
A segunda parte o teste ou condio que controla o lao, (i<=5).

Esta condio avaliada; se verdadeira, o corpo do lao (X(i)=i^2) executado.


A terceira parte acontece quando a condio se torna falsa e o lao

termina.
O comando end usado como limite inferior do corpo do lao.

____________________________________________________________________________________________

35

Curso de MATLAB__________________________________________________________________________

comum construes em que conjuntos de laos for so usados


principalmente com matrizes:
for i=1:8
for j=1:8,
A(i,j)=i+j;
B(i,j)=i-j;
end
end
C=A+B;
7.2 Lao while
No lao while apenas a condio testada. Por exemplo na expresso
a = l; b = 15;
while a<b,
clc
a = a+l
b = b-l
pause(l)
end
disp(fim do loop)
a condio a<b testada. Se ela for verdadeira o corpo do lao, ser executado.
Ento a condio retestada, e se verdadeira o corpo ser executado
novamente. Quando o teste se tornar falso o lao terminar, e a execuo
continuar no comando que segue o lao aps o end.
7.3 Declaraes if e break
A seguir, apresentado um exemplo do uso da declarao if no MATLAB.
for i = l:5,
for j = l:5,
if i = = j
A(i,j) = 2;
elseif abs(i-j) = = 1
A(i,j) = -1;
else
A(i,j) = 0;
end
end
____________________________________________________________________________________________

36

Curso de MATLAB__________________________________________________________________________

end
A
Os valores de i e j variam de 1 a 5, varrendo toda a matriz A. Se (if) i for igual
a j, A(i,j)=2, ou se (elseif) o valor absoluto de i-j for igual a 1, A(i,j)=-1, ou (else)
A(i,j)=0, se nenhuma das condies anteriores forem satisfeitas.
conveniente, s vezes, controlarmos a sada deu m lao de outro modo alm
do teste, no incio ou no fim do mesmo. O comando break permite uma sada
antecipada de um for ou while. Um comando break faz com que o lao mais interno
seja terminado imediatamente. Por exemplo,
%modifica a matriz A
clc
x = s;
for i = l:5,
if x = = q,
break
end
j = l;
while j<=5,
[A(num2str(i) , num2str(j)) = num2str(A(i,j))]
x = input(Modifica? (s-sim, n-no, p-prxima linha, q-sair) =>);
if x = = s,
A(i,j) = input(Entre com o novo valor de A(i,j) = = >);
j=j+l;
clc
end
if x = = n,
j=j+l;
clc
end
if x = = p,
clc
break
end
if x = = q,
clc
break
end
end
end
____________________________________________________________________________________________

37

Curso de MATLAB__________________________________________________________________________

8 ARQUIVOS .m
Os comandos do MATLAB so normalmente digitados na Janela de
Comando, onde uma nica linha de comando introduzida e processada
imediatamente. O MATLAB tambm capaz de executar seqncias de comandos
armazenadas em arquivos.
Os arquivos que contm as declaraes do MATLAB so chamadas arquivos
.m, e consistem de uma seqncias de comandos normais do MATLAB,
possibilitando incluir outros arquivos .m escritos no formato texto (ASCII).
Para editar um arquivo texto na Janela de Comando do MATLAB selecione
New M-File para criar um novo arquivo ou Open M-File para editar um arquivo j
existente, a partir do menu File. Os arquivos podem, tambm, ser editados fora do
MATLAB utilizando qualquer editor de texto.
Existem alguns comandos e declaraes especiais para serem usados nos
arquivos, por exemplo
%Plota uma funo y=ax^2 + bx + c no intervalo -5<x<5
clear
aux=s;
while aux= = s,
clc
a=input(a =);
b=input(b =);
c=input(c =);
x=-5:0.1:5;
y=a*x.^2+b*x+c;
plot(y)
figure(1)
pause
clc
close
aux=input(Plotar outro ? (s/n) = => ,s);
end
O caractere % usado para inserir um comentrio no texto, o comando clear apaga
todos os dados da memria, o comando input usado quando se deseja entrar com
um dado a partir da Janela de Comando, pause provoca uma pausa na execuo do
arquivo at que qualquer tecla seja digitada, clc limpa a Janela de Comando,
figure(1) mostra a Janela Grfica nmero 1 e close fecha todas as Janelas Grficas.
9 OPERAES COM O DISCO
____________________________________________________________________________________________

38

Curso de MATLAB__________________________________________________________________________

Os comandos load e save so usados, respectivamente, para importar dados


do disco (rgido ou flexvel) para a rea de trabalho do MATLAB e exportar dados
da rea de trabalho para o disco. Outras operaes com o disco podem ser
efetuadas, como executar programas externos, trocar o diretrio de trabalho,
listagem do diretrio, e sero detalhadas a seguir.
9.1 Manipulao do Disco
Os comandos cd, dir, delete, type e what do MATLAB so usados da
mesma maneira que os comandos similares do sistema operacional.
cd
dir
delete
type
what

troca o diretrio de trabalho atual


lista o contedo do diretrio atual
exclui arquivo
mostra o contedo do arquivo texto
lista arquivos .m, .mat e .mex.

Para maiores detalhes sobre estes comandos utilize o help.


9.2 Executando Programas Externos
O caracter ponto de exclamao, !, um desvio e indica que o restante da
linha ser um comando a ser executado pelo sistema operacional. Este procedimento
vem sendo historicamente utilizado em todos as verses do MATLAB como
prompt para indicar a execuo de um colando do DOS, sendo muito til nas
verses que usavam somente o DOS. No ambiente Windows, entretanto, este
comando desnecessrio, mas foi mantido nas verses do MATLAB para Windows.
Para entrar com o caracter de desvio no prompt do MATLAB, deve-se
coloca-lo no Incio do comando do DOS ou Windows que se deseja executar. Por
exemplo, para carregar um aplicativo como o programa Notepad do Windows
(Bloco de Notas), sem sair do MATLAB, entre com
>> ! Notepad
Uma nova janela aberta, o Notepad carregado, podendo ser utilizado da
maneira usual.
Pode-se usar, tambm, qualquer comando implcito do DOS, por exemplo:
copy, fomat, ren, mkdjr, rmdir, ...
9.3 Importando e Exportando Dados

____________________________________________________________________________________________

39

Curso de MATLAB__________________________________________________________________________

Os dados contidos na rea de Trabalho do MATLAB podem ser armazenados


em arquivos, no formato texto ou binrio, utilizando o comando save. Existem
diversas maneiras de utilizar este comando. Por exemplo. para armazenar as
variveis X, Y e Z pode-se fazer:
save

salva os dados no arquivos binrio


matlab.mat.
save X
salva a matriz X no arquivo o binrio
x.mat.
save arql X Y Z
salva as matrizes X, Y e Z no arquivo
binrio arq1.mat.
save arq2.sai X Y Z -ascii
salva as matrizes X., Y e Z no arquivo
texto arq2.sai com 8 dgitos.
Save arq3.sai X Y Z -ascii -double salva as matrizes X., Y e Z no arquivo
texto arq3.sai com 16 dgitos.
Os dados obtidos por outros programas podem ser importados pelo
MATLAB, desde que estes dados sejam gravados em disco no formato apropriado.
Se os dados so armazenados no formato ASCII, e no caso de matrizes, com colunas
separadas
por espaos e cada linha da matriz em uma linha do texto, o comando load pode ser
usado. Por exemplo suponha que um programa em linguagem C, depois de
executado, monta o arquivo teste.sai (mostrado abaixo) que contm uma matriz.
1.0000

2.0000

3.0000

4.0000

5.0000

6.0000

7.0000

8.0000

9.0000

Executando o comando:
>> load teste.sai
o MATLAB importa a matriz, que passa a se chamar teste:
>> teste
teste =
1
4
7

2
5
8

3
6
9

____________________________________________________________________________________________

40

Curso de MATLAB__________________________________________________________________________

Obviamente, o MATLAB pode tambm importar (atravs do comando load) os


dados que foram anteriormente exportados por ele. Por exemplo, para importar as
variveis X, Y e Z, anteriormente exportadas usando o comando save, pode-se fazer:
save
save X
save arq1 X Y Z
save arq2.sai X Y Z -ascii
save arq3.sai X Y Z -ascii -double

load
load x
load arq1
load arq2.sai
load arq3.sai

Deve-se ressaltar que o comando save, quando usado para exportar os dados do
MATLAB em formato texto, exporta apenas um bloco contendo todas as variveis. E
quando importamos estes comandos atravs do comando load, apenas uma varivel
com nome do arquivo importada. Por exemplo
>> X=rand(3,3)
X=
0.2190
0.0470
0.6789

0.6793
0.9347
0.3835

0.5194
0.8310
0.0346

0.0077
0.3835
0.0668

0.4175
0.6868
0.5890

>> Y = rand(3,3)
Y=
0.0535
0.5297
0.6711
>> save arq2.sai X Y -ascii
>> clear
>> load arq2.sai
>> arq2
arq2 =
0.2190
0.0470
0.6789
0.0535
0.5297
0.6711

0.6793
0.9347
0.3835
0.0077
0.3834

0.5194
0.8310
0.0346
0.4175
0.6868
0.0668 0.5890

____________________________________________________________________________________________

41

Curso de MATLAB__________________________________________________________________________

10 REFERNCIAS

[1] MATLAB for Windows Users Guide, The Math Works Inc., 1991.
[2]

Dongarra J.J., Moler C.B., Bunch, J.R, Stewart, G.W., LINPACK User's Guide,
Society for Industrial and Applied Mathematics, Philadelphia, 1979.

[3] Smith, B.T., Boyle, J.M., Dongarra, J.J., Garbow, B.S., Ikebe, Y., Klema, V.C., Moler,
C.B., Matriz Eigensystem Routines - EISPACK Guide, Lecture Notes in Computer
Science, volume 6, second edition, Springer-Verlag, 1976.
[4] Garbow, B.S., Boyle, J.M., Dongarra, J.J., Moler, C.B., Matriz Eigensystem Roulines
EISPACK Gide Extension, Lecture Notes in Computer Science,
volume 51, Springer-Verlag, 1977.
[5] Golub, G.H., Van Loan, C.F., Matriz Computations, Johns Hopkins University
Press, 1983.
[6] Ruggiero, M.A.G., Lopes, V.L.R., Clculo Numricos - Aspectos Tericos e
Computacionais, Ed. MacGraw-HiII, So Paulo, 1988.
[7] Kreith, F., Princpios da Transmisso de Calor, Ed. Edgard Blcher Ltda., So Paulo,
1977.

[8] Curso de MATLAB for Windows, Departamento de Engenharia Mecnica, UNESP,


Campus de Ilha Solteira.

____________________________________________________________________________________________

42

11 LISTA DE EXERCCIOS
1
Calcule a raiz da equao f(x)=x3-9x+3 pelo Mtodo da Bissecao (ref.[6]
pg.34) no intervalo I=[0,1] com =10-3 e nmero mximo igual a 15.
2
Calcule as razes da equao f(x) =x3-9x+3 pelo Mtodo de Newton-Raphson
(ref.[6] pg.57) nos intervalos I1=(-4,-3), I2=(0,1) e I3=(2,3) com =10-3 e com nmero
mximo de iteraes igual a a 10.
3
Resolva o sistema linear abaixo usando o Mtodo de Eliminao de Gauss (ref.
[6] pg.96) e compare com o resultado obtido pelo MATLAB.
4
Usando
[6]
pag.108)
linear mostrado
compare com
obtidos
pelo
(comando lu).

Fatorao LU (ref.
resolva o sistema
no exerccio 3 e
os
resultados
MATLAB

5
Uma
grande placa de
300 mm de espessura (k=37,25 kcal / m C) contm fontes de calor uniformemente
distribudas (q= 9x105 kcal / h m3). A temperatura numa face 1000C e calor
transferido para essa superfcie, q(0), a 2500 kcal/hm2. Escreva um programa para
determinar a distribuio de temperatura em regime permanente na placa (ref.[7]
pag.37) plotando os resultados. A placa deve ser dividida em fatias iguais e deve ser
um dado de entrada do programa.
6
A distribuio de temperatura ao longo de uma aleta em forma de piano
circular dada pela equao
Escreva um
programa para
determinar a
distribuio de temperatura ao longo da aleta (ref.[7] pag.46) plotando os
resultados.
Dados:
m = 1 L=10
k=1
T1= 100
hL = 2 T = 25
7

A distribuio de temperatura ao longo da placa mostrada na figura dada pela


equao (ref.[7] pag.67):

T(x., y) = TM senh(y/L) sem(x/L)


senh(b/L)
Plote a distribuies de temperatura ao longo da placa (comando mesh), mostre-as as
isotermas (comando contour) e o gradiente de temperatura na placa (comandos
gradient e quiver).
8

Uma
chamin
de
tijolos (ref.
[7] pag.57) de
60 m de
altura, com um
dimetro de
1,80 m, tem
uma
camada
de
tijolos
refratrios (k =
0,9 kcal / h
m C) de 110
mm
de
espessura
e
uma parede
externa
de
tijolos
de
alvenaria (k =
0.5 kcal / h m C) que varia linearmente de uma espessura de 600 mm na base at
uma espessura de 200 mm no topo. O coeficiente de transmisso de calor entre o
gs da chamin e a parede 50 kcal / h m 2 C, e entre a parede externa e o ar 15
kcal / h m2 C. Se o gs da chamin est a 300 C e o ar est a 4 C, calcule
numericamente a perda de calor da chamin dividindo-a em pedaos que
representem um anel circular com raio crescente. Calcule a resistncia trmica
total e plote os resultados para intervalos que vo de 1 a 20.
% LISTA DE EXERCCIOS - COMANDOS BSICOS DO MATLAB
% EXECUTE OS SEGUINTES COMANDOS E INTERPRETE OS
RESULTADOS
a = 2500/20
a = 2500/20;
b = [1 2 3 4 5 6 7 8 9]
c = [1 2 3 ; 4 5 6 ; 7 8 9]
c = [c ; [10 11 12]
c(2,2) = 0
l = length(b)
[m,n] = size(b)
[m,n] = size(c)
who
whos
clear
who

b = l + 2 + 3 + 4 + ...
5+6-7
x=1:2:9
x = (0.8 : 0.2 : 1.4);
y = sin(x)
help sin
dir
a = 2^3
a = 4/3
format long
a = 4/3
format short
clear
a=[1 2 3 ; 4 5 6 ; 7 8 9];
b = a
c=a+b
c=a-b
a(l,:) = [-1 -2 -3]
c = a(:,2)
c = a(2:3, 2:3)
x = [- 1 0 2];
y = [-2 -1 1];
x*y
c=x+2
a = [1 0 2; 0 3 4 ; 5 6 0];
size(a)
b = inv(a);
c = b*a
c = b/a
c = b\a
clear a b x y
whos
% A instruo seguinte abre o arquivo notas.dry e grava todas as instrues
% digitadas na seqncia
diary notas.dry
x = [1 -2 3]
y = [4 3 2]
z = x.*y
z = x.^y
y.^2
diary off % Encerra a gravao da instruo diary em notas.dry
dir
type notas.dry
clear

help diary
help sqrt
% Trabalhando com nmeros complexos
i = sqrt(-1)
a = [1 2;3 4] + i*[5 6;7 8]
realz = real(z)
imagz = imag(z)
modz = abs(z)
fasez = angle (z)
% Multiplicao de polinmios
% x3 = (x^2 + 3x + 2).(x^2 - 2x + 1)
x3 = conv([1 2 3],[1 -2 1]) % Como ele faz isto?
% Determinao das razes de um polinmio
roots([1 3 2])
roots([1 -2 1])
roots(x3)
% Utilitrios para matrizes
a = eye(4)
a = rand(5)
help rand
b = [2 0 0;0 3 0;0 0 -1];
d = det(b)
l = eig(b)
help det
help eig
clear
% RECURSOS DE GRAVAO (ARMAZENAGEM) DE DADOS
help save
help load
a = [1 2 3 4 5 6 7 8];
b = a*2;
c = a - 1;
save arquivo 1 a b c
dir
clear
whos
load arquivo 1
whos
% Em que arquivo esto gravados os vetores a, b e c?

clear
% RECURSOS GRFICOS
y = [0 2 5 4 1 0];
plot(y)
help pi
t = 0:.4:4*pi
y = sin(t)
z = cos(t);
plot(t, y, ., t, z -.)
title(Funes)
xlabel(t)
ylabel(Seno e Cosseno)
text(3, 0.5, Seno)
% Aps o prximo comando, selecione a posio que deseja colocar o texto
Cosseno com
% o mouse
gtext(Cosseno)
% AJUSTE DE CURVAS DE DADOS EXPERIMENTAIS
t = (-1:.1:1);
x = t.^2;
xr = x+0.2(rand(size(x))-.5);
figure(1); plot(t, xr, g*)
p = polyfit(t, xr, 2)
xa = po1yval(p, t);
figure(l); plot(t, xr, g*, t, xa)
% Aps a prxima instruo, clique em dois pontos do grfico, e os valores
% das coordenadas sero retornados em [x,y]
[x, y] = ginput(2)
% PROGRAMANDO COM O MATLAB
% Abra um arquivo a partir do Matlab (File, New, M-File)
% e voc estar trabalhando no Bloco de Notas (Notepad) do Windows.
% Digite os seguintes comandos e grave o arquivo com o nome
% testel.m, no diretrio de usurios (alunos).
n=3;
m = 3;
for i = 1: m
for j= 1 : n
a(i, j) = i + j;

end;
end
disp(Matriz A)
disp(a)
%final do programa testel.m
% CRIANDO UMA SUBROTINA
% Abra outro arquivo, salvando-o com nome de teste2.m
% Digite os seguintes comandos neste arquivo
v = 1:1:10;
m = media(v);
s = sprintf(\n A mdia : %4.2f, m);
disp(s);
% final do programa teste2.m
Agora crie o seguinte arquivo, com o nome de media.m
function x = media(u)
% function x = media(u) calcula a mdia do vetor u, colocando o resultado em x
x = sum(u)/length(u);
% final da subrotina media.m
% Na linha de comando do Matlab, digite:
teste2
echo on
teste2
echo off
% CRIANDO UM PROGRAMA EXEMPLO DE GRFICO 3D
% Abra outro arquivo, salvando-o com nome de teste3.m
% Digite os seguintes comandos neste arquivo
clear
n = 30;
m = 30;
for i = 1:m
for j = 1:n
a(i,j) = sqrt(i+j);
end
end

b = [a+0.5 a-0.5;
(a.^2)/5 ((a-0.1).^2)/2];
mesh(b)
%EXERCCIOS COM O MATLAB
Exerccio 1 - Faa um programa que desenhe uma pirmide 3D. Utilize o mesh().
Exerccio 2 - Copie o grfico de uma senide para um arquivo texto do WORD.
Siga os seguintes passos: 1 aps ter gerado o grfico, faa print
-dmeta (no MATLAB); 2 Pressione ALT-TAB at entrar no WORD ou ento
abra o 'WORD; 3 Posicione o cursor no local do texto onde o grfico deva
entrar; 4 Digite Ctrl-V; 5 Ajuste a escala vertical do grfico com o editor de
grficos do WORD.
Exerccio 3 - Repita o exerccio 2 com -dbitmap no lugar de -dmeta e compare o
tamanho (em Kb) dos dois arquivos texto.
Exerccio 4 - Resolva o circuito dado na figura abaixo (encontre i1 e i2 ) utilizando
a inverso de matrizes do MATLAB. Faa um programa para isto. Adote R1 = 5,
R2 = 10, R3 = 5, R4 = l5, R5 = 20, V1 = 10,0 V, V2 = 20,0 V.
Resp.: i1
= 0,4615

= 0,01026 A e i2
A.

Exerccio
a fonte
curto, ou
quais os
?

5 - Supondo que
V2 esteja em
seja, V2 = 0,0 V,
valores de i1 e i2

Resp.: i1
= -0,1538 A.

= 0,4103 A e i2

Exerccio 6 - Gere um vetor com N elementos aleatrios. Escreva uma funo que
tenha como entrada o vetor, e retome o ndice e o valor do maior elemento do
vetor, utilizando o comando if.
Exerccio 7 - Escreva um programa (utilizando o comando while) que aceite
entradas numricas pelo teclado. Os valores devem ser nmeros entre 0 e 5, e caso
o usurio digite algum valor fora deste intervalo, o programa encerrado.
Exerccio 8 - Em uma sala esto 8 pessoas, reunidas em uma mesa circular. Cada
uma escolhe um nmero aleatoriamente e pega o seu nmero e soma com os
nmeros das pessoas ao lado, a sua esquerda e direita. Passa-se as 8 somas para

voc, que estava fora da reunio. Como voc descobre o nmero que cada pessoa
escolheu ? Utilize o MATLAB.

Anda mungkin juga menyukai