Académique Documents
Professionnel Documents
Culture Documents
Aula 5
©
“Matlab ”
1
I. Objetivos
9 Objetivo destas notas de aula, é o de ensinar os comandos básicos do Matlab focados para a
utilização nas aulas de Simulação de Processos em Engenharia dos Materiais;
OBS-1: Para um estudo mais detalhado do Matlab, recomendamos o livro “Matlab 5 – Guia
do Usuário (versão do estudante), da Editora Makron Books. Este livro trás um CD- ROM
com uma versão limitada do Matlab 5, mas suficiente para o curso em questão.
II. Introdução
Telas do Matlab
Ao executarmos o Matlab, através do seu ícone, aparecem três áreas na tela; Launch Pad /
Workspace, Command History/Current Directory e Command Windows. Você perceberá o uso
destas telas ao longo dos trabalhos. Inicialmente utilizaremos a tela Command Windows para as
primeiras lições.
Vetor
Vamos começar criando algo bem simples, como um vetor. Entre com cada elemento do vetor
(separado por um espaço) entre a chave “[ ]”, e igualado a uma variável. Por exemplo, para criar
o vetor a, entre na tela Command Windows o que segue:
a = [ 1 2 3 4 5 6 9 8 7 ] digitar espaço entre números
Digamos que você queira criar um vetor com elementos entre 0 e 20 espaçados de um
incremento de 2 (este método é freqüentemente usado para criar um vetor de tempo):
t = 0 : 2 : 20
O Matlab deverá retornar com,
t=
0 2 4 6 8 10 12 14 16 18 20
Outra forma de obter este vetor é utilizando o comando linspace,
t = linspace ( 0, 20, 11 )
t=
0 2 4 6 8 10 12 14 16 18 20
2
neste caso o comando gera um vetor que varia de valor inicial 0 e valor final 20, linearmente
espaçado.
Manipular um vetor é tão fácil como criá-lo. Primeiro, suponha que você queira somar 2 a cada
elemento do vetor ‘a’ anterior. A equação para tal se parecerá com:
b=a+2
b=
3 4 5 6 7 8 11 10 9
Agora suponha que você quisesse somar dois vetores. Se os dois vetores forem de mesmo
comprimento, isto é fácil. Simplesmente some os dois vetores conforme mostrado a seguir:
c=a+b
c=
4 6 8 10 12 14 20 18 16
Funções
Para facilitar, o Matlab inclui muitas funções padrões. Cada função é um bloco de código que
executa uma determinada tarefa. Matlab contem todas as funções padrões tais como sin, cos, log,
exp, sqrt, e etc.. Constantes comuns tais como pi, e ‘i’ ou ‘j’ para a raiz quadrada de ‘-1’
também fazem parte do Matlab.
sin( pi/4 )
ans =
0.7071
Para saber como funcionam as diversas funções, basta digitar “help [nome da função], e o
Matlab mostra uma descrição sobre como usar a determinada função.
Gráficos
Também é fácil construir gráficos no Matlab. Suponha que você queira construir o gráfico do
seno (sin) como função do tempo. Primeiro defina o vetor tempo ‘t’ (o ponto e vírgula ‘;
‘ depois de cada declaração, diz ao Matlab que não queremos ver os valores depois que
pressionamos a tecla enter) e então calcule o seno do valor para cada instante definido.
t = 0 : 0.25 : 7;
y = sin( t )
plot( t, y )
z = cos( t )
plot( t, y, t, z )
Se você mudar a ordem dos argumentos, o gráfico girará 90º. Experimente fazer:
plot( y, t, z, t)
Note que o Matlab escolheu o estilo de linha e as suas cores, no caso azul e verde, para o gráfico.
Você pode especificar as cores e os tipos de linha através de um terceiro argumento depois de
cada par de vetores de dados. O argumento opcional adicional é uma string contendo um ou
mais caracteres, de acordo com a tabela a seguir:
3
Símbolo Cor Símbolo Tipo de linha Símbolo Marcador
b azul - linha contínua . ponto
g verde : linha pontilhada o círculo
r vermelho -. traços e pontos x x
c ciano -- linha tracejada + +
m magenta * estrela
y amarelo s quadrado
k preto d losango
w branco v triângulo p/ baixo
^ triângulo p/ cima
< triângulo p/ esquerda
> triângulo p/ direita
p pentagrama
h hexagrama
Por exemplo,
plot( t, y, ‘b:p’, t, z, ‘r-’ )
note que não é necessário usar todos os três argumentos e que os argumentos devem ser
colocados entre apóstrofos ‘_’
Grade
O comando grid adiciona linhas de grade e o comando grid off remove a grade. Os comandos
xlabel e ylabel adiciona nomes aos eixos horizontais e verticais respectivamente. O comando
title adiciona uma linha de texto ao topo do gráfico. Experimente,
xlabel ( ‘Variável independente t’ );
ylabel ( ‘Variável dependente y e z’ );
title ( ‘Curvas do seno e co-seno’ )
É possível adicionar ao gráfico qualquer texto em qualquer posição usando-se o comando text(x,
y,’texto desejado’). Neste caso (x,y) representa as coordenadas, nas unidades próprias do gráfico
em questão.
Polinômios
No Matlab, o polinômios é representado por um vetor. Para criar um polinômio no Matlab,
simplesmente entre com os coeficientes do polinômio em ordem decrescente. Por exemplo, seja
o polinômio:
s4 + 3s3 - 15s2 - 2s + 9
Para entrar este polinômio no Matlab, simplesmente digite o vetor,
x = [ 1 3 –15 –2 9 ]
4
x=
1 3 -15 -2 9
Se o polinômio não tiver algum coeficiente, você deve entrar com zero no vetor, no lugar
apropriado. Por exemplo, s4 + 1
o vetor fica, y=[1 0 0 0 1]
Você pode achar o valor de um polinômio usando a função polyval. Por exemplo, para achar o
valor do polinômio y para s=2,
z = polyval ( [ 1 0 0 0 1] , 2 )
z=
17
Você pode também achar as raízes de um polinômio. Isto é útil quando se tem um polinômio de
alto grau.
Por exemplo, achar as raízes do polinômio s4 + 3 s3 – 15 s2 – 2 s + 9,
roots ( [ 1 3 -15 -2 9 ] )
ans =
-5.5745
2.5836
-0.7951
0.7860
O inverso também é possível, isto é tendo-se as raízes, pode-se achar o polinômio, sendo que as
raízes devem ser colocadas como um vetor coluna:
raizes = [ -5.5745; 2.5836; -0.7951; 0.7860 ]
p = poly ( raízes )
p=
1.0000 3.0000 -15.0000 -2.0002 9.0007
Note que pode existir erros de arredondamento.
Se você desejar somar dois polinômios que tenham a mesma ordem, simplesmente faça a = b +
c.
exemplo:
b=[1 2 3]
c=[4 5 6]
a = b +c
ans =
5
5 7 9
Matrizes
Entrar com matrizes no Matlab é o mesmo que entrar um vetor, exceto que cada linha é
separada da próxima por um ponto e vírgula ou teclando “enter”:
B = [ 1 2 3 4; 5 6 7 8; 9 10 11 12 ]
B= 1 2 3 4
5 6 7 8
9 10 11 12
ou pode-se entrar os coeficientes da seguinte forma:
D=B*C
D=
30 70 110
70 174 278
110 278 446
D=C*B
D=
107 122 137 152
122 140 158 176
137 158 179 200
152 176 200 224
Outra opção para a manipulação de matrizes é que você pode multiplicar os elementos de duas
matrizes utilizando o operador “ .* ” (as matrizes tem que ser de mesmo tamanho).
E = [ 1 2; 3 4 ]
F = [ 2 3; 4 5 ]
G = E .* F
E=
1 2
3 4
F=
2 3
4 5
G=
2 6
6
12 20
Se você tem uma matriz quadrada, como E, você pode também multiplicá-la por ela mesma
tantas vezes quantas você quiser, basta elevá-la a potência desejada.
E^3
ans =
37 54
81 118
Se quiser elevar ao cubo cada elemento da matriz, simplesmente utilize a forma elemento por
elemento.
E .^ 3
ans =
1 8
27 64
Até o momento, você aprendeu a usar o Matlab como uma calculadora avançada. Entretanto,
mesmo uma calculadora poderosa tem suas limitações. Ou seja, até o momento todos os
exemplos exigiram números para produzir resultados. Porém o Matlab possui a capacidade de
manipular expressões matemáticas sem de fato usar números. Para tanto utilizaremos uma
função que permitirá manipular expressões e fazer cálculos com símbolos matemáticos, além de
números. Esse processo é frequentemente chamado de matemática simbólica. A função sym é
usada para criar a variável simbólica. Digamos que se queira realizar a seguinte calculo
algébrico:
f = x*5*x+y*8*y*3*y
Se entrarmos com esta expressão teremos a seguinte resposta,
pois o Matlab precisa que você defina um valor para x ou se ele é um símbolo.
Neste caso queremos que x seja tratado como símbolo, então devemos usar a função sym,
x = sym ( ‘x’ )
y = sym ( ‘y’ )
ou simplesmente
syms x y
agora podemos inserir a expressão,
f = x*5*x+y*8*y*3*y
ans =
5 * x^2 + 24 * y^3
Se quiser uma apresentação mais agradável, podemos utilizar o comando:
pretty ( f )
ans =
5 x2 + 24 y3
7
Transformada de Laplace
Dado a função no domínio do tempo f(t) = e-at cos(wt) a transformada de Laplace pode ser
calculada utilizando o comando laplace (f,t,s). Primeiramente definem-se os símbolos a serem
usados, depois se entra com a função:
syms a s t w
f = exp( -a*t )*cos( w*t )
L = laplace ( f, t, s )
L=
(s+a) / ((s+a)^2 + w^2)
pretty ( L )
s+a
(s + a)
2
+ w2
syms s t w b
f=sin(w*t+b)
L = laplace ( f, t, s )
L=
cos(b)*w/(s^2+w^2)+sin(b)*s/(s^2+w^2)
pretty ( L )
cos ( b ) w sin ( b ) s
+ 2
s 2 + w2 s + w2
Expansão em Frações parciais
O Matlab dispõe de um comando para se obter a expansão em frações parciais. O comando é o
[r,p,k] = residue (num,den) sendo “r” o resíduo, “p” os pólos e “k” o termo direto.
Exemplo:
Considere-se a seguinte função de transferência,
B ( s ) 2 s 3 + 5s 2 + 3s + 6 r r2 r
= 3 = 1 + + 3 +k
A( s ) s + 6 s + 11s + 6 s − p1' s − p2 ' s − p3'
2
8
num = [ 2 5 3 6 ]
den = [ 1 6 11 6 ]
[ r, p, k ] = residue ( num, den )
r=
- 6.000
- 4.000
+ 3.000
p=
- 3.000
- 2.000
- 1.000
k=
2
B(s) 6 4 3
Portanto temos, =− − + +2
A( s ) s + 3 s + 2 s +1
Podemos ter o inverso, isto é dado as frações parciais podemos encontrar o numerador e
denominador da função de transferência:
9
M – files (arquivos .m)
Para problemas simples, é mais rápido e eficiente introduzir seus comandos no prompt do
Matlab. Entretanto, se o número de comandos é grande, ou se você deseja mudar o valor de uma
ou mais variáveis e reexecutar alguns comandos, pode tornar-se tedioso introduzir os comandos
no prompt. O Matlab apresenta uma solução para estes casos, ele permite que seja criado
arquivos chamados arquivos de comandos ou arquivos “M”.
Existe um editor para os arquivos M ou m-files; escolha “New M-file” no menu File. Você pode
utilizar qualquer outro editor desde que você salve o arquivo no mesmo diretório do Matlab e
com a extensão “.m”.
Exemplo
Na tela do Command Windows, digitar o nome da M-File, ou seja “exemplo”. Entrar com os
dados solicitados (por exemplo, T = 10 e n = 10), analisar o gráfico, caso a senóide não tenha
ficado uniforme, altere o valor de n.
10