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


Apontamentos de MATLAB INTRO, Notas de estudo de Matlab

Parte Introdutória do MatLab. basicão.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 14/10/2010

marcus-matos-2
marcus-matos-2 🇧🇷

1 documento

1 / 43

Toggle sidebar

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

Não perca as partes importantes!

bg1
U
UN
NI
IV
VE
ER
RS
SI
ID
DA
AD
DE
E
D
DA
A
B
BE
EI
IR
RA
A
I
IN
NT
TE
ER
RI
IO
OR
R
D
DE
EP
PA
AR
RT
TA
AM
ME
EN
NT
TO
O
D
DE
E
E
EN
NG
GE
EN
NH
HA
AR
RI
IA
A
E
EL
LE
EC
CT
TR
RO
OM
ME
EC
CÂ
ÂN
NI
IC
CA
A
CONTROLO DE SISTEMAS
APONTAMENTOS DE M
MA
AT
TL
LA
AB
B
Introdução ao MATLAB
Pedro Dinis Gaspar
António Espírito Santo
Edição Abril 2002
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

Pré-visualização parcial do texto

Baixe Apontamentos de MATLAB INTRO e outras Notas de estudo em PDF para Matlab, somente na Docsity!

UUNNIIVVEERRSSIIDDAADDEE DDAA BBEEIIRRAA IINNTTEERRIIOORR

D DEEPPAARRTTAAMMEENNTTOO DDEE EENNGGEENNHHAARRIIAA EELLEECCTTRROOMMEECCÂÂNNIICCAA

CONTROLO DE SISTEMAS

APONTAMENTOS DE MMAATTLLAABB

Introdução ao MATLAB

Pedro Dinis Gaspar

António Espírito Santo

Edição Abril 2002

ÍNDICE

1. - APRESENTAÇÃO

Em variados meios industriais e académicos utiliza-se o MATLAB por constituir um software interactivo de alta performance direccionado para o cálculo numérico. O MATLAB permite a realização de aplicações ao nível da análise numérica, de análise de dados, cálculo matricial, processamento de sinais e construção de gráficos, entre outras, abordando um banda larga de problemas científicos e de engenharia.

Ao possuir um ambiente de trabalho na óptica do utilizador, prima pela facilidade de utilização, além de possuir uma estrutura em que os problemas e soluções são expressos somente como são escritos matematicamente, ao contrário da programação tradicional. O MATLAB é um sistema interactivo cujo elemento básico de informação é uma matriz que não requer dimensionamento. Este sistema permite a resolução de problemas numéricos em apenas uma fracção do tempo que se gastaria para escrever um programa semelhante numa linguagem de programação clássica.

1.1. OBJECTIVO

Introduzir comandos básicos do MATLAB para permitir um rápido acesso às potencialidades do ambiente. O utilizador iniciante poderá dispor de uma referência rápida para algumas possibilidades de uso do MATLAB.

1.2. OBSERVAÇÃO

O documento como está, não tenciona cobrir todos os tópicos do MATLAB, porque o ambiente, devido à sua arquitectura formada por caixas de ferramentas (toolboxes), possui manuais específicos para cada uma destas, tornando impraticável a tentativa de abranger todos os tópicos em um único documento referência.

Este trabalho baseia-se em documentos públicos disponíveis na Internet, nos manuais do MATLAB, no livro MATLAB – Student Edition e nas informações disponíveis na página da internet da companhia Mathworks.

1.3. AMBIENTE DE TRABALHO

Quando o MATLAB é inicializado, duas janelas são exibidas: a Janela de Comando (Command Windows) e Janela Gráfica (Graphic Windows). A Janela de Comando é activada quando se inicia o MATLAB, e o "prompt" padrão ( >> ) é exibido na tela. A partir deste ponto, o MATLAB espera as instruções do utilizador. Para introduzir uma pequena matriz, por exemplo utiliza-se :

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

Colocando parêntesis rectos em torno dos dados e separando as linhas por ponto e vírgula.. Quando se pressiona a tecla o MATLAB responde com :

