Uma introdução ao MATLAB
Vilma A. Oliveira
USP São Carlos
Aula 1a
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 1 / 57
Colaboradores
Colaboradores
Elmer Alexis Gamboa Peñaloza
Rodolpho Vilela Alves Neves
Rafael Fernando Quirino Magossi
Rafael Mariano
Márcio Campos
Ricardo Takahashi
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 2 / 57
Introdução
Introdução
Esta aula é para ser ministrada de forma interativa utilizando um
microcomputador com o aplicativo Matlab instalado. Tem por objetivo
apresentar aos alunos o ambiente e funções básicas do Matlab. Na
apresentação encontram-se diversos exercícios a serem resolvidos em sala
sob a supervisão do professor.
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 3 / 57
Porque usar o Matlab?
Porque usar o Matlab?
Ambiente amigável
Linguagem de programação simples e de fácil dedução
Muitas ferramentas e interfaces
Usado em diversas áreas do conhecimento
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 4 / 57
Primeiros passos Interface
Interface principal
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 5 / 57
Primeiros passos Interface
Interface de programação
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 6 / 57
Primeiros passos Interface
Interface de programação com livescript
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 7 / 57
Primeiros passos Interface
Interfaces combinadas
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 8 / 57
Primeiros passos Linguagem de programação
Interface de programação
» a = 1+1
» b = [1, 1, 2, 3, 5, 8, 13, 21]
» x = a+b
x=
3, 3, 4, 5, 7, 10, 15, 23
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 9 / 57
Primeiros passos Linguagem de programação
Tarefas!
O aluno deve tentar realizar as operações indicadas utilizando o Matlab.
Tarefa!
Resolver as operações abaixo utilizando a área de trabalho do Matlab
3 9
5( ) + ( ) = 5.55
4 5
3 9
43 ( − ) = −48
4 (2)(3)
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 10 / 57
Primeiros passos Linguagem de programação
Tarefa!
Encontrar o volume de uma lata de cerveja (considerar a lata como um
cilindro)
V = πr 2 h
h = 3 cm
r = 12.5 cm
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 11 / 57
Primeiros passos Linguagem de programação
Tarefa!
Encontrar o volume de uma lata de cerveja (considerar que a lata é um
cilindro)
» r=3
» h=12.5
» V = pi ∗ 32 ∗ 12.5
V=
353.4292
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 12 / 57
Primeiros passos Outros operadores
Natural logarithm
» log(a); Números complexos
Base ten log » y = 5i;
» log10(a); » z = 1+3*i;
Exponential: » w = 3j;
» exp(a);
Funções trigonométricas
» cos(pi);
» sin(pi);
» tan(pi);
» acos(pi);
» asin(pi);
» atan(pi);
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 13 / 57
Primeiros passos Arquivo script
Script
Usando arquivos script, é possível salvar o que foi feito para continuar
depois ou para gravar dados. Os arquivos são bastante úteis em caso de
existir uma sequência longa de operações. Exemplificando um arquivo
script:
File -> New -> Script
Ou clicar no ícone New file na barra de comandos no topo da tela do
Matlab
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 14 / 57
Primeiros passos Arquivo script
Script
Digitar no arquivo script:
% Exemplo 1: Usando o arquivo script
x = [1,2,3,4];
y = exp(x)
Salvar o arquivo como exemplo1.m
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 15 / 57
Primeiros passos Arquivo script
Script
Na linha de comando da janela, digite:
» exemplo1
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 16 / 57
Vetor e matrizes
Vetor e matrizes
Quando trabalhar com dados, pode precisar de realizar operações com
estes. Vetores são matrizes de 1-dimensão.
» a = [1; 2; 3]
» a = [1, 2, 3] a=
a= 1
123 2
3
» a’
=
123
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 17 / 57
Vetor e matrizes Operações básicas
Vetores e matrizes
Matlab permite agrupar vetores e criar novos vetores. Sejam u e v dois
vetores colunas dimensão m e n respectivamente. O que acontece se
digitar:
» w = [u; v]
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 18 / 57
Vetor e matrizes Operações básicas
Vetores e matrizes
» w = [u; v];
» size(w)
ans =
m+n
As mesmas operações funcionam para linha também.
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 19 / 57
Vetor e matrizes Operações básicas
Vetores e matrizes
É possível criar vetores com elementos espaçados uniformemente usando
dois-pontos:
» t = [0:10]
t=
0 1 2 3 4 5 6 7 8 9 10
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 20 / 57
Vetor e matrizes Operações básicas
Vetores e matrizes
Pode também mudar o tamanho do passo usando a seguinte sintaxe:
» t = [0:2:10]
t=
0 2 4 6 8 10
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 21 / 57
Vetor e matrizes Operações básicas
Tarefa!
Usando um arquivo script, criar um vetor de tempo t from 0 a 10 usando
passo 1. Então, criar um vetor y = 1-exp(-t). Em seguida, criar um vetor
t2 de 0 a 10 usando passo 0.1 e um vetor y2 = 1-exp(-t2).
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 22 / 57
Vetor e matrizes Tarefas
Tarefa!
Primeiro, criar o vetor t:
» t = [0:10];
Então, o vetor y:
» y = 1-exp(-t);
e os vetores t2 e y2:
» t2 = [0:0.1:10]; y = 1-exp(-t2);
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 23 / 57
Vetor e matrizes Tarefas
Tarefa! (extra)
Usando o comando plot, plotar t x y e t2 x y2 no mesmo gráfico.
Dica:
A sintaxe do plot é plot(a,b), a e b devem ser do mesmo tamanho.
Pode plotar mais uma dupla usando (a,b,c,d).
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 24 / 57
Vetor e matrizes Referenciando elementos de vetores
Extraindo informações de vetores
Existem vários comandos para tirar informações de vetores. Seguem alguns
exemplos:
» f = [1 4 -6 3 7 9 -2 6 3 -7 4 9 19]
» max(f)
» length(f)
ans =
ans =
19
13
» min(f)
ans =
-7
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 25 / 57
Vetor e matrizes Referenciando elementos de vetores
Extraindo informações de vetores
Primeiramente, obter o produto entre os elementos do vetor v.
Defina v = [4 6 9].
O produto interno é dado por:
» v.*v
ans =
16 36 81
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 26 / 57
Vetor e matrizes Referenciando elementos de vetores
Extraindo informações de vetores
Para obter a soma do produto entre os elementos do vetor v:
» a = sum(v.*v)
a=
133
O módulo de v é a raiz quadrada de a.
» mag = sqrt(a)
mag =
11.5325
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 27 / 57
Vetor e matrizes Operações de matrizes
Operações de matrizes
A matriz é um arranjo 2-dimensional de números. Para criar uma matriz no
Matlab, digitamos cada linha como uma sequência entre vírgulas (ou
espaço), e então usar ponto e virgula para definir o fim de cada linha. Por
exemplo:
» A = [1, 4; 5 2] »2*A
A = ans =
1 4 2 8
5 2 10 4
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 28 / 57
Vetor e matrizes Operações de matrizes
Operações de matrizes
Se duas matrizes têm o mesmo tamanho, podem ser adicionadas ou
subtraídas:
» B = [1 3; -1 -4];
» A+B
ans =
2 7
4 -2
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 29 / 57
Vetor e matrizes Operações de matrizes
Operações de matrizes
Pode-se também computar a transposta da matriz. A transposta troca as
linhas por colunas em uma matriz.
» A’
ans =
1 5
4 2
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 30 / 57
Vetor e matrizes Operações de matrizes
Operações de matrizes
Se a matriz contém elementos complexos, a transposta será a matriz
transposta conjugada a qual é formada pelo complexo conjugado de cada
elemento da matriz transposta:
» C = [1+i, 4-i; 5+2i, 3-3i] » C’
C= ans =
1+1i 4-I 1-1i 5-2i
5+2i 3-3i 4+i 3+3i
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 31 / 57
Vetor e matrizes Operações de matrizes
Operações de matrizes
Se não quiser computar a transposta de uma matriz com elementos
complexos sem computar o conjugado, usar (.’):
» C.’
ans =
1+1i 5+2i
4-i 3-3i
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 32 / 57
Vetor e matrizes Operações de matrizes
Operações de matrizes
A multiplicação de arranjos trabalha com matrizes também. É importante
reconhecer que essa operação não é uma multiplicação de matrizes.
» A = [1, 4; 5 2]; B = [1 3; -1 -4];
» A.*B
ans =
1 12
-5 -8
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 33 / 57
Vetor e matrizes Operações de matrizes
Operações de matrizes
Considere as duas matrzes:
» C = [2, 1; 1, 2]; D = [3, 4; 5, 6];
A sua multiplicação é computada como:
» C*D
ans =
11 14
13 16
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 34 / 57
Vetor e matrizes Tipos especiais de matrizes
Tipos especiais de matrizes
A matriz identidade é a matriz quadrada com uns na diagonal e zeros nas
outras posições. Para criar uma matriz identidade de ordem n, faça:
» eye(n);
» eye(2)
ans =
1 0
0 1
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 35 / 57
Vetor e matrizes Tipos especiais de matrizes
Tipos especiais de matrizes
Para criar uma matriz de zeros, digite:
» zeros(n) % matriz de zeros de ordem n
» zeros(m,n) % mxn matriz de zeros
Para criar uma matriz de uns, digte ones(n) ou ones(m,n).
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 36 / 57
Vetor e matrizes Referenciando elementos de matrizes
Referenciando elementos de matrizes
Elementos individuais e colunas em uma matriz podem ser referenciadas
usando Matlab. Considere a matriz:
» A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 37 / 57
Vetor e matrizes Referenciando elementos de matrizes
Referenciando elementos de matrizes
Podemos escolher elementos da linha m e coluna n digtando A(m,n). Por
exemplo:
» A(2,3)
ans =
6
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 38 / 57
Vetor e matrizes Referenciando elementos de matrizes
Referenciando elementos de matrizes
Para referenciar todos os elementos na i-ésima coluna, escrevemos A(:,i).
» A(:,2)
ans =
2
5
8
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 39 / 57
Vetor e matrizes Referenciando elementos de matrizes
Referenciando elementos de matrizes
Para escolher os elementos da i-ésima até a j-ésima coluna, digitamos
A(:,i:j).
» A(:,2:3)
ans =
2 3
5 6
8 9
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 40 / 57
Vetor e matrizes Referenciando elementos de matrizes
Referenciando elementos de matrizes
Pode-se escolher pedaços de matrizes ou submatrizes também.
» A(2:3,1:2)
ans =
4 5
7 8
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 41 / 57
Vetor e matrizes Referenciando elementos de matrizes
Referenciando elementos de matrizes
Podemos trocar o valor de elementos de matrizes referenciando-se à sua
posição também.
» A(1,1) = -8
ans =
-8 2 3
4 5 6
7 8 9
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 42 / 57
Vetor e matrizes Gráfico tri-dimensional
Gráfico tri-dimensional
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 43 / 57
Vetor e matrizes Gráfico tri-dimensional
Tarefa!
Se as coordenadas x, y, e z forem dadas como uma função do parâmetro t
por:
√
x = √t *sin(2*t)
y = t * cos(2*t)
z = 0.5*t
Para 0 ≤ t ≤ 6 ∗ π
use o comando plot3, e plotar t x (x,y,z) na mesma figura.
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 44 / 57
Vetor e matrizes Gráfico tri-dimensional
Tarefa!
t=0:0.1:6*pi;
√
x = √t *sin(2*t)
y = t * cos(2*t)
z = 0.5*t
plot3(x,y,z,’k’,’linewidth’,1)
grid on
xlabel(’x’); ylabel(’y’); zlabel(’z’)
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 45 / 57
Vetor e matrizes Determinantes e sistemas lineares
Determinantes
Para calcular o determinante de uma matriz Ano Matlab, simplemente
digite det(A).
» A = [1 3; 4 5]; det(A)
ans =
-7
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 46 / 57
Vetor e matrizes Determinantes e sistemas lineares
Determinantes
Considere os seguintes conjuntos de equações:
5x + 2y − 9z = 44
−9x − 2y + 2z = 11
6x + 7y + 3z = 44
Para obter a solução de um sistema de equações desse tipo, use os
seguintes passos.
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 47 / 57
Vetor e matrizes Determinantes e sistemas lineares
Determinantes
Primeiro, encontre o determinante da matriz A:
5 2 −9
A = −9 −2 2
6 7 3
» A = [5 2 -9; -9 -3 2; 6 7 3];
» det(A)
ans =
368
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 48 / 57
Vetor e matrizes Determinantes e sistemas lineares
Determinantes
Quando o
No Matlab a solução única pode ser otida
determinante for
usando divisão à esquerda. Primeiro, criar
diferente de zero, uma
uma coluna com os elementos do lado direito
solução única existe.
do sistema. Assim,:
Esta solução é o vetor
coluna:
» b = [44; 11; 5];
x
» A\b
X= y ans =
z [−5.12507.6902 − 6.0272]0
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 49 / 57
Vetor e matrizes Determinantes e sistemas lineares
Sistemas de equações lineares
Uma maneira de analisar a solução do sistema de equações lineares é a
partir do rank da matriz do sistema. Seja o sistema de equações lineares
com m equações e n variáveis:
Ax = b
Uma mariz aumentada é formada adicionando o vetor b como uma coluna
da matriz A.
[A b]
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 50 / 57
Vetor e matrizes Determinantes e sistemas lineares
Sistema de equações lineares
O sistema de equações tem solução se e só se rank(A) = rank([A b]). Se o
rank for igual a n, então a solução é única.
Se rank(A) = rank([A b]) mas rank (A) < n, existem infintas soluções. Se
rank(A)= r, então r das variáveis podem ser expressas como uma
combinação linear das outras n-r variáveis
Para computar rank da matriz, pode usar o comando Matlab rank(A):
» rank(A);
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 51 / 57
Vetor e matrizes Determinantes e sistemas lineares
Tarefa!
Considere o sistema linear
x − 2y + z = 12
3x + 4y + 5z = 20
−2x + y + 7z = 11
Verificar que a solução é única usando o comando rank. Encontrar a
solução usando divisão à esquerda.
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 52 / 57
Vetor e matrizes Inversa and pseudoinversa de uma matriz
Inversa e pseudoinversa de uma matriz
Matlab tem comandos para computar a inversa e pseudoinversa de uma
matriz. A sintaxe é:
» A = [1, 2; 3, 4];
» inv(A); %Para inversa de uma matriz A
» pinv(A); %Para a pseudoinversa de uma matriz A
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 53 / 57
Vetor e matrizes Decomposição de uma matriz
Decomposição de uma matriz
Matlab computa a decomposição LU de uma matriz usando o comando lu.
» A = [1 2 3; 3 2 1; 7 5 11]; b = [4; 2; -1];
» [L,U] = lu(A);
L= U=
0.1429 1.0000 0 7.0000 5.0000 11.0000
0.4286 -0.1111 1.0000 0 1.2857 1.4286
1.0000 0 0 0 0 -3.555659
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 54 / 57
Vetor e matrizes Decomposição de uma matriz
Decomposição de uma matriz
Para resolver um sistema linear pode-se também resolver a equação:
x = U\(L\b)
» x = U\(L\b)
x=
-1.8125
4.1250
-0.8125
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 55 / 57
Vetor e matrizes Tarefas de fixação
Agora é hora de exercitar programando no Matlab.
Tarefas
a) Dado A = [1;2;3]; B = [4;5;6]; obter o produto elemento por elemento
dos dois vetores.
b) Considere as duas matrizes
A= [8 7 11;6 5 -1;0 2 -8]; B = [2 1 2;-1 6 4;2 2 2], computar o produto
elemento por elemento e o produto das matrizes.
c) Obter a solução do seguinte conjunto de equações lineares:
x+2y+3z= 12
-4x+y+2z = 13
9y-8z =-1
d) Use a decomposição LU para encontrar a solução do sistema:
x+7y-9z = 12
2x-y+4z = 16
x+y-7z = 16
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 56 / 57
Referências
Referências
[1] Matlab Product Help.
[2] Matlab Demystified. A Self-Teaching Guide, David McMahon, McGraw
Hill.
[3] Matlab: An Introduction with Applications, Amos Gilat, Fourth Edition,
John Wiley and Sons.
V. A. Oliveira (Elsevier, 2016) Engenharia de Controle: fundamentos Aula 1a 57 / 57