Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução ao Ambiente do Matlab® e Suas Principais Funções, Notas de aula de Engenharia de Produção

Uma introdução ao ambiente do matlab®, incluindo a execução de arquivos texto com instruções matlab®, a declaração e uso de variáveis, a manipulação de matrizes e os principais operadores, e uma visão geral das principais funções do matlab®. O documento também aborda a sintaxe geral de funções no matlab® e como manipular matrizes, incluindo operações de indexação, redimensionamento e troca de posições.

Tipologia: Notas de aula

2011

Compartilhado em 06/01/2011

nilmar-almeida-10
nilmar-almeida-10 🇧🇷

1 documento

1 / 58

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Federal Fluminense
Centro Tecnológico
Escola de Engenharia
Curso de Engenharia de Telecomunicações
Programa de Educação Tutorial
Grupo PET-Tele
Apostila de Introdução ao
Matlab
r
(Versão: 2k80801)
Niterói - RJ
Julho / 2008
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a

Pré-visualização parcial do texto

Baixe Introdução ao Ambiente do Matlab® e Suas Principais Funções e outras Notas de aula em PDF para Engenharia de Produção, somente na Docsity!

Universidade Federal Fluminense

Centro Tecnológico

Escola de Engenharia

Curso de Engenharia de Telecomunicações

Programa de Educação Tutorial

Grupo PET-Tele

Apostila de Introdução ao Matlab

r

(Versão: 2k80801)

Niterói - RJ

Julho / 2008

Autor atual: Isabella França e França Últimas atualizações: Beatriz Costa Ribeiro Vitor de Souza Lima Alexandre Santos de la Vega

Este documento é de distribuição gratuita, sendo proibida a venda de parte ou da íntegra do documento.

Sumário

Capítulo 1

Introdução

1.1 Informações iniciais

O Matlabr^ (abreviatura de MATrix LABoratory - Laboratório de Matrizes) é um soft- ware de simulação matemática que realiza operações matriciais, constrói grácos em duas ou três dimensões, auxilia no processamento de sinais, além de manipular outras funções especializadas. Ele trabalha com uma linguagem de programação de alto-nível, em um ambiente interativo, para o desenvolvimento de algoritmos, análise e visualização de dados e com- putação numérica. Próprio para as áreas técnicas e cientícas, o software tem funções de tratamento numérico de alto desempenho, capazes de resolver problemas computacionais técnicos de forma mais eciente do que as tradicionais linguagens de programação. Além do ambiente interativo, outra facilidade do Matlabr^ é a possibilidade de ex- ecução de arquivos texto contendo uma seqüência de instruções denidas pelo usuário. Esses arquivos texto, que têm extensão `.m', podem ser criados e editados dentro ou fora do seu ambiente.

1.2 Janelas

Através de objetos grácos denominados janelas, o usuário opera as funcionalidades do programa de forma interativa. A janela principal do Matlabr^ chama-se Command Window (Janela de Comando), onde os dados e instruções são digitados no prompt >>' pelo usuário e, após a tecla Enter ser pressionada, o programa os processa imediatamente e expõe na tela o resultado. Os comandos digitados são armazenados em um buer de comandos, no qual pode-se navegar usando as teclas seta-para-cima↑' e seta-para-baixo ↓'. Além disso, teclando-se o textostr', por exemplo, e usando-se as setas ↑' e↓', navega-se por todos os comandos iniciados com o texto `str'. A tecla Esc limpa o que estiver escrito na linha do comando. Comandos terminados com ponto-e-vírgula não exibem as variáveis de resposta na tela. O uso do ponto-e-vírgula é útil quando a impressão do resultado na tela não interessa, ou quando a impressão é muito extensa como, por exemplo, para uma matriz 1000 × 1000. Deve-se ressaltar que, apesar da impressão ser suspensa, o comando é executado pelo programa. Vários comandos podem ser digitados na mesma linha, desde que estejam separados

2 Capítulo 1. Introdução

por vírgula ou ponto-e-vírgula. Comandos muito longos para uma linha podem ser interrompidos por três pontos `...' e continuados na linha seguinte. O exemplo a seguir é ilustrativo quanto a esses detalhes.

a=1, b=... 2; c=a+b

a = 1 c = 3

É importante apontar que a Janela de Comando normalmente é usada para testes de comandos e funções ou simples operações. Quando se deseja implementar algum pro- grama, projeto ou trabalho, utiliza-se o M-File Editor. Neste editor, cria-se um arquivo texto `.m' com os comandos desejados. Para abrir um novo arquivo-M, clique em File > New > M-le ou simplesmente digite o comando edit. Após escrever o programa, pode-se executá-lo pela tecla de atalho F5.