A = 1 2 3 4 5 6 7 8 9

Para inverter esta matriz, utiliza-se :

>> B = inv(A)

1.4. EDITOR DE LINHAS DE COMANDO

As teclas com setas podem ser usadas para se encontrar comandos dados anteriormente, para execução novamente ou sua reedição. No caso de pretender efectuar o cálculo de :

log tan

π

Introduzir na tela:

>> log (sqt(tan(pi/5)))

Como para calcular a raiz quadrada o comando certo é sqrt , o MATLAB responde com uma mensagem de erro:

??? Undefined function or variable sqt.

O comando com a resposta apropriada seria:

>> log (sqrt(tan(pi/5))) ans = -0.

NOTA : Todas as funções que façam uso de um argumento em ângulo, são calculadas com o dito argumento expresso em radianos.

Exemplos de funções utilizadas para gerar matrizes: rand , magic , hilb.

rand(n) gera matriz quadrada de dimensões n x n , aleatória com distribuição uniforme, no intervalo [0,1].

>>x=rand(3)

rand(m,n) gera uma matriz aleatória de dimensões m x n.

>>x=rand(3,4)

magic(n) cria uma matriz quadrada integral de dimensões n x n (linhas e colunas têm a mesma soma).

>>x=magic(4)

NOTA : Em todos os exemplos, m e n são inteiros positivos. Para especificar um único elemento da matriz utilizam-se os índices referentes ao número de linha e número de coluna entre parêntesis da matriz onde se encontra o elemento : A(n,m). Outra forma de gerar matrizes é através de ciclos for.

2.2. ELEMENTOS DE MATRIZES

Os elementos das matrizes podem ser qualquer expressão do MATLAB, por exemplo:

>> x = [-1.3 sqrt(2) ((1+2+3)*4/5)^2]

x = -1.3000 1.4142 23.

Um elemento individual da matriz pode ser referenciado com índice entre parêntesis. Continuando o exemplo,

>> x(6) = abs(x(1))

x = -1.3000 1.4142 23.0400 0 0 1.

Note-se que a dimensão do vector x é aumentada automaticamente de 1x3 para 1x6 de modo a acomodar o novo elemento e que os elementos indefinidos do intervalo são estabelecidos como zero. Matrizes de maior dimensão podem ser construídas a partir de pequenas matrizes. Por exemplo, pode-se anexar outra linha à matriz A usando:

_>> r= [ 10 11 12];

A= [A;r]_

A = 1 2 3 4 5 6 7 8 9 10 11 12

Note-se que o vector r não foi listado porque ao seu final foi acrescentado " ; ".

Podem ser extraídas matrizes pequenas da matriz original utilizando " ; ". Por exemplo,

>> A = A(1:3,:);

Selecciona as três primeiras linhas e todas as colunas da matriz A actual, modificando-a da sua forma original.

2.3. DECLARAÇÕES E VARIÁVEIS

O MATLAB é uma linguagem de expressões. As expressões usadas são interpretadas e avaliadas pelo sistema. As declarações no MATLAB são frequentemente da forma :

>> variável = expressão

Ou simplesmente,

>> expressão

As expressões são compostas de operadores e outros caracteres especiais, de funções e dos nomes das variáveis. A avaliação das expressões produzem matrizes, que são então mostradas na tela e atribuídas às variáveis para uso futuro. Se o nome da variável e o sinal de igualdade "=" são omitidos, a variável com o nome ans , que representa a palavra " answer " (resposta), é automaticamente criada. Por exemplo, introduzindo a expressão:

>> 1900/

ans= 23.

Se o último caractere da declaração é um ponto e vírgula, " ; ", a impressão na tela é suprimida, mas a tarefa é realizada. Esse procedimento é usado em ficheiros com extensão " .m " e em situações onde o resultado é uma matriz de grandes dimensões e há interesse em apenas alguns dos seus elementos. Se a expressão é tão grande que não cabe em apenas uma linha, pode-se continuar a expressão na próxima linha usando um espaço em branco e três pontos," ... ", ao final das linhas incompletas. Por exemplo,

