80
SEMANA DA TECNOLOGIA - 2011 UNIDADES DE GESTÃO: GEP | GETEC | GEAD MINICURSOS E OFICINAS MATLAB 1º SEMESTRE DE 2011 Prof. Alan Souza Prado

SEMANA DA TECNOLOGIA - 2011 Unidades de Gestão: gep | getec | gead Minicursos e Oficinas

  • Upload
    mauli

  • View
    29

  • Download
    0

Embed Size (px)

DESCRIPTION

SEMANA DA TECNOLOGIA - 2011 Unidades de Gestão: gep | getec | gead Minicursos e Oficinas matlab 1º Semestre de 2011. Prof. Alan Souza Prado. SEMANA DA TECNOLOGIA – 2011 – MATLAB. INTRODUÇÃO AO MATLAB. MATLAB 7.0. SEMANA DA TECNOLOGIA – 2011 – MATLAB. O que é o MATLAB?. - PowerPoint PPT Presentation

Citation preview

Page 1: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA - 2011

UNIDADES DE GESTÃO: GEP | GETEC | GEAD

MINICURSOS E OFICINAS

MATLAB

1º SEMESTRE DE 2011

Prof. Alan Souza Prado

Page 2: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

INTRODUÇÃO AO MATLAB

Page 3: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

O que é o MATLAB?

MATrix LABoratory

Software de alto desempenho que realiza cálculos utilizando matrizes.

Seus comandos são mais próximos da forma como escrevemos expressões algébricas, tornando mais simples o seu uso.

MATLAB é definido como um sistema interativo e uma linguagem de programação para computação técnica e científica em geral, integrando a capacidade de fazer cálculos, visualização gráfica e programação.

Page 4: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Para que usamos então o MATLAB?

• cálculos matemáticos;• desenvolvimento de algoritmos;• modelagem, simulação e

confecção de protótipos;• análise, simulação e confecção

de dados;• gráficos científicos e de

engenharia;• desenvolvimento de aplicações,

incluindo a elaboração de interfaces gráficas com o usuário.

Page 5: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Conhecendo o Ambiente do MATLAB

Page 6: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Conhecendo o Ambiente do MATLAB

Janela de ComandoÁrea de Trabalho

Histórico de comandos

Page 7: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Formas de Utilizar o MATLAB

• Para utilizar o MATLAB, você pode inserir diretamente na janela de comando as instruções desejadas.

• Você pode também criar um arquivo denominado M-file, para posteriormente executar suas instruções.• Para essa segunda opção será aberto um

editor de códigos.

Page 8: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Funcionamento do MATLAB

• Diretamente na janela de comandos

• Uma vez inicializado o Matlab, aparecerá na janela de comandos um prompt >>

• O prompt significa que o Matlab está esperando um comando. Todo comando deve ser finalizado teclando-se Enter.

Page 9: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Funcionamento do MATLAB

• No Matlab, pode-se obter ajuda sobre qualquer comando ou função.

>> help

• Ajuda sobre um pacote específico ou sobre um comando ou função é obtida com o comando:

>> help nome

Page 10: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Cálculos Científicos

• O Matlab faz cálculos simples e cientícos como uma calculadora.

• Suponha que você vai a uma loja e compra 3 objetos que custam 25 reais cada e 5 objetos que custam 12 reais cada. Quanto custou a sua compra?

• No Matlab você pode resolver este problema de pelo menos duas maneiras. A mais simples é

>> 3*25 + 5*12ans =135

Page 11: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Cálculos Científicos

• Observe que no Matlab a multiplicação tem precedência sobre a adição. Note também que ele chamou o resultado de ans.

• Alternativamente, você pode usar variáveis para armazenar informação.

>> q1=3, p1=25, q2=5, p2=12q1 =3p1 =25q2 =5p2 =12

Page 12: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Cálculos Científicos

>> total=q1*p1+q2*p2total =135

• O Matlabr oferece as seguintes operações aritméticas:

