matlab - matrix laboratory matlab - matrix laboratory adaptado de profa. carla salso freitas e...

32
MATLAB - MATLAB - Matrix Laboratory Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

Upload: raquel-prata

Post on 07-Apr-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

MATLAB - MATLAB - Matrix LaboratoryMatrix LaboratoryAdaptado de Profa. Carla Salso Freitas

e profa. Luciana NedelPor Profa. Patrícia Jaques

Page 2: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

2

MATLABMATLAB

• Software para análise numérica• Problemas expressos numa forma mais próxima da

notação matemática• Interpreta comandos do usuário dados na janela de

comando. Experimente: >>sqrt(64) • Elemento básico de informação: MATRIZ• Ótima performance• Alto nível

Page 3: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

3

Pacotes científicosPacotes científicos

• MATLAB (www.mathworks.com)– linguagem de programação– ambiente para desenvolvimento– sistema gráfico– funções matemáticas

Page 4: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

4

IntroduçãoIntrodução

• Trabalha apenas com um tipo de objeto: Matrizes• ex: a= 6

• Vetores são matrizes 1xN ou Nx1 ex: A=[1,2,3]• Entrando com uma matriz (3 maneiras):

>>A = [1 2 3

4 5 6

7 8 9]

>>A = [1 2 3;4 5 6;6 7 8] através de um arquivo

(ex: gera.m)

>>gera

Page 5: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

5

MatrizMatriz

• A = [1 2 3; 4 5 6;7 8 9]

1 2 3

4 5 6

7 8 9

Diferencia maiúsculas de minúsculas!

Page 6: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

6

IntroduçãoIntrodução

• Se no final da linha for colocado um “;”, o Matlab executa o comando mas não mostra o resultado

>>A = [1 2 3;4 5 6;7 8 9]>>B = [1 2 3;4 5 6;7 8 9];

• Elementos das matrizes podem ser uma expressão>>x = [-1.3 sqrt(2) ((1+2+3)*4/5)^2]resulta em: x = -1.3000 1.4142 23.0400

• Elementos são referenciados por índices entre parênteses: x(1) = 5

resulta em: x = 5 1.4142 23.0400Índices começam em 1

Page 7: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

7

Acessando um elemento da MatrizAcessando um elemento da Matriz

• A = [1 2 3; 4 5 6;7 8 9]

1 2 3

4 5 6

7 8 9

1 2 3

1

2

3

1

2

3

4

5

6

7

8

9

A(2,1)=10

A(2)=1010

linhacolun

a

Page 8: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

8

IntroduçãoIntrodução

• Grandes matrizes podem ser geradas a partir de pequenas:>> r=[10 11 12];O comando abaixo anexa à matriz A o vetor r

>> A = [1 2 3;4 5 6;7 8 9]

>>Y=[A;r]Y=

1 2 34 5 67 8 910 11 12

A

r

Page 9: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

9

IntroduçãoIntrodução

• Pequenas matrizes podem ser extraídas de grandes matrizes usando “:”(deLinha:ateLinha,deColuna:ateColuna)>>J=Y(1:3,:)

a partir da linha 1, seleciona 3 linhas e todas as colunas

A=1 2 34 5 67 8 9

10 11 12

k=Y(1:2,3:3)SELECIONA AS LINHAS DE 1 A 2 E A COLUNA 3

Page 10: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

10

Variáveis e informações da área de trabalhoVariáveis e informações da área de trabalho

• Variáveis são declaradas na forma:– variável = expressão– “ans” (answer) variável default caso um nome seja

omitido.

Page 11: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

11

Variáveis e informações da área de trabalhoVariáveis e informações da área de trabalho

• O comando “who” lista as variáveis da área de trabalho

• “whos” mostra detalhes sobre as variáveis• clear;• clear var;

• Teclas para retomar comandos digitados anteriormente

Page 12: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

12

Números e expressões aritméticasNúmeros e expressões aritméticas

• Notação decimal convencional• Ex:

3 -99 0.000019.6374586 1.602E-20 6.06375e23

• Operadores:^ exponenciação/ divisão à direita\ divisão à esquerda* multiplicação+ adição- subtração

Page 13: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

13

Formatos de saídaFormatos de saída