_>> s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7...

  • 1/8 + 1/9 - 1/10 + 1/11 - 1/12 + 1/13;_

Calcula o resultado da série, atribuindo o somatório à variável s , mas não imprime o resultado na tela. Note que os espaços em branco entre os sinais " = ", " + " e " - " são opcionais, mas o espaço em branco entre " 1/7 " e " ... " é obrigatório.

As variáveis e funções podem ser formadas por um conjunto de letras, ou por um conjunto de letras e números, onde somente os primeiros 19 caracteres do conjunto são identificados. O MATLAB faz distinção entre letras maiúsculas e minúsculas, assim a e A não são as mesmas variáveis. Todas as funções devem ser escritas em letras minúsculas: inv(A) calcula a inversa de A , mas INV(A) é uma função indefinida.

NOTA : Para que o MATLAB não faça nenhuma distinção entre as letras minúsculas e maiúsculas utiliza-se a função casesen.

2.6. NÚMEROS E MATRIZES COMPLEXAS

Os Números Complexos são permitidos em todas operações e funções no MATLAB. Os números complexos são introduzidos utilizando as funções especiais i ou j que correspondem a parte imaginária de um número complexo. Por exemplo:

>> z= 3 + 4*i

Ou,

>> z= 3 +4*j

Sabendo que um número complexo é constituído por uma parte real {Re} e por uma parte imaginária {Im}, tal que:

z = {Re} + {Im}*i

Pode ser expresso na forma:

>> z= r * exp(i*theta)

Em que :

_>> r = abs(z)

theta = angle(z)*180/pi_

As seguintes declarações mostram dois caminhos convenientes para se introduzir matrizes complexas no MATLAB:

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

Ou,

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

Produzem o mesmo resultado. Se i ou j forem usados como variáveis, de forma que tenham seus valores originais modificados, uma nova unidade complexa deverá ser criada e utilizada de maneira usual:

_>> ii = sqrt(-1);

z = 3 + 4*ii_

2.7. FORMATAÇÃO DE SAÍDA

O formato numérico exibido na tela pode ser modificado utilizando o comando format , que afecta somente o modo como as matrizes são mostradas, e não como elas são calculadas ou guardadas (o MATLAB efectua todas as operações em dupla precisão). Se todos os elementos da matriz são inteiros exactos, a matriz é mostrada num formato sem qualquer ponto decimal. Por exemplo,

>> x = [-1 0 1]

x = -1 0 1

Se pelo menos um dos elementos da matriz não é inteiro exacto, existem várias possibilidades de formatar a saída. O formato por defeito, chamado de formato short , mostra aproximadamente 5 dígitos significativos ou usam notação científica. Por exemplo a expressão:

>> x = [4/3 1.2345e-6]

É mostrada para cada formato, da seguinte maneira:

format short 1.3333 0.

format short e 1.3333e+000 1.2345e-

format long 1.33333333333333 0.

format long e 1.333333333333333e+000 1.234500000000000e-

format hex 3ff5555555555555 3eb4b6231abfd format rat 4/3 1/

format bank 1.33 0.

format + ++

Com o formato short e long , se o maior elemento da matriz é superior a 1000 ou inferior a 0.001, é aplicado um factor de escala comum para que a matriz completa seja mostrada. Por exemplo,

>> X = 1e20*x

X = l.0e+20 * 1.3333 0.

O formato + é uma maneira compacta de apresentar matrizes de grandes dimensões. Os símbolos " + ", " - ", e " espaço em branco " são mostrados, respectivamente para representar elementos positivos, elementos negativos e zeros.

2.8. UTILIZAÇÃO DO HELP (Ajuda)

O MATLAB possui um comando de ajuda: help que fornece informações sobre a maior parte dos tópicos. Introduzindo:

>> help

Obtêm-se uma lista desses tópicos disponíveis Para obter informações sobre um tópico específico, referir help tópico. Por exemplo,

>> help plotxy