• a+b soma a e b. Por exemplo, 5+6.• a-b subtrai a de b. Por exemplo, 15-12.• a*b multiplica a por b. Por exemplo,

3.14*0.15.• a^b calcula a elevado a b. Por exemplo,

5^(1/2)

Page 13: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Cálculos Científicos

• Observe que no Matlab o sinal de igual tem um sentido diferente daquele da Matemática. Aqui, igual significa atribuição. O que estiver à direita do sinal de igual é “colocado" na variável que estiver à esquerda.

• Usamos a vírgula para separar os comandos que são dados em uma mesma linha.

• Esta separação poderia ser feita com ponto e vírgula. Mas, neste caso o Matlab não mostra os resultados dos comandos.

Page 14: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Cálculos Científicos

>> q1=3; p1=25; q2=5; p2=12;>> total=q1*p1+q2*p2

• Em qualquer momento, podemos ver o valor que está contido em uma variável, simplesmente digitando no prompt o seu nome.

>> totaltotal =135

Page 15: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis

• O Matlab tem certas regras para nomear as variáveis.

• Os nomes de variáveis devem ser nomes iniciados por letras não podem conter espaços nem caracteres de pontuação.

• O Matlab faz diferença entre letras maiúsculas e minúsculas.

• Alguns nomes são usados para variáveis predefinidas.

Page 16: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis Pré Definidas

• ans - usada para os resultados.• pi - número .• inf - significa infinito.• NaN ou nan - significa não é um número, por

exemplo, 0/0.• i e j - unidade imaginária .• nargin - número de argumentos de entrada de

uma função.• nargout - número de argumentos de saída de

uma função.• realmin - menor número que o computador

pode armazenar.• realmax - maior número que o computador

pode armazenar.

Page 17: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Funções Científicas

• O Matlab tem uma série de funções científicas pré definidas.

• A maioria pode ser usada da mesma forma que seria escrita matematicamente. Por exemplo

>> x=sqrt(2)/2x =0.7071

>> y=acos(x)y =0.7854

>>y_graus=y*180/piy_graus =45.0000

Page 18: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Funções Científicas• abs(x) - valor absoluto de x.• acos(x) - arco cujo cosseno é x.• asin(x) - arco cujo seno é x.• atan(x) - arco cuja tangente é x.• ceil(x) - maior inteiro mais próximo de

x.• cos(x) - cosseno de x.• exp(x) - exponencial de x.• fix(x) - parte inteira de x real.• floor(x) - menor inteiro mais próximo de

x.• gcd(x,y) - máximo divisor comum de x e

y.• lcm(x,y) - mínimo múltiplo comum de x

e y.• log(x) - logaritmo de x na base e.• log10(x) - logaritmo de x na base 10.• rem(x,y) - resto da divisão de x por y.• round(x) - inteiro mais próximo de x.• sin(x) - seno de x.• sqrt(x) - raiz quadrada de x.• tan(x) - tangente de x.

Page 19: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis e Expressões Simbólicas

• Agora, vamos ver como podemos manipular com expressões que além de números e variáveis numéricas, contém também variáveis simbólicas. Por exemplo:>> syms x

>> simplify((sin(x))^2+(cos(x))^2)ans =1

• Estes comandos mandam o Matlab simplificar a expressão sen2x + cos2x. Primeiro precisamos dizer ao Matlab que x é uma variável simbólica, depois simplificar a expressão que envolve x.

• Neste caso usamos uma função chamada simplify. Aqui função é um comando, que pode ter alguns argumentos de entrada e alguns de saída. Neste caso, a função simplify tem como argumento de entrada uma expressão simbólica e de saída também.

Page 20: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis e Expressões Simbólicas

• Uma vez definido que a variável x é uma variável simbólica, podemos definir expressões que envolvem esta variável. Por exemplo, dadas duas funções:

f(x) = 2x2+ 3x - 5 e g(x) = x2 - x + 7;

podemos fazer uma série de operações algébricas envolvendo estas funções.

