Академический Документы
Профессиональный Документы
Культура Документы
ENGENHARIA
Taisa Shimosakai de Lira
III SENES - Semana de Engenharia do Norte do Esprito Santo
De 15 a 19 de agosto de 2011
O que o MATLAB?
MATLAB (MATrix LABoratory):
Programa de computador especializado e otimizado
para clculos cientficos e de engenharia.
Vantagem: Ampla biblioteca de funes predefinidas.
Desvantagem: uma linguagem interpretada, por isso
pode ser mais lento que linguagens compiladas.
Toolboxes
So bibliotecas de rotinas MATLAB (m-files), aplicadas a
reas especficas tais como:
Otimizao
Estatstica
Redes Neurais
Identificao de Sistemas
Equaes Diferenciais Parciais
Ajuste de Curvas
Sistema de Controle
cd C:\Meus Documentos
Comandos Bsicos
>>who:: Lista as variveis
>>whos: Lista e especifica as variveis
>>clc:Limpa
Limpa a janela de comandos
>>clf:Limpa
Limpa figura atual
>>clear: Deleta variveis do workspace MATLAB
Ajuda do MATLAB documentao
>>help:Ajuda
>>close all:Fecha
Fecha as janelas de figuras abertas
Variveis
Matlab case sensitive (varivel A diferente de a)
Caso no se fornea o nome da varivel de atribuio, o
Matlab cria uma varivel chamada ans (answer)
Se a varivel j existe, o MATLAB armazena sempre a
ultima atribuio feita.
DeveDeve-se evitar dar nomes s variveis usando nomes de
comandos internos do MATLAB.
O nome da varivel deve comear por uma letra e no
deve conter caracteres especiais nem espao.
As variveis podem ter at 31 caracteres.
caracteres.
Matemtica Elementar
Operao
Adio
Subtrao
Multiplicao
Diviso
Potenciao
Smbolo
+
*
ou\
/ ou
\
^
Exemplo
3 + 22
54.454.4
-16.5
3.14*6
7\
19.54/7 ou 7
\19.54
2^8
Hierarquia de Operaes
Precedncia
Operao
Funes Matemticas
Funo
Descrio
sen
Seno
cos
CoCo-seno
exp
Exponencial
log
Logaritmo natural
log10
Logaritmo na base 10
sqrt
Raiz quadrada
abs
>>help elfun
Funes Estatsticas
Funo
Descrio
mean
Mdia
median
Mediana
max
Valor mximo
min
Valor mnimo
std
DesvioDesvio-padro
var
Varincia
sum
Vetores: manipulao
Operaes Bsicas: +, - ,* ,/, ^
Operaes Ponto a Ponto: ./, .*, .^
Transposio: C
Operaes elementares: log exp sin cos tan etc...
Vetores: manipulao
>> a=[ 1 2 3]; b=[ 4 5 6];
>> 2*a-1
ans =
1
3
5
>> a*b
??? Error using ==> mtimes
Inner matrix dimensions must agree.
>> a.*b
ans = 4 10 18
>>a*b
ans = 32
Matrizes: manipulao
Alm das operaes j citadas anteriormente para
vetores:
Produto Matricial: A*B
Inversa: inv(A)
Determinante: det(A)
Valores caractersticos: eig(A)
Matrizes: Busca
>>A =[1 2 3;4 5 6; 7 8 9];
>>[i,j] = find(A>5)
i = 3
3
2
3
j = 1
2
3
3
Matrizes: Busca
>>A =[1 2 3;4 5 6; 7 8 9];
>>k = find(A>5)
k = 3
6
8
9
>>A(k)
ans = 7
8
6
9
Estruturas Multidimensionais
>>A = zeros(2,2,2)
A(:,:,1) = 0 0
0 0
A(:,:,2) = 0 0
0 0
Operadores Relacionais
Operador
<
<=
>
>=
==
~=
Descrio
Menor que
Menor ou igual a
Maior que
Maior ou igual a
Igual a
Diferente de
Operadores Lgicos
Operador
&
|
~
Descrio
E
Ou
No
Controle de Fluxo
Loops for:: limita o nmero de vezes que os
comandos so executados
for i=1:10
A(i)=i;
end
A= 1 2 3 4 5 6 7 8 9 10
Controle de Fluxo
Loops while:: permite a execuo at que um
critrio seja satisfeito
it=0;
while it<10
it=it+1;
A(it)=it;
end
A= 1 2 3 4 5 6 7 8 9 10
Controle de Fluxo
Loops if-else-end:: a sequencia de comamdos
tm que ser executados condicionalmente
Forma mais simples:
if expresso
comando
end
Duas alternativas:
if expresso
comandos executados se verdadeira
else
comandos executados se falsa
end
Controle de Fluxo
Loops if-else-end:
Trs ou mais alternativas:
if expresso 1
comandos executados se expresso 1 for
verdadeira
elseif expresso 2
comandos executados se expresso 2 for
verdadeira
else
comandos executados se nenhuma outra
expresso for verdadeira
end
Comandos [soma.m]
Funo [soma.m]
A=2; B=3;
Soma=A+B
Execuo:
>>soma
function S=soma(A,B)
S=A+B;
Execuo:
>>soma(2,3)
functions
REGRAS E PROPRIEDADES:
1) O nome da funo tem que ser idntico ao nome do
arquivo.
2) O nome no deve ter mais do que 31 caracteres.
3) No usar: , acentos ou -.
4) Deve comear com uma letra.
5) Os arquivos M de funes no so sensveis a maisculas ou
minsculas.
6) A primeira linha do arquivo chamada linha de declarao e
deve conter a palavra function, seguida pela sintaxe da
chamada da funo.
functions
VARIVEIS LOCAIS E GLOBAIS:
A execuo de um arquivo M de comandos,
comandos, l as variveis
existentes no workspace e salva todas as variveis criadas
durante sua execuo.
A execuo de um arquivo M de funo (function), NO l
as variveis existentes no workspace, l apenas as
variveis dadas na entrada do programa ou aquelas
definidas internamente.
functions
A function pode at exibir na tela resultados se no
usarmos [;
[;] no final da linha, mas ela s retorna os
argumentos assinados em sua sada e no salva as
demais variveis no workspace.
Para que uma function leia uma varivel definida
externamente, necessrio definir essa varivel como
global em todos os arquivos em que ela utilizada, ou
passar como parmetro de entrada.
entrada.
functions
Exemplo:
F(x)= x2 ax+2, onde a fornecido pelo usurio.
SubSub-rotina:
rotina:
Function y=f(x)
global a
Y= x2 ax+2;
SubSub-rotina:
Function y=f(x,a)
Y= x2 ax+2;
Programa principal:
global a
s=fsolve(f,0);
Programa principal:
s=fsolve(f,0,[],a);
Administrao de Arquivos
Arquivos de dados do MATLAB:
Salvar:
>>save(nome,var1,var2,var3)
nome.m ou nome.mat
Carregar:
>>load (nome,var1,var2,var3)
Grficos
Bidimensionais:
x = -pi:.1:pi;
y = sin(x);
plot(x,y)
plot(x,y,or)
xlabel('-\pi \leq \Theta \leq \pi')
ylabel('sin(\Theta)')
title('Plot of sin(\Theta)')
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
Plot of sin()
1
-0.8
-3
-2
-1
0.8
3
0.6
0.4
0.2
sin()
-1
-4
0
-0.2
-0.4
-0.6
-0.8
-1
-4
-3
-2
-1
0
-
1
seno
co-seno
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-4
-3
-2
-1
0
-
x = -pi:.1:pi;
y = sin(x);
Z = cos(x);
figure(2)
plot(x,y,og,x,z,r)
xlabel('-\pi \leq \Theta \leq \pi')
legend(seno,co-seno)
Smbolo
Cor
Smbolo
Marcador
Smbolo
Tipo de linha
Azul
Ponto
Linha contnua
Verde
Crculo
Linha pontilhada
Vermelho
Cruz
-.
Traos e pontos
Ciano
Sinal de positivo
--
Linha tracejada
Magenta
Asterisco
Amarelo
Quadrado
Preto
Losango
Branco
<
>
Pentagrama
Hexagrama
subplot(2,2,1)
plot(...)
subplot(2,2,2)
plot(...)
subplot(2,2,3)
plot(...)
subplot(2,2,4)
plot(...)
subplot(2,2,1:2)
plot(...)
subplot(2,2,3)
plot(...)
subplot(2,2,4)
plot(...)
Funo
Descrio
loglog
Grfico loglog-log
semilogx
semilogy
polar
plotyy
bar
Grfico de barras
barh
bar3
bar3h
hist
Histograma
pareto
Grfico de Pareto
pie
xlim
Limites no eixo x
ylim
Limites no eixo y
grid
box
Grficos
Tridimensionais:
Funo
Descrio
plot3
mesh
meshc
meshz
surf
Grfico de superfcie
surfc
surfc
plot3
meshz
Exerccio 1
Exemplo 1:
Modelos simples - o tanque de nvel
A
FE
h(t = 0 ) = h0
(1)
dm (t )
= (FE F )
dt
(2)
dm (t )
dh (t )
= A
dt
dt
(3)
dh (t )
1
(FE F )
=
dt
A
(4)
Ainda,
e, portanto,
altura
da
coluna
de
lquido
inversamente
h
F =
R
(5)
dh (t ) 1
h
=
FE
dt
A
R
(6)
Logo,
RA
h(t ) = RFE 1 e
(7)
Faa: R = 1; A = 2; FE = 10
Interpolao
Interpolao unidimensional:
YI = INTERP1(X,Y,XI,METHOD)
The default is linear interpolation. Use an empty matrix [] to
specify the default. Available methods are:
'nearest' - nearest neighbor interpolation
'linear'
- linear interpolation (default)
'spline'
- piecewise cubic spline interpolation (SPLINE)
'pchip'
- shape-preserving piecewise cubic interpolation
'cubic'
- same as 'pchip'
'v5cubic' - the cubic interpolation from MATLAB 5, which
does not extrapolate and uses 'spline' if X is not equally
Interpolao
Interpolao bidimensional:
ZI = INTERP2(X,Y,Z,XI,YI,METHOD)
The default is linear interpolation. Use an empty matrix [] to
specify the default. Available methods are:
'nearest' - nearest neighbor interpolation
'linear' - bilinear interpolation
'cubic'
- bicubic interpolation
'spline' - spline interpolation
Polinmios
Razes:
p(x) = x4-12x3+25x+116
>>p = [1 -12 0 25 116];
>>r = roots(p)
r = 11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
Polinmios
Mutiplicao:
a(x) = x3+2x2+3x+4 e b(x) = x3+4x2+9x+16
>>a = [1 2 3 4];
>>b = [1 4 9 16];
>>c = conv(a,b)
c =
1
6
20
50
75
c(x) = x6+6x5+20x4+50x3+75x2+84x+64
84
64
Polinmios
Adio:
a(x) = x3+2x2+3x+4 e b(x) = x3+4x2+9x+16
>>a = [1 2 3 4];
>>b = [1 4 9 16];
>>d = a + b
d =
2
6
12
a(x) = 2x3+6x2+12x+20
20
Polinmios
Diviso:
a(x) = x3+2x2+3x+4 e b(x) = x3+4x2+9x+16
>>a = [1 2 3 4];
>>b = [1 4 9 16];
>>[q,r] =deconv(a,b)
q = 1
r = 0
-2
-6
-12
r(x) = 1 e q(x) = -2x2-6x-12
Polinmios
Derivadas:
p(x) = x4-12x3+25x+116
>>p = [1 -12 0 25 116];
>>h = polyder(p)
h = 4
-36
0
25
h(x) = 4x3-36x2+25
Polinmios
Integrais:
h(x) = 4x3-36x2+25
>>h = [4 -36 0 25];
>>r = polyint(h,116)
r = = 1
-12
0
r(x) = x4-12x3+25x+116
25
116
Polinmios
Clculo do polinmio num intervalo:
p(x) = x3+4x2-7x-10 x =[-1;3]
>>p
>>x
>>v
v =
= [1 4 -7 -10];
= linspace(-1,3,5);
= polyval(p,x)
0
-10
-12
0
32
Polinmios
Ajuste de curvas:
>>x = [0 0.1 0.2 0.3 0.4 0.5];
>>y = [-0.447 1.978 3.28 6.16 7.08 7.34];
>>p = polyfit(x,y,2)
p = -22.0589
27.3497
-0.5835
P(x) = -22.0589x2+27.3497x-0.5835
Integrao Numrica
F = @(x)1./(x.^3-2*x-5);
Q = quad(F,0,2)
Q = -0.4605
1
3
x 2x 5
dx
function y = myfun(x)
y = 1./(x.^3-2*x-5);
Q = quad(@myfun,0,2)
Q = -0.4605
Ou: quadl
Diferenciao Numrica
dy y
dx x
dydx = diff(y)./diff(x)
[x,fval] = fsolve(fun,x0)
Equaes Diferenciais
EDOs PVI:
ODE23:: RungeRunge-Kutta de 2 e 3 ordens.
ODE23s:: RungeRunge-Kutta de 2 e 3 ordens para
problemas com rigidez numrica (stiff ).
ODE45::RungeRunge-Kutta de 4 e 5 ordens.
[T,Y] = solver(odefun,tspan,y0)
Exerccio 2
Tanque de aquecimento
Th
FE ,TE
Th
F,T
h(t = 0) = h0
T (t = 0) = T0
dh(t ) 1
h
= FE
dt
A
R
(6)
FE
1 F(E TE ) UTh
dT
U
=
+
T
+
dt
h A
C p
A
C
p
Condies iniciais:
T0 = Th
h0 = 5/A
Constantes do Modelo:
R = 1 h/m2
A = 2 m2
FE = 10 m3/h
Cp = 0.75 kJ/(kg.K)
(11) (8)
Ro = 1000 kg/m3
U = 150 kJ/(m2 . s . K)
TE = 530 K
Th = 540 K