Fornece uma lista de todos os comandos relacionados com gráficos bidimensionais. Finalmente, para obter informações sobre um comando específico, por exemplo title , introduzir:

>> help title

E informações mais detalhadas sobre este comando serão exibidas:

3. - OPERADORES ARITMÉTICOS + - * / \ ^ ‘

O MATLAB possui dois tipos diferentes de operações aritméticas. As operações aritméticas matriciais são definidas pelas regras da Álgebra Linear. As operações aritméticas com arrays (conjuntos) são efectuadas elemento por elemento. O caractere de ponto decimal “. ” distingue as operações matriciais das operações com arrays. No entanto, como as operações matriciais e com arrays são iguais para a Soma e para a Subtracção, o par de caracteres “ .+ ” e “ .- “ não são usados.

3.1. OPERAÇÕES COM MATRIZES

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

  • Transposta;
  • Adição;
  • Subtracção;
  • Multiplicação;
  • Divisão a direita;
  • Divisão a esquerda;
  • Potenciação;

A seguir cada uma destas operações é apresentada com maior detalhe.

3.1.1. Transposta

O caractere apóstrofo, " ' " , indica a transposta de uma matriz.

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

B = A'_

A = 1 2 3 4 5 6 7 8 9

B = 1 4 7 2 5 8 3 6 9

E,

>> x = [-1 0 2]'

x =

- 0 2

Se Z é uma matriz complexa, Z’ será o complexo conjugado composto. Para obter simplesmente a transposta de Z deve-se usar Z.’ , como mostra o exemplo:

_>> Z = [1 2; 3 4] + [5 6; 7 8]*i

Z1 = Z’ Z2 = Z.’_

Z = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i

Z1 = 1.0000 - 5.0000i 3.0000 - 7.0000i 2.0000 - 6.0000i 4.0000 - 8.0000i

Z2 = 1.0000 + 5.0000i 3.0000 + 7.0000i 2.0000 + 6.0000i 4.0000 + 8.0000i

3.1.2. Adição e Subtracção A adição e subtracção de matrizes são indicadas, respectivamente, por " + " e " - ". As operações são definidas somente se as matrizes possuírem as mesmas dimensões. Por exemplo, a soma com as matrizes mostradas anteriormente, A + x , não é correcta porque A é 3x3 e x é 3x1. Porém,

>> C = A + B

É aceitável, e o resultado da soma será:

C = 2 6 10 6 10 14 10 14 18

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

>> y = x - 1

y =

_-

1_

3.1.3. Multiplicação A multiplicação de matrizes é indicada por " ***** ". A multiplicação _xy_* é definida somente se a segunda dimensão de x for igual à primeira dimensão de y. A multiplicação:

>> x'* y ans = 4

É evidente que o resultado da multiplicação _y'x_* será o mesmo. Existem dois outros produtos que são transpostos um do outro.

>> x*y’

Na "divisão à esquerda", se A é quadrada, então é factorizada através da eliminação Gaussiana e estes factores são usados para resolver _Ax = b_*. Se A não for quadrada, é factorizada através da ortogonalização de Householder com pivoteamento por coluna e os factores são usados para resolver o sistema sub ou sobre determinado no sentido dos mínimos quadrados. A divisão à direita é definida em termos da divisão à esquerda por b/A = (A'\b').

3.1.5. Potenciação A expressão A^p eleva A à p -ésima potência e é definida se A é matriz quadrada e p um escalar. Se p é um inteiro maior do que um, a potenciação é calculada como múltiplas multiplicações. Por exemplo,

>> A^

ans = 279 360 306 684 873 684 738 900 441

Se P é uma matriz e a é um escalar, a^P calcula o escalar elevado à matriz P fazendo uso dos Valores e Vectores Próprios.

NOTA : X^P , sendo X e P matrizes, apresenta erro.

3.2. OPERAÇÕES COM CONJUNTOS (ARRAYS)

