II Jornada de Cursos do PET de
Engenharia Mecânica da UFCG (PETMEC-CG)
Introdução ao
Prof.:
®
MATLAB
José Eustáquio Rangel de Queiroz
I
Considerações Iniciais I

MATLAB® (Matrix Laboratory) I
Origem

Final da década de 70, na Stanford
University (Cleve Moler).
Foco

Cursos de teoria matricial, álgebra linear
e análise numérica.
Algoritmos-bases

Bibliotecas EISPAC e LINPACK em código
FORTRAN.
2
Considerações Iniciais II

MATLAB® II
Propósito inicial

Utilização de pacotes sem a necessidade
de se escrever códigos em FORTRAN.
Propósito atual

Linguagem de programação iterativa
para computação técnica e científica
comercializada
pela
MathWorks
(www.mathworks.com).
3
Considerações Iniciais III

MATLAB® III
Linguagem de alto desempenho para
computação técnica
Computação, visualização e programação
em um ambiente de uso fácil
4
Considerações Iniciais IV

MATLAB® IV
Aplicações típicas

Computação e análise numérica.

Desenvolvimento de algoritmos.

Modelagem, simulação e prototipagem.

Processamento, análise e visualização de
dados.

Representação gráfica científica e de
engenharia.

Desenvolvimento de aplicações, incluindo
Interfaces Gráficas com o Usuário (GUI ).
5
Considerações Iniciais V

MATLAB® V
Características I

Processamento matricial.

Visualização gráfica.

Facilidade de uso.

Linguagem matemática familiar.

Pacotes e caixas de ferramentas para
aplicações específicas.
6
Considerações Iniciais VI

MATLAB® VI
Características II

Possibilidade de tratamento de variáveis
numérica e simbolicamente.

Uso difundido em cursos de graduação e
pós-graduação
de
Engenharia,
Matemática e Física.
7
Considerações Iniciais VII

MATLAB® VII
Janela multifacetada de abertura
Comandos
Espaço
de Trabalho
Pasta
Atual
Histórico
de Comandos
Detalhes
8
Considerações Iniciais VIII

MATLAB® VIII
Inicialização I

Seleção da opção “MATLAB”, na árvore de
inicialização ou do ícone do MATLAB, no
desktop do Windows.

Janela principal  Janela de Comandos

Centro da janela multifacetada.

Digitação de comandos após o prompt de
comandos (»).
9
Considerações Iniciais IX

MATLAB® IX
Inicialização II

Janela do Diretório Atual

Localização
Parte superior à esquerda da janela de
Comandos.

Propósito
Exibição dos arquivos existentes na pasta
atual, na qual o MATLAB® busca inicialmente
arquivos e funções.
10
Considerações Iniciais X

MATLAB® X
Inicialização III

Janela do Espaço de Trabalho

Localização
Parte superior
Comandos.

à
direita
da
janela
de
Propósito
Exibição de todas as variáveis declaradas.
11
Considerações Iniciais XI

MATLAB® XI
Inicialização IV

Janela do Histórico de Comandos

Localização
Parte inferior
Comandos.

à
direita
da
janela
de
Propósito
Exibição de todos os
recentemente digitados.
comandos
mais
Reuso do comando pelo MATLAB®  Seleção
com duplo clique no comando desejado.
12
Considerações Iniciais XII

MATLAB® XII
Inicialização V

Janela de Detalhes

Localização
Parte inferior à esquerda da janela de
Comandos.

Propósito
Exibição de detalhes de um arquivo
selecionado na janela da Pasta Atual.
13
Considerações Iniciais XIII

MATLAB® XIII
Encerramento

Digitação do comando: » quit

Seleção da opção File  Exit MATLAB

Fechamento da janela multifacetada
(clique no botão
, situado no canto
superior direito da janela).
14
Considerações Iniciais XIV

