Vous êtes sur la page 1sur 66

III Jornada de Cursos do PET de

Engenharia Mecânica da UFCG (PETMEC-CG)

Introdução ao MATLAB ® I
Prof.: José Eustáquio Rangel de Queiroz
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
Espaço
de Trabalho
Comandos

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 à direita da janela de
Comandos.

 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 à direita da janela de
Comandos.

 Propósito
Exibição de todos os comandos mais
recentemente digitados.
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 Numérico Estrutura Célula


(e.g.,‘a’) (e.g., imagem.largura = 120
imagem.nome = ‘face1’

Uint8 Double
(inteiro sem (8 bytes)
sinal, 8 bits)

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 4 dígitos após o ponto decimal [Para matrizes com
faixa extensa de valores, empregar shortG] 3.1416
(default)
Formato decimal fixo longo, com 15 dígitos após o
long ponto decimal para valores double e 7 dígitos após o 3.141592653589793
ponto decimal para valores single
Notação científica curta, com 4 dígitos após o ponto
shortE 3.1416e+00
decimal
Notação científica longa, com 15 dígitos após o ponto
longE decimal para valores double e 7 dígitos após o ponto 3.141592653589793e+00
decimal para valores single
Notação decimal fixa curta ou notação científica mais
shortG 3.1416
compacta, com 5 dígitos
Notação decimal fixa longa ou notação científica mais
longG compacta, com 15 dígitos para valores double e 7 3.14159265358979
dígitos para valores single
Notação curta para engenharia, com 4 dígitos após o
shortEng 3.1416e+000
ponto decimal e um expoente múltiplo de 3
longEng Notação curta para engenharia, com 15 dígitos
3.14159265358979e+000
significativos e um expoente múltiplo de 3
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
Formato monetário, com 2 dígitos após o ponto
bank 3.14
decimal
Representação hexadecimal de um número binário
hex 400921fb54442d18
representado com precisão dupla
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
>> help format (Ajuda de linha de
comando sobre formatos)
>> format short (5 algarismos)
>> format shortE (5 algarismos +
expoente)

21
Considerações Iniciais XXI
 Formatos de exibição de números VI
>> format long (16 algarismos)
>> format longE (16 algarismos +
expoente)
>> format + (Positivo, negativo ou
nulo)
>> 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
 >> help (Tópicos de ajuda)
 >>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 MATLAB®, variáveis
23.6170 são 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
» ans = <variável> =.
67.2000
» exp(w)-17.8*c
» ans =
1.8061e+010
» sqrt(ans*ans + c^w)
» ans = ans pode ser
empregado como
4.1061e+015 uma variável.

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 presentes no
espaço de trabalho.
 Exemplo
» who
Your variables are:
a ans b c d w x 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 Bytes Class Attributes
a 1x1 8 double
ans 1x1 8 double
b 1x1 8 double
c 1x1 8 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 expressões
matemáticas literalmente.
 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
a/b
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
1
 Exemplo: Cálculo de
exp( 3 )  1
>> 1/(exp(3)+1)
ans =
0.0474

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
Contém o resultado do último cálculo não atribuído a outra
ans variável.
Variável utilizada internamente para o arredondamento de todos
os números, antes do armazenamento na memória do computador,
eps 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.
Representação de Not a Number, entendido como um não número
NaN 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/IMC-
main-node78.html

42
Vetores e Matrizes I
 Geração de vetores no MATLAB® 
Caractere dois pontos (:).
>> 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
Apresenta o elemento da i-ésima linha e j-
A(i,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.
Altera os valores da i-ésima linha do array A
A(i,:)=[a;b;c] para a, b e c, se e somente se o array for i x n e
n ? 2.
Altera os valores da j-ésima coluna do array A
A(:,j)=[d;e;f] para d, e e f, se e somente se o array for n x j e
n ? 2.
Apresenta um array constituído do k-ésimo e l-
A(i,[k,l])
ésimo elementos da i-ésima linha do array A.
Concatena os arrays A e B, se e somente se
[ A, B ] 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

Vous aimerez peut-être aussi