prof.: josé eustáquio rangel de queiroz ii jornada de cursos do pet de engenharia mecânica da...

Post on 21-Apr-2015

112 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related