Upload
internet
View
113
Download
2
Embed Size (px)
Citation preview
Prof.: José Eustáquio Rangel de Queiroz
II Jornada de Cursos do PET deII Jornada de Cursos do PET deEngenharia Mecânica da UFCG Engenharia Mecânica da UFCG
(PETMEC-CG)(PETMEC-CG)
Introdução ao MATLAB®
IIntrodução ao MATLAB®
I
2
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.
Considerações Iniciais I
3
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).
Considerações Iniciais II
4
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
5
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 ).
Considerações Iniciais IV
6
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.
Considerações Iniciais V
7
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.
Considerações Iniciais VI
8
MATLAB® VII
Janela multifacetada de abertura
Considerações Iniciais VII
ComandoComandoss
DetalhesDetalhes
PastaPastaAtualAtual
EspaçoEspaçode Trabalhode Trabalho
HistóricoHistóricode de
ComandosComandos
9
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 ComandosComandos
Centro da janela multifacetada.
Digitação de comandos após o prompt de comandos (»»).
Considerações Iniciais VIII
10
MATLAB® IX
Inicialização II
Janela do Diretório AtualDiretório Atual
Localização
Parte superior à esquerda da janela de ComandosComandos.
Propósito
Exibição dos arquivos existentes na pasta atual, na qual o MATLAB® busca inicialmente arquivos e funções.
Considerações Iniciais IX
11
MATLAB® X
Inicialização III
Janela do Espaço de TrabalhoEspaço de Trabalho
Localização
Parte superior à direita da janela de ComandosComandos.
Propósito
Exibição de todas as variáveis declaradas.
Considerações Iniciais X
12
MATLAB® XI
Inicialização IV
Janela do Histórico de ComandosHistórico de Comandos
Localização
Parte inferior à direita da janela de ComandosComandos.
PropósitoExibição de todos os comandos mais recentemente digitados.
Reuso do comando pelo MATLAB® Seleção com duplo clique no comando desejado.
Considerações Iniciais XI
13
MATLAB® XII
Inicialização V
Janela de DetalhesDetalhes
Localização
Parte inferior à esquerda da janela de ComandosComandos.
Propósito
Exibição de detalhes de um arquivo selecionado na janela da Pasta AtualPasta Atual.
Considerações Iniciais XII
14
MATLAB® XIII
Encerramento
Digitação do comando: » quit» quit
Seleção da opção FileFile Exit MATLABExit MATLAB
Fechamento da janela multifacetada (clique no botão , situado no canto superior direito da janela).
Considerações Iniciais XIII
15
MATLAB® XIV
Tipos de Dados
Considerações Iniciais XIV
CaractereCaractere NuméricoNumérico EstruturaEstrutura CélulaCélula(e.g.,‘a’) (e.g., imagem.largura = 120
imagem.nome = ‘face1’
Uint8(inteiro sem sinal, 8 bits)
Double(8 bytes)
ArrayArray
16
Formatos de exibição de números I
Considerações Iniciais XV
17
Formatos de exibição de números II
Considerações Iniciais XVI
18
Considerações Iniciais XVII
Estilo Estilo ResultadoResultado ExemploExemplo
short short (default)
4 dígitos após o ponto decimal [Para matrizes com faixa extensa de valores, empregar shortG]
3.14163.1416
longlongFormato decimal fixo longo, com 15 dígitos após o ponto decimal para valores doubledouble e 7 dígitos após o ponto decimal para valores singlesingle
3.1415926535897933.141592653589793
shortE shortE Notação científica curtacurta, com 4 dígitos após o ponto decimal 3.1416e+003.1416e+00
longE longE Notação científica longalonga, com 15 dígitos após o ponto decimal para valores doubledouble e 7 dígitos após o ponto decimal para valores singlesingle
3.141592653589793e3.141592653589793e+00+00
shortGshortG Notação decimal fixa curta ou notação científica mais compacta, com 5 dígitos 3.14163.1416
longGlongGNotação decimal fixa longa ou notação científica mais compacta, com 15 dígitos para valores doubledouble e 7 dígitos para valores singlesingle
3.141592653589793.14159265358979
shortEnshortEngg
Notação curta para engenharia, com 4 dígitos após o ponto decimal e um expoente múltiplo de 3
3.1416e+0003.1416e+000
longEnglongEng Notação curta para engenharia, com 15 dígitos significativos e um expoente múltiplo de 3
3.14159265358979e+3.14159265358979e+000000
Formatos de exibição de números III
19
Considerações Iniciais XVIII
Formatos de exibição de números IV
20
Formatos de exibição de números V
Digitação do comando format no prompt Retorno ao formato default, i.e., shortshort
Considerações Iniciais XIX
Estilo Estilo ResultadoResultado ExemploExemplo
++Formato Positivo/NegativoPositivo/Negativo, com ++, -- e espaço espaço em brancoem branco exibidos para elementos positivos, negativos e nulos
++
bankbank Formato monetário, com 2 dígitos após o ponto decimal 3.143.14
hexhex Representação hexadecimal de um número binário representado com precisão dupla 400921fb54442d18400921fb54442d18
ratrat Razão de inteiros pequenos 355/113355/113
21
Formatos de exibição de números VI
>> >> help help formatformat (Ajuda de linha de comando sobre formatos)
>> format short>> format short (5 algarismos)
>> format shortE (5 algarismos + expoente)
Considerações Iniciais XX
22
Formatos de exibição de números VI
>> >> format longformat long (16 algarismos)
>> format longE>> format longE (16 algarismos + expoente)
>> format +>> format + (Positivo, negativo ou nulo)
>> format rat (Aproximação racional)
Considerações Iniciais XXI
23
Configurações de separadores
PontoPonto Casas decimais
VírgulaVírgula Algarismos inteiros
TodosTodos os comandos devem ser digitados em letras minúsculasminúsculas
M-file EditorM-file Editor Editor de arquivos do MATLAB, para a
digitação de programas
Seleção de FileFile NewNew M-FileM-File
Considerações Iniciais XXII
24
Ajuda
Janela de Comandos
>> help>> help (Tópicos de ajuda)
>>helpdesk>>helpdesk (docdoc) (Documentação) Na versão 2014a2014a, recebe-se a advertência
Warning: HELPDESK will be removed in a future Warning: HELPDESK will be removed in a future release. Use DOC instead. release. Use DOC instead. > In > In helpdesk at 10helpdesk at 10
>>helpwin>>helpwin (Ajuda online)
>>lookfor >>lookfor termotermo (Busca contextual)
Considerações Iniciais XXIII
25
Tratamento de (quase) TUDOTUDO (default) como arrays de vírgula flutuante de precisão dupla
Suporte a variáveis titippadasadas (integer, float, char, …) Usualmente empregado somentesomente para aplicações específicas.
Escalares I
26
Variáveis I
» a = 1+2+3» a = 66» b = 4+5+6» a = 1515» c = a+b» c = 2121
Escalares II
27
Variáveis II
» x = 1.5+2.03+3.456» x = 6.98606.9860» y = 4.391+5.9+6.34» a = 16.631016.6310» w = x+y» w = 23.617023.6170
Escalares III
No MATLAB®, variáveisvariáveis são introduzidas pela atribuição de um valoratribuição de um valor.
No MATLAB®, variáveisvariáveis são introduzidas pela atribuição de um valoratribuição de um valor.
28
Variáveis III
» 3*c+c/5» ans = 67.200067.2000» exp(w)-17.8*c» ans = 1.8061e+0101.8061e+010» sqrt(ans*ans + c^w)
» ans = 4.1061e+0154.1061e+015
Escalares IV
Um comando Um comando nãonão necessita necessita ser iniciado pela atribuição ser iniciado pela atribuição <<variávelvariável> > ==. .
Um comando Um comando nãonão necessita necessita ser iniciado pela atribuição ser iniciado pela atribuição <<variávelvariável> > ==. .
ansans pode ser empregado como uma variávelvariável.
ansans pode ser empregado como uma variávelvariável.
29
Variáveis IV
» a = 1+2+3» a = 6» a = 1+2+3;;» aa = 66
Escalares V
30
Variáveis V
Comando who
Listagem de variáveis presentes no espaço de trabalho.
Exemplo
» whowhoYour variables are:a ans b c d w x ya ans b c d w x y
Escalares VI
31
Variáveis VI Comando whos
Listagem de variáveis presentes no espaço de trabalho e algumas de suas propriedades.
Exemplo
» whoswhosName Size Bytes Class Attributes
a 1x1 8 double ans 1x1 8 double b 1x1 8 double c 1x1 8 double
Escalares VII
32
Variáveis VII
Comandos comcom mais de uma mais de uma uma linha
Terminação da linha com ...... e EnterEnter e continuação na linha seguinte
Exemplo 0101
» z = 1.458 + 2 + ... 1.009 + 3.98 + 4.768
z = 13.215013.2150
Escalares VIII
33
Variáveis VIII
Expressões matemáticas
NÃONÃO se podem digitar expressões matemáticas literalmente.
Exemplo 0202
» j = k + l??? Undefined function or variable 'k'.??? Undefined function or variable 'k'.
Escalares IX
34
Variáveis IX
Operações padrão
Escalares X
a^b
a/ b
a* bab
a-ba-b
a+ba+b
MATLAB®Padrão
a^b
a/ b
a* bab
a-ba-b
a+ba+b
MATLAB®Padrão
ba
ba
As variáveisvariáveis desta tabela devem ser interpretadas como númerosnúmeros.As variáveisvariáveis desta tabela devem ser interpretadas como númerosnúmeros.
35
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.04740.0474
Escalares XI
1)3exp(1
36
Variáveis XI
Interrupção de cálculos longoslongos
Uso de Ctrl+cCtrl+c , após o que um novo prompt aparecerá para a entrada de novos comandos
Escalares XII
37
Variáveis XII
Incompletude de comandos
Finalização de comandos Finalização de comandos incompletosincompletos ou ou inválidosinválidos
Aparecimento de uma Aparecimento de uma mensamensaggem de em de erroerro, seguida de um novo , seguida de um novo promptprompt..
Aparecimento de um Aparecimento de um cursor cursor ppiscanteiscante, , à esquerda da linha, abaixo do à esquerda da linha, abaixo do comandocomando
Escalares XIII
38
Variáveis XIII
Aparecimento de um cursor piscante Aparecimento de um cursor piscante à esquerda da linha, abaixo do à esquerda da linha, abaixo do comandocomando
Possibilidade de finalização do Possibilidade de finalização do comando, seguida de sua avaliação comando, seguida de sua avaliação pelo MATLABpelo MATLAB®®
Possibilidade de interrupção do Possibilidade de interrupção do comando, utilizando comando, utilizando Ctrl+cCtrl+c , seguida , seguida do surgimento de um novo do surgimento de um novo promptprompt
Escalares XIV
39
Variáveis XIV
NomesNomes
Inicialização com uma letra, seguida Inicialização com uma letra, seguida de um número de um número arbitrário de letras, de letras, números ou símbolos, e.g., números ou símbolos, e.g., _ e e --
Sensibilidade do MATLABSensibilidade do MATLAB®® a a maiúsculas e minúsculas (maiúsculas e minúsculas (case case sensitivesensitive))
Escalares XV
40
Variáveis XV
Variáveis especiais IIVariáveis especiais II
Variável Descrição
ansans Contém o resultado do último cálculo não atribuído a outra variável.
epseps
Variável utilizada internamente para o arredondamento de todos os números, antes do armazenamento na memória do computador, cujo valor é ≈≈2,2204.102,2204.10-16-16 e representa a acurácia computacional do MATLAB®.
ii ou jj Número complexo ii, com a propriedade ii22=-1=-1.
pipi Igual a 3,1415...3,1415...
InfInf Corresponde ao resultado da divisão de 1 por 0, i.e., 1/0 = InfInf.
NaNNaNRepresentação de Not a NumberNot a Number, entendido como um não não númeronúmero pelo sistema e produzido por cálculos tais como 0/0 ou por valores que o sistema não entende como números.
Escalares XVI
41
Variáveis XVI
Variáveis especiais IIVariáveis especiais II
Possibilidade de atribuição de Possibilidade de atribuição de valores às variáveis internas do valores às variáveis internas do MATLABMATLAB®® Impacto nos cálculos Impacto nos cálculos que envolvam tais variáveis. que envolvam tais variáveis.
Remoção de valores atribuídos a Remoção de valores atribuídos a variáveis internas, por acidente, a variáveis internas, por acidente, a partir do comando partir do comando clearclear ou do ou do navegador do espaço de trabalho. navegador do espaço de trabalho.
Escalares XVII
EVITAREVITAR atribuir valores às variáveis internas variáveis internas do MATLAB®®.
EVITAREVITAR atribuir valores às variáveis internas variáveis internas do MATLAB®®.
42
Exercícios IISolucionar os exercícios Solucionar os exercícios 1.11.1 a a 1.71.7 da da
URL URL http://www.imc.tue.nl/IMC-main/IMC-main-node78.html
Escalares XVIII
43
Geração de vetores no MATLAB® Caractere dois pontosdois pontos (::).
>> x = 1>> x = 1::55 (Geração de um vetor linha contendo os números de 1 a 5, com incremento unitário)
x = x =
1 2 3 4 51 2 3 4 5
Vetores e Matrizes I
44
Matriz diagonaldiagonal ou diagonaldiagonal da matriz I
diag(x) Geração de uma matriz com os elementos de um vetor xx em sua diagonal principal.
>> >> diag(x)diag(x)
ans =ans =
11 0 0 0 0 0 0 0 0 0 0 22 0 0 0 0 0 0 0 0 0 0 33 0 0 0 0 0 0 0 0 0 0 44 0 0 0 0 0 0 0 0 0 0 55
Vetores e Matrizes II
45
Matriz diagonaldiagonal ou diagonaldiagonal da matriz II
diag(X) Geração de um vetor coluna com os elementos da diagonal principal de uma matrix XX.
>> X=[>> X=[33 11 5; 4 11 5; 4 11 -3; 6 2 -3; 6 2 11];];>> >> diag(X)diag(X)
ans =ans =
33 11 11
Vetores e Matrizes III
46
Vetores e Matrizes IV
Uso de índicesíndicesComando Resultado
AA((ii,,jj)) Apresenta o elemento da ii-ésima linha e jj-ésima coluna do array AA.
AA((ii,,::)) Apresenta a jj-ésima linha do array AA.
AA((::,,jj)) Apresenta a jj-ésima coluna do array AA.
AA((ii,,::))==[[aa;;bb;;cc]] Altera os valores da ii-ésima linha do array AA para aa, bb e cc, se e somente se o array for ii xx nn e nn ?? 22.
AA((::,,jj))==[[dd;;ee;;ff]] Altera os valores da jj-ésima coluna do array AA para dd, ee e ff, se e somente se o array for nn xx jj e nn ?? 22.
AA((ii,,[[kk,,ll]])) Apresenta um array constituído do kk-ésimo e ll-ésimo elementos da ii-ésima linha do array AA.
[[AA,, BB]] Concatena os arrays AA e BB, se e somente se tiverem o mesmo número de linhas ou de colunas.
47
Operações em arrays I
Operações (tais como adiçãoadição ou subtraçãosubtração) aplicadas aos elementos correspondentes de arrays com a mesma forma.
>> A = [1,2,3]; B = [6,5,4];>> A = [1,2,3]; B = [6,5,4];>> >> AA++BBans =ans =
7 7 77 7 7
Vetores e Matrizes V
48
Operações em arrays II
>> A = [1,2,3]; B = [6,5,4];>> A = [1,2,3]; B = [6,5,4];>> >> AA--BB
ans =ans =
-5 -3 -1-5 -3 -1
>> >> AA**BB??? Error using ==> mtimes??? Error using ==> mtimesInner matrix dimensions must agree.Inner matrix dimensions must agree.
Vetores e Matrizes VI
49
Operações em arrays III
>> A = [1,2,3]; B = [6,5,4];>> A = [1,2,3]; B = [6,5,4];>> >> AA.*.*BB
ans =ans =
6 10 126 10 12
Vetores e Matrizes VII
No MATLAB®®, a multiplicaçãomultiplicação (**), a divisãodivisão (//) e a potenciaçãopotenciação (^̂) DEVEMDEVEM ser indicadas por um ponto (..) antesantes do sinal da operação, a fim de que a operação seja executada elemento a elemento.
No MATLAB®®, a multiplicaçãomultiplicação (**), a divisãodivisão (//) e a potenciaçãopotenciação (^̂) DEVEMDEVEM ser indicadas por um ponto (..) antesantes do sinal da operação, a fim de que a operação seja executada elemento a elemento.
50
Operações em arrays IV
>> A = [1,2,3]; B = [6,5,4];>> A = [1,2,3]; B = [6,5,4];>> >> AA././BB
ans =ans =
0.1667 0.4000 0.75000.1667 0.4000 0.7500
Vetores e Matrizes VIII
51
Operações em arrays V
>> A = [1,2,3]; B = [6,5,4];>> A = [1,2,3]; B = [6,5,4];>> >> AA.^.^BB
ans =ans =
1 32 811 32 81
Vetores e Matrizes IX
52
Operações em arrays VI
>> A = [1,2,3];>> A = [1,2,3];>> B = [6,>> B = [6,5,5,4];4];>> >> AA**BB
ans =ans =
2828
Vetores e Matrizes X
53
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 automaticamenteautomaticamente interpretadas
Necessidade da utilização do ponto decimal (..) como parte da notação nas demais operações
Vetores e Matrizes XI
54
Operações com arrays – Lembretes II
Exemplos I
>> a = [1.2,2.7,3.5]; b = [6.09,5.48,4.18];
>> a++bans = 7.2900 8.1800 7.6800>> a--bans = -4.8900 -2.7800 -
0.6800
Vetores e Matrizes XII
55
Operações com arrays – Lembretes III
Exemplos II
>> a.*.*bans = 7.3080 14.7960 14.6300>> a././bans = 0.1970 0.4927 0.8373>> a.\.\bans = 5.0750 2.0296 1.1943
Vetores e Matrizes XIII
56
Operações com arrays – Lembretes IV
Exemplos III
>> 2.718.^.^aans = 3.3197 14.8756 33.1034>> [2 2 2].^.^bans = 68.1197 44.6318 18.1261>> a.^.^bans = 3.0354 231.1391 188.0202
Vetores e Matrizes XIV
57
Geração de um array contendo valores de uma função I
Seja a função
e que se deseja atribuir o vetor linha
à variavel yy
Vetores e Matrizes XV
5/xe)x5sin()x(f
)3(f)95,2(f)1,0(f)05,0(f)0(f
58
Geração de um array contendo valores de uma função II
Geração do gráfico no MATLAB®
>> >> ezplotezplot ( (‘sin(5*x)*exp(x/5)’‘sin(5*x)*exp(x/5)’))
>> >> holdhold onon
>> >> gridgrid
Vetores e Matrizes XVI
59
Geração de um array contendo valores de uma função III
Vetores e Matrizes XVII
Gráfico traçado a partir da função ezplot()ezplot() (semsem a grade)
Gráfico traçado a partir da função ezplot()ezplot() (semsem a grade)
60
Geração de um array contendo valores de uma função IV
Vetores e Matrizes XVIII
Gráfico traçado a partir da função ezplot()ezplot() (comcom a grade)
Gráfico traçado a partir da função ezplot()ezplot() (comcom a grade)
61
Geração de um array contendo valores de uma função V
>> x=0:0.05:3x=0:0.05:3
...
Vetores e Matrizes XIX
62
Geração de um array contendo valores de uma função VI
>> y=sin(5*x)*exp(x/5)>> y=sin(5*x)*exp(x/5)Error using * Error using * Inner matrix dimensions must agree.Inner matrix dimensions must agree.
Vetores e Matrizes XX
CUIDADOCUIDADO com o emprego da função sin()sin(), assim como com o emprego do .. !!!
CUIDADOCUIDADO com o emprego da função sin()sin(), assim como com o emprego do .. !!!
63
Geração de um array contendo valores de uma função VII
>> y=sin(5*x).*exp(x./5.)>> y=sin(5*x).*exp(x./5.)
...
Vetores e Matrizes XXI
64
Construção de tabelas I
Seja o vetor coluna
>> v = (0:9)';>> pows = [v 2.^.^v v.^.^(1/2)]
Vetores e Matrizes XXII
65
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)]
Vetores e Matrizes XXII
66
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)]
Vetores e Matrizes XXIII