Além da Janela de Comando e do Editor de Arquivo-M, há ainda as janelas Help, Com- mand History, Current Directory e Workspace, que estão respectivamente relacionadas com ajuda, histórico dos últimos comandos digitados, diretório corrente do programa e o espaço de trabalho onde se visualizam dados e variáveis. Essas janelas podem ser man- tidas fechadas ou abertas dependendo da necessidade ou gosto do usuário. Essas outras janelas não são detalhadas nesse documento.

1.3 Ajuda

Através do comando help, o usuário pode consultar a ajuda do Matlabr^. Escrevendo- se help e o nome da função, é mostrado um pequeno resumo da função (normalmente de uma linha) seguido de uma descrição mais detalhada da mesma.

help ones ONES Ones array. ONES(N) is an N-by-N matrix of ones. ONES(M,N) or ONES([M,N]) is an M-by-N matrix of ones. ONES(M,N,P,...) is an M-by-N-by-P-by-... array of ones. ONES(SIZE(A)) is the same size as A and all ones. See also ZEROS.

É possível ainda procurar por funções cujos resumos contenham determinada palavra- chave. Para isto, basta digitar o comando lookfor seguido da palavra desejada. Caso se queira interromper a busca, deve-se teclar CTRL+C.

Grupo PET-Tele UFF

4 Capítulo 1. Introdução

Grupo PET-Tele UFF

Capítulo 2

Variáveis

2.1 Declaração

Dado que o programa oferece um ambiente de execução de uma linguagem interpretada, uma característica conveniente do Matlabr^ é que as variáveis não precisam ser dimen- sionadas antes do uso, pois são geradas automaticamente ao serem utilizadas. Para criar e/ou armazenar informações em variáveis denidas pelo usuário, basta digitar o nome da variável seguido do sinal de igual `=' e da expressão desejada. Na escolha dos nomes das variáveis, devem ser obedecidos os seguintes critérios:

  • os caracteres podem ser alfanuméricos (letras e números), desde que iniciados por letras;
  • letras maiúsculas e minúsculas denem nomes diferentes (linguagem case sensitive);
  • o caracter ` ' (underscore,underline ou sublinhado) pode ser usado no meio do nome;
  • são permitidos nomes com, no máximo, 32 caracteres.

Caso seja executada uma expressão que gere um valor como resultado, e, nessa ex- pressão, não haja uma atribuição do resultado para alguma variável denida pelo usuário, o resultado será armazenado na variável ans, pré-denida pelo ambiente.

2.2 Manipulação

Existem comandos próprios para manipulação de variáveis. Abaixo estão listados os mais utilizados.

  • who: Lista os nomes das variáveis.
  • whos: Lista o nome e o tipo das variáveis.
  • clear: Elimina todas as variáveis da área de trabalho. Para se apagar uma ou mais variáveis utiliza-se o comando clear seguido dos nomes das variáveis separadas por espaço.

Capítulo 3

Números e matrizes

3.1 Representação numérica

Todas as informações numéricas do Matlabr^ são armazenadas sob a forma de matrizes. Se, por exemplo, for digitado o número 5 no ambiente do programa, este valor será interpretado como uma matriz de dimensão 1×1. Números negativos, com casas decimais, complexos e sob a forma de notação cientíca podem ser representados no Matlabr^ usando-se a seguinte simbologia:

  • números negativos: `−' ; Ex.: − 5
  • números com casas decimais: `.' ; Ex.: 3. 2
  • números complexos: i' ouj' (como suxos, à direita da parte imaginária, ou como funções, equivalentes à raiz quadrada de -1); Ex.: 3 + 5i, 3 + 5j, 3 + 5 ∗ i, 3 + 5 ∗ j, 3 + i ∗ 5 , 3 + j ∗ 5 , 3 + 5 ∗ sqrt(−1) e 3 + sqrt(−1) ∗ 5.
  • notação cientíca: e' ouE'. Ex.: 5 e 3 (equivalente a 5 × 103 ) e − 2 e − 4 (equivalente a − 2 × 10 −^4 )

3.2 Formatos de visualização de números

Todos os cálculos são executados no Matlabr^ com aritmética de dupla precisão. A visualização dos números nas janelas Command Window e Workspace, entretanto, pode ser feita em diversos formatos. Por denição, o Matlabr^ exibe os resultados em três formatos diferentes: inteiro, real com quatro casas decimais ou em notação cientíca, adotando aquela que melhor convir. Esse comportamento padrão pode ser alterado clicando-se em File > Preferences, ou simplesmente digitando na Janela de Comando a instrução format seguida do formato especíco. A Tabela 3.1 ilustra cada um deles, exibindo o número

2 como exemplo.

8 Capítulo 3. Números e matrizes

Comando

