Buscar

Introducao ao Matlab_Leandro Gazoni e Fernanda Raupp_LNCC

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 60 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 60 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 60 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução ao MATLABIntrodução ao MATLAB
Leandro Leandro GazoniGazoni
Fernanda Fernanda RauppRaupp
O que é o MATLAB ?
„ matrix laboratory é um software para computação 
científica
„ resolve problemas matemáticos de forma rápida e 
eficiente
„ possui uma família de aplicativos específicos 
(toolboxes) para:
„ otimização, manipulação algébrica, redes 
neurais, processamento de sinais, simulação 
de sistemas dinâmicos, entre outros.
Evolução do MATLAB
AnoAno VersãoVersão ResumoResumo
1978 Classic MATLAB Versão em Fortran
1984 MATLAB 1 Reescrito em C
1985 MATLAB 2 30% a mais de funções e comandos
1987 MATLAB 3 + rápido, gráficos coloridos
1992 MATLAB 4 Animação, inteface, debugger, MS-Win
1997 MATLAB 5 OO, álgebra linear, eq. diferenciais
2000 MATLAB 6 LAPACK, ARPACK, BLAS, Suporte Java
Variáveis no MATLAB
„ existe somente um tipo de variável:
„ matriz 
„ o tipo matriz pode ser expresso como:
„ escalar: matriz 1 x 1
„ vetor: matriz 1 x n ou n x 1 
„ matriz propriamente: matriz m x n
„ a dimensão de matrizes e vetores é automática
Representação de variáveis
Variáveis
Escalares Vetores Matrizes
Vetores Linha Vetores Coluna
String Numérico
0.120.12
(1X1)(1X1)
( )
1 2 3
4 5 6
7 8 9
3 3
⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
×
x
( )
1
2
4 1
3
4
⎡ ⎤⎢ ⎥⎢ ⎥= ×⎢ ⎥⎢ ⎥⎣ ⎦
y[ ]
(1 4)×
L N C C [ ]1 2 3
Características na 
declaração de uma variável
„ variáveis são alocadas na memória ao serem 
declaradas;
„ nomes de variáveis são sensíveis a letras 
maiúsculas e minúsculas;
„ vetores e matrizes devem ser declarados entre [ ];
„ elementos de uma mesma linha numa matriz são 
separados por espaço(s) ou vírgula;
„ ponto-e-vírgula(;) indica o final de uma linha de uma 
matriz ou expressão;
Exemplos de declarações 
de variáveis
>> A = [ 1 2 3 4 5 ]
A =
1 2 3 4 5
>>B = [ 1; 2; 3; 4; 5 ] ou
>>B = A’
B =
1
2
3
4
5
Vetor Linha
Vetor Coluna
Exemplos de declarações 
de variáveis
>> A = [ 1 2 3; 4 5 6; 7 8 9 ]
A =
1 2 3
4 5 6
7 8 9 
>> A = A'
A =
1 4 7
2 5 8
3 6 9
Matriz
Matriz Transposta
Operadores matemáticos
Símbolo Operação
+ Adição
- Subtração
* Multiplicação
/ Divisão: a/b=a*b^(-1)
^ Potenciação
‘ Matriz transposta
Exemplos com 
operadores matemáticos
>> A = [ 1 2; 3 4 ];
>> B = [ 5 6; 7 8 ]; 1 2 5 6
3 4 7 8
A B⎡ ⎤ ⎡ ⎤= =⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
>> C2 = A*B
C2 =
19 22
43 50
>> C3 = A/B ( = A*inv(B) )
C3 =
3.0000 -2.0000
2.0000 -1.0000
>> C = A + B
C =
6 8
10 12
>> C1 = A – B
C1 =
-4 -4
-4 -4
Operadores Matemáticos 
Ponto-a-Ponto
Símbolo Operação 
.* multiplicação
./ divisão
.^ potenciação
Exemplos de operadores 
matemáticos ponto-a-ponto
1 2 5 6
3 4 7 8
A B⎡ ⎤ ⎡ ⎤= =⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
>>A = [ 1 2 ; 3 4 ];
>>B = [ 5 6 ; 7 8 ];
>> C = A.*B
C =
5 12
21 32
>> C = A./B
C =
0.2000 0.3333
0.4286 0.5000
>> C = A.^3
C =
1 8
27 64
>> C = A.^B
C =
1 64
2187 65536
Característica na 
declaração de uma variável
v = [ inicio : incremento : fim ] 
v = [ inicio : fim ] incremento=1
ou
v = inicio : incremento : fim 
v = inicio : fim
„ Exemplo:
>> A = 1 : 9
A =
1 2 3 4 5 6 7 8 9
Característica na 
declaração de uma variável
„ Exemplos:
>> v = [ 2 : 2 : 10]
v =
2 4 6 8 10
>> M = [1:1:3; 4:1:6; 7:1:9]
M =
1 2 3
4 5 6
7 8 9
Manipulação de matrizes
„ acessando um elemento de uma matriz;
[ ]1 3 7 9 11 13 175 15=A
>> A (3)
ans =
5
A referência deve ser 
sempre ( linha, coluna)( linha, coluna)
11 12 13
21 22
31 32 33
23
1 2 3
4 5
7 8 9
6
⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦
a a a
a a
a a a
aB
>> B (2,3)
ans =
6
Manipulação de matrizes
„ É possível incluir matrizes em matrizes;
>> A = [1 2 3; 4 5 6; 7 8 9];
>> a = [10 20 30];
>> A = [A;a]
A =
1 2 3
4 5 6
7 8 9
10 20 30 
A => matriz 4x3
A => matriz 3x3
Manipulação de matrizes
„ É possível extrair matrizes de matrizes;
1 2 3
4 5 6
7 8 9
10 20 30
A
⎡ ⎤⎢ ⎥⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
Acessando os elementos na 2a 
e 3a colunas da 2a linha de A
>> x = A ( 2, [ 2 3 ] )
ou 
>> x = A ( 2, 2:3)
x =
5 6
Manipulação de matrizes
1 2 3
4 5 6
7 8 9
10 20 30
⎡ ⎤⎢ ⎥⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
A
Acessando os elementos 
da 2a e 3a linhas
>> x = A ([2 3] , [1 2 3 ])
ou
>> x = A (2:3, 1:3)
x =
4 5 6
7 8 9
Manipulação de matrizes
„ Podemos acessar diretamente elementos da 
diagonal de uma matriz;
1 2 3
4 5 6
7 8 9
A
⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
Vamos acessar a diagonal 
da matriz A
>> x = diag(A)
x =
1
5
9
Funções especiais para 
geração de matrizes
„ A = rand (m,n) ou rand(n)
Gera matriz com elementos aleatórios.
„ A = eye (m,n) ou eye(n)
Gera matriz com elementos na diagonal iguais a 1. 
Uma matriz identidade nXn é gerada por eye(n).
„ A = zeros (m,n) ou zeros(n)
Gera matriz com todos elementos iguais a 0.
„ A = ones (m,n) ou ones(n)
Gera matriz com todos elementos iguais a 1. 
Exemplos de funções especiais 
para geração de matrizes
» a = rand(2)
a =
0.3840 0.0928
0.6831 0.0353
» a = eye(2)
a =
1 0
0 1
» a = ones(2)
a =
1 1
1 1
» a = zeros(2)
a =
0 0
0 0
Operadores matemáticos
sin seno cos cosseno
tan tangente csc cossecante
sec secante cot cotangente
acos arco-coseno asin arco-seno
atan arco-tangente asec arco-secante
acsc arco-cossecante acot arco-cotangente
Variáveis e Comandos Permanentes
ans resposta mais recente flops
contador de 
operações 
matemáticas
eps precisão da máquina NaN Not a Number
realmax maior número de ponto flutuante inf Infinito
realmin menor número de ponto flutuante computer tipo de computador
pi 3,141592653... who lista de variáveis utilizadas
i unidade Imaginária version versão do MATLAB
Exercícios:
„ Armazene os valores das seguintes variáveis:
a = 3.132
b = -23.004
c = 5*pi
d = (3, 5.4, 7.43)t
e = (-2.234, 0, pi/2)t
5 34 87
B 32 4.65 74
0 13 43
⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥−⎣ ⎦
9.81
f 0
1
−⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
0.32 2.5 pi 2
A 1e2 4 12
9 51 24
+⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
Exercícios:
„ Verifique os seguintes resultados:
a) a + b + eps
b) c – b * (a / b)
c) d – e
d) e’ + 2 * f
e) f * B
f) A * B
--19.872019.8720
12.576012.5760
[5.2340 5.4000 5.8592][5.2340 5.4000 5.8592]
-24.854
0
3.5708
⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−
−
5095.05840.07830.0
7205.03906.07396.0
5450.06696.08108.0
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−−
−−−
0825.01933.01288.0
0006.00203.00055.0
7156.07442.10128.1
Outras funções
exp exponencial poly polinômio característico
log logaritmo natural det determinante
log10 logaritmo base 10 abs módulo
inv inverte matriz sqrt raiz quadrada
max máximo valor real parte real de número complexo
min mínimo valor imag parte imag. de núm. complexo
mean média aritmética conj conj. dos núm. complexos
std desvio padrão round arredonda num.
Polinômios no MATLAB
„ Polinômios no MATLAB são manipulados como 
vetores. 
„ Os coeficientes de um polinômio são armazenados 
como elementos um vetor linha, começando pelo 
coeficiente do termo de maior grau.
„ Exemplo:
>> p = [1 10 -29];
3 2( ) 10 29= + −p x x x
Funções relacionadas a polinômios
roots acha raízes polyder acha derivada
deconv divide conv multiplica
polyval avalia polinômio polyfit ajusta curva
Exemplos com funções 
de polinômios
3 210 2 29= +− −p x x x >> roots(p)
ans =
-9.9064
-1.7584
1.6648
>> p = [1 10 -2 -29] 
p = 
1 10 -2 -29
>> polyder(p)
ans = 
3 20 -2
Operadores relacionais
Símbolo Operador
== igual
~= diferente
> maior
< menor
>= maior ou igual
<= menor ou igual
Operadores lógicos
Símbolo Operador
& e
| ou
~ não
xor ou exclusivo
Exemplos com operadores 
lógicos e relacionais
>> 2 + 2 == 4
ans =
1 
>> a = [1 2 3; 4 5 6]
ans = 
1 2 3
4 5 6
>> a >= 4
>> A = [1 2; 3 4]; B = 2*ones(2);
>> A==B
ans =
0 1
0 0
>> 10 > 100
ans = 
0
ans = 
0 0 0
1 1 1
Exemplos com operadores 
lógicos e relacionais
>> x = [ 1 0; 0 1]; y = [ 1 1; 0 0];
>> x & y
ans =
1 0
0 0
>> x | y
ans =
1 1
0 1
>> xor (x;y)
ans =
0 1
0 1
Programação em MATLAB
„ expressa problemas mais extensos;
„ agiliza os comandos mais digitados;
„ é uma linguagem interpretada;
„ pode ser criada a partir de qualquer editor de texto;
„ apresenta formato livre como C, Fortran ou outras 
linguagens.
Controladores de fluxo
„ if : cria caminhos alternativo no programa
if expressão 1
instruções
elseif expressão 2
instruções
else
instruções
end
Controladores de fluxo
„ Exemplo com if
x=rand(1); y=rand(1);
if x < y
temp = y
y = x
x = temp 
end
Resposta:
temp =
6
y =
3
x =
6
Controladores de fluxo
„ Exemplo com if :
x=rand(1); y=rand(1);
if x < y
temp = y;
y = x;
x = temp; 
else
disp('x eh maior que y')
x, y
end
Resposta:
ans =
1
x eh maior que y
x =
0.8386
y =
0.2584
Resposta:
temp =
0.7439
y =
0.5744
x =
0.7439
Controladores de fluxo
„ for : permite que um comando ou um grupo de 
comandos se repitam
for variável = expressão
instruções
end
Controladores de fluxo
„ Exemplos com for : 
for i = 1:5
x(i) = 2*i;
end
x
Resposta:
x =
2 4 6 8 10
Controladores de fluxo
n=2; a = eye(n);
for j = 2:n
for i = 1:j-1 % incremento=1
a(i,j) = i/j;
a(j,i) = i/j;
end
end
disp(a) Resposta:
1.0000 0.5000
0.5000 1.0000
Controladores de fluxo
„ while : permite que um ou mais comandos sejam 
repetidos enquanto a expressão de controle for 
verdadeira
while (expressão de controle)
instruções
end
Controladores de fluxo
„ exemplo com while
i=0;
while ( sqrt(i) < 5 ) 
i = i+1;
end
sqrt(i)
Resposta:
i =
1 2 3 4
Funções auxiliares no 
controle de fluxo
„ input – recebe dados através do teclado, que podem 
ser ou não armazenados em uma variável
„ break – encerra um laço mais interno controlado pelo 
comando for 
„ pause – pára a execução do programa até que uma 
nova tecla seja pressionada
Arquivos .m
„ podemos criar novas funções ou scripts
„ MATLAB possui um editor próprio e um debugger
„ comentários começam por %
„ ao se criar uma função ou script ela dever ser 
definida no path
Arquivos .m
„ scripts : executam os argumentos diretamente, 
automatizando uma série de comandos
„ função : argumentos podem ser passados para a 
função, havendo uma manipulação de variáveis
function [res1, res2, ...] = nome_da_função (arg1,arg2, ...) 
% comentário para help
lista de procedimentos da função
return
Exemplo de função.m
% Exibe o gráfico de y = ax^2 + bx + c em [-5,5]
clear
aux = 's';
while aux == 's’
clc
a=input('a ='); b=input('b ='); c=input('c =');
x = -5:0.1:5;
y = a*x.^2 + b*x + c;
plot(y)
pause
figure(1)
pause
close
aux=input('Exibir outro grafico? (s/n) ==> ','s');
end
Exemplo de função.m
„ arquivo: fun.m
%..............................
% avalia a seguinte função 
% f(x)=x*x-cos(x)
%..............................
function f = fun(x)
f = x*x-cos(x);
return
Exemplo de função.m
%..........................
% Aplica o método da 
% bisseção para encontrar 
% um zero de 
% f(x)= x*x - cos(x)
% num intervalo [a,b], tal que f(a)*f(b) < 0.
%..........................
k = 0; % conta núm. de iterações
eps = 0.01;
while( abs(b-a) >= 2*eps ) 
alfa = (a + b)/2;
if ( fun(alfa) > 0) 
b = alfa;
else
a = alfa;
end
k = k+1;
end
display('A raiz da função é: ' );
(a+b)/2
display(‘número de iterações: ');
k
return
„ zero.m
function z = zero(a,b)
% testa intervalo
if ( fun(a)*fun(b) >= 0 ) 
display('O intervalo de .. 
.. busca da raiz está errado.')
stop
end
Gráficos no MATLAB
„ existem muitas funções para gerar gráficos 2D e 3D
„ os gráficos podem ser armazenados em arquivos, 
coloridos ou em preto e branco
Gráficos 2D
„ Pode-se desenhar gráficos simples como y = f(x).
„ Dados os vetores x e y, o gráfico é construído ligando-se 
os pontos (x(i),y(i)).
>> x = [1.5 2.2 3.1 4.6 5.7 6.3 9.4];
>> y = [2.3 3.9 4.3 7.2 4.5 3.8 1.1];
>> plot(x,y)
1 2 3 4 5 6 7 8 9 10
1
2
3
4
5
6
7
8
Características dos Gráficos
cores das linhas
r vermelho
g verde
b azul
w branco
k preto
y amarelo
m roxo pontilhada:
estrela*
cruz+
xx
circuloo
ponto.
tracejada--
tipos de linhas
Gráficos no MATLAB
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
5
10
15
20
25
„ Exemplo de gráfico y = f(x)
» x = [0:5];
» y = x.^2;
» plot(x,y,‘ r : ’)
x y = x²
0 0
1 1
2 4
3 9
4 16
5 25
Gráficos 3D
plot3 curvas 3D
surf,surfc,surfl superfícies 3D
mesh,meshc,meshz linhas em perspectiva 3D
contour curvas de nível
Gráficos no MATLAB
„ Exemplo de um gráfico 3D
>> x = 0:pi/50:10*pi;
>> plot3(sin(x),cos(x),x)
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
5
10
15
20
25
30
35
Gráficos no MATLAB
> t = 0:pi/50:10*pi;
> plot3(sin(t),cos(t), t);
> [X,Y] =meshgrid (-8:0.5:8,-8:0.5:8);
> r =sqrt(X.^2+Y.^2)+eps;
> Z = sin(r)./r;
> subplot(221)
> mesh(X,Y,Z);
> subplot(222)
> surf(X,Y,Z);
> subplot(223)
> meshc(X,Y,Z)
> subplot(224)
> contour(X,Y,Z)
Animação de gráficos
surf(peaks)
axis vis3d
for i=1:36
camorbit(10,0,'camera')
drawnow
end
Animação de gráficos
surf(peaks)
axis vis3d
for i=1:36
camorbit(10,2,'data',[0 1 0])
drawnow
end
Animação de gráficos
surf(peaks)
axis vis3d off
for x = -200:5:200
campos([x,5,10])
drawnow
end
Animação de gráficos
surf(peaks); 
axis vis3d
xp = linspace(-150,40,50);
xt = linspace(25,50,50);
for i=1:50
campos([xp(i),25,5]);
camtarget([xt(i),30,0])
drawnow
end
Help MATLAB on-line
„ http://www.mathworks.com/access/helpdesk/help/tec
hdoc/ref/ref.shtml
„ http://www.mathworks.com/access/helpdesk/help/tec
hdoc/matlab.shtml
	Introdução ao MATLABLeandro GazoniFernanda Raupp
	O que é o MATLAB ?
	Evolução do MATLAB
	Variáveis no MATLAB
	Representação de variáveis
	Características na declaração de uma variável
	Exemplos de declarações de variáveis
	Exemplos de declarações de variáveis
	Operadores matemáticos
	Exemplos com operadores matemáticos
	Operadores Matemáticos Ponto-a-Ponto
	Exemplos de operadores matemáticos ponto-a-ponto
	Característica na declaração de uma variável
	Característica na declaração de uma variável
	Manipulação de matrizes
	Manipulação de matrizes
	Manipulação de matrizes
	Manipulação de matrizes
	Manipulação de matrizes
	Funções especiais para geração de matrizes
	Exemplos de funções especiais para geração de matrizes
	Operadores matemáticos
	Variáveis e Comandos Permanentes
	Exercícios:
	Exercícios:
	Outras funções
	Polinômios no MATLAB
	Funções relacionadas a polinômios
	Exemplos com funções de polinômios
	Operadores relacionais
	Operadores lógicos
	Exemplos com operadores lógicos e relacionais
	Exemplos com operadores lógicos e relacionais
	Programaçãoem MATLAB
	Controladores de fluxo
	Controladores de fluxo
	Controladores de fluxo
	Controladores de fluxo
	Controladores de fluxo
	Controladores de fluxo
	Controladores de fluxo
	Controladores de fluxo
	Funções auxiliares no controle de fluxo
	Arquivos .m
	Arquivos .m
	Exemplo de função.m
	Exemplo de função.m
	Exemplo de função.m
	Gráficos no MATLAB
	Gráficos 2D
	Características dos Gráficos
	Gráficos no MATLAB
	Gráficos 3D
	Gráficos no MATLAB
	Gráficos no MATLAB
	Animação de gráficos
	Animação de gráficos
	Animação de gráficos
	Animação de gráficos
	Help MATLAB on-line

Outros materiais