introdução ao matlab -...

Post on 20-Oct-2018

224 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introdução ao MATLAB

Afonso Paiva ICMC-USP

O que é o MATLAB?

MATrix LABoratory é um software para

computação científica resolve numericamente problemas

matemáticos de forma rápida e eficiente possui uma família de pacotes específicos

(toolboxes): ◦ otimização ◦ redes neurais ◦ processamento de imagens ◦ simulação de sistemas, etc.

Anatomia da interface

workspace

histórico

diretórios

janela de comandos

Anatomia da interface

workspace

histórico

diretórios

janela de comandos

Variáveis no MATLAB

existe somente um tipo de variável: ◦ matriz

o tipo matriz pode ser expresso como: ◦ escalar: matriz 1 x 1

◦ vetor: matriz 1 x n ou n x 1

◦ matriz propriamente: matriz m x n

Declaração de uma variável

variáveis são alocadas na memória ao serem declaradas

nomes de variáveis são sensíveis a letras maiúsculas e minúsculas

vetores e matrizes devem ser declarados entre [ ]

elementos de uma mesma linha numa matriz são separados por espaço(s) ou vírgula

ponto-e-vírgula(;) indica o final de uma linha de uma matriz ou expressão

Exemplos

Vetor linha: >> A = [1 2 3 4];

Vetor coluna:

>> B = [1; 2; 3; 4]; % ou

>> B = A';

Exemplos

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

Matriz transposta: >> B = A'

1 2 3

4 5 6

7 8 9

A

1 4 7

2 5 8

3 6 9

B

Operadores matemáticos

Símbolo Operação

+ adição

- subtração

* multiplicação

/ divisão

^ potenciação

Exemplos

>> A=[1 2; 3 4];

>> B=[5 6; 7 8];

>> C0 = A+B

C0 =

6 8

10 12

>> C1 = A-B

C1=

-4 -4

-4 -4

>> C2 = A*B

C2=

19 22

43 50

>> C3 = A/B % = A*inv(B)

C3=

3.0000 -2.0000

2.0000 -1.0000

1 2

3 4A

5 6

7 8B

Operadores ponto-a-ponto

Símbolo Operação

.* multiplicação

./ divisão

.^ potenciação

Exemplos

>> A=[1 2; 3 4];

>> B=[5 6; 7 8];

>> C0 = A.*B

C0 =

5 12

21 32

>> C1 = A./B

C1=

0.2000 0.3333

0.4286 0.5000

>> C2 = A.^B

C2=

1 64

2187 65536

>> C3 = A.^3

C3=

1 8

27 64

1 2

3 4A

5 6

7 8B

Declaração de uma variável

v=[inicio:incremento:fim] v=[inicio:fim] % incremento=1

ou

v=inicio:incremento:fim v=inicio:fim Exemplo

>> A = 1:9

A =

1 2 3 4 5 6 7 8 9

Exemplos

>> v=[2:2:10]

v = 2 4 6 8 10 >> x=1:100; % ou linspace(1,100) >> M = [1:1:3; 4:1:6; 7:1:9]

M = 1 2 3 4 5 6 7 8 9

Manipulação de matrizes

acessando um elemento de uma matriz

>> A (3)

ans=

5

referência deve ser sempre (linha, coluna)

51 3 7A

1 2 3

4 5

7 8 9

6B

>> B (2,3)

ans= 6

Manipulação de matrizes

é possível incluir matrizes em matrizes

>>A = [1 2 3; 4 5 6; 7 8 9]; % A é uma matriz 3X3

>> a = [10 20 30];

>> A = [A;a] % A é uma matriz 4X3

A =

1 2 3

4 5 6

7 8 9

10 20 30

Manipulação de matrizes

podemos extrair uma linha da matriz

>> linha = A(2,:)

linha =

4 5 6

1 2 3

4 5 6

7 8 9

A

1 2 3

4 5 6

7 8 9

A

Manipulação de matrizes

e também acessar uma coluna da matriz

>> coluna = A(:,1)

coluna =

1

4

7

1 2 3

4 5 6

7 8 9

A

Manipulação de matrizes

podemos extrair submatrizes de uma matriz

>> B = A(1:2,2:3) % ou B = A([1 2],[2 3])

B =

2 3

5 6

1 2 3

4 5 6

7 8 9

A

Manipulação de matrizes

podemos acessar diretamente elementos da diagonal

>>d =diag(A)

d =

1

5

9

Dimensão de vetores e matrizes

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

A =

1 2 3 4

5 6 7 8