MATLAB® XIV
Tipos de Dados
Array
Caractere
(e.g.,‘a’)
Numérico
Uint8
(inteiro sem
sinal, 8 bits)
Estrutura
Célula
(e.g., imagem.largura = 120
imagem.nome = ‘face1’
Double
(8 bytes)
15
Considerações Iniciais XV

Formatos de exibição de números I
16
Considerações Iniciais XVI

Formatos de exibição de números II
17
Considerações Iniciais XVII

Formatos de exibição de números III
Estilo
Resultado
Exemplo
short
(default)
4 dígitos após o ponto decimal [Para matrizes com
faixa extensa de valores, empregar shortG]
3.1416
long
Formato decimal fixo longo, com 15 dígitos após o
ponto decimal para valores double e 7 dígitos após o
ponto decimal para valores single
3.141592653589793
shortE
Notação científica curta, com 4 dígitos após o ponto
decimal
3.1416e+00
longE
Notação científica longa, com 15 dígitos após o ponto
decimal para valores double e 7 dígitos após o ponto
decimal para valores single
3.141592653589793e+00
shortG
Notação decimal fixa curta ou notação científica mais
compacta, com 5 dígitos
3.1416
longG
Notação decimal fixa longa ou notação científica mais
compacta, com 15 dígitos para valores double e 7
dígitos para valores single
3.14159265358979
shortEng
Notação curta para engenharia, com 4 dígitos após o
ponto decimal e um expoente múltiplo de 3
3.1416e+000
longEng
Notação curta para engenharia, com 15 dígitos
significativos e um expoente múltiplo de 3
3.14159265358979e+000
18
Considerações Iniciais XVIII

Formatos de exibição de números IV
19
Considerações Iniciais XIX

Formatos de exibição de números V
Estilo
Resultado
Exemplo
+
Formato Positivo/Negativo, com +, - e espaço em
branco exibidos para elementos positivos, negativos e
nulos
+
bank
Formato monetário, com 2 dígitos após o ponto
decimal
3.14
hex
Representação hexadecimal de um número binário
representado com precisão dupla
400921fb54442d18
rat
Razão de inteiros pequenos
355/113
Digitação do comando format no prompt

Retorno ao formato default, i.e., short
20
Considerações Iniciais XX

Formatos de exibição de números VI
(Ajuda
de
comando sobre formatos)
>> help format
linha
de
>> format short (5 algarismos)
>> format shortE (5
expoente)
algarismos
+
21
Considerações Iniciais XXI

Formatos de exibição de números VI
>> format long
(16 algarismos)
>> format longE (16
expoente)
algarismos
negativo
+
>> format +
nulo)
(Positivo,
ou
>> format rat
(Aproximação racional)
22
Considerações Iniciais XXII

Configurações de separadores
Ponto  Casas decimais
Vírgula  Algarismos inteiros


Todos os comandos devem ser digitados
em letras minúsculas
M-file Editor
Editor de arquivos do MATLAB, para a
digitação de programas
Seleção de File  New  M-File
23
Considerações Iniciais XXIII

Ajuda
Janela de Comandos
(Tópicos de ajuda)

>> help

>>helpdesk (doc) (Documentação)

Na versão 2014a, recebe-se a advertência
Warning: HELPDESK will be removed in a future
release. Use DOC instead.
> In helpdesk at 10

>>helpwin
(Ajuda online)

>>lookfor termo
(Busca contextual)
24
Escalares I

Tratamento de (quase) TUDO (default)
como arrays de vírgula flutuante de
precisão dupla
Suporte a variáveis tipadas (integer, float,
char, …)  Usualmente empregado somente
para aplicações específicas.
25
Escalares II

Variáveis I
» a = 1+2+3
»a=
6
» b = 4+5+6
»a=
15
» c = a+b
»c=
21
26
Escalares III

Variáveis II
» x = 1.5+2.03+3.456
»x=
6.9860
» y = 4.391+5.9+6.34
»a=
16.6310
» w = x+y
»w=
No
23.6170
são
MATLAB®, variáveis
introduzidas pela
atribuição de um valor.
27
Escalares IV

Variáveis III
» 3*c+c/5
Um comando não necessita
ser iniciado pela atribuição
<variável> =.
» ans =
67.2000
» exp(w)-17.8*c
» ans =
1.8061e+010
» sqrt(ans*ans + c^w)
» ans =
4.1061e+015
pode
ser
empregado como
uma variável.
ans
28
Escalares V

Variáveis IV
» a = 1+2+3
»a=
6
» a = 1+2+3;
»a
a=
6
29
Escalares VI

Variáveis V
Comando who

Listagem de variáveis
espaço de trabalho.

Exemplo
» who
Your variables are:
a ans b c d w x
presentes
no
y
30
Escalares VII

Variáveis VI
Comando whos

Listagem de variáveis presentes no
espaço de trabalho e algumas de suas
propriedades.

Exemplo
» whos
Name
Size
a
ans
b
c
1x1
1x1
1x1
1x1
Bytes Class
8
8
8
8
Attributes
double
double
double
double
31
Escalares VIII

Variáveis VII
Comandos com mais de uma uma linha

Terminação da linha com ... e Enter e
continuação na linha seguinte

Exemplo 01
» z = 1.458 + 2 + ...
1.009 + 3.98 + 4.768
z=
13.2150
32
Escalares IX

Variáveis VIII
Expressões matemáticas

NÃO se podem digitar
matemáticas literalmente.

expressões
Exemplo 02
»j=k+l
??? Undefined function or variable 'k'.
33
Escalares X

Variáveis IX
Operações padrão
Padrão
MATLAB®
a+b
a+b
a-b
a-b
ab
a*b
a
b
a/b
ab
a^b
As variáveis desta tabela devem
ser interpretadas como números.
34
Escalares XI

Variáveis X
Ordem das operações

Padrão  Potenciação, multiplicação e
divisão e, por fim, adição e subtração

Uso de parênteses (( )) para definir a
ordem dos cálculos

Exemplo: Cálculo de
>> 1/(exp(3)+1)
ans =
0.0474
1
exp( 3 )  1
35
Escalares XII

Variáveis XI
Interrupção de cálculos longos

Uso de Ctrl+c , após o que um novo
prompt aparecerá para a entrada de
novos comandos
36
Escalares XIII

Variáveis XII
Incompletude de comandos

Finalização de comandos incompletos ou
inválidos

Aparecimento de uma mensagem de erro,
seguida de um novo prompt.

Aparecimento de um cursor piscante, à
esquerda da linha, abaixo do comando
37
Escalares XIV

Variáveis XIII
Aparecimento de um cursor piscante à
esquerda da linha, abaixo do comando

Possibilidade de finalização do comando,
seguida de sua avaliação pelo MATLAB®

Possibilidade de interrupção do comando,
utilizando Ctrl+c , seguida do surgimento
de um novo prompt
38
Escalares XV

Variáveis XIV
Nomes

Inicialização com uma letra, seguida de
um número arbitrário de letras, números
ou símbolos, e.g., _ e -

Sensibilidade do MATLAB® a maiúsculas e
minúsculas (case sensitive)
39
Escalares XVI

Variáveis XV
Variáveis especiais II
Variável
Descrição
ans
Contém o resultado do último cálculo não atribuído a outra
variável.
eps
Variável utilizada internamente para o arredondamento de todos
os números, antes do armazenamento na memória do computador,
cujo valor é ≈2,2204.10-16 e representa a acurácia computacional
do MATLAB®.
i ou j
Número complexo i, com a propriedade i2=-1.
pi
Igual a 3,1415...
Inf
Corresponde ao resultado da divisão de 1 por 0, i.e., 1/0 = Inf.
NaN
Representação de Not a Number, entendido como um não número
pelo sistema e produzido por cálculos tais como 0/0 ou por valores
que o sistema não entende como números.
40
Escalares XVII

Variáveis XVI
Variáveis especiais II

Possibilidade de atribuição de valores às
variáveis internas do MATLAB® 
Impacto nos cálculos que envolvam tais
variáveis.

Remoção de valores atribuídos a
variáveis internas, por acidente, a partir
do comando clear ou do navegador do
espaço de trabalho.
EVITAR atribuir valores
às variáveis internas do
MATLAB®.
41
Escalares XVIII

Exercícios I
Solucionar os exercícios 1.1 a 1.7 da URL
http://www.imc.tue.nl/IMC-main/IMCmain-node78.html
42
Vetores e Matrizes I

Geração de vetores no
Caractere dois pontos (:).
MATLAB® 
>> x = 1:5 (Geração de um vetor linha
contendo os números de 1 a 5, com
incremento unitário)
x=
1
2
3
4
5
43
Vetores e Matrizes II

Matriz diagonal ou diagonal da matriz I
diag(x)  Geração de uma matriz com os
elementos de um vetor x em sua diagonal
principal.
>> diag(x)
ans =
1
0
0
0
0
0
2
0
0
0
0
0
3
0
0
0
0
0
4
0
0
0
0
0
5
44
Vetores e Matrizes III

Matriz diagonal ou diagonal da matriz II
diag(X)  Geração de um vetor coluna
com os elementos da diagonal principal
de uma matrix X.
>> X=[3 11 5; 4 1 -3; 6 2 1];
>> diag(X)
ans =
3
1
1
45
Vetores e Matrizes IV

Uso de índices
Comando
Resultado
A(i,j)
Apresenta o elemento da i-ésima linha e jésima coluna do array A.
A(i,:)
Apresenta a j-ésima linha do array A.
A(:,j)
Apresenta a j-ésima coluna do array A.
A(i,:)=[a;b;c]
Altera os valores da i-ésima linha do array A
para a, b e c, se e somente se o array for i x n e
n ? 2.
A(:,j)=[d;e;f]
Altera os valores da j-ésima coluna do array A
para d, e e f, se e somente se o array for n x j e
n ? 2.
A(i,[k,l])
Apresenta um array constituído do k-ésimo e lésimo elementos da i-ésima linha do array A.
[ A, B ]
Concatena os arrays A e B, se e somente se
tiverem o mesmo número de linhas ou de
colunas.
46
Vetores e Matrizes V

Operações em arrays I
Operações
(tais
como
adição
ou
subtração) aplicadas aos elementos
correspondentes de arrays com a mesma
forma.
>> A = [1,2,3]; B = [6,5,4];
>> A+B
ans =
7 7 7
47
Vetores e Matrizes VI

Operações em arrays II
>> A = [1,2,3]; B = [6,5,4];
>> A-B
ans =
-5
-3
-1
>> A*B
??? Error using ==> mtimes
Inner matrix dimensions must agree.
48
Vetores e Matrizes VII

Operações em arrays III
>> A = [1,2,3]; B = [6,5,4];
>> A.*B
ans =
6
10
12
No MATLAB®, a multiplicação (*), a
divisão (/) e a potenciação (^) DEVEM
ser indicadas por um ponto (.) antes do
sinal da operação, a fim de que a
operação seja executada elemento a
elemento.
49
Vetores e Matrizes VIII

Operações em arrays IV
>> A = [1,2,3]; B = [6,5,4];
>> A./B
ans =
0.1667
0.4000
0.7500
50
Vetores e Matrizes IX

Operações em arrays V
>> A = [1,2,3]; B = [6,5,4];
>> A.^B
ans =
1
32
81
51
Vetores e Matrizes X

Operações em arrays VI
>> A = [1,2,3];
>> B = [6,
5,
4];
>> A*B
ans =
28
52
Vetores e Matrizes XI

Operações com arrays – Lembretes I
Aplicação a elementos correspondentes
de 2 arrays de mesma forma
Computação elemento a elemento
Adição e subtração de arrays são
automaticamente interpretadas
Necessidade da utilização do ponto
decimal (.) como parte da notação nas
demais operações
53
Vetores e Matrizes XII

Operações com arrays – Lembretes II
Exemplos I
>> a = [1.2,2.7,3.5]; b = [6.09,5.48,4.18];
>> a+b
ans =
7.2900 8.1800 7.6800
>> a-b
ans =
-4.8900 -2.7800 -0.6800
54
Vetores e Matrizes XIII

Operações com arrays – Lembretes III
Exemplos II
>> a.*b
ans =
7.3080 14.7960 14.6300
>> a./b
ans =
0.1970 0.4927 0.8373
>> a.\b
ans =
5.0750 2.0296 1.1943
55
Vetores e Matrizes XIV

Operações com arrays – Lembretes IV
Exemplos III
>> 2.718.^a
ans =
3.3197 14.8756 33.1034
>> [2 2 2].^b
ans =
68.1197 44.6318 18.1261
>> a.^b
ans =
3.0354 231.1391 188.0202
56
Vetores e Matrizes XV

Geração de um array contendo valores de
uma função I
Seja a função
f ( x )  sin( 5 x )e
x/5
e que se deseja atribuir o vetor linha
 f (0)
f ( 0,05 )
f ( 0,1 ) 
f ( 2,95 )
f ( 3 )
à variavel y
57
Vetores e Matrizes XVI

Geração de um array contendo valores de
uma função II
Geração do gráfico no MATLAB®
>> ezplot (‘sin(5*x)*exp(x/5)’)
>> hold on
>> grid
58
Vetores e Matrizes XVII

Geração de um array contendo valores de
uma função III
Gráfico traçado a
partir da função
ezplot()
(sem
a
grade)
59
Vetores e Matrizes XVIII

Geração de um array contendo valores de
uma função IV
Gráfico traçado a
partir da função
ezplot()
(com
a
grade)
60
Vetores e Matrizes XIX

Geração de um array contendo valores de
uma função V
>> x=0:0.05:3
..
.
61
Vetores e Matrizes XX

Geração de um array contendo valores de
uma função VI
>> y=sin(5*x)*exp(x/5)
Error using *
Inner matrix dimensions must agree.
CUIDADO
com
o
emprego da função
sin(), assim como com
o emprego do . !!!
62
Vetores e Matrizes XXI

Geração de um array contendo valores de
uma função VII
>> y=sin(5*x).*exp(x./5.)
..
.
63
Vetores e Matrizes XXII

Construção de tabelas I
Seja o vetor coluna
>> v = (0:9)';
>> pows = [v 2.^v v.^(1/2)]
64
Vetores e Matrizes XXII

Construção de tabelas II
Seja a sequência de comandos a seguir
>> format long g
>> x = (1:0.05:1.3)';
lognat = [x log(x)]
65
Vetores e Matrizes XXIII

Construção de tabelas II
Seja a sequência de comandos a seguir
>> format long g
>> x = (1:0.05:1.3)';
lognat = [x log(x)]
66
Download

Introdução ao MATLAB - PARTE I