Académique Documents
Professionnel Documents
Culture Documents
Mini-curso Octave/MATLAB
Sumrio
Sobre as Ferramentas
Operaes Bsicas e Funes
importantes
Grficos
Arquivos, scripts e criao de funes
Funes Bsicas e teis
Introduo
MATLAB e Octave so ferramentas para uso de processamento
numrico.
O MATLAB em especial um dos programas mais utilizados em
engenharia para simulaes e anlises de sistemas reais.
Possuem recursos de programao com uma linguagem procedural
de alto nvel.
MATLAB: http://www.mathworks.com
Vantagens Octave
Software gratuito
Mais leve
Open source
Imensa compatibilidade com MATLAB
Vantagens MATLAB
Aplicaes vo alm de clculos
matemticos
Velocidade de processamento super
rpida (funes prprias bem otimizadas)
Escrita de Cdigo
O cdigo escrito em MATLAB funcionar*
no Octave. Entretanto, nem todo cdigo
escrito no Octave funcionar no Matlab.
*A sintaxe dos cdigos so as mesmas,
porm h funes exclusivas do MATLAB.
Indicamos utilizar o software adotado pela
professora.
Exemplos:
MATLAB no aceita spas duplas, apenas simples
Operadores lgicos do MATLAB:
Or - | e ||
And - & e &&
Not - ~
O octave aceita esses operadores, assim como
os padres de C. Tambm aceita aspas duplas ou
simples
Operaes bsicas
3 + 8 (soma)
5 2 (subtrao)
4 * 2 (multiplicao)
4 / 2 (diviso direta)
3^2 (potenciao)
2 \ 4 (diviso inversa)
Variveis
x=4+5
X = 3/2
x=3+3
Nmeros Complexos
A estrutura de um complexo a + i*b,
onde i = sqrt(-1)
z = 4 + i*3;
real(z)
imag(z)
abs(z)
angle(z) ( dado em radianos)
Vetores e Matrizes
Devem ser declarados entre colchetes.
Na definio de vetores e matrizes, um
espao em branco ou uma vrgula
separam elementos de colunas diferentes
numa mesma linha.
O ponto-e-vrgula separa elementos de
linhas diferentes numa mesma coluna.
Operaes
Pode-se fazer operaes de soma,
subtrao, diviso e multiplicao.
Para fazer uma operao elemento a
elemento utiliza-se . antes do sinal de
operao
Exemplo:
[1 2 3].*[3 2 1] = [1x3 2x2 3x1] = [3 4 3]
Acesso a valores em
vetores e matrizes
Acesso de elementos:
V = [1 2 3]
V(1) acessa o primeiro elemento
V(2) acessa o segundo elemento
V(3) acessa o terceiro elemento
Note que o ndice do primeiro elemento 1 e
no 0 como na maioria das linguagens de
programao
Semelhantemente em matrizes,
A = [1 2 3; 4 5 6; 7 8 9]
A(1,2) 2
>>A(1,2) = 5;
Faz o elemento da primeira linha e
segunda coluna (2) valer 5.
Funes teis
Operadores relacionais
e lgicos
Como dados de entrada de expresses
relacionais e lgicas, qualquer nmero diferente
de zero Verdadeiro e o zero Falso
A sada produz 1 para Verdadeiro e 0 para Falso
Operadores relacionais:
<, <=, >, >=, ==, ~=
Operadores lgicos:
& ou && (AND), | ou || (OR), ~ (NOT)
Ajuda
Comando help: Apresenta a descrio da funo.
Ex: help sin
Comando lookfor: Procura nas funes do Octave
e do MATLAB, alguma que possua em sua
descrio a palavra procurada.
Ex: lookfor sine
Para sair do help digite 'q'.
Scripts
Arquivo de extenso .m contendo
comandos do MATLAB/Octave
Comandos executados em srie
Para chamar o script, basta digitar o nome
do arquivo nas linhas de comando sem a
extenso
Forma de leitura
Matriz = fscanf (fid, template, size)
fid o arquivo a ser lido
template o formato da leitura
size a quantidade de dados a ser lido
Arquivo a ser lido:
fid = fopen(entrada.txt, r)
- o r significa read (leitura)
- para escrita usa-se w (write)
Template de leitura
inteiros = %d
caracter = %c
float = %f
notao decimal = %e (1.434e+03)
misto de float e decimal = %g
(recomendo sempre usar este)
Tamanho da leitura
Size pode ser especificado como:
Inf l o mximo que puder e armazena
em um vetor coluna
n l n elementos armazenando em um
vetor coluna
[n Inf] l o mximo que puder
armazenando em uma matriz de n linhas
[n n] l os elementos armazenando em
uma matriz n x n
Funes
Cada funo deve ser criada em apenas
um arquivo
O nome do arquivo deve ser o mesmo
nome da funo (com extenso .m)
Podem ser utilizadas depois em outros
arquivos e outras funes ou chamadas
na linha de comando
Formato de funes
Fluxo de controle
If/else
for
while
break
case
If/else
if <expresso lgica>
<bloco de comandos>
else
<bloco de comandos>
end
*No Octave pode-se utilizar endif, porm o
mesmo no vlido para o MATLAB
while
while <expresso lgica>
<bloco de comandos>
end
for
for i = 1:n
<bloco de comandos>
end
Switch-case
u = input(Escreva a unidade de medida: );
switch u
case {polegadas,pol}
y = x*2.54;
case {metros,m}
y = x/100;
otherwise disp([unidade desconhecida: u])
end
Medio de tempo de
execuo
tic() comea a contagem
toc() finaliza a contagem retornando o
valor do tempo desde o ltimo tic()
tic()
<bloco de comandos>
t = toc()
A varivel t armazenar o tempo levado
para executar o bloco de comandos
Armazenagem de
dados
dir mostra tudo que est em sua pasta
atual
save <nome_arquivo> salva todas as
variveis e contedo do workspace
load <nome_arquivo> carrega um
arquivo salvo com o comando save
whos mostra tudo que h em seu
workspace
Grficos
plot(x, y) - Plota um grfico de y em funo
de x
plot(x, y, z, w) - Plota dois grficos numa
mesma figura
plot(x, y, 'param') - 'param' define tipo de
linha, formato do marcador e a cor do
grfico. No h ordem especfica nem
preciso determinar os trs.
Funes teis
figure(valor)
grid on/off
hold on/off
legend
title(titulo)
xlabel(label)
ylabel(label)
axis
Salvando grfico
f = figure()
plot(x,y)
saveas(f, 'image.png');
Parmetros da funo
plot
plot(x, y, parmetro)
-opes no MATLAB
-opes no Octave
Resoluo de sistemas
lineares
Forma direta:
- temos a seguinte forma: A*x = b
- x = inv(A)*b ou x = A\b
Decomoposio LU:
- [L, U, P] = lu (A)
Polinmios
Definido como um vetor em que cada
posio um coeficiente, comeando com
o de mais alta ordem
Operaes com
polinmios
roots(p) retorna as razes do polinmio p
conv(p1,p2) faz a multiplicao do
polinmio p1 pelo p2
[p,r] = deconv(p1,p2) armazena a diviso
de p1 por p2 em p e o resto em r
[r, p, k, e] = residue(a,b) faz a expanso
em fraes parcias de a/b
[a, b] = residue(r, p, k, e) faz o inverso
Ajuste de curva
Encontrar a funo que melhor se ajusta a
um grupo de coordenadas
Utiliza o mtodo dos quadrados mnimos
- Mtodo muito simples e amplamente
utilizado
- minimizao do erro relativo dos pontos
curva
- Tem que fazer muita conta!
Integrais definidas e
indefinidas
O MATLAB pode ser usado para resolver
integrais simples, duplas e triplas
definidas ou indefinidas
O Octave, porm, s resolve integrais
indefinidas de polinmios
Para encontrar a rea de diversos tipos de
funo existem vrias formas, tanto no
MATLAB como no Octave
Definio de funes
matemticas
Funo matemtica - f(x) = x + 2x + 1
Representao - @(x) x.^2 + 2*x +1
Fxy = @(x, y) sin(pi*x.*y).*sqrt(x.*y)
Funes definidas dessa forma que so
usadas nos mtodos de integrao
Integrais duplas e
triplas
dblquad(f, xa, xb, ya, yb)
Diferenciao
Comando diff
Derivada no MATLAB
Deve-se criar uma varivel simblica:
syms x
Funo que utiliza esta varivel
f = sin(x)
Mandar derivar
diff(f)
syms x n
f = x^n
diff(f)
Resoluo de
Equaes Diferenciais
dsolve MATLAB
- Resolve equaes diferenciais ordinrias
e sistemas de equaes diferenciais
lsode Octave
- Resolve equaes diferenciais
numericamente
Transformada de Laplace (MATLAB)
dsolve
lsode
Faz o mesmo que a dsolve, porm
trabalha apenas com valores numricos
(vetor de dados)
Um pouco mais complicada de utilizar
Transformada de
Laplace
Amplamente usada em simulao de
sistemas dinmicos
Utiliza variveis simblicas
- laplace(f) Faz a transformada
- ilaplace(s) Faz a transformada inversa