Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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)