Page 21: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis e Expressões Simbólicas

>> f=2*x^2+3*x-5; g=x^2-x+7;>> f+gans =3*x^2+2*x+2>> f-g>> f*g>> expand(ans)>> f/g>> expand(ans)>> pretty(ans)>> f^3>>expand(ans)

Page 22: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis e Expressões Simbólicas

• O Matlab pode realizar operações mais avançadas sobre expressões simbólicas. A função compose calcula a composição dasfunções f(x) e g(x) em f(g(x)), a função finverse encontra a inversa funcional de uma expressão e a função subs substitui uma variável por um número (ou por outra variável) em uma expressão.

>> f=1/(1-x^2); g=sin(x);>> compose(f,g)ans = 1/(1-sin(x)^2)>> compose(g,f)ans = sin(1/(1-x^2))>> finverse(g)ans = asin(x)>> subs(f,x,2)ans = -1/3

Page 23: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis e Expressões Simbólicas

• O Matlab pode resolver equações. Por exemplo, para resolver a equação

ax2+ bx + c = 0;algebricamente, podemos usar os comandos:

>>syms a b c x>> solve(a*x^2+b*x+c)ans =[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))]

>>pretty(ans)

Page 24: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis e Expressões Simbólicas

• diff(f) - calcula a derivada de f.• compose(f,g) - determina a composta f(g(x)).• expand(expr) - expande uma expressão expr.• finverse(expr) - determina a inversa funcional da

expressão expr.• pretty(expr) - exibe a expressão expr numa forma

mais bonita.• simple - procura encontrar uma forma mais

simples de escrever uma expressão expr.• simplify(expr) - simplifica a expressão expr.• solve(expr) - acha a(s) solução(es) da equação

expr= 0.• subs(expr,x,a) - substitui na expressão expr a

variável x por a.• syms x y z a - define as variáveis simbólicas x, y, z

e a

Page 25: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis e Expressões Simbólicas

• Existem várias outras funções para manipulação de expressões algébricas. Você pode obter informações sobre elas digitando help symbolic.

• Uma função interessante que mostra as capacidades do Matlab em tratar com funções matemáticas é funtool que é uma calculadora para funções.

Page 26: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Variáveis e Expressões Simbólicas

• As categorias gerais de funções matemáticas disponíveis no MATLAB incluem:• Matemática elementar;• Funções especiais;• Matrizes elementares e especiais;• Decomposição e fatorização de matrizes;• Análise de dados;• Polinômios;• Solução de equações diferenciais;• Equações não-lineares e otimização;• Integração numérica;• Processamento de sinais.

Page 27: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Vetores e Matrizes

• O MATLAB permite a manipulação de linhas, colunas, elementos individuais e partes de matrizes.

Page 28: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Vetores e Matrizes

X=primero : último Cria um vetor x começando com o valor primeiro,incrementando-se de 1(um) em 1(um) até atingir ovalor último ou o valor mais próximo possível deúltimo

X=primeiro:incremento:último

Cria um vetor x começando com o valor primeiro, incrementando-se do valor incremento até atingir o valor último ou o valor mais próximo possível de último

X=linspace(primeiro, último, n)

Cria um vetor x começando com o valor primeiro e terminado no valor último, contendo n elementos linearmente espaçados.

X=logspace(primeiro, último, n)

Cria um vetor x começando com o valor 10primeiro eterminando no valor 10último, contendo n elementoslogaritmicamente espaçados

X=[2 2*pi sqrt(2) 2-3j] Cria um vetor x contendo os elementos especificados

Page 29: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Vetores e Matrizes

• Exemplo 1:>> x = 1 : 5

gera um vetor linha contendo os números de 1 a 5 com incremento unitário. Produzindo

• Exemplo 2:>> z = 6 : -l : l

• Exemplo 3:Pode-se, também, gerar vetores usando a função linspace. Por exemplo,

>> k = linspace(0, l, 6)>> x = linspace(1,10.5,5)

Page 30: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Vetores e Matrizes

