Sei sulla pagina 1di 101

Universidade Estadual de Campinas

Faculdade de Engenharia Mecnica


Departamento de Projeto Mecnico
Laboratrio de Dinmica de Estruturas e Mquinas
Esttica EM306A
1 semestre 2010
Introduo ao Matlab
Prof. Dr. Robson Pederiva
robson@fem.unicamp.br
Hugo Heidy Miyasato
hugomiyasato@gmail.com
F. 3521-3180 (Ldem)
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Sobre o Matlab
Software da empresa Mathworks
Ambiente para computao numrica
Vetores e Matrizes
Grficos de funes e dados 2D e 3D
Linguagemde programao
Aquisio e processamento de sinais
Resoluo de sistemas de equaes differenciais lineares/no-lineares
(ODE)
Projeto e simulao de sistemas de controle
Interfaces grficas (GUIs)
Computao Simblica
Modelagemgrfica Simulink
E muito mais
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Um pouco de histria
Criao: 1970
Local: Universidade do Novo Mxico
Autor: Cleve Moler chairman do Departamento de Cincia da
Computao
Nome do Software: Matlab - Matrix Laboratory
Objetivo: utilizar pacotes matemticos LINPACK e EISPACK sema
necessidade de saber FORTRAN
Aplicao emna rea de controle: Jack Little
A partir de 2000: uso do pacote Lapack para manipulao de matrizes e
vetores
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
O ambiente de desenvolvimento
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Perguntas iniciais
Onde estou?
O que estou fazendo?
O que eu fiz?
O que eu tenho na memria?
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
O ambiente
O que estou fazendo?
Command Window
O que eu fiz?
Command
History
Onde estou?
Current
Directory
O que tenho
na memria?
Workspace
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Onde estou? Current Directory
Visualizar/
alterar
Diretrio
utilizado
Arquivos
no
Diretrio
Por ele,
possvel
abrir/fechar,
criar/apagar,
arquivos ou
pastas.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Alterando o Diretrio de Trabalho
Clique no boto com
e selecione/crie a
pasta onde deseja
trabalhar.
A pasta Documents\Matlab a pasta de trabalho
padro, aparecendo toda vez que o software aberto.
Voc pode alter-la.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
O que estou fazendo? Command Window
>> 27
ans =
27
>>
Este espao detinado para os comandos do usurio.
Faa o teste, digite qualquer nmero no Command
Window:
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
O que eu fiz? Command History
Este espao registra todo o comando realizado
pelo usurio. Depois de digitar o valor,
automaticamente o Command History
atualizado com a ao:
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
O que eu tenho na memria? Workspace
O Workspace mostra todas as variveis
armazenadas na memria. Como no escolhemos
nenhuma varivel para armazenar o valor digitado,
ele automaticamente guardado na varivel ans:
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Perguntas iniciais
Vou ter que digitar todo meu
programa no Command Window?
No posso salvar nada?
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
No posso salvar nada? M-File
New M-File
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Script: Sequncia de Comandos
Editor: Aqui voc pode
digitar os comandos,
podendo salv-lo.
Digitando no Command
Window, fatalmente voc
pode perder seus dados ao
fechar ao programa.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Faa um teste
Digite uma sequncia qualquer de nmeros no editor.
Em seguida salve o seu M-File
clicando em
no diretrio onde deseja armazen-lo.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Faa um teste
O M-File ser aprofundado numa seo futura.
Aps salvar o arquivo, aperte F5 e sua sequncia de comandos ser executada no
Command Window.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Um recurso importante: Help
Vantagem: Voc no precisa
implementar tudo, pois as
bibliotecas de funes so
constantemente atualizadas.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Um exemplo: Help
Se voc digitar help + nome de uma
funo no Command Window, mostrada
uma breve descrio do comando:
No campo Search da janela de Help,
tambm possvel ver uma descrio
com exemplos da utilizao do comando:
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Tipos de Variveis
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Simplificando os tipos
Diferentemente de outras linguagens, no Matlab o tipo da varivel descrito
automaticamente:
c = 1; double c = 1;
int c = 1;
float c = 1;
long c = 1;
short c = 1;
Matlab C, C++, JAVA
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Variveis: Nomes
O nome da varivel no pode ser inciada por nmero.
Nenhuma posio possuir algum operador da sua linguagem (+,-, *,%,@, /, <,>)
>> a1d = 2
a1d =
2
>> ad1 = 2
ad1 =
2
>> 1ad = 2
??? 1ad = 2
|
Error: Unexpected MATLAB expression.
>> &ad = 2
??? &ad = 2
|
Error: Unexpected MATLAB operator.
>> >ad = 2
??? >ad = 2
|
Error: Unexpected MATLAB operator.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Variveis: Nomes
Os nomes das variveis
podem conter muitos
caracteres.
>> Pneumoultramicroscopicossilicovulcanoconiotico = 100
Pneumoultramicroscopicossilicovulcanoconiotico =
100
>> Pneumoultramicroscopicossilicovulcanoconiose = 200
Pneumoultramicroscopicossilicovulcanoconiose =
200
>> Hipopotomonstrosesquipedaliofobia = 300
Hipopotomonstrosesquipedaliofobia =
300
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Variveis: Nmeros Complexos
>> a = 1+2*i
a =
1.0000 + 2.0000i
>> a = 1+2*j
a =
1.0000 + 2.0000i
>> a = complex(1,2)
a =
1.0000 + 2.0000i
>>
Os nmeros complexos so representados por uma parte real, somada a uma parte
imaginria, multiplicada por i ou j.
Nmero complexo com i
Nmero complexo com j
Nmero complexo gerado por
complex(parte_real, parte_imaginaria)
MUITO IMPORTANTE:
no utilize i e j como varivel !!!
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Variveis: So todas matrizes
A matriz iniciada por [ e terminada por ]. Espao separa as colunas e ; as linhas.
Pode conter nmeros REAIS ou COMPLEXOS:
Matriz 1 x 4
Matriz 4 x 1
Matriz 2 x 2
Matriz 1 x 4
Matriz 3 x 3
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Variveis: So todas matrizes
Como todas as variveis so matrizes, uma varivel simples uma matrix 1x1:
c = 1 o mesmo que c = [1]
IMPORTANTE: a separao de casas decimais feita por ponto .. A vrgula ,
utilizada como separados de comandos, podendo gerar erros de lgica.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Variveis: casos especiais possveis erros
Inf (Infinito): diviso por zero ou mximo da preciso numrica do computador.
NaN (Not a Number): diviso de infinito por infinito e de zero por zero.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Organizao:
Desalocar, limpar tela e fechar janelas
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Desalocar, limpar tela e fechar janelas
clear all: desaloca todas as variveis alocadas no Workspace
clc: limpa todos os comandos do Command Window
close all: fecha todas as janelas abertas (grficos)
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Manipulao de Matrizes
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Alocando uma matriz vazia
>> A = zeros(5,5)
A =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
>> B = zeros(3,2)
B =
0 0
0 0
0 0
O comando zeros(m,n) permite a criao de uma matriz de zeros com m linhas e n colunas.
Matriz de zeros 5x5:
5 linhas e 5 colunas
Matriz de zeros 3x2:
3 linhas 2 colunas
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Acesso a elementos numa matriz
O comando Matriz(i,j) permite o acesso ao elemento da linha I coluna j da varivel Matriz.
>> B = zeros(2,2)
B =
0 0
0 0
>> B(1,2) = 1
B =
0 1
0 0
>> B(2,1) = 3
B =
0 1
3 0
Acesso ao elemento da linha 1 coluna 2.
Insero de valor 1 na posio.
Acesso ao elemento da linha 2 coluna 1.
Insero de valor 3 na posio.
Matriz vazia 2x2
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Acesso a elementos numa matriz
IMPORTANTE: Diferentemente de outras linguagens de programao, como o C, visto na
maioria das aulas de introduo programao, os ndices de posio em vetores e matrizes
so iniciadas a partir da posio 1, no 0.
V[0] V[1] V[2]
Vetores em C:
V(1) V(2) V(3)
Vetores em Matlab:
M[0][0] M[0][1]
M[1][0]
Matrizes em C:
M[1][1]
M(1,1) M(1,2)
M(1,2)
Matrizes em Matlab:
M(2,2)
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Mas porque eu preciso saber disso?
IMPORTANTE: Pensando numa prxima fase deste curso, quando posies de vetores e
matrizes forem acessados, necessrio ter em mente as dimenses dos mesmos.
>> M = [1 2 3; 3 2 1]
M =
1 2 3
3 2 1
>> M(0,1)
??? Attempted to access M(0,1); index must be a
positive integer or logical.
>> M(2,4)
??? Attempted to access M(2,4); index out of bounds
because size(M)=[2,3].
>> M(3,2)
??? Attempted to access M(3,2); index out of bounds
because size(M)=[2,3].
>> M(1,2)
ans =
2
Matriz 2x3
Erro: ndice 0 para linha
Erro: ndice maior que
nmero de linhas
Erro: ndice maior que
nmero de linhas
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Verificando as dimenses de uma matriz
>> C = [1 2 3]
C =
1 2 3
>> size(C)
ans =
1 3
O comando size(m) mostra o nmero de linhas e colunas de uma matriz.
Com size(m,1) obtido o nmero de linhas e com size(m,2) o nmero de colunas.
Aplicao: verificar a compatibilidade de dimenses para operaes matemticas
e utilizar as dimenses conhecidas para correr as posies da matriz.
F =
1 3 0
1 1 1
>> size(F,1)
ans =
2
>> size(F,2)
ans =
3
Matriz 1x3
Dimenses:
1 linha
e 3 colunas
Matriz 2x3
2 linhas
3 colunas
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Acesso a elementos numa matriz
O operador dois pontos : pode ser utilizado para selecionar toda uma linha ou toda a
coluna de uma matriz.
Aplicao: plotar sequncias de dados.
F =
1 3 0
1 1 1
>> F(1,:)
ans =
1 3 0
>> F(:,2)
ans =
3
1
Acesso a todos os elementos da 1 linha
Acesso a todos os elementos da 2 coluna
Matriz 2x3
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Alocando uma matriz identidade
>> C = eye(3)
C =
1 0 0
0 1 0
0 0 1
>> F = eye(2)
F =
1 0
0 1
O comando eye(m) permite a criao de uma matriz identidade com m linhas e m colunas.
Matriz identidade 3x3:
3 linhas e 3 colunas
Matriz identidade 2x2:
2 linhas e 2 colunas
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Alocando uma matriz com valores 1
>> C = ones(1,6)
C =
1 1 1 1 1 1
>> G = 4*C
G =
4 4 4 4 4 4
O comando ones(m,n) permite a criao de uma matriz de m linhas e n colunas com 1 em
todas suas posies.
Aplicao: gerar matrizes ou vetores com um valor constante.
Matriz com 1 em todas as posies.
Dimenses: 1 linha e 6 colunas.
Multiplicando a matriz por 4,
Obtemos uma matriz com 4 em todas as
posies.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Diagonal de Matrizes
O comando diag(vetor) permite a criao de uma matriz cuja diagonal conter todos os
elementos do vetor dado, sendo o restante das posies zero.
Com a sintaxe diag(matriz) a diagonal da matriz quadrada extrada num vetor, ou at
as posies no qual o ndice da linha igual ao ndice da coluna, quando a matriz no
quadrada.
>> vetor = [1 2 3]
vetor =
1 2 3
>> D = diag(vetor)
D =
1 0 0
0 2 0
0 0 3
>> A = [1 2;4 5]
A =
1 2
4 5
>> diag(A)
ans =
1
5
Matriz 1x3
Matriz 3x3
com elementos
do vetor na sua
diagonal
Matriz 2x2
Matriz 2x1
com elementos
da diagonal nas
suas posies
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Transpondo Matrizes
O comando transp(matriz) realiza a transposio da matriz mxn para uma matriz nxm.
>> A = [1 2+i 3;4 5-i 6]
A =
1.0000 2.0000 + 1.0000i 3.0000
4.0000 5.0000 - 1.0000i 6.0000
>> B=transp(A)
B =
1.0000 4.0000
2.0000 + 1.0000i 5.0000 - 1.0000i
3.0000 6.0000
Matriz 2x3 contendo valores complexos
A transposta uma matriz 3x2
contendo valores complexos
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Transpondo Matrizes
O operador aspas simples ( ) obtm a transposta conjugada da matriz mxn para
uma matriz nxm. Aspas simples e ponto ( . ) realiza somente a transposio.
>> A = [1 2+i 3;4 5-i 6]
A =
1.0000 2.0000 + 1.0000i 3.0000
4.0000 5.0000 - 1.0000i 6.0000
>> C = A'
C =
1.0000 4.0000
2.0000 - 1.0000i 5.0000 + 1.0000i
3.0000 6.0000
>> C = A.'
C =
1.0000 4.0000
2.0000 + 1.0000i 5.0000 - 1.0000i
3.0000 6.0000
Matriz 2x3 contendo valores complexos
A transposta uma matriz 3x2
contendo valores complexos
A resposta uma matriz 3x2 complexo
conjugada da original
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Inverso de Matrizes
O comando inv(matriz) realiza a inverso de matriz quadrada mxm.
Aplicao: resoluo de sistemas lineares.
>> R = [1 2;4 5]
R =
1 2
4 5
>> InvR = inv(R)
InvR =
-1.6667 0.6667
1.3333 -0.3333
>> Ident = InvR*R
Ident =
1 0
0 1
Matriz 2x2
Inversa: Matriz 2x2
Multiplicando a inversa pela
matriz original, obtemos a
matriz identidade
Matriz 2x2
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Ordenao de elementos
sort(matriz,1) ordena as colunas de uma matriz nxm
sort(matriz,2) ordena as linhas de uma matriz nxm
A =
1 3 2
4 6 8
3 5 4
>> sort(A,1)
ans =
1 3 2
3 5 4
4 6 8
>> sort(A,2)
ans =
1 2 3
4 6 8
3 4 5
Ordeno as colunas
da matriz
crescente
Ordeno as linhas
da matriz
crescente
A =
1 3 2
4 6 8
3 5 4
>> sort(A,1,'descend')
ans =
4 6 8
3 5 4
1 3 2
>> sort(A,2,'descend')
ans =
3 2 1
8 6 4
5 4 3
Ordeno as colunas
da matriz
decrescente
Ordeno as linhas
da matriz
decrescente
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Manipulao de vetores
IMPORTANTE: Os vetores tambm so matrizes, porm uma de suas dimenses 1.
Portanto, a grande maioria as funes aplicveis a uma matriz podem ser aplicadas ao vetor.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Gerando vetores sequenciais
O comando linspace(Valor_inicial, Valor_final,N) gera um vetor N nmeros
sequenciais igualmente espaados entre o valor inicial e o valor final.
>> v1 = linspace(2,-1,5)
v1 =
2.0000 1.2500 0.5000 -0.2500 -1.0000
>> v2 = linspace(1,3,6)
v2 =
1.0000 1.4000 1.8000 2.2000 2.6000 3.0000
Gerando vetor de 2 a -1
(decrescente)
com 5 elementos
Gerando vetor de 1 a 3
(crescente)
com 6 elementos
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Gerando vetores sequenciais
Uma alternativa um vetor com o operador dois pontos (:):
Valor_inicial:delta:Valor_final
Gera um vetor nmeros sequenciais igualmente espaados segundo a varivel delta entre o
valor inicial e o valor final.
>> t1 = 0:1:5
t1 =
0 1 2 3 4 5
>> t2 = 5:-1:2
t2 =
5 4 3 2
Gerando vetor de 0 a 5
(crescente)
espaado de 1
Gerando vetor de 5 a 2
(decrescente)
espaado de -1
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Acessando posies em um vetor
>> t1 = 0:1:5
t1 =
0 1 2 3 4 5
>> t1(1,2)
ans =
1
>> t1(4)
ans =
3
>> t1(1,2:end)
ans =
1 2 3 4 5
Vetor de 0 a 5 espaado de 1
Elemento da linha 1 coluna 2
Alternativa:
Elemento 4 do vetor
Dimenso da linha subentendida
Elementos da posio 2 at o fim (end) do vetor
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Operaes matemticas entre Matrizes
e/ou Escalares
IMPORTANTE 1: Os vetores tambm so matrizes, porm uma de suas dimenses 1.
Portanto, a grande maioria as funes aplicveis a uma matriz podem ser aplicadas ao vetor.
IMPORTANTE 2: No caso de matrizes, certifique-se de que possuem dimenses
adequadas para a operao matemtica (Exemplo: multiplicao).
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Soma (+) e subtrao (-)
IMPORTANTE:
As matrizes devem possuir
o mesmo nmero de linhas
e colunas
Em caso de erro:
utilizar o comando
size(Matriz)
>> A = [ 1 3;2 0]
A =
1 3
2 0
>> B = [1 1;2 2]
B =
1 1
2 2
>> C = A+B
C =
2 4
4 2
>> D = A-B
D =
0 2
0 -2
Matriz 2x2
Matriz 2x2
Soma
Subtrao
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Multiplicao (x) - Matrizes
IMPORTANTE:
A multiplicao ocorre se
M1
nxm
X M2
mxp
= M3
nxp
Em caso de erro:
size(Matriz)
>> A = [1 3; 4 5]
A =
1 3
4 5
>> C = [1;2]
C =
1
2
>> D = A*C
D =
7
14
>> D = C*A
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Matriz 2x2
Matriz 2x1
Multiplicao:
Matriz 2x1
ERRO:
No se multiplica matriz
2x1 por matriz 2x2!
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Multiplicao (x) Matrizes e escalares
>> A = [1 3; 4 5]
A =
1 3
4 5
>> d = 12
d =
12
>> H = d*A
H =
12 36
48 60
>> t = 0.5*A
t =
0.5000 1.5000
2.0000 2.5000
Matriz 2x2
Varivel
Multiplicao por varivel:
Matriz 2x2
Multiplicao por nmero real:
Matriz 2x2
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Diviso esquerda (/) e direita (\)
Matrizes e escalares
>> A = [1 2;3 4]
A =
1 2
3 4
>> b = 1/2
b =
0.5000
>> A/b
ans =
2 4
6 8
>> b\A
ans =
2 4
6 8
A b A
1
b
b A
1
b
A
Diviso esquerda
Diviso direita
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Diviso esquerda (/) Matrizes
>> A = [1 3; 4 5]
A =
1 3
4 5
>> B = [2 2;1 1]
B =
2 2
1 1
>> B/A
ans =
-0.2857 0.5714
-0.1429 0.2857
B A B A
1
>> A = [1 3; 4 5]
A =
1 3
4 5
>> B = [2 2;1 1]
B =
2 2
1 1
>> B*inv(A)
ans =
-0.2857 0.5714
-0.1429 0.2857
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Diviso direita (\) Matrizes
A =
1 3
4 5
>> B = [1;2]
B =
1
2
>> A\B
ans =
0.1429
0.2857
A B A
1
B
A =
1 3
4 5
>> B = [1;2]
B =
1
2
>> inv(A)*B
ans =
0.1429
0.2857
Aplicao:
RESOLUO
DE
SISTEMAS
DE
EQUAES
LINEARES
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Multiplicao, diviso e exponencial
ponto-a-ponto
>> F = linspace(1,5,5)./linspace(5,1,5)
F =
0.2000 0.5000 1.0000 2.0000 5.0000
>> t = linspace(1,5,5).*linspace(5,1,5)
t =
5 8 9 8 5
>> v = linspace(1,5,5).^linspace(5,1,5)
v =
1 16 27 16 5
Precedido pelo operador ponto (.) possvel realizar a multiplicao e a diviso ponto-a-
ponto entre vetores e matrizes de mesmas dimenses.
Aplicao: clculos de polinmio.
Elementos de vetor de 1 a 5 dividido
por
elementos de vetor de 5 a 1
Elementos de vetor de 1 a 5
multiplicado por
elementos de vetor de 5 a 1
Elementos de vetor de 1 a 5 elevado a
elementos de vetor de 5 a 1
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Multiplicao, diviso e exponencial
ponto-a-ponto
A1 A2 A3 B1 B2 B3
C1 C2 C3
*,/ ou ^
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Funes Trigonomtricas
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Funes Trigonomtricas
IMPORTANTE: Em Matlab, as funes trigonomtricas operam em radianos (rad).
csc(x) Cossecante
sec(x) Secante
cot(x) Cotangente
tan(x) Tangente
cos(x) Cosseno
sin(x) Seno
Funo Matlab Funo Trigonomtrica
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Funes Trigonomtricas Inversas
IMPORTANTE: Em Matlab, as funes trigonomtricas inversas resultam e ngulos em
radianos (rad).
acsc(x) Arco Cossecante
asec(x) Arco Secante
acot(x) Arco Cotangente
atan(x) Arco Tangente
[-1,1] acos(x) Arco Cosseno
[-1,1] asin(x) Arco Seno
Limite para x para resultado real Funo Matlab Funo Trigonomtrica
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Funes Trigonomtricas Exemplo:
>> teta = 30*pi/180
teta =
0.5236
>> sin(teta)
ans =
0.5000
ngulo de 30
convertido para
radianos
Calculo o seno
para o ngulo
>> phi = 0:10:60
phi =
0 10 20 30 40 50 60
>> phi = phi*pi/180
phi =
0 0.1745 0.3491 0.5236 0.6981 0.8727 1.0472
>> cos(phi)
ans =
1.0000 0.9848 0.9397 0.8660 0.7660 0.6428 0.5000
Vetor de 0 a 60
Vetor convertido
para radianos
Cosseno dos
ngulos do vetor
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Polinmios
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Escrevendo Polinmios em Matlab
Em Matlab, os polinmios so descritos na forma de vetor:
Matematicamente:
0 1
2
2
) ( a x a x a x a x P
n
n
+ + + + = K
0 ) (
2
1
+ + = x x x P
x x x P + =
4
2
3 ) (
2 2 3 ) (
2
3
+ + = x x x P
Em Matlab:
P = [an a2 a1 a0]
>> p1 = [1 1 0];
>> p2 = [ 3 0 0 1 0];
>> p3 = [ 3 2 2];
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Substituindo valores nos polinmios
0 ) (
2
1
+ + = x x x P
O comando polyval(p,x) calcula o valor do polinmio p para um determinado valor x.
>> p1 = [1 1 0];
>> x1 = 2;
>> p1x1 = polyval(p1,x1)
p1x1 =
6
>> p2 = [ 3 0 0 1 0];
>> v2 = [1 2]
v2 =
1 2
>> p2x2 = polyval(p2,v2)
p2x2 =
4 50
6 0 2 2 ) 2 (
2
1
= + + = = x P
x x x P + =
4
2
3 ) (
4 1 1 . 3 ) 1 (
2
= + = = x P
50 2 48 2 2 . 3 ) 2 (
4
2
= + = + = = x P
Para varivel:
Para vetor:
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Razes de Polinmios
O comando roots(p) calcula as razes de determinado polinmio p.
>> p = [1 0 -4]
p =
1 0 -4
>> x = roots(p)
x =
2.0000
-2.0000
( )( ) 2 . 2 4 ) (
2
+ = = x x x x P
>> p = [1 0 4]
p =
1 0 4
>> x = roots(p)
x =
0 + 2.0000i
0 - 2.0000i
( )( ) i x i x x x P 2 . 2 4 ) (
2
+ = + =
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo prtico exerccio 7.51 (Hibbeler)
) 10 ( 250 ) ( x x V =
150 2500 125 ) 6 5 100 ( 25 ) (
2 2
+ = = x x x x x M
Cortante calculada:
Momento Fletor calculado:
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo prtico exerccio 7.51 (Hibbeler)
x = 0:0.1:20
V = [-250 2500]
M = [-125 2500 -150]
Vx = polyval(V,x);
Mx = polyval(M,x);
figure %nova janela grafica
plot(x,Vx)
title('Grfico da cortante')%titulo
xlabel('x (ft)')%rotulo do eixo x
ylabel('V (lb)')%rotulo do eixo y
grid on %linhas de grid do grafico
figure %nova janela grafica
plot(x,Mx)
title('Grfico do Momento')%titulo
xlabel('x (ft)')%rotulo do eixo x
ylabel(M (lb.ft)')%rotulo do eixo y
grid on %linhas de grid do grafico
0 2 4 6 8 10 12 14 16 18 20
-2500
-2000
-1500
-1000
-500
0
500
1000
1500
2000
2500
Grfico da cortante
x (ft)
V

(
l
b
)
0 2 4 6 8 10 12 14 16 18 20
-2000
0
2000
4000
6000
8000
10000
12000
14000
Grfico do Momento
x (ft)
M

(
l
b
.
f
t
)
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Grficos - plot
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Grficos em 2D em janelas separadas
O comando plot(x,y) origina um grfico no qual o vetor x designa as coordenadas
em x dos pontos a serem plotados e o vetor y as suas coordenadas em y.
IMPORTANTE: o comando figure antecedendo o comando plot abre uma nova janela para os
grficos, evitando que comandos seguidos plot ocasionem a sobreposio de grficos numa
mesma janela.
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
figure %crio nova janela
plot(x,y1)
figure %crio nova janela
plot(x,y2)
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Grficos em 2D numa s janela
O comando hold on faz com que os comandos sucessivos de plot registrem seus
grficos numa s janela.
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
figure %crio nova janela
plot(x,y1)
hold on %mantenho janela
plot(x,y2,'r') %vermelho
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Alterando cores
w Branco
k Preto
y Amarelo
m Magenta
c Ciano
r Vermelho
g Verde
b Azul
Nome curto Cor
O comando plot(x,y,caracter) com o terceiro campo preenchido com um dos
caracteres indicativos de cor abaixo, entre aspas simples (), pode alterar a cor do
seu grfico.
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
figure %crio nova janela
plot(x,y1,'g') %verde
hold on %mantenho janela
plot(x,y2,'k') %preto
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Alterando tipo de ponto do grfico
O comando plot(x,y,caracter) com o
terceiro campo preenchido com um dos
caracteres indicativos de linha ao lado, entre
aspas simples (), pode alterar a linha do
seu grfico.
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
figure %crio nova janela
plot(x,y1,'bo') %azul
hold on %mantenho janela
plot(x,y2,'rx')%vermelho
hexgono h
pentgono (estrela de 5 pontas) p
triangulo (para direita) >
triangulo (para esquerda) <
triangulo (para cima) ^
triangulo (para baixo) v
diamante d
quadrado s
estrela *
mais (cruz) +
marca x x
circulo o
ponto .
Marcador Caractere
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Alterando tipo de trao do grfico
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
figure %crio nova janel
plot(x,y1,'b--') %azul
hold on %mantenho janela
plot(x,y2,'r.-')%vermelho
nenhuma linha (none)
tracejada --
trao-ponto -.
pontilhada :
slida -
Tipo de Linha Caractere
O comando plot(x,y,caracter) com o terceiro campo preenchido com um dos
caracteres indicativos de trao abaixo, entre aspas simples (), pode alterar o trao
do seu grfico.
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Rtulos nos eixos e ttulo
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Grfico Teste
Angulo (rad)
A
m
p
l
i
t
u
d
e
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
figure %crio nova janela
plot(x,y1,'b--') %azul
hold on %mantenho janela
plot(x,y2,'r-.')%vermelho
title('Grfico Teste')
xlabel('Angulo (rad)')
ylabel('Amplitude')
title(texto na parte superior do grafico)
xlabel(texto no eixo x)
y
l
a
b
e
l
(

t
e
x
t
o

n
o

e
i
x
o

y

)
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Legendas
x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
figure %crio nova janela
plot(x,y1,'b--') %azul
hold on %mantenho janela
plot(x,y2,'r-.')%vermelho
title('Grfico Teste')
xlabel('Angulo (rad)')
ylabel('Amplitude')
legend('sen(x)','cos(x)')
0 1 2 3 4 5 6 7
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Grfico Teste
Angulo (rad)
A
m
p
l
i
t
u
d
e


sen(x)
cos(x)
O comando legend(trao 1, trao 2,, trao n) insere uma legenda para os
traos na ordem em que foram plotados no grfico.
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Aplicaes para Geometria Analtica
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Resoluo de sistemas de equaes lineares
A x B
x A
1
B
[ ]{ } [ ] B x A
b
b
z
y
a a
a a
b z a y a
b z a y a
=
)
`

=
)
`

= +
= +
21
11
22 21
12 11
21 22 21
11 12 11
Um exemplo de sistema linear 2x2:
Se as equaes forem linearmente independentes (LI) a resposta pode ser obtida por:
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Resoluo de sistemas de equaes lineares
Utilizo o comando linsolve x = linsolve(A,B)
Inverto a matriz A e multiplico por B x = inv(A)*B
Obtenho resposta por diviso direita x = A\B
A x B
>> A = [1 3; 4 5]
A =
1 3
4 5
>> x = A\B
x =
0.1429
0.2857
>> x = inv(A)*B
x =
0.1429
0.2857
>> x = linsolve(A,B)
x =
0.1429
0.2857
>> B = [1;2]
B =
1
2
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Escrevendo um vetor no espao
x
y
z
O
>> tetax = 30*pi/180
tetax =
0.5236
>> tetay = 45*pi/180
tetay =
0.7854
>> tetaz = 60*pi/180
tetaz =
1.0472
>> ModuloV = 10
ModuloV =
10
>> V = ModuloV*[cos(tetax) cos(tetay) cos(tetaz)]
V =
8.6603 7.0711 5.0000
( ) k j i v v
z y x

). cos(

). cos(

). cos( + + =
r r
Com os cossenos diretores, temos:
x

Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Norma de um vetor
k j i v

. 2

. 1

. 1 + + =
r
k c j b i a v

.

. + + =
r
x
y
z
O
2 2 2
c b a v + + =
r
>> V = [1 1 2]
V =
1 1 2
>> moduloV = norm(V)
moduloV =
2.4495
>> moduloV = sqrt(V(1)^2+V(2)^2+V(3)^2)
moduloV =
2.4495
2 2 2
2 1 1 + + = v
r
O comando norm(Vetor) calcula a
norma euclidiana do vetor dado.
Aplicao: vetor unitrio
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Obtendo um vetor unitrio
k j i v

. 2

. 1

. 1 + + =
r
>> V = [1 1 2]
V =
1 1 2
>> moduloV = norm(V)
moduloV =
2.4495
>> lambdaV = V/moduloV
lambdaV =
0.4082 0.4082 0.8165
>> norm(lambdaV)
ans =
1
2 2 2
2 1 1 + + = v
r
v
v
r
r
r
=
1 =
r
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Produto Escalar entre Vetores
x
y
z
O
>> r1 = [1 0 2]
r1 =
1 0 2
>> r2 = [2 1 1]
r2 =
2 1 1
>> r1r2 = dot(r1,r2)
r1r2 =
4
) cos( . . . ) , (
2 1 2 1 2 1
r r r r r r dot
r r r r r r
= =
1
r
r
2
r
r

k j i r

. 2

. 0

. 1
1
+ + =
r
k j i r

. 1

. 1

. 2
2
+ + =
r
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Produto Vetorial
x
y
z
O
>> r = [1 2 0]
r =
1 2 0
>> F = [0 0 10]
F =
0 0 10
>> M = cross(r,F)
M =
20 -10 0
F r F r cross
r
r
r
r
= ) , (
r
r
F
r
k j i r

. 0

. 2

. 1 + + =
r
k j i F

. 10

. 0

. 0 + + =
r
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Produto Misto
>> r = [1 2 0]
r =
1 2 0
>> F = [0 0 10]
F =
0 0 10
>> lambda = [1 1 1]/norm([1 1 1])
lambda =
0.5774 0.5774 0.5774
>> M1 = dot(lambda,cross(r,F))
M1 =
5.7735
k j i r

. 0

. 2

. 1 + + =
r
k j i F

. 10

. 0

. 0 + + =
r
( ) F r F r cross dot
r
r
r r
r
r
= . )) , ( , (
Vetor unitrio:
Divido vetor pelo seu mdulo
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exerccio prtico 1 Exemplo 3.6 (Hibbeler)
Encontrando fora resultante
x
y
z
3 m
2 m
6 m
O
F
1
= 400 N
F
2
= 800 N
F
3
= 700 N
B
] [

. 0

. 400

. 0
1
N k j i F + + =
r
] [

. 800

. 0

. 0
2
N k j i F + =
r
k j i r
B

. 6

. 3

. 2 + =
r
F1 = [0 400 0]
F2 = [0 0 800]
rOB = [-2 -3 6]
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exerccio prtico 1 Exemplo 3.6 (Hibbeler)
Encontrando fora resultante
x
y
z
3 m
2 m
6 m
O
F
1
= 400 N
F
2
= 800 N
F
3
= 700 N
B
] [
3 3
N
r
r
F F
B
B
|
|

\
|
=
r
r
r
lambdaOB = rOB/norm(rOB)
F3 = ModuloF3*(lambdaOB)
) (
3 2 1
F F F R
r r r r
+ + =
R = -(F1+F2+F3)
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exerccio prtico 1 Exemplo 3.6 (Hibbeler)
Encontrar ngulos diretores
2 2 2
z y x
R R R R + + =
r
) ( cos
1
R
R
x
r

=
) ( cos
1
R
R
y
r

=
) ( cos
1
R
R
z
r

=
ModuloR = norm(R)
alfa = acos(R(1)/ModuloR)*180/pi
beta = acos(R(2)/ModuloR)*180/pi
gama = acos(R(3)/ModuloR)*180/pi
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exerccio prtico 1 Exemplo 3.6 (Hibbeler)
Cdigo Completo + Sada no Prompt
%Forca 1
F1 = [0 400 0]; %[N]
%Forca 2
F2 = [0 0 -800]; %[N]
%Vetor que vai do ponto O ao ponto B
rOB = [-2 -3 6];
%Modulo da forca F3
ModuloF3 = 700; %N
%vetor unitrio na linha de ao de F3
lambdaOB = rOB/norm(rOB);
%Para obter a forca F3
%multiplico o mdulo pelo vetor unitrio
F3 = ModuloF3*(lambdaOB);
%fora resultante
R = -(F1+F2+F3)
%modulo da fora resultante
ModuloR = norm(R)
%angulos diretores
alfa = acos(R(1)/ModuloR)*180/pi%convertido para graus
beta = acos(R(2)/ModuloR)*180/pi%convertido para graus
gama = acos(R(3)/ModuloR)*180/pi%convertido para graus
R =
200 -100 200
ModuloR =
300
alfa =
48.1897
beta =
109.4712
gama =
48.1897
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exerccio prtico 2
Com o que foi visto at agora, tente resolver alguns dos
problemas propostos do captulo 2 e 3 do livro texto
(Hibbeller,10 edio).
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Matlab:
uma linguagem de programao
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Operadores relacionais
a igual a b a no igual a b a ~= b Diferente ~=
a no igual a b a igual a b a == b Igual ==
a menor do que b a maior ou igual a b a >= b Maior ou igual >=
a menor ou igual a b a maior do que b a > b Maior >
a maior do que b a menor ou igual a b a <= b Menor ou igual <=
a maior ou igual a b a menor do que b a < b Menor <
Retorna false quando: Retorna true quando: Sintaxe Nome Operador
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Operadores lgicos
C1 for falso ~C1 not ~
Pelo menos uma das condies forem verdadeiras C1||C2 or ||
C1 e C2 forem verdadeiros C1&&C2 and &&
True somente se: Sintaxe Nome Operador
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo: Operadores relacionais + lgicos
Suponha A = 9. Verifique:
1) A maior do que 5 e menor do que 10? SIM
2) A maior do que 5 e menor do que 8? NO
3) A maior do que 5 ou menor do que 8? SIM
4) A maior do que 5 ou menor do que 10? SIM
5) A no igual a 8? SIM
6) A igual a 8? NO
>> (A>5)||(A<10)
ans =
1
>> ~(A==8)
ans =
1
>> (A==8)
ans =
0
>> A = 9;
>> (A>5)&&(A<10)
ans =
1
>> (A>5)&&(A<8)
ans =
0
>> (A>5)||(A<8)
ans =
1
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Palavras reservadas: if/else
%variaveis
a = 1;
b = 2;
c = 3;
d = 4;
%codigo sem elseif
if a==0
disp('a igual a 0')
else
if b==a
disp('a igual a b')
else
if c>d
disp('c maior que d')
else
disp('a diferente de 0')
disp('a diferente de b')
disp('c menor que d')
end
end
end
Sada no Command Window:
a diferente de 0
a diferente de b
c menor que d
if expresso lgica
comandos caso a expresso lgica seja verdadeira
else
comandos caso a expresso lgica seja falsa
end
Na expresso lgica, podem ser utilizados os
operadores (&&,>,<,==, ~=, <=,>=, etc.).
Aps os comandos, existe a palavra end, indicando o
fim dos comandos referentes comparao if
anterior, sendo equivalente ao fechamento de
chaves {} em outras linguagens de programao
(C,C++, JAVA).
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Palavras reservadas: while
%calculo dos termos de uma P.G.
%primeiro termo
a1 = 1;
%razao da PG
r = 2
%total de termos considerados
n = 10
cont = 1
%vetor contendo os termos
a = zeros(1,n);
%carrego primeiro termo
a(1,1) = a1;
cont = 2;
%calculo os termos da P.G.
while cont<=n %expressao
a(1,cont) = a1*r^cont;
cont = cont+1;%incremento cont
end
%mostro termos da PG
disp(a)
while expressao
comandos enquanto a expressao for verdadeira
end
Na expresso lgica, podem ser utilizados os
operadores (&&,>,<,==, ~=, <=,>=, etc.).
Enquanto a expresso for verdadeira, os comandos
contidos no lao sero executados. Dessa forma,
uma expresso til para procedimentos
repetitivos ou algoritmos expressos
matematicamente.
Exemplo: Progresso Geomtrica
a
n
a
1
r
n 1
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Palavras reservadas: for
for x = valor_inicial:valor_final
comandos enquanto x no atingir o valor final
end
Sintaxe com incremento com passo especificado a
cada iterao:
for x = valor_inicial:incremento:valor_final
comandos enquanto x no atingir o valor final
end
%primeiro termo
a1 = 1;
%razao da PG
r = 2
%total de termos considerados
n = 10
cont = 1
%vetor contendo os termos
a = zeros(1,n);
%carrego primeiro termo
a(1,1) = a1;
%calculo os termos da P.G.
for cont = 2:n %expressao
a(1,cont) = a1*r^cont;
end
%mostro termos da PG
disp(a)
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo: for
A = [1 2 3]
B = [4 5 6]
C = zeros(size(A,2),size(B,2))
for countA = 1:size(A,2)
for countB = 1:size(B,2)
C(countA,countB) = A(1,countA)*B(1,countB);
end
end
disp(C)
4 5 6
8 10 12
12 15 18
Sada
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo: for Como ele fez isso?
1 2
3
4 5 6 4 5 6 4 5 6
4 5 6
x x x
x x x
4 5 6
8 10 12
x x x
4 5 6
8 10 10
12 15 18
contA+1 contA+2
contA=1
contB=1 contB+1 contB+2 contB=1 contB+1 contB+2 contB=1 contB+1 contB+2
contA=1
contA+1
contA+2
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo prtico exerccio 4.31 (Hibbeler)
) cos( ). 5 , 7 .( 18 , 1 x M
A
+ =
Massa suspensa 120 kg
Momento desenvolvido em A em
funo de x e .
o o
90 0
m x 5 0
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo prtico exerccio 4.31 (Hibbeler)
%--------------------------------------------------------------------------
%Neste programa, x mantido constante e so variados valores do ngulo
%para o clculo do momento
%--------------------------------------------------------------------------
%parametro da lanca
x = 2;%m
%vetor angulo de 0 a 90 espacado de 10
teta = (0:10:90)*pi/180;
%vetor vazio onde serao armazenados os momentos em relacao a A
%LEMBRETE: size(teta,2) o nmero de COLUNAS do vetor teta
MA = zeros(1,size(teta,2));
%corro o numero de colunas do vetor teta
for count = 1:size(teta,2)
%acesso posicao do vetor
MA(1,count) = 1.18*(7.5+x)*cos(teta(1,count));
end
%ploto grafico em nova janela
%eixo x - vetor do angulo
%eixo y - vetor dos momentos com relacao a A
figure
plot(teta*180/pi,MA(1,:))
xlabel('teta ()') %nomenclatura do eixo x
ylabel('Momento (N.m)') %nomenclatura do eixo y
) cos( ). 5 , 7 .( 18 , 1 x M
A
+ =
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo prtico exerccio 4.31 (Hibbeler)
Nomenclatura
eixo x
Nomenclatura eixo x
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo prtico exerccio 4.31 (Hibbeler)
%parametro da lanca de 1 a 5m espaado de 1m
x = 1:1:5;%m
%vetor angulo de 0 a 90 espacado de 10
teta = (0:10:90)*pi/180;
%vetor vazio onde serao armazenados os momentos em relacao a A
%LEMBRETE: size(teta,2) o nmero de COLUNAS do vetor teta
%LEMBRETE: size(x,2) o nmero de COLUNAS do vetor x
MA = zeros(size(x,2),size(teta,2));
%corro o numero de colunas do vetor teta
for lin = 1:size(x,2)
for col = 1:size(teta,2)
MA(lin,col) = 1.18*(7.5+x(1,lin))*cos(teta(1,col));%acesso posicao do vetor
end
end
%ploto grafico
figure
plot(teta*180/pi,MA(1,:)) %calculado para x = 1m
hold on
plot(teta*180/pi,MA(2,:),'r') %calculado para x = 2m
hold on
plot(teta*180/pi,MA(3,:),'k') %calculado para x = 3m
hold on
plot(teta*180/pi,MA(4,:),'m') %calculado para x = 4m
hold on
plot(teta*180/pi,MA(5,:),'g') %calculado para x = 5m
%insiro legenda - na ordem em que os resultados foram plotados
legend('x = 1m','x = 2m','x = 3m','x = 4m','x = 5m')
xlabel('teta ()') %nomenclatura do eixo x
ylabel('Momento (N.m)') %nomenclatura do eixo y
Universidade Estadual de Campinas Laboratrio de Dinmica de Estrutras e Mquinas Prof. Dr. Milton Dias Junior
Introduo ao Matlab
Miyasato, H.H., Simionatto, V.G.S
Exemplo prtico exerccio 4.31 (Hibbeler)

Potrebbero piacerti anche