2 Comentário format short 1.4142 5 dígitos (ponto xo). format long 1.41421356237310 15 dígitos (ponto xo). format short e 1.4142e+000 5 dígitos e expoente (ponto utuante). format long e 1.414213562373095e+000 15 dígitos e expoente (ponto utuante). format short g 1.4142 O melhor entre short e short e. format long g 1.4142135623731 O melhor entre long e long e. format hex 36a09e667f3bcd Hexadecimal em ponto utuante. format + + Positivo +', negativo−' ou zero ` '. format bank 1.41 2 casas decimais representando moeda. format rat 1393/985 Aproximação racional. format debug Structure address = 12ac208 short g e informações sobre m = 1 armazenagem interna. n = 1 pr = 12600c pi = 0

Tabela 3.1: Formatação da visualização de resultado numérico.

3.3 Denição de matrizes

Existem diversas formas de se montar uma matriz. A mais simples delas utiliza elementos denominados aglutinadores, representados simbolicamente por colchetes, [' e]'. A função dos aglutinadores consiste em concatenar (encadear), horizontalmente ou verti- calmente, dados de um mesmo tipo, podendo formar matrizes numéricas ou vetores de caracteres (strings).

O exemplo abaixo mostra a concatenação de duas palavras com um espaço no meio, todos denidos entre aspas simples (tipo caracter).

a=Duas'; b= '; c=`palavras.'; [a b c] ans = Duas palavras.

Entendido o conceito de aglutinação, que será muito utilizado daqui em diante, torna- se fácil a tarefa de denir uma matriz. Uma matriz é montada linha após linha, onde espaço ou vírgula indicam transição de coluna e ponto-e-vírgula indica transição de linha.

Grupo PET-Tele UFF

10 Capítulo 3. Números e matrizes

3.4 Indexação

O padrão de indexação matricial no Matlabr^ é a forma tradicional intuitiva (r, c), onde r representa o número da linha e c representa o número da coluna.

m=[.1 .2 .3 .4 .5 ; .6 .7 .8 .9 1 ; 1.1 1.2 1.3 1.4 1.5] m = 0.1000 0.2000 0.3000 0.4000 0. 0.6000 0.7000 0.8000 0.9000 1. 1.1000 1.2000 1.3000 1.4000 1. m(2,5) ans = 1 Os elementos da matriz também podem ser indexados seqüencialmente, conforme ilustrado na Tabela 3.2.

1 2 3 4 5 1 (1)^ 0.1 (4)^ 0.2 (7)^ 0.3 (10)^ 0.4 (13)^ 0. 2 (2)^ 0.6 (5)^ 0.7 (8)^ 0.8 (11)^ 0.9 (14)^ 1. 3 (3)^ 1.1 (6)^ 1.2 (9)^ 1.3 (12)^ 1.4 (15)^ 1.

Tabela 3.2: Indexação de elementos de uma matriz.

m(5) ans =

É possível selecionar mais de uma linha ou coluna, usando-se dois-pontos :' entre os índices inicial e nal para indicar o intervalo. Quando os índices inicial e nal são omitidos, indica-se o intervalo inteiro. A palavra reservadaend' indica o m da linha ou da coluna.