• Exemplo 4:>> x=logspace(0,2,5)

• Exemplo 5:>> x=[8 6 8.10 5*pi]

Page 31: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Vetores e Matrizes

• Nos exemplos apresentados os vetores possuem uma linha e várias colunas (vetores linha).

• Da mesma forma podem existir vetores coluna (uma coluna e várias linhas). Para se criar um vetor coluna elemento por elemento estes devem estar separados por ( ; ). Por exemplo:

>>v=[1.5;-3.2;9]

Page 32: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Vetores e Matrizes

• Esses vetores coluna podem também ser criados a partir dos comandos utilizados anteriormente para criar os vetores linha, acompanhados do símbolo (' ), que é o operador de transposição. Exemplo:

>> y=(1:0.5:3)‘>> z=[0 -2.3 4 sqrt(33)]'

Page 33: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Endereçamento de Vetores

• No Matlab, cada um dos elementos de um vetor podem ser acessados através de seu índice que identifica cada uma das colunas. Por exemplo :

>> x=1:10x=12345678910>> x(3) % Acessa o terceiro elemento de x ans =3>> x(5) % Acessa o quinto elemento de xans =5

Page 34: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Endereçamento de Vetores

• Esses elementos de um vetor também podem ser acessados em blocos. Por exemplo:

>> c=linspace(10,40,7)c =10 15 20 25 30 35 40>> c(3:5) % terceiro a quinto elemento de cans = 20 25 30>>c(5:-2:1) % quinto, terceiro e primeiro elementos de c

ans = 30 20 10

Page 35: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Endereçamento de Vetores

• O endereçamento indireto também é possível, permitindo referenciar os elementos em qualquer ordem:

>> c([4 1]) %quarto e primeiro elementosans = 25 10

• No caso de vetores coluna, os comandos acima funcionam de maneira similar. Por exemplo:

>> d=c'

Page 36: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Endereçamento de Vetores

>> d([4 1]) %quarto e primeiro elementosans = 25 10>> d(5:-2:1)ans = 30 20 10

Page 37: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações entre Vetores

• As operações básicas entre vetores só são definidas quando estes tiverem o mesmo tamanho e orientação (linha ou coluna). Estas operações são:

Page 38: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Matrizes

• O MATLAB trabalha essencialmente com um tipo de objeto, uma matriz numérica retangular ( 1x1; 2x2; 3x3; i ( linha) x j (coluna); etc).

• Para criar uma variável onde é armazenada uma matriz, basta escrever os elementos da matriz entre colchetes [ ... ], sendo os elementos de uma mesma linha da matriz separados por vírgula e as linhas separadas por ponto e vírgula.

Page 39: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Matrizes

• Por exemplo, para armazenar a matriz:

• numa variável de nome A usamos o comando>> A=[1,2,3;4,5,6]

Page 40: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Matrizes

• O operador ‘:’ indica da onde ate aonde• Podemos acessar os elementos de uma

matriz usando os comandos>> A(2,3)

6>> A(2,:)

4 5 6>> A(:,1)

14

>> A(:,1:2)1 24 5

Page 41: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Matrizes

• As matrizes podem ser concatenadas>> B=[A,[7;8]]

B =1 2 3 74 5 6 8

>> [A;[7,8,9]]ans =1 2 34 5 67 8 9

Page 42: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Matrizes

• Existem algumas funções para geração de algumas matrizes elementares:

• zeros: Cria uma matriz preenchida com zeros

>>Z= zeros(2,5)Z=0 0 0 0 00 0 0 0 0

• ones: Cria uma matriz preenchida com uns>>A= ones(3,4)

A=1 1 1 11 1 1 11 1 1 1

Page 43: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Matrizes

• eye: Cria a matriz identidade>> eye(3)ans = 1 0 0

0 1 0 0 0 1

• rand: Cria uma matriz de números aleatórios entre 0 e 1

>>round(10* rand(2,3))ans = 0 2 7 9 3 3

Page 44: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Matrizes

• randn: Cria uma matriz de números aleatórios.

>>randn(3,5)ans =

0.5287 -2.1707 0.6145 0.5913 -1.0091 0.2193 -0.0592 0.5077 -0.6436 -0.0195 -0.9219 -1.0106 1.6924 0.3803 -0.0482

• magic(N) – gera matriz quadrada de ordem N de números inteiros que têm a soma de cada linha, coluna ou diagonal principal iguais.

>> magic(3)ans =

8 1 6 3 5 7 4 9 2

Page 45: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• As operações com matrizes no MATLAB são as seguintes:

• Transposta, Inversa, Determinante;• Adição;• Subtração;• Multiplicação;• Divisão à direita;• Divisão à esquerda;

Page 46: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• Transposta - O caracter apóstrofo, " ' " , indica a transposta de uma matriz. Considere os exemplos a seguir: >>A=[1 2 3; 4 5 6; 7 8 0]A = 1 2 3

4 5 67 8 0

>> B = A‘B = 1 4 7

2 5 83 6 0

>> x = [-1 0 2]'X =

-1 0 2

Page 47: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• det(A) – determinante de A. • inv(A) – inversa de A.• reshape(A) – reformata A.• size(A) – vetor contendo o tamanho de cada

dimensão de A.• lenght(A) – comprimento do vetor ou

dimensão máxima de A• diag(A) – retorna a diagonal de A em um

vetor • tril(A) – matriz triangular inferior de A• triu(A) – matriz triangular superior de A

Page 48: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• Adção/Subtração - A adição e subtração de matrizes são indicadas, respectivamente, por "+" e "-". As operações são definidas somente se as matrizes tiverem as mesmas dimensões. Por exemplo, a soma com as matrizes mostradas acima, A + x, não é correta porque A é 3x3 e x é 3x1. Porém, >> C = A + B

é aceitável, e o resultado da soma éC =

2 6 106 10 1410 14 0

Page 49: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• A adição e subtração também são definidas se um dos operadores é um escalar, ou seja, uma matriz l x l. Neste caso, o escalar é adicionado ou subtraído de todos os elementos do outro operador. Por exemplo:

>> y = x - 1

• resulta emY =-2-1 1

Page 50: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• Existem também algumas funções que auxiliam em operações, como:

• S=sum(A(:)) – soma todos os elementos da matriz A.

• S=sum(A(x:y)) – soma todos os elementos da matriz A indo de x ate y.

• S=sum(A) – soma todos os elementos de cada coluna separadamente e os coloca numa matriz linha.

Page 51: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• Existem também algumas funções que auxiliam em operações, como:

• S=sum(A(:)) – soma todos os elementos da matriz A.

• S=sum(A(x:y)) – soma todos os elementos da matriz A indo de x ate y.

• S=sum(A) – soma todos os elementos de cada coluna separadamente e os coloca numa matriz linha.

Page 52: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• Multiplicação - A multiplicação de matrizes é indicada por "*". A multiplicação A*B é definida somente se a segunda dimensão de A for igual à primeira dimensão de B. A multiplicação:

• A(3,2) e B(2,5)A = 0 1

0 01 1

B = 0 0 1 1 0 0 1 1 0 1

>> A*B0 1 1 0 1

0 0 0 0 0 0 1 2 1 1

Page 53: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• O produto de uma matriz por um vetor é um caso especial do produto entre matrizes.

• Por exemplo A e 3,>> B = A*3

• que resulta emB =

0 3 0 0

3 3

Page 54: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• O produto de uma matriz por um vetor é um caso especial do produto entre matrizes.

• Por exemplo A e 3,>> B = A*3

• que resulta emB =

0 3 0 0

3 3

Page 55: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• Além da multiplicação matricial e escalar, podemos ter a multiplicação por elemento de matrizes de mesma dimensão. Esse tipo de operação é feita utilizando-se um ponto ( . ) antes do operador de multiplicação ( * ).

• A = [1,2;3,4] e B = [5,6;7,8]• A.*B = [1*5,2*6;3*7,4*8]• Ou

>>A.*B5 1221 32

Page 56: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

Operações com Matrizes

• A divisão segue os padrões da divisão das matrizes onde:

• Divisão à esquerda: X = A\B é a solução de A*X = B, pois X =

inv(A)*B • Divisão à direita:

X = B/A é a solução de X*A = B, pois X = B*inv(A)

• A divisão por escalar segue o mesmo padrão da multiplicação por escalar, utilizando o operador “./”.

Page 57: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

GRÁFICOS NO MATLAB

Page 58: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

GRÁFICOS NO MATLAB

• MATLAB possui ferramentas poderosas e amigáveis para a visualização de dados em módulo gráfico.

• Um recurso interessante para Gráficos em linha é o comando plot.

• É o comando mais simples e, talvez o mais útil para produzir gráficos 2-D.

Page 59: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB

• FOMMAplot(Abcissas,Ordenadas,’estilo’)

• Onde Abcissas e Ordenadas são vectores (com a mesma dimensão) que contêm as abcissas e ordenadas de pontos do gráfico e estilo é um argumento opcional que especifíca o estilo da linha ou ponto a desenhar.

Page 60: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB

• Estilos

Page 61: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB

• Estilos

Page 62: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB

• Títulos, designação dos eixos, legendas e outras características, podem ser acrescentadas a um dado gráfico, usando as funções title, xlabel, ylabel, grid, text, legend, etc. Estas funções têm a forma seguinte.

• title(’título’) produz um título na parte superior do gráfico• xlabel(’nome x’) o eixo dos xx ´e designado por nome x• ylabel(’nome y’) o eixo dos yy ´e designado por nome y• grid coloca uma quadrícula no gráfico• text(x,y,’texto em x y’) escreve o texto texto em x y na

posição (x, y)• gtext(’texto’) permite colocar texto numa posição a indicar

com o mouse• legend(’texto1’,’texto2’) produz uma legenda com texto1 e

texto2• legend off retira legenda

Page 63: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB

• Também possível controlar os limites dos eixos através do comando axis. A função axis tem várias opções que permitem personalizar os limites, a escala, a orientação, etc, de um gráfico.

axis([xmin xmax ymin ymax])• os limites passam a ser xmin e xmax para o

eixo dos xx e ymin e ymax para o eixo dos yy. Este comando deve aparecer depois do comando plot.

• A função axis também aceita palavras chave para controlar os eixos. Por exemplo, axis square, axis equal, axis auto, axis on, etc. (Detalhes em help axis).

Page 64: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB

• Numa mesma figura podem sobrepor-se vários gráficos, recorrendo ao comando hold. As instruções

hold onplot(x1, y1)plot(x2, y2)plot(x3, y3)

hold off

• originam a sobreposição de três gráficos. Este objetivo também pode ser atingido, usando

plot(x1, y1, x2, y2, x3, y3)

Page 65: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB

• Exemplo:>> t=linspace(0,2*pi);y1=sin(t);y2=t;y3=t-(t.^3)/6+(t.^5)/120;plot(t,y1,'r',t,y2,'b',t,y3,'go')axis equalaxis([0 6 -1 5])gridxlabel('t')ylabel('Aproximações para sen(t)')title('Exemplo 1')text(3.5,0,'sen(t)')gtext('Aproximação linear')gtext('Primeiros 3 termos')gtext('da série de Taylor')

Page 66: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB

Page 67: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB• Exemplo:

>>x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); % seno de xz=cos(x) % cosseno de xplot(x,y,x,z) % dois gráficostitle('Exemplo de 2 graficos: seno(x) e cosseno(x)') % define título