• O comando format modifica o modo como os valores são mostrados

• formatshort (default) 1.3333short e 1.3333e+000long 1.33333333333333long e 1.33333333333333e+000hex 40040000000000000rat 4/3bank 1.33

• Exemplo: • >>a=2/3• >>format bank• >>a

Page 14: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

14

HelpHelp

• O comando de ajuda “help” fornece informações sobre os tópicos

• help <tópico> -> mostra comandos relacionados ao tópico

• help <comando> -> mostra detalhes sobre o comando

• Exemplo:• >> help format

• Look for parteDoComando (usado qdo nao se sabe o nome exato do comando)

Page 15: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

15

Operacões com matrizesOperacões com matrizes

• Transposta indicada pelo caracter apóstrofo '.A=[1 2 3;4 5 6;7 8 9];B=A'B= 1 4 7 2 5 8 3 6 9

• http://pt.wikipedia.org/wiki/Determinante• det(A)

– Determinante da matriz A.• inv(A)

– Inversa da matriz A

1 2 34 5 67 8 9

1 4 72 5 83 6 9

A A’

Page 16: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

16

Operações com matrizesOperações com matrizes

• Adição e subtração indicada pelos sinais “+” e “-” respectivamente.

C=A+B;

• Essas operações só são definidas para matrizes com a mesma dimensão.

• B=A+A’

1 2 34 5 67 8 9

1 4 72 5 83 6 9

A A’

+2 6 106 10 1410 14 18

B

=

Page 17: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

17

Operações com matrizesOperações com matrizes

• Multiplicação indicada por “*”.• Só é válida quando a 2a. dimensão da 1a. matriz for

igual a 1a. dimensão da 2a. matriz.• mxn e nxp

• Ex: >> A*B

Page 18: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

18

Operações com matrizesOperações com matrizes

• A multiplicação de escalar por matriz e vice-versa também é válida.

• Ex: >> B=2*A

1 2 34 5 67 8 9

2 4 68 10 1214 16 18

A B

=2*

Page 19: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

19

Operações com conjuntosOperações com conjuntos

• São operações aritméticas realizadas elemento por elemento da matriz.

• Usa-se os mesmos caracteres das operações usuais precedidos por um ponto (“.*”, “./”, “.\”, “.^”)

• Exemplo:• Crie duas matrizes quadradas a e b• Faça:• >>a*b (multiplica as matrizes)• >>a.*b (multiplica os elementos da mesma posicao)

Page 20: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

20

Manipulação de vetores e matrizesManipulação de vetores e matrizes

• Gerando vetores: a declaração • >>x = 1:5 • gera o vetor linha • x = 1 2 3 4 5 . (incremento de 1)

Page 21: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

21

Manipulação de vetores e matrizes Manipulação de vetores e matrizes

• Elementos das matrizes: utiliza-se índices entre parênteses.– >>– >>A(3,3) = A(1,3) + A(3,1)

A = 1 2 3 4 5 6 7 8 10

– A(2,1) = 4– A(1:2, 2:3) = 0 elementos A(1,2), A(1,3), A(2,2), A(2,3) são

zerados.– A(:,3) = 0 elementos da terceira coluna são zerados.– A(1:2,3) especifica uma submatriz 2x1 com os 2 primeiros

elementos da terceira coluna de A resposta (MATRIZ ORIGINAL): 3

6

Page 22: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

22

Funções EscalaresFunções Escalares

• As funções escalares mais comuns são:

– sin - seno – asin - arcoseno – abs - valor absoluto – round - arredonda – cos - cosseno – acos - arco cosseno – log - log natural

– sqrt - raíz quadrada – floor - arredonda na direção

de menos infinito – tan - tangente – atan - arco tangente – rem - resto da divisão

ex: rem(10,3)– sign - função sinal – ceil - arredonda na direção

de mais infinito

Page 23: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

23

Funções VetoriaisFunções Vetoriais

• Outros exemplos de funções vetoriais são:

– max(a) encontra o valor máximo– sum(a) soma os elementos– median(a) mediana – any(a) true se existe um elemento diferente de zero– min(a) menor valor– prod(a) produto dos elementos – all(a) true se todos os elementos são diferentes de zero– sort(a) ordena em ordem crescente