m(3,1:4) ans = c=palavras.'; >> [a b c] ans = Duas palavras. Entendido o conceito de aglutinação, que será muito utilizado daqui em diante, torna- se fácil a tarefa de denir uma matriz. Uma matriz é montada linha após linha, onde espaço ou vírgula indicam transição de coluna e ponto-e-vírgula indica transição de linha. Grupo PET-Tele UFF 10 Capítulo 3. Números e matrizes ## 3.4 Indexação O padrão de indexação matricial no Matlabr^ é a forma tradicional intuitiva (r, c), onde r representa o número da linha e c representa o número da coluna. >> m=[.1 .2 .3 .4 .5 ; .6 .7 .8 .9 1 ; 1.1 1.2 1.3 1.4 1.5] m = 0.1000 0.2000 0.3000 0.4000 0. 0.6000 0.7000 0.8000 0.9000 1. 1.1000 1.2000 1.3000 1.4000 1. >> m(2,5) ans = 1 Os elementos da matriz também podem ser indexados seqüencialmente, conforme ilustrado na Tabela 3.2. 1 2 3 4 5 1 (1)^ 0.1 (4)^ 0.2 (7)^ 0.3 (10)^ 0.4 (13)^ 0. 2 (2)^ 0.6 (5)^ 0.7 (8)^ 0.8 (11)^ 0.9 (14)^ 1. 3 (3)^ 1.1 (6)^ 1.2 (9)^ 1.3 (12)^ 1.4 (15)^ 1. Tabela 3.2: Indexação de elementos de uma matriz. >> m(5) ans = 0. É possível selecionar mais de uma linha ou coluna, usando-se dois-pontos:' entre os índices inicial e nal para indicar o intervalo. Quando os índices inicial e nal são omitidos, indica-se o intervalo inteiro. A palavra reservada `end' indica o m da linha ou da coluna. >> m(3,1:4) ans = 1.1000 1.2000 1.3000 1.

m(:,5) ans =

m(1,3:end) ans = 0.3000 0.4000 0.

Grupo PET-Tele UFF

3.4. Indexação 11

O conceito de indexação pode ser ampliado quando no lugar dos índices colocam-se vetores ou matrizes de índices.

m([1 3],[2 4]) ans = 0.2000 0. 1.2000 1.

m([1 5 9; 4 8 12]) ans = 0.1000 0.7000 1. 0.2000 0.8000 1. Caso se coloque um índice que exceda as dimensões da matriz, o resultado será uma mensagem de erro. Por outro lado, se for denido um novo elemento que exceda essas mesmas dimensões, então a matriz será redimensionada de forma a incluir esse novo elemento, sendo as novas posições preenchidas com 0.

m(4,6)=2. ans = 0.1000 0.2000 0.3000 0.4000 0.5000 0 0.6000 0.7000 0.8000 0.9000 1.0000 0 1.1000 1.2000 1.3000 1.4000 1.5000 0 0 0 0 0 0 2.

UFF Grupo PET-Tele

Capítulo 4

Operações com matrizes

4.1 Operações aritméticas

As operações aritméticas no Matlabr^ podem ser de dois tipos: matricial ou escalar. As operações do tipo matricial referem-se às operações matemáticas sobre matrizes. As operações escalares são também denominadas de operações sobre conjuntos. Essas últimas são realizadas elemento-a-elemento de cada matriz, aplicando-se o operador em questão apenas entre elementos de mesma posição matricial. Denindo-se x = [2 3; 5 7] e y = [1 6; 2 4], pode-se associá-los pelos seguintes operadores:

  • `+' : adição (matricial e escalar). Ex.: x + y = [3 9; 7 11]
  • `−' : subtração (matricial e escalar). Ex.: x − y = [1 − 3; 3 3]
  • `∗' : multiplicação matricial. Ex.: x ∗ y = [8 24; 19 58]
  • `/' : divisão matricial à direita. Ex.: x/y = (x ∗ y−^1 ) = x ∗ inv(y) = [− 0 .2500 1.1250; − 0 .7500 2.8750] , onde: inv(m) é uma função que será explicada na Seção 5.2.
  • `' : divisão matricial à esquerda. Ex.: x\y = (x−^1 ∗ y) = inv(x) ∗ y = [− 1. 0000 − 30 .0000; 1.0000 22.0000]
  • `' : potenciação matricial. Ex.: x2 = x^2 = (x ∗ x) = [19 27; 45 64]
  • '' : transposição matricial. Ex.: x′^ = xT^ = [2 5; 3 7]
  • `.∗' : multiplicação escalar. Ex.: x. ∗ y = [2 18; 10 28]

14 Capítulo 4. Operações com matrizes

  • `./' : divisão escalar à direita. Ex.: x./y = (x. ∗ y.−^1 ) = [2.0000 0.5000; 2.5000 1.7500]
  • `.' : divisão escalar à esquerda. Ex.: x.\y = (x.−^1. ∗ y) = [0.5000 2.0000; 0.4000 0.5714]
  • `.' : potenciação escalar. Ex.: x.2 = [4 9; 25 49]

Observações:

  1. Para operações entre matriz e número escalar, o programa faz uma expansão escalar do número, executando a operação entre o número e cada elemento da matriz. Ex.: x + 3 = x + [3 3; 3 3] = [5 6; 8 10]
  2. A precedência de operações pode ser controlada utilizando-se parênteses. Ex.: ((x + 3) ∗ x′)′^ = [28 46; 67 110]

4.2 Operações lógicas e relacionais

Os operadores relacionais e lógicos são usados em expressões lógicas booleanas para im- plementar testes de tomadas de decisão, fornecendo respostas do tipo verdadeiro/falso a perguntas. Para o Matlabr^ , qualquer número diferente de zero representa o valor lógico verdadeiro, e zero representa o valor lógico falso. Os operadores relacionais e lógicos são apresentados na Tabela 4.1.

Operador Descrição < Menor que <= Menor ou igual a

Maior que = Maior ou igual a == Igual a (não confundir com = )

~= Diferente de

& E

| OU

~ NÃO

Tabela 4.1: Operadores relacionais e lógicos.

É interessante ressaltar que no Matlabr^ os operadores podem ser usados não somente com escalares, mas também com vetores e matrizes, sendo a operação realizada elemento a elemento.

Grupo PET-Tele UFF