Page 68: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLAB• Subplotting - A mesma figura pode ter mais

do que um gráfico. Para que tal seja possível é necessário utilizar a função subplot, tal como é apresentado de seguida:

>>subplot(m,n,p)

• Este comando divide a figura numa matriz de m linhas e n colunas, podendo deste modo criar m*n gráficos em cada figura. Veja-se o seguinte exemplo:

Page 69: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT NO MATLABx = linspace(0,2*pi,50); y = sin(x); z = cos(x); w = tan(x); subplot(2,2,1) plot(x,y) subplot(2,2,2) plot(x,z) subplot(2,2,3) plot(x,w)

Page 70: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PIE NO MATLAB• Gráficos em Pizza>> A=[4.3 3.2 2.25 1];pie(A,A==max(A)); % destaca a fatia maiortitle('Grafico Pie com max em destaque')legend('SP','MG','RN','MS')

Page 71: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PIE NO MATLAB• Gráficos em Pizza>> A=[4.3 3.2 2.25 1];pie(A,[0 1 1 0])% destaca as fatias com 1 na posicao correspondente

title('Grafico Pie')legend('SP','MG','RN','MS')

Page 72: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PIE NO MATLAB• Gráficos em Pizza>>A= [1.1 2.2 3.3 4.4];pie3(A)title('Grafico Pie 3D')