>> s = size(A)

s =

2 4

>> l = size(A,1) % numero de linhas

l =

2

>> c = size(A,2) % numero de colunas

c =

4

Dimensão de vetores e matrizes

>> length(A) % retorna o numero de linhas ou de colunas

ans =

4

>> v= 1:7;

>> size(v) % número de colunas

ans =

1 7

>> length(v) % retorna o comprimento do vetor

ans =

7

Funções matriciais

Comando Descrição

det(A) calcula o determinante da matriz

[V,D] = eig(A) determina os autovetores e autovalores de A

inv(A) calcula a inversa da matriz

rank(A) determina o posto linha ou coluna de A

max(A) retorna um vetor com o máximo de cada coluna A

min(A) retorna um vetor com o mínimo de cada coluna A

norm(A,1) calcula a norma coluna

norm(A, 'fro') calcula a norma de Frobenius

norm(A,inf) calcula a norma linha

Exemplos

>> A = [ 1 7 3; -6 2 1; 9 2 -2];

>> det(A)

ans =

-117

>> I = inv(A)

I =

0.0513 -0.1709 -0.0085

0.0256 0.2479 0.1624

0.2564 -0.5214 -0.3761

>> max(A)

ans =

9 7 3

>> norm(A,1)

ans =

16

>> norm(A,inf)

ans =

13

>> norm(A,' fro ')

ans =

13.7477

Matrizes especiais

Comando Descrição

A = rand(m,n) gera matriz com elementos aleatórios

A = eye(n) gera matriz identidade

A= ones(m,n) gera matriz com todos elementos iguais a 1

A= zeros(m,n) gera matriz com todos elementos iguais a 0

Funções matemáticas elementares

Função Descrição

sin(x) seno

cos(x) cosseno

tan(x) tangente

asin(x) arco-seno

acos(x) arco-cosseno

atan(x) arco-tangente

exp(x) exponencial

log(x) logaritmo natural

log10(x) logaritmo na base 10

Funções matemáticas elementares

Função Descrição

abs(x) valor absoluto

ceil(x) arredondamento na direção de mais infinito

floor(x) arredondamento na direção de menos infinito

round(x) arredondamento para o inteiro mais próximo

sign(x) função sinal

sqrt(x) raiz quadrada

gcd(x,y) máximo divisor comum dos inteiros x e y

lcm(x,y) mínimo múltiplo comum dos inteiros x e y

rem(x,y) resto da divisão de x por y

Variáveis especiais

Variável Valor

ans variável padrão usada para resultados

pi 3.14159 26535...

eps precisão de máquina

inf infinito

NaN ou nan not a number

realmin menor número de ponto flutuante

realmax maior número de ponto flutuante

i, j unidade imaginária ( ) 1i j

Workspace do MATLAB

Os dados e variáveis criados na janela de comandos são armazenados no que é chamado de workspace.

Comandos Descrição

who ou whos mostra os nomes das variáveis que estão no workspace

clear apaga as variáveis do workspace

clc limpa a tela de comando

help comando fornece uma ajuda rápida sobre o comando

Formatos de números

Comando Exemplo Observações

format short 50.833 5 dígitos

format long 50.83333333333334 16 dígitos

format short e 5.0833e+01 5 dígitos+expoente

format long e 5.083333333333334e+01 16 dígitos+expoente

format short g 50.833 melhor entre short - short e

format long g 50.83333333333333 melhor entre long - long e

format hex 40496aaaaaaaaaab hexadecimal

format bank 50.83 2 dígitos decimais

format rat 305/6 aproximação racional

Para mudar o padrão de formato de números no MATLAB, basta ir em File > Preferences.

Operadores relacionais

Símbolo Operador

== igual

~= diferente

> maior

< menor

>= maior ou igual

<= menor ou igual

Exemplos

>> 2 + 2 == 4

ans =

1 % verdadeiro

>> 10 > 100

ans =

0 % falso

>> A = [1 2; 3 4];

>> B = 2*ones(2);

>> A == B

ans =

0 1

0 0

>> C = [1 2 3; 4 5 6]

C =

1 2 3

4 5 6

>> C >= 4

ans =

0 0 0

1 1 1

Operadores lógicos

Símbolo Operador

&& E (escalar)

|| OU (escalar)

& E (elemento)

| OU (elemento)

~ Não

xor OU exclusivo

Exemplos

Encontrar elementos de um array R que são ambos maiores que 0.3 e menor que 0.9

>>R=rand(5,7)

>>(R>0.3) & (R<0.9)

