Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Matlab
Apostila Matlab
Matlab
Minicurso Matlab.
NDICE
1.
2.
VARIVEIS................................................................................................................. 14
2.1.
2.2.
3.
4.
5.
MATRIZES.................................................................................................................. 36
5.1.
5.2.
5.3.
5.4.
5.5.
6.
GRFICOS ................................................................................................................. 42
6.1.
6.2.
6.3.
6.4.
7.
9.
GRFICOS POLARES............................................................................................. 47
GRFICOS DE BARRAS .......................................................................................... 47
GRFICOS 3D ....................................................................................................... 48
MANIPULAO DE GRFICOS ............................................................................... 49
POLINMIOS............................................................................................................. 52
7.1.
7.2
7.3.
7.4.
7.5.
8.
ESTRUTURAS DE REPETIES.............................................................................. 55
ANEXOS ..................................................................................................................... 61
Minicurso Matlab.
1. INTRODUO AO MATLAB
Formatados: Marcadores e
numerao
Excludo: 1. INTRODUO AO
MATLAB 4
<#>O Ambiente MATLAB 4
<#>2. VARIVEIS 7
<#>2.1. ENTRANDO COM
VALORES 8
<#>2.2. VARIVEIS
PERMANENTES 9
<#>2.3. EXPRESSES E
COMANDOS BSICOS 10
<#>3. OPERAES
RELACIONAIS E LGICAS 12
<#>3 1. OPERADORES
RELACIONAIS 13
<#>3.2. OPERADORES
LGICOS 16
<#>3.3. PRECEDNCIA DE
OPERADORES 17
<#>3.4. FUNES LGICAS E
RELACIONAIS 18
<#>3.5. NaNs E MATRIZES
VAZIAS 20
<#>4. Funes Matemticas 23
<#>5. MATRIZES 26
<#>5.1. Definindo Matrizes no
MATLAB 27
<#>5.2. Gerando Sub-Matrizes
com o Operador Dois Pontos ( :
). 28
<#>5.3. Gerando Vetores com o
Operador Dois Pontos ( : ) 28
<#>5.4. Operaes com
Matrizes 29
<#>Somatrio de Produtos 30
<#>Multiplicao de Matrizes 30
<#>Diviso 31
<#>Exponenciao 31
<#>5.5. Matriz Inversa 31
<#>6. GRFICOS 32
<#>6.1. Grficos Polares 34
<#>6.2. Grficos de barras 35
<#>6.3. Grficos 3D 35
<#>6.4. Manipulao de
Grficos 36
... [1]
Vantagens e Desvantagens
O MATLAB tem muitas vantagens, em comparao com linguagens
computacionais convencionais, para resolver problemas tcnicos. Dentre elas
temos:
o Facilidade de uso: MATLAB uma linguagem interpretada, assim como
diversas verses de Basic. O programa pode ser usado como prancheta de
rascunhos para avaliar expresses digitadas em linha de comando, ou pode
ser usado para executar programas grandes escritos previamente.
o Independncia de Plataforma: MATLAB tem suporte em diferentes sistemas
computacionais. Programas escritos em qualquer plataforma so
executados nas outras plataformas, e arquivos de dados escritos em
qualquer plataforma podem ser lidos transparentemente nas outras.
o Funes Predefinidas: MATLAB vem completo, com uma grande biblioteca
de funes predefinidas que representam solues testadas e
empacotadas para diversas tarefas tcnicas bsicas. Alm da grande
biblioteca de funes presentes na linguagem MATLAB bsica, diversas
ferramentas especficas esto disponveis para ajudar a resolver problemas
complexos em reas especficas.
o Desenhos Independentes de Dispositivos: Os desenhos e imagens podem
ser apresentados em qualquer dispositivo de sada grfica suportado pelo
computador que executa o MATLAB.
o Interface Grfica de Usurio: MATLAB tem ferramentas que permitam a um
usurio construir interativamente uma interface grfica de usurio (GUI, do
Excludo: <#>NDICE
<#>1 INTRODUO
<#>
<#>2 VARIVEIS 2
<#>1.1. ENTRANDO COM
VALORES 3
<#>1.2. VARIVEIS
PERMANENTES 3
<#>1.3. EXPRESSES E
COMANDOS BSICOS 4
<#>2. OPERAES RELACIONAIS
E LGICAS 8
<#>2.1 OPERADORES
RELACIONAIS 8
<#>2.2 OPERADORES
LGICOS 11
<#>2.3 PRECEDNCIA DE
OPERADORES 12
<#>2.4 FUNES LGICAS E
RELACIONAIS 13
<#>Descrio 13
<#>Descrio 14
... [2]
Minicurso Matlab.
ingls Graphical User Interface) para seus programas. Com este recurso o
programador pode projetar programas sofisticados de anlise de dados, os
quais podem se operados por usurios relativamente inexperientes.
o O Compilador MATLAB: A flexibilidade e a independncia de plataforma do
MATLAB, resultam da compilao de programas MATLAB em um cdigo
independente de dispositivo denominado pcode, e da interpretao em
tempo real de execuo das instrues em pcode.
Desvantagens do MATLAB:
O MATLAB tem duas desvantagens principais. Primeiro, ele uma
linguagem interpretada, por isso pode ser mais lento que linguagens compiladas.
Esse problema pode ser diminudo pela estruturao apropriada dos programas
MATLAB e pelo uso do compilador MATLAB para compilar o programa final para
distribuio e uso geral.
A segunda desvantagem o custo: uma cpia completa MATLAB de
cinco a dez vezes mais cara que um compilador convencional C ou Fortran. Esse
custo relativamente alto mais do que compensado pelo tempo reduzido
requerido para um engenheiro ou cientista criar um programa o que torna o
MATLAB eficaz para empresas. Ele pode ser muito caro, entretanto, para a
compra individual. Felizmente, existe uma verso de estudante mais barata do
MATLAB, que uma excelente ferramenta para estudantes que queiram aprender
a linguagem.
O Ambiente MATLAB
A unidade fundamental de dados em qualquer programa MATLAB a matriz.
Uma matriz uma coleo de valores de dados organizados em linhas e colunas,
determinada por um nome nico. At mesmo escalares so ratados como
matrizes em MATLAB, eles so simplesmente matrizes com apenas uma linha e
uma coluna.
Ao iniciar o MATLAB, aparece uma janela especial denominada rea de
trabalho MATLAB. As principais ferramentas presentes na rea de trabalho
MATLAB, ou que podem ser acessadas a partir dela, so: Janela de Comandos
(Command Window); Janela Histrico de Comandos (Command History); Espao
de Lanamento (Launch Pad); Janela de Edio/Depurao (Editor / Debugger);
Janela de Figuras (Array Editor); Navegador do Espao de Trabalho e Editor de
Matrizes (Workspace); Navegador de Ajuda (Help); Navegador do Diretrio
Corrente (Current Directory).
Formatados: Marcadores e
numerao
Minicurso Matlab.
Janela de Comando
O lado direito da rea de trabalho MATLAB contm a Janela de Comandos.
Nela o usurio pode inserir comandos interativos pelo marcador de comandos
(>>), e eles ser executados de imediato.
Um exemplo de clculo interativo o seguinte: suponha que voc quer
calcular a rea de um circulo com raio 2,5m. Isso pode ser feito digitando:
>>area = pi * 2,5^2
area=
19,6350
O MATLAB calcula a resposta assim que a tecla Enter pressionada, e
armazena o resultado em uma varivel (uma matriz 1x1) denominada area. O
contedo dessa varivel exibido na Janela de Comandos, e essa varivel pode
ser usada em outros clculos.
Minicurso Matlab.
Minicurso Matlab.
Minicurso Matlab.
Janela de Edio/Depurao
Uma Janela de Edio/Depurao usada para criar novos arquivos M ou
modificar os j existentes. Uma Janela de Edio/Depurao criada
automaticamente quando voc cria um novo arquivo M ou abre um. Voc pode
criar um novo arquivo M selecionando File / New / M-File no menu da rea de
trabalho.
A Janela de Edio/Depurao essencialmente um editor de textos de
programas, com caractersticas da linguagem MATLAB destacadas por cores
diferentes. Comentrios aparecem em verde, variveis e nmeros em preto,
cadeias de caracteres em vermelho, e palavras-chave da linguagem em azul.
Uma vez gravado o arquivo M, ele pode ser executado ao digitarmos seu
nome na Janela de Comandos. Abaixo um exemplo de M file:
%Este m-file calcula a rea de um circulo, e mostra o resultado
Minicurso Matlab.
raio=2,5;
rea=pi*2,5^2
string=[A rea do circulo : num2str(area)];
disp(string);
Janela de Figuras
Uma Janela de Figuras usada para exibir grficos MATLAB. Uma figura
pode ser a representao grfica bidimensional ou tridimensional de dados, uma
imagem ou uma GUI. Um arquivo de script simples que calcula e desenha a
funo seno(x) mostrado a seguir:
%sin_x.m: Esse arquivo M calcula e desenha a funo seno(x)
%para 0 <= x <= 6.
x = 0 : 0.1 : 6;
y = sin(x);
10
Minicurso Matlab.
plot(x,y);
Quando o arquivo for executado abrir uma Janela de Figuras e desenhar a
funo seno(x).
Minicurso Matlab.
de trabalho. Por meio dele temos uma apresentao grfica da mesma informao
dada pelo comando whos, e o que apresentado atualizado dinamicamente
cada vez que muda o espao de trabalho. O Navegador do Espao de Trabalho
tambm permite que o usurio modifique o contedo de qualquer varivel no
espao de trabalho.
12
Minicurso Matlab.
13
Minicurso Matlab.
2. VARIVEIS
Conceito de Varivel
Uma varivel pode ser considerada como um objeto armazenado na
memria do computador. Uma varivel composta por um nome (cadeia de letras
e/ou nmeros necessariamente iniciada por uma letra) e o seu contedo (objeto
armazenado naquela varivel).
As variveis ficam armazenadas no chamado espao de trabalho do
Matlab. Na criao do nome de uma varivel pode-se utilizar letras maisculas ou
minsculas, entretanto no se pode esquecer que o Matlab faz distino entre
elas, ou seja, a e A so variveis diferentes no Matlab. Uma vez que a varivel
armazena um valor numrico, ela pode participar plenamente de operaes
aritmticas, nas quais ela substitui o valor numrico nela armazenado. Por
exemplo, se as variveis A e B correspondem, respectivamente, aos valores
numricos 10 e 20, ento:
A + B equivalente a: 10 + 20.
O MATLAB trabalha essencialmente com um tipo de varivel: uma matriz
contendo nmeros, complexos ou no (um escalar uma matriz 1 x 1). Em alguns
casos, um tratamento especial dado a uma matriz 1 x 1 (escalar) ou a matrizes
1 x n ou n x 1 (vetores).
Comentrios e exemplos
Custo, custo, CuSto e CUSTO so
14
Minicurso Matlab.
maisculas e minsculas.
As variveis podem conter at 31
caracteres. Os caracteres alm do
31 so ignorados
Os nomes de variveis devem
comear com uma letra, seguida de
um nmero qualquer de letras,
algarismos ou sublinhados.
Caracteres de pontuao no so
permitidos por terem um significado
especial para o MATLAB.
Variveis Especiais
ans
beep
pi
eps
inf
NaN (ou) nan
I (ou) j
nargin
nargout
realmax
realmin
bitmax
varargin
varargout
computer
version
Descrio
Varivel padro usada para resultados
Varivel que faz o computador emitir um bip
Numero pi. (3,1415926535979 - Razo entre o permetro
da circunferncia e o seu dimetro)
Preciso da maquina
Infinito
Not a number (indeterminao)
Unidade imaginria
Numero de argumentos de entrada de uma funo
Numero de argumentos de sada de uma funo
Maior nmero real positivo utilizvel
Menor nmero real positivo utilizvel
Maior nmero inteiro positivo utilizvel
Nmero varivel de argumentos de entrada de uma
funo
Nmero varivel de argumentos de sada de uma funo
Tipo de computador
Verso do Matlab
15
Minicurso Matlab.
Descrio
Suprime a impresso de resultados
serve para se colocar um comentrio
Vrgula - serve para se colocar mais de um comando em
cada linha. Pode-se utilizar tambm o ;
indica que uma linha continuao de uma linha anterior
Operador de incremento (primeiro termo : passo de
incremento : ultimo valor)
Pressione as teclas Ctrl-C para interromper a qualquer
momento a execuo do MATLAB
limpa a tela(semelhante ao comando CLS do DOS
16
Minicurso Matlab.
Basta digitar:
>> A=[1 2 3; 4 5 6; 7 8 9]
Que a sada ser:
A=
1
4
7
2
5
8
3
6
9
Varivel = expresso
Os nmeros so em notao decimal. Pode-se criar nmeros complexos
basta escrever i (ou j) depois da parte imaginria. Alguns exemplos de nmeros
permitidos:
1/3
9,63973
3+2i
-99
1,602E-20
-3,1459i
,0001
6,025E23
3E5i
Descrio
Adio
Subtrao
multiplicao
17
Minicurso Matlab.
/e\
^
Diviso
Potenciao
Matriz transposta
input ('...')
Pause
pause(n)
echo on
Minicurso Matlab.
Break
Comandos
Descrio
relacionados a arquivos
e dados
Save
salva todas as variveis que esto sendo usadas
naquele momento, no formato binrio num arquivo
com extenso mat no MATLAB
save data
salva todas as variveis no arquivo data.mat.
save data a, b, c
salva as variveis a, b, c no arquivo data.mat
load filename
carrega as variveis salvas com o comando save no
arquivo especificado.
file print
use esses comandos do menu para imprimir o
contedo atual da janela ativa
Exibindo Dados de Sada
Existem muitas maneiras de exibir dados de sada no MATLAB. A mais
simples simplesmente no escrever o ponto-e-vrgula no final da declarao e
eles sero ecoados na Janela de Comandos. Iremos agora explorar algumas
outras maneiras de exibir dados.
Alterando o Formato Padro
Quando dados so ecoados na Janela de Comandos, valores inteiros so
sempre exibidos como inteiros, e outros valores so impressos com um formato
padro. O formato padro para o MATLAB exibe quatro dgitos depois do ponto
decimal, e pode ser exibido com notao cientfica com um expoente se o nmero
for muito grande ou muito pequeno. Por exemplo:
X = 100.11
Y = 1001.1
Z = 0.00010011
Produzem na sada
X=
100.1100
y=
1.0011e+003
z=
1.0011e-004
Esse formato padro pode ser alterado com o uso do comando format. O
comando format altera o formato padro de acordo com os valores dados na
tabela:
19
Minicurso Matlab.
Minicurso Matlab.
21
Minicurso Matlab.
para que o texto seguinte inicie em uma nova linha. Existem muitos tipos de
caracteres de converso e de escape que podem ser usados em uma funo
fprintf. Alguns so apresentados na tabela baixo:
Caracteres
Formatao
%d
%e
%f
%g
\n
de Descrio
Exibe valor como inteiro
Exibe valor em formato exponencial
Exibe valor em formato de ponto flutuante
Exibe valor em formato de ponto flutuante ou
exponencial o que for mais curto
Muda de linha
22
Minicurso Matlab.
3 1. OPERADORES RELACIONAIS
Os operadores relacionais do Matlab incluem todas as comparaes
habituais.
Operador
Descrio
Menor que
Menor ou igual a
Maior que
Maior ou igual a
Igual a (No confundir com =)
Diferente de
<
<=
>
>=
==
~=
9
23
Minicurso Matlab.
B=
8
>> vf = A > 4
vf =
0
24
Minicurso Matlab.
-1
>> B = B + (B ==0)*eps
B=
Columns 1 through 7
8.0000 7.0000 6.0000
Columns 8 through 9
1.0000 0.0000
5.0000
4.0000
3.0000
2.0000
NaN
0.3333
0.9816
0.6667
0.9276
1.0000
0.8415
25
Minicurso Matlab.
3.2.
OPERADORES LGICOS
Descrio
&
E
OU
No
Alguns exemplos do uso de operadores lgicos:
>> A = 1:9; B = 9 - A; %representa os dados
>> vf = A > 4
vf =
0 0 0 0 1 1 1 1 1
Encontra onde A for maior que 4.
>> vf = ~ (A>4)
vf =
1 1 1 1
26
Minicurso Matlab.
3.3.
PRECEDNCIA DE OPERADORES
27
Minicurso Matlab.
Formatados: Marcadores e
numerao
Descrio
Verdadeiro se for a verso do Matlab para PC (Windons).
Formatados: Marcadores e
numerao
28
Minicurso Matlab.
isstudent
isunix
ismember
29
Minicurso Matlab.
NaN
NaN
NaN
Inf
NaN
0
1
Minicurso Matlab.
0 0
>> c = zeros(0,5) % uma matriz vazia com mltiplas colunas!
c=
Empty matrix: 0-by-5
>> size (c)
ans =
0 5
>> d = ones(4,0) % uma matriz vazia com mltiplas linhas!
d=
Empty matrix: 4-by-0
>> size (d)
ans =
4 0
>> length(d) % seu tamanho zero, embora tenha quatro linhas
ans =
0
O exemplo apresentado pode parecer estranho, mas s vezes til
permitir que uma matriz vazia tenha tamanho zero em qualquer dimenso. [ ]
apenas a mais simples matriz vazia.
No Matlab, muitas funes retornam matrizes vazias quando nenhum
outro resultado apropriado. Talvez o exemplo mais comum seja o da funo find:
>> x = -2:2 % dados novos
x=
-2 -1 0 1 2
>> y = find(x > 2)
y=
[]
Neste exemplo, x no contm valores maiores que 2 e, assim, no h
ndices a retornar. Para verificar os resultados vazios, o Matlab possui a funo
lgica isempty:
>> isempty (y)
ans =
1
Quando se executa testes relacionais com matrizes vazias, importante
empregar isempty devido ambigidade, tais como:
>> c==[ ] % compara matrizes vazias 0 por 5 com matrizes vazias 0 por 0
Warning: X == [ ] is technically incorrect. Use isempty(X) instead.
ans =
0
>> a = [ ] % gera uma varivel vazia
a=
31
Minicurso Matlab.
[]
>> a == [ ] % igual, mas ainda no funciona
Warning: X == [] is technically incorrect. Use isempty(X) instead.
ans =
1
No Matlab, a matriz vazia no igual a qualquer matriz ou escalar nonulos. Esse fato conduz ao seguinte exemplo:
>> y = [ ]; % dados novos
>> a = (y==0)
Warning: Future versions will return empty for empty == scalar
comparisons.
a=
0
>> a = (y==1)
Warning: Future versions will return empty for empty == scalar
comparisons.
a=
0
>> b = (y~=0)
Warning: Future versions will return empty for empty ~= scalar
comparisons.
b=
1
Que mostra que uma matriz vazia no pe igual a um escalar e que, em
algum momento, uma verso do Matlab vai definir matriz vazia == escalar como
sendo vazio. At ento preciso tomar cuidado com situaes como:
>> find (y==0)
Warning: Future versions will return empty for empty == scalar
comparisons.
ans =
[]
>> b = (y~=0)
Warning: Future versions will return empty for empty ~= scalar
comparisons.
b=
32
Minicurso Matlab.
1
Afirma-se outra vez que uma matriz vazia no igual a um escalar. Mas
>> j = find(y~=0)
Warning: Future versions will return empty for empty ~= scalar
comparisons.
j=
1
Agora h um ndice, mesmo que y tenha tamanho zero! Portanto, at que
as mudanas prometidas no tratamento das matrizes vazias sejam feitas,
preciso verificar as variveis com isempty antes de efetuar testes relacionais. A
interpretao vigente costuma causar problemas, j que y(find( y ~= 0)) no existe.
Mas a nova abordagem leva a
>> find ([ ])
ans =
[]
o que, em geral, o que se deseja.
4. Funes Matemticas
O Matlab disponibiliza um grande nmero de funes matemticas. Exemplos
destas funes podem ser encontrados na tabela a seguir:
Funes
Trigonomtricas
acos(x)
acosh(x)
acot(x)
acoth(x)
acsc(x)
acsch(x)
asec(x)
asech(x)
asin(x)
asinh(x)
atan(x)
atan2(x,y)
atanh(x)
Descrio
Arco co-seno
Arco co-seno hiperblico
Arco cotangente
Arco cotangente hiperblico
Arco cossecante
Arco cossecante hiperblico
Arco secante
Arco secante hiperblico
Arco seno
Arco seno hiperblico
Arco tangente
Arco tangente do quarto quadrante
Arco tangente hiperblico
33
Minicurso Matlab.
cos(x)
cosh(x)
cot(x)
coth(x)
csc(x)
csch(x)
sec(x)
sech(x)
sin(x)
sinh(x)
tan(x)
tanh(x)
Co-seno
Co-seno hiperblico
Cotangente
Cotangente hiperblica
Cossecante
Cossecante hiperblico
Secante
Secante hiperblico
Seno
Seno hiperblico
Tangente
Tangente hiperblica
Funo Exponencial
^
exp(x)
log(x)
log10(x)
log2(x)
sqrt(x)
Descrio
Potncia
Exponencial: ex
Logaritmo natural
Logaritmo na base 10
Logaritmo na base 2
Raiz quadrada
Funo complexa
abs(x)
angle(x)
conj(x)
imag(x)
real(x)
unwrap(x)
Descrio
Valor absoluto ou mdulo de um nmero complexo
ngulo de um nmero complexo
Conjugado complexo
Parte imaginria de um nmero complexo
Parte real de um nmero complexo
ngulo de fase reduzido
Funes de
arredondamento e resto
ceil(x)
fix(x)
floor(x)
mod(x)
rem(x)
round(x)
sign(x)
Descrio
Funo de
transformaes de
coordenadas
34
Minicurso Matlab.
cart2sph(x)
cartpol(x)
pol2cart(x)
sph2cart(x)
Funo terica
numrica
factor(x)
primes(x)
gcd(x)
lcm(x)
rat(x)
rats(x)
perms(x)
nchoosek(x)
Descrio
Decomposio em fatores primos
Lista de nmeros primos
Mximo divisor comum
Mnimo mltiplo comum
Aproximao racional
Sada de dados no formato racional
Todas as combinaes possveis
Todas as combinaes de N elementos tomadas k a
K
Excludo:
Funes especializadas
Airy(x)
Besselj(x)
bessely(x)
besselh(x)
besseli(x)
besselk(x)
beta(x)
betainc(x)
betaln(x)
ellipj(x)
ellipke(x)
erf(x)
erfc(x)
erfcx(x)
erfinv(x)
expint(x)
gamma(x)
gammainc(x)
gammaln(x)
legendre(x)
cross(x)
dot(x)
Descrio
Funo de Airy
Funo de Bessel do primeiro tipo
Funo de Bessel do segundo tipo
Funo de Bessel do terceiro tipo
Funo de Bessel do primeiro tipo modificada
Funo de Bessel do segundo tipo modificada
Funo beta
Funo beta incompleta
Logaritmo da funo beta
Funo elptica de Jacobi
Integral elptica completa
Funo erro (error)
Funo erro complementar
Funo erro complementar escalada
Inversa da funo erro
Funo erro exponencial
Funo gama
Funo gama incompleta
Logaritmo da funo gama
Funo de Legendre associada
Produto vetorial
Produto inteiro entre dois vetores
35
Minicurso Matlab.
5. MATRIZES
Matriz uma tabela de nmeros dispostos em m linhas e n colunas. Assim,
um simples nmero pode ser considerado uma matriz com uma linha e uma
coluna, uma coordenada (x-y) pode ser considerada uma matriz com uma linha e
duas colunas, e um grupo de quatro coordenadas (x-y-z) podem ser considerada
uma matriz com quatro linhas e trs colunas.
Exemplo:
8 9 10
A = 5 1 0
8 7 2
B = [8 7 1]
9
8
C=
1
4
36
Minicurso Matlab.
OBS: Tambm podemos escrever uma matriz terminando uma linha com uma
vrgula seguida de trs ou mais pontos, e continuar a entrar com os valores
restantes na prxima linha da rea de trabalho do MATLAB.
Matrizes curtas : F = [1 5 2 6 4 1 9 7 4 2 4 2 5 5 8 2 2 2 1 0 9 ]
Matrizes Longas: F = [1 52 64 197 42 42
55 82 22 109]
Podemos tambm definir uma matriz usando outra que j definida. Por exemplo,
considere as seguintes matrizes:
B = [ 1.5 , 3.1];
S = [3.0 B];
Estes comandos equivalem a:
S = [3.0 1.5 3.1];
Seja a matriz A=
>> A (1:5,7:10)
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
10
74
55
56
62
68
18
14
20
21
12
83
89
95
96
77
51
57
63
69
75
15
16
22
13
19
90
91
97
78
84
58
64
70
71
52
67
73
54
60
61
42
48
29
35
36
40
41
47
28
34
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
37
Minicurso Matlab.
ans =
uma submatriz 5x4, consiste das primeiras cinco linhas e as ltimas quatro
colunas. Utilizando os dois pontos no lugar de um subscrito denotam-se todos
elementos da linha ou coluna. Por exemplo,
>> A (1:2:5,:)
ans =
92 99 11 18 15 67 74 51 58 40
14 81 88 20 22 54 56 63 70 47
86 93 25 12 19 61 68 75 52 34
uma submatriz 3x10 que consiste da primeira, terceira e quinta linhas e todas
colunas da matriz A.
Fixao: Obtenha uma sub-matriz de A que contenha as linhas:1,3,5,7, e as
colunas: 5,6,7.
Resposta:
A
= [ 30 39 48 1 10 19 28
38 47 7 9 18 27 29
d=A(1:2:7,5:7)
46 6
8 17 26 35 37
d=
5 14 16 25 34 36 45
[ 10 19 28
13 15 24 33 42 44 4
26 35 37
21 23 32 41 43 3 12
42 44 4
22 31 40 49 2 11 20]
2 11 20]
y=
9
3
7
2
8
6
38
Minicurso Matlab.
O operador : entre os dois nmeros inteiros gera todos os inteiros entre os dois
nmeros especificados. Se for usado para separar trs nmeros, os dois pontos
geraro valores entre o primeiro e terceiro nmeros, usando o segundo nmero
como incremento.
Seja o VETOR A = 6 : -2 : -9 , seus elementos so:
A = [6 4 2 0 -2 -4 -6 -8]
O operador dois pontos pode tambm ser usado para selecionar uma sub-matriz
de uma outra matriz. Por exemplo, considere a matriz abaixo:
C = [-1,0,0;1,1,0; 1,-1,0; 0,0,2]
Se executarmos os comandos:
PARTE_1 = C ( : , 2:3);
PARTE_2 = C (3:4, 1:2);
Definimos as matrizes:
PARTE_1 = [ 0 0; 1 0; -1 0; 0 2];
PARTE_2 = [1 1; 0 0];
39
Minicurso Matlab.
Excludo:
Excludo:
Somatrio de Produtos
a soma escalar de dois vetores do mesmo tamanho.
Formatados: Marcadores e
numerao
A = [4 1 3] e B = [-2 5 2]
A . B = (4) . (-2) + (-1) . (5) + (3) . (2)
A . B = (-8) + (-5) + (6)
A . B = -7
No MATLAB, fazemos: A.B= sum (A .*B); ou simplesmente: A*B
OBS: Quando A e B forem ambos vetores linha ou ambos vetores coluna, temos
que:
Somatrio de produtos = sum (A .*B);
Quando A for um vetor linha e B um vetor coluna, temos que:
Somatrio de produtos = sum (A' .*B);
Quando A for um vetor coluna e B um vetor linha, temos que:
Somatrio de produtos = sum (A .*B');
Formatados: Marcadores e
numerao
Multiplicao de Matrizes
A multiplicao de duas matrizes corresponde ao somatrio de produtos das linhas i
da
primeira matriz e das colunas j da Segunda matriz.
40
Minicurso Matlab.
8 9 10
A = 5 1 0
8 7 3 3x3
1 2 5
B=
8 7 3 2x3 ;
C=B.A
C=
, mas no C=A.B .
58
115
46
93
25
86
Formatados: Marcadores e
numerao
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), mas o resultado obtido diretamente.
Portanto, basta verificar se as duas matrizes so singulares (existncia de inversa)
para fazer a diviso.
Excludo:
Excludo:
Excludo:
Excludo:
Excludo: N
Excludo:
R=[ 1
9
8]
Comando:
ans =
Exponenciao
20.5556
-26.5556
0.7778
Formatados: Marcadores e
numerao
ento:
B^2 =
91 25 29
109 54 51
60 43 41
41
Excludo: SE
Minicurso Matlab.
B.^2=
ans =
81
64
1
1
16
36
4
25
9
Excludo:
1
5
9
6
7
2]
Excludo:
Excludo:
1
5
9
6
7
2]
a = [8
3
4
1
5
9
6
7
2]
det(A) = -360
W=reshape(a, [1 9 ] )
W = [8
6.
2]
GRFICOS
Excludo:
42
Quebra de pgina
Minicurso Matlab.
43
Minicurso Matlab.
>> t = 0:0.05:4*pi;
>> y = sin(t);
>> plot(t,y)
Resulta em:
Indicador
-:
-.
.
Tipo de Ponto
Plus
Star
Circle
x-mark
Indicador
+
*
44
Minicurso Matlab.
Indicador
r
g
b
w
O MATLAB pode plotar mltiplas linhas em apenas um grfico. Tudo isto usando o comando
plot com mltiplos argumentos.
Por exemplo:
plot(t, sin(t), t, cos(t), t, sin(t + pi), t, cos(t + pi));
45
Minicurso Matlab.
que resultam na seguinte figure, com os grficos sendo plotados da esquerda para a
direita, de cima para baixo:
46
Minicurso Matlab.
Formatados: Marcadores e
numerao
Formatados: Marcadores e
numerao
47
Minicurso Matlab.
1
0.95
0.9
0.85
0.8
0.75
0.7
12
10
8
6
4
2
0
10
12
48
Formatados: Marcadores e
numerao
Minicurso Matlab.
Formatados: Marcadores e
numerao
plot(x,z)
0.8
0.6
0.4
0.2
plot(x,y)
0
-0.2
-0.4
-0.6
-0.8
-1
Grficos em 3D
>> [xgrid,ygrid]=meshgrid(-0.5:0.1:0.5);
>> z=sqrt(abs(-1 + xgrid.^2 + ygrid.^2));
>> mesh(z)
>> hold on
>> v=sqrt(abs(0.5 + xgrid.^2 + ygrid.^2));
>> mesh(v)
49
Excludo:
Excludo:
Excludo:
Minicurso Matlab.
Excludo:
0.95
mesh(v)
0.9
0.85
0.8
0.75
0.7
15
mesh(z)
15
10
10
5
0
50
Minicurso Matlab.
como a matriz x de meshgrid. De modo similar, o eixo-y varia de baixo para cima,
assim como a matriz y de meshgrid.
Por exemplo:
>> [x,y] = meshgrid(-2:0.2:2,-2:0.2:2);
>> z = x.*exp(-x.^2-y.^2);
>> mesh(x,y,z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> title('Grfico 3D')
51
Minicurso Matlab.
7. POLINMIOS
52
Minicurso Matlab.
Formatados: Marcadores e
numerao
Excludo:
Excludo:
Exemplo
a = [3,-0.5,0,1,-5.2];
f = polyval(a,x);
f(x) = 3x4 0.5x3+x-5,2
Quando x for um escalar ou um vetor, polyval consegue calcular o valor da funo
operando elemento por elemento. Mas quando x for uma matriz usa-se o comando
polyvalm:
f = polyvalm(a,x);
sendo a matriz x, uma matriz quadrada.
f = polyval([3,-0.5,0,1,-5.2],x);
Que nos mostrara o seguinte
polinmio:
O tamanho de f ter que ser igual ao tamanho de x, seja ele um escalar, vetor ou
matriz.
Como se pode ver um polinmio no nada mais do que um vetor e todas
operaes validas para um vetor valem tambm para um polinmio.
Excludo: -se
Excludo:
4.0000 -5.0000
4.0000 -13.6000
Formatados: Marcadores e
numerao
7.3. Multiplicao
A multiplicao polinomial efetuada por meio do comando conv (que faz a
convoluo entre dois conjuntos). A multiplicao de mais de dois polinmios requer
o uso repetido de conv.
m = conv(g,h)
Excludo:
Excludo:
53
Minicurso Matlab.
7.4. Diviso
No MATLAB a diviso de polinmios feita atravs do comando deconv:
[q,r] = deconv(g,h)
Esse resultado nos diz que g dividido por h nos d o polinmio de quociente q e
resto r.
Excludo:
Formatados: Marcadores e
numerao
Excludo:
Excludo:
f(x)=x3-2x2-3x+10
Lembrando que estes comandos podem ser dados de uma s vez:
r = roots([1,-2,-3,10]);
Os valores das razes sero: 2 + i, 2 - i e -2.
Agora, dadas as razes de um polinmio, tambm possvel construir o polinmio
associado. No MATLAB, o comando poly encarregado de executar essa tarefa.
Onde o argumento do comando poly o vetor contendo as razes do polinmio que
desejamos determinar.
Exemplo 2
Sejam as razes de um polinmio -1, 1 e 3. Determinar este polinmio.
No MATLAB:
-3
-1
Excludo:
Excludo: o
Excludo:
Excludo:
Excludo:
a = poly ([-1,1,3]);
a = 1
Excludo:
Excludo:
Excludo:
<#>
Excludo:
Quebra de pgina
Excludo:
54
Formatados: Marcadores e
numerao
Minicurso Matlab.
8.1.
Formatados: Marcadores e
numerao
Estruturas de repeties
LAO FOR
Os laos for executam um bloco de declaraes durante um nmero
especificado de vezes. A forma geral do loop for :
for indice = expr
declarao 1
...
declarao n
end
Onde ndice a varivel do loop (tambm conhecida como ndice do loop) e expr
a expresso de controle do loop. As colunas em expr so armazenadas uma por
vez na varivel ndice e o corpo do lao executado. Por essa razo, o lao
executado uma vez para cada coluna em expr. A expresso em geral adota a
forma de um vetor em notao abreviada primeiro: incremento : ultimo.
As declaraes entre a declarao for e a declarao end so
conhecidas como o corpo do lao. Elas so executadas repetidamente durante cada
passagem do lao for. A construo de lao for funciona conforme descrito a seguir.
1. No inicio do lao o MATLAB gera a expresso de controle.
2. Na primeira passagem pelo lao, o programa associa a primeira coluna da
expresso varivel de lao ndice, e o programa executa as declaraes
no corpo do lao.
3. Aps a execuo das declaraes no corpo do lao, o programa associa a
prxima coluna da expresso varivel de lao ndice, e o programa
executa as declaraes no corpo do lao novamente.
4. O passo 3 repetido enquanto houver colunas adicionais na varivel de
controle.
Abaixo temos alguns exemplos.
for ii = 1:10
declarao 1
...
declarao n
end
Nesse caso, a expresso de controle gera uma matriz 1x10, por isso as
declaraes de 1 a n sero executadas dez vezes. O ndice de lao ii ser 1 na
primeira vez, dois na segunda, e assim por diante. O ndice de lao ser 10 na ltima
passagem pelas declaraes. Quando o controle desenvolvido para a declarao
for depois da dcima passagem, no h mais colunas na expresso de controle; a
execuo transferida para a primeira declarao depois da declarao end. Note
55
Minicurso Matlab.
56
Minicurso Matlab.
v=
3 6 9 12 15 18 21 24 27 30
Usando um lao for tambm em conjunto com outro lao for:
>> for i = 1:4,
for j = 1:4,
A(i,j) = i + j;
B(i,j) = i - j;
end;
end;
LAO WHILE
O lao while um bloco de declaraes que se repete indefinidamente,
enquanto uma condio for satisfeita. A forma geral do lao while :
while expresso
...
...
...
end
Se a expresso for diferente de zero (verdadeira), o bloco de cdigo ser executado
e o controle retornar para a declarao while. Se a expresso ainda for diferente
de zero (verdadeira), as declaraes sero executadas novamente. Esse processo
se repetir at que a expresso se torne zero (falsa). Quando o controle retornar
para a declarao while e a expresso for zero, o programa executar a primeira
declarao depois de end.
Exemplo:
O seguinte algoritmo de clculo da mdia.
acumulador = 0;
n = 0;
while n<5,
numero = input('Digite o valor: ');
disp('O nmero digitado foi: ');
disp(numero);
n = n+1;
acumulador = acumulador + numero;
end;
media = acumulador/n;
disp('A soma dos nmeros : ');
disp(acumulador);
disp('A mdia dos nmeros : ');
disp(media);
57
Minicurso Matlab.
ESTRUTURAS CONDICIONAIS
IF-ELSE-END
Em diversas situaes, as seqncias de comandos tm de ser executadas
condicionalmente, com base em um teste relacional. Nas linguagens de
programao, essa lgica implementada por meio de uma das da estrutura if-elseend. A estrutura if-else-end mais simples :
if expresso
comando...
end
Os comandos entre as instrues if e end so executados se todos os
elementos na expresso forem verdadeiros.
Nos casos em que h duas alternativas, a estrutura if-else-end passa a ser:
if expresso
comandos executados se verdadeira
else
comandos executados se falsa
end
Neste caso o primeiro grupo de comandos executado se a expresso for
verdadeira, e o segundo grupo se a expresso for falsa.
Quando houver trs ou mais alternativas, a estrutura if-else-end toma a
forma:
if expresso 1
comandos executados se expresso 1 for verdadeira
elseif expresso 2
comandos executados se expresso 2 for verdadeira
elseif expresso 3
comandos executados se expresso 3 for verdadeira
elseif expresso 4
comandos executados se expresso 4 for verdadeira
.
.
.
else
comandos executados se nenhuma outra expresso for verdadeira
end
Nesta forma apenas os comandos associados primeira expresso
verdadeira encontrada so executados. As expresses relacionais seguintes
58
Minicurso Matlab.
59
Excludo:
Minicurso Matlab.
60
Minicurso Matlab.
Note que a funo input deve ser alterada (com o s)para que ela possa
entender a varivel digitada como sendo uma palavra.
COMANDO BREAK E CONTINUE
Formatados: Marcadores e
numerao
Duas declaraes adicionais podem ser utilizadas para controlar a operao dos
laos while e for: as declaraes break e continue. A declarao break encerra a
execuo de um lao e passa o controle para a prxima declarao logo aps o fim
do lao; a declarao continue termina a passagem corrente pelo lao e retorna o
controle para o incio do lao.
9. ANEXOS
Excludo: <#>
Excludo: <#>
Excludo: <#>Tabela de comandos
Quebra de pgina
<#>ANEXOS
O Matlab tem uma caixa de ferramentas que faz diversas operaes como se fosse
uma "calculadora de funes". Para acion-la basta digitar o comando funtool.
Surgiro na tela, trs janelas com as seguintes caractersticas:
i)
ii)
iii)
Derivada de f(x).
int f
Integral de f(x).
simple
Simplifica f(x).
num f
racional).
den f
racional).
1/f
finv
f+a
61
Minicurso Matlab.
f-a
f*a
f/a
f^a
f (x+ a)
f (x* a)
f+g
f-g
f*g
f/g
f (g)
g=f
swap
Insert
Cycle
Delete
Reset
Configura os valores de f, g, x, a e a lista de funes para seus
valores normais(default).
Help
Demo
Close
INTRODUO AO SIMULINK
Introduo
uma ferramenta para modelar, analisar e simular sistemas matemticos e
fsicos, incluindo os no lineares, de uma forma simples, pois representa os sistemas
na forma de diagramas de blocos, ao invs de equaes matemticas. O Simulink
usa as funes definidas no Matlab numa forma grfica e fcil de ser compreendida.
A seguir so descritos os fundamentos desta ferramenta.
Fundamentos do Simulink
Software de Simulao de Sistemas Dinmicos - SIMULINK
Simulink um programa para a simulao de sistemas dinmicos. Como uma
extenso do Matlab, o Simulink incorpora diferentes aspectos especficos de
sistemas dinmicos enquanto mantm a funcionalidade apresentada pelo Matlab.
O Simulink acrescenta uma nova classe de janelas. Nessas janelas, modelos
na forma de diagrama de blocos so montados e editados principalmente por
comandos feitos diretamente do mouse.
62
Minicurso Matlab.
63
Minicurso Matlab.
utilizao de uma nica varivel independente (entrada) e requer que ela seja
2
denotada pela letra u. Portanto, para obter a operao y=x utiliza-se o bloco u^2.
Math: disponibiliza vrias funes matemticas teis para a criao de sistemas
lineares e no-lineares.
Nonlinear: conjunto de blocos representando no-linearidades tpicas: saturao,
zona morta, etc.
Signals & Systems: este grupo possui blocos que permitem importar e exportar
dados atravs de portas de entrada (Inport) e portas de sada (Outport), alm de
blocos para fazer multiplexao de dados (mux) e demultiplexao de dados
(demux). O bloco de multiplexao de dados pode ser usado, por exemplo, para
possibilitar a visualizao de mais de um sinal (curva) num mesmo grfico.
Sinks: aqui esto os blocos para apresentao dos resultados de forma grfica
como Scope (tipo osciloscpio), To Workspace, display (resultado numrico), entre
outros.
Sources: este grupo consiste na biblioteca de fontes de sinais tais como senide,
degrau (step), constante, gerador de sinais (onde podem ser gerados senides,
ondas quadradas, rudos, etc.), entre outros.
Descrio das Opes do Menu da Janela do Modelo
Conforme colocado anteriormente, na janela aberta para criao de um novo
modelo (diagrama de blocos) ou para utilizao de um modelo j existente, existe
um menu principal, cujas principais opes so descritas a seguir.
File:
_ New... Model: abre nova janela para montar um modelo;
_ New... Library: abre nova janela para montar uma biblioteca;
_ Open...: abre um arquivo j existente;
_ Close: fecha a janela de modelo;
_ Save, Save as...: salva modelo atual;
_ Preferences: permite ajustar diversas preferncias;
_ Print..., Printer Setup...: imprime ou define configuraes de impresso;
_ Exit MATLAB: sai do Matlab.
Edit:
_ Cut, Copy, Paste, Clear: recorta, copia, cola e apaga, respectivamente, os
objetos selecionados;
_ Select all: seleciona todos os objetos da janela ativa;
_ Copy Model: copia modelo para ser colado em outro modelo ou em um
editor de textos;
_ Find: acha objetos;
_ Create Subsystem: cria subsistema agrupando todos os blocos
selecionados;
_ Mask Subsystem: modifica o cone criando uma nova interface a partir do
subsistema;
_ Look Under Mask: permite ver o subsistema por trs da nova interface.
64
Minicurso Matlab.
65
Minicurso Matlab.
66
Minicurso Matlab.
do Workspace (na janela de comando do Matlab) para que possam ser manipuladas
tambm no Matlab. Isto feito atravs do bloco To Workspace existente na
biblioteca Sinks do Simulink e definindo uma varivel para o Workspace, a qual
armazenar os resultados da simulao feita no Simulink. possvel, por exemplo,
traar grficos no Matlab usando o comando plot a partir dos resultados obtidos de
simulaes feitas no Simulink.
Exemplo
Considere o seguinte sistema da Figura.
67
Minicurso Matlab.
Sistema em blocos.
Falta ainda a colocao de um scope para visualizar a sada .
68
Minicurso Matlab.
Agradecimentos:
Departamento de Engenharia Eltrica
69
1.
INTRODUO AO MATLAB
Usurio
15/11/2005 23:52:00
O Ambiente MATLAB 4
2. VARIVEIS
7
2.1.
ENTRANDO COM VALORES
8
2.2.
VARIVEIS PERMANENTES
9
2.3.
EXPRESSES E COMANDOS BSICOS 10
3. OPERAES RELACIONAIS E LGICAS 12
3 1.
OPERADORES RELACIONAIS 13
3.2.
OPERADORES LGICOS 16
3.3.
PRECEDNCIA DE OPERADORES 17
3.4.
FUNES LGICAS E RELACIONAIS
18
3.5.
NaNs E MATRIZES VAZIAS
20
4. Funes Matemticas
23
5. MATRIZES
26
5.1.
Definindo Matrizes no MATLAB 27
5.2.
Gerando Sub-Matrizes com o Operador Dois Pontos
). 28
5.3.
Gerando Vetores com o Operador Dois Pontos ( : )
5.4.
Operaes com Matrizes 29
Somatrio de Produtos 30
Multiplicao de Matrizes
30
Diviso 31
Exponenciao 31
5.5.
Matriz Inversa 31
6. GRFICOS
32
6.1.
Grficos Polares
34
6.2.
Grficos de barras 35
6.3.
Grficos 3D
35
6.4.
Manipulao de Grficos 36
6. POLINOMIOS 37
6.1.
Definindo Polinmios no Matlab (comando polyval):
6.2.
Multiplicao 38
6.3.
Diviso
38
6.4.
Razes de polinmios
38
7.1.
Estruturas de repeties: Comandos for e while:
7.2.
Comando break 40
7.3.
Comandos if,else e elseif: 40
8. ANEXOS 42
8.1.
TOOLBOX DE MATEMTICA SIMBLICA 42
(:
28
37
39
8.2.
AJUSTE DE CURVAS E INTERPOLAO 57
AJUSTE DE CURVAS 57
INTERPOLAO UNIDIMENSIONAL
60
INTERPOLAO BIDIMENSIONAL 63
8.3.
KHEPERA 67
Pgina 4: [2] Excludo
Filipe
15/11/2005 01:54:00
NDICE
1 INTRODUO
2 VARIVEIS
2
1.1.
ENTRANDO COM VALORES
3
1.2.
VARIVEIS PERMANENTES
3
1.3.
EXPRESSES E COMANDOS BSICOS 4
2. OPERAES RELACIONAIS E LGICAS 8
2.1
OPERADORES RELACIONAIS 8
2.2
OPERADORES LGICOS 11
2.3
PRECEDNCIA DE OPERADORES 12
2.4
FUNES LGICAS E RELACIONAIS
13
Descrio
13
Descrio
14
2.5
NaNs E MATRIZES VAZIAS
15
3. Funes Matemticas 19
4. MATRIZES21
4.1.
Definindo Matrizes no MATLAB 21
4.2.
Gerando Sub-Matrizes com o Operador Dois Pontos ( :
). 22
4.3.
Gerando Vetores com o Operador Dois Pontos ( : ) 23
4.4.
Operaes com Matrizes 24
Somatrio de Produtos 24
Multiplicao de Matrizes
24
Diviso 25
Exponenciao 25
4.5.
Matriz Inversa 25
5. GRFICOS
26
5.1.
Grficos Polares
28
5.2.
Grficos de barras 29
5.3.
Grficos 3D
29
5.4.
Manipulao de Grficos 31
6. POLINOMIOS 33
6.1.
Definindo Polinmios no Matlab (comando polyval): 33
6.2.
Multiplicao 33
6.3.
Razes de polinmios
33
7. Programao bsica em Matlab 35
7.1.
Estruturas de repeties: Comandos for e while:
35
7.2.
Comando break 35
7.3.
Comandos if,else e elseif: 35
7.2.
Tabela de comandos 36
8. ANEXOS 37
8.1.
TOOLBOX DE MATEMTICA SIMBLICA 37
8.2.
AJUSTE DE CURVAS E INTERPOLAO 54
8.3
AJUSTE DE CURVAS54
8.4
INTERPOLAO UNIDIMENSIONAL 57
8.5
INTERPOLAO BIDIMENSIONAL 60
8.6.
KHEPERA 64