Page 73: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

BAR NO MATLAB• Gráficos em Barras• Exemplo 2D>>x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ybar(x,y)title('Grafico de barras')

Exemplo 3D>>x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ybar3(x,y,'y')title('Grafico de barras 3D')

Page 74: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

BARh NO MATLAB• Gráficos em Linhas• Exemplo 2D>>x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ybarh(x,y)title('Grafico de barras horizontal')

Exemplo 3Dx=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ybar3h(x,y,'r')title('Grafico de barras horiz. 3D')

Page 75: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

POLAR NO MATLAB• Gráficos Polar>>angulo=0:0.05:2*pi;raio=1+sin(3*angulo).*cos(2.5*angulo);polar(angulo,raio,'r-') % mostra ang e raiotitle('Grafico polar: ang e raio')

Page 76: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

PLOT3 NO MATLAB• Gráficos em 3D

>>t=0:0.01:6*pi; % intervalo para eixo tplot3(sin(t), cos(t), t) % eixos x,y,z

• Exemplo 2>>t=0:0.01:6*pi; %define eixo zplot3(sin(t),cos(t),t) % eixos x, y, zxlabel('Eixo x') ylabel('Eixo y') zlabel('Eixo z')title('Grafico 3D de linha')

Page 77: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

MESH NO MATLAB• Gráficos em 3D• definir uma "grade" de pontos X Y no plano