• Exemplo:

– max(a)

Page 24: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

24

Arquivos mArquivos m

• são arquivos que contém comandos do MATLAB• 2 passos:

– criar arquivo .m usando um editor de texto ou: • edit nome do arquivo ou File New M-File• digitar código do script.• File Save As - escolher diretório corrente ou que esteja

presente no search path do MATLAB.– chamar o arquivo m da linha de comando, ou de outro

arquivo m.• nome do arquivo

Page 25: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

25

Controle de fluxoControle de fluxo

Laço for>> for i=1:5

x(i)=i^2;end

x = 1 4 9 16 25

>> for i=1:5 for j=1:5

a(i,j)=i+j; b(i,j)=i-j;

end end

c=a+b;

b = 0 -1 -2 -3 -4 1 0 -1 -2 -3 2 1 0 -1 -2 3 2 1 0 -1 4 3 2 1 0

a = 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8

5 6 7 8 9 6 7 8 9 10

Page 26: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

26

Controle de fluxoControle de fluxo

• Laço whilea = 1; b = 15;

while a<b clc ; a = a+1; b = b-1 ; end disp(‘fim do loop’)

• if for i = 1:5 for j = 1:5 if i == j A(i,j) = 2; else if abs(i-j) == 1 A(i,j) = -1; else A(i,j) = 0; end end endend

Page 27: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

27

Arquivos mArquivos m

• Exemplo 1 script– criar arquivo– digitar código

• clear• clc• A = [1 2 3; 4 5 6; 7 8 9]• B = A’

– salvar como inicio.m– executar na janela do MatLab

• >> inicio

• Comentários:– % comentário de linha– texto apos o % na mesma linha não será executado

Page 28: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

28

Outros comandosOutros comandos

• Entrada de dados: Receber um dado numérico do usuário– <variável> = input('<mensagem>');– Exemplo:

• n1 = input('Digite um numero: ')• Entrada de dados: Receber um dado texto do usuário

– <variável> = input('<mensagem>', 's')– Exemplo:

• n1 = input('Digite seu nome: ', 's')• Mostrar um texto ou conteúdo de uma variável:

– disp('<mensagem>');– Exemplo:

• disp('Total calculado: ');• disp(soma);

• Limpar a tela– Exemplo:

• clc;

» n1=input ('digite seu nome ', 's');Vania» fprintf (1, 'Oi %s', n1)Oi Vania»

Page 29: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

Exercicios Parte IIExercicios Parte II

Page 30: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

30

Resolvendo Equações PolinomiaisResolvendo Equações Polinomiais

• Achar raízes de um polinômio:• 4x²=0 tem duas raízes nulas.

– >>p=[4 0 0]– >>r=roots(p)

• 4x²+5=0 não tem raízes reais.– >>p=[4 0 5]– >>r=roots(p)

• 4x²-12x=0 tem duas raízes reais: x'=3, x"=0– >>p=[4 -12 0]– >>r=roots(p)

r = 0 0

r = 0 + 1.1180i 0 - 1.1180i

r = 0 3

Page 31: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

31

Resolvendo Equações PolinomiaisResolvendo Equações Polinomiais

• x4 - 12x3 + 0x2 + 25x + 116=0>>p=[1 -12 0 25 116]r=roots (p)

r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i

• Construir polinômio a partir de suas raízes:>> pp = poly(r)pp = 1.0000 -12.0000 -0.0000 25.0000 116.0000

Page 32: MATLAB - Matrix Laboratory MATLAB - Matrix Laboratory Adaptado de Profa. Carla Salso Freitas e profa. Luciana Nedel Por Profa. Patrícia Jaques

32

AtividadeAtividade

• Exemplo: – f(x) = 3*x^4-0.5.*x^3+x-5.2 (x assume valores escalares)

• p = [3 -0.5 0 1 -5.2];• f = polyval(p,x);

• Digitar estes comandos e observar a saída:– p=[1 4 -7 -10];– x = linspace(-1,3); % gera 100 ptos entre -1 e 3– v=polyval(p,x) % gera f(x) para cada x contido no vetor x– plot(x,v); title('Figure 19: x{^3} + 4x{^2} - 7x - 10');xlabel('x')