Exemplos

x = ( b ~= 0 ) && ( a/b > 18.5)

Não faz sentindo avaliar a segunda relação se b == 0.

Se a relação da esquerda é falsa, a relação da direita não é testada.

Salvar/Abrir arquivos

Save: Salva as variáveis do workspace em um arquivo 'filename.mat'

save(filename): salva todas as variáveis do workspace atual em arquivo binário 'filename' no formato Matlab. Se o arquivo já existir é sobrescrito

save(filename, variables): salva somente as variáveis especificadas por variables

Salvar/Abrir arquivos

Load: Carrega variáveis de um arquivo 'filename.mat' para o workspace

load(filename): carrega as variáveis do arquivo 'filename'

load(filename, variables): carrega as variáveis específicas do arquivo 'filename'

Exemplos

>> clc

>> clear

>> filename = 'test.mat';

>> A=rand(100);

>> b=ones(100,1);

>> save(filename, 'A' , 'b');

Exemplos

>> clc

>> clear

>> load( 'test.mat' );

>> A

>> b

Gráficos no MATLAB

existem muitas funções para gerar gráficos 2D e 3D

os gráficos podem ser armazenados em arquivos, coloridos ou em preto e branco

Gráficos 2D

>> x = linspace(-2*pi,2*pi);

>> y1 = sin(x);

>> y2 = cos(x);

>> plot(x,y1,x,y2)

Gráficos 2D

>> x = linspace(-2*pi,2*pi);

>> y1 = sin(x);

>> y2 = cos(x);

>> plot(x,y1,x,y2)

Características dos gráficos

Símbolo Cor

r vermelho

g verde

b azul

c ciano

m magenta

y amarelo

k preto

w branco

Características dos gráficos

Símbolo Marcador

. ponto

o círculo

x x

+ +

* estrela

s quadrado

d losango

^ triângulo

p pentagrama

h hexagrama

Características dos gráficos

Símbolo Tipo de linha

- linha contínua

: linha pontilhada

-. traços e pontos

-- linha tracejada

Gráficos 2D

Pode-se desenhar gráficos simples como y = f(x) >> n=30; >> x=linspace(0,2*pi,n); >> y1 = cos(x); >> y2 = sin(x); >> hold on >> plot(x,y1, 'r-s'); >> plot(x,y2, 'g-*'); >> grid >> xlabel('eixo x'); % legenda no eixo horizontal

>> ylabel('eixo y'); % legenda no eixo vertical

>> title('Grafico do seno e do cosseno'); % título do gráfico

>> legend ('cos(x)' , 'sen(x)'); % legenda

>> hold off

Gráficos 2D

Pode-se desenhar gráficos simples como y = f(x) >> n=30; >> x=linspace(0,2*pi,n); >> y1 = cos(x); >> y2 = sin(x); >> hold on >> plot(x,y1, 'r-s'); >> plot(x,y2, 'g-*'); >> grid >> xlabel('eixo x'); % legenda no eixo horizontal >> ylabel('eixo y'); % legenda no eixo vertical >> title('Grafico do seno e do cosseno'); % título do gráfico >> legend ('cos(x)' , 'sen(x)'); % legenda >> hold off

Gráficos 2D

figure; % nova figura

s(1) = subplot(2,1,1); % subplot cima

s(2) = subplot(2,1,2); % subplot baixo

x = linspace(0,3);

y1 = sin(5*x);

y2 = sin(15*x);

plot(s(1),x,y1)

title(s(1),'Top Subplot')

ylabel(s(1),'sin(5x)')

plot(s(2),x,y2)

title(s(2),'Bottom Subplot')

ylabel(s(2),'sin(15x)')

Gráficos 2D

figure; % nova figura

s(1) = subplot(2,1,1); % subplot cima

s(2) = subplot(2,1,2); % subplot baixo

x = linspace(0,3);

y1 = sin(5*x);

y2 = sin(15*x);

plot(s(1),x,y1)

title(s(1),'Top Subplot')

ylabel(s(1),'sin(5x)')

plot(s(2),x,y2)

title(s(2),'Bottom Subplot')

ylabel(s(2),'sin(15x)')

Gráficos 3D

Comando Descrição

plot3 curvas 3d

surf, surfc, surfl superfícies 3d

mesh, meshc, meshz linhas em perspectiva 3d

contour curvas de níveis

Repositório de arquivos .m

MATLAB Central http://www.mathworks.com/products/matlab/

Help MATLAB on-line

http://www.mathworks.com/help/matlab/

top related