x-y• aplicando meshgrid()[X,Y]=meshgrid(-2*pi:0.5:2*pi,3*pi:0.5:3*pi)

• a seguir grafico 3D reticulado• 3º argumento é o valor no eixo Z

mesh(X,Y,sin(sqrt(X.*X+Y.*Y))) title('Grafico 3D reticulado')colorbar % a cor indica o valor no eixo Z

• Olha o gráfico tipo surf()

Page 78: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

MESH NO MATLAB

Page 79: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

MESH NO MATLAB• Gráficos em 3D

>>mesh(peaks) % função peaks() pré-definidacolorbar

>> mesh(peaks)[x,y,z]=peaks;contour(x,y,z,20) %20 curvas de nivel colorbar

>> mesh(peaks)[x,y,z]=peaks;contour3(x,y,z,20) % 20 curvas de nivel 3D colorbar

Page 80: SEMANA DA TECNOLOGIA - 2011 Unidades  de  Gestão:  gep  |  getec  |  gead Minicursos e Oficinas

SEMANA DA TECNOLOGIA – 2011 – MATLAB

MATLAB 7.0

MESH NO MATLAB• Gráficos em 3D

>>mesh(peaks) colorbarrotate3d on - ligar a opção de arrastar o gráfico com o mouse e mudar o ponto de vista 3D

>>colormap(hot) % escolhe mapa de coressurfl(peaks) % surfl p/ iluminar com constrateshading interp; % tira reticuladotitle('Surf com iluminacao')colorbar