O termo operações com conjuntos é utilizado quando as operações aritméticas são realizadas entre os elementos que ocupam as mesmas posições em cada matriz (elemento por elemento). As operações com conjuntos são efectuadas como as operações usuais, utilizando- se os mesmos caracteres (" ***** ", " / ", " * ", " ^ " e " ") precedidos por um ponto ".* " (" .* " , " ./ ", " *.* ", ". ^ " e " .‘ ").

3.2.1. Adição e Subtracção Para a adição e a subtracção, as operações com conjuntos e as operações com matrizes são iguais. Deste modo os caracteres " + " e " - " são empregues do mesmo modo e considerando as mesmas restrições de utilização.

3.2.2. Multiplicação e Divisão A multiplicação de conjuntos é indicada por " .* ". Se A e B são matrizes com as mesmas dimensões, então _A.B_* indica um conjunto cujos elementos são simplesmente o produto dos elementos individuais de A e B. Por exemplo, se:

_>> x = [1 2 3]; y = [4 5 6];

z = x .* y_

z= 4 10 18

As expressões A./B e A.\B formam um conjunto cujos elementos são simplesmente os quocientes dos elementos individuais de A e B. Assim,

>> z = x .\ y

z = 4.0000 2.5000 2.

3.2.3. Potenciação A potenciação de conjuntos é indicada por " .^ ". A seguir são mostrados alguns exemplos utilizando os vectores x e y. A expressão:

>> z = x .^ y

z = 1 32 729

A potenciação pode usar um escalar.

>> z = x.^

z = 1 4 9

Ou, a base pode ser um escalar.

>> z = 2.^[x y]

z = 2 4 8 16 32 64

5. - OPERADORES LÓGICOS & | ~ xor

Os símbolos “ &” , “ | “ , e “ ~” correspondem respectivamente aos operadores lógicos AND , OR e NOT. Permitem efectuar operações lógicas entre matrizes com a mesma dimensão compostas por elementos zero (0) e um (1) que correspondem a FALSO e a VERDADEIRO , respectivamente. A & B realiza o AND lógico, A | B efectua o OR lógico, e ~A apresenta o complemento dos elementos de A. A função xor(A,B) implementa a operação OR exclusivo.

Inputs AND OR XOR & | xor

0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0

Os operadores lógicos possuem a precedência mais baixa relativamente aos operadores aritméticos e relacionais. A precedência entre os diversos operadores lógicos é dada por:

  • NOT possui a precedência mais elevada.
  • AND e OR têm igual precedência, e são avaliados da esquerda para a direita.

Pode-se usar, também os operadores lógicos & (AND) e | (OR). Por exemplo,

>> 1= = 1 & 4 = = 3

ans = 0

>> 1 = = 1 | 4 = = 3

ans = 1

6. - MANIPULAÇÃO DE VECTORES E MATRIZES

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

6.1. MATRIZES ELEMENTARES

Além das já descritas, o MATLAB dispõe de diversas funções que permitem a rápida elaboração de matrizes padrão, como sejam:

6.1.1. Geração de vectores O caractere dois pontos, " : ", permite a geração de vectores no MATLAB. A declaração:

>> x = 1 : 5

Gera um vector linha contendo os números de 1 a 5 com incremento unitário. Produzindo:

x = 1 2 3 4 5

Outros incrementos, diferentes da unidade podem ser utilizados, como seja o caso do seguinte exemplo que impõe um incremento de pi/.

>> y = 0 : pi/4 : pi

y = 0.0000 0.7854 1.5708 2.3562 3.

Também são possíveis incrementos negativos.

>> z = 6 : -1 : 1

z = 6 5 4 3 2 1

Pode-se, também, gerar vectores linearmente espaçados fazendo uso da função linspace. Por exemplo,

>> k = linspace (0, 1, 6)

k = 0 0.2000 0.4000 0.6000 0.8000 1.

Cria um vector linearmente espaçado de 0 a 1, contendo 6 elementos. Ao pretender-se um espaçamento logarítmico desde o valor inicial x 1 até ao valor final x 2 do vector composto por k elementos, a função a utilizar será:

>> logspace (x 1 , x 2 , k)