Apontamentos de MATLAB INTRO

Apontamentos de MATLAB INTRO

(Parte 1 de 4)

APONTAMENTOS DE MATLAB Introdução ao MATLAB

Pedro Dinis Gaspar António Espírito Santo

Edição Abril 2002

1. - APRESENTAÇÃO4
1.1. OBJECTIVO4
1.2. OBSERVAÇÃO4
1.3. AMBIENTE DE TRABALHO5
1.4. EDITOR DE LINHAS DE COMANDO5
2. - INTRODUÇÃO6
2.1. INTRODUÇÃO DE MATRIZES SIMPLES6
2.2. ELEMENTOS DE MATRIZES7
2.3. DECLARAÇÕES E VARIÁVEIS8
2.4. INFORMAÇÕES SOBRE A ÁREA DE TRABALHO9
2.5. NÚMEROS E EXPRESSÕES ARITMÉTICAS9
2.6. NÚMEROS E MATRIZES COMPLEXAS10
2.7. FORMATAÇÃO DE SAÍDA10
2.8. UTILIZAÇÃO DO HELP (Ajuda)1
2.9. FUNÇÕES12
3. - OPERADORES ARITMÉTICOS + - * / \‘.........................................................................13
3.1. OPERAÇÕES COM MATRIZES13
3.1.1. Transposta13
3.1.2. Adição e Subtracção14
3.1.3. Multiplicação14
3.1.4. Divisão15
3.1.5. Potenciação16
3.2. OPERAÇÕES COM CONJUNTOS (ARRAYS)16
3.2.1. Adição e Subtracção16
3.2.2. Multiplicação e Divisão16
3.2.3. Potenciação17
4. - OPERADORES RELACIONAIS < <= >= == ~=18
5. - OPERADORES LÓGICOS & | ~ xor19
6. - MANIPULAÇÃO DE VECTORES E MATRIZES20
6.1. MATRIZES ELEMENTARES20
6.1.1. Geração de vectores20
6.1.2. Matriz identidade21
6.1.3. Matriz composta por elementos unitários21
6.1.4. Matriz nula (composta por elementos nulos)21
6.1.5. Matriz aleatória21
6.1.6. Elementos de matrizes21
6.2. MANIPULAÇÃO DE MATRIZES23
6.2.1. Matriz diagonal ou diagonal de uma matriz23
6.2.2. Matrizes triangulares23
6.2.3. Troca de elementos da matriz24
6.2.4. Redimensionamento de matrizes24
6.2.5. Rotação dos elementos da matriz24
7. - FUNÇÕES25
7.1. FUNÇÕES ESCALARES25
7.2. FUNÇÕES VECTORIAIS25
7.3. FUNÇÕES MATRICIAIS26
7.4. POLINÓMIOS27
7.5. FUNÇÕES DE FUNÇÕES28
7.5.1. Integração numérica29
7.5.2. Equações não-lineares e de optimização29
7.5.3. Solução de equações diferenciais30

ÍNDICE 2

8.1. GRÁFICOS BIDIMENSIONAIS32
8.2. ESTILOS DE LINHAS E SIMBOLOS34
8.3. NÚMEROS COMPLEXOS34
8.4. ESCALA LOGARÍTMICA, COOR. POLARES E GRÁFICOS DE BARRAS35
8.5. EXIBIÇÃO DE GRÁFICOS TRIDIMENSIONAIS E DE CONTORNO35
8.6. ANOTAÇÕES NO GRÁFICO36
9. - CONTROLO DO FLUXO DE PROGRAMA37
9.1. CICLO for37
9.2. CICLO while37
9.3. DECLARAÇÕES if E break38
10. - FICHEIROS ".m"39
1. - OPERAÇÕES COM O DISCO40
1.1. MANIPULAÇÃO DO DISCO40
1.2. EXECUÇÃO DE PROGRAMAS EXTERNOS40
1.3. IMPORTAÇÃO E EXPORTAÇÃO DE FICHEIROS40
12. - REFERÊNCIAS BIBLIOGRÁFICAS43

8. - GRÁFICOS .................................................................................................................. .................................. 32 3

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 <enter> o MATLAB responde com :

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 :

tanlogπ

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:

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

2. - INTRODUÇÃO

O MATLAB trabalha essencialmente com um tipo de objecto, uma matriz numérica rectangular podendo conter elementos complexos (Relembrar que um escalar é uma matriz de dimensão 1x1 e que um vector é uma matriz que possui somente uma linha ou uma coluna).

2.1. INTRODUÇÃO DE MATRIZES SIMPLES

As matrizes podem ser introduzidas no MATLAB de diferentes modos:

- Introduzida na Janela de Comando (lista explícita de elementos), - Geradas por comandos e funções,

- Criadas em ficheiros ".m",

- Carregadas a partir de um ficheiro de dados externo.

O método mais fácil de introduzir pequenas matrizes no MATLAB é utilizando uma lista explícita. Os elementos de cada linha da matriz são separados por espaços em branco ou vírgulas e as colunas separadas por ponto e vírgula, colocando-se parêntesis rectos em volta do grupo de elementos que formam a matriz com o objectivo de a limitar. Por exemplo, introduzindo a expressão :

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

A matriz A é guardada na memória RAM do computador, ficando armazenada para uso posterior.

As matrizes podem, também, ser introduzidas linha a linha, o que é indicado para matrizes de grande dimensão. Por exemplo:

>>A = [1 2 3 >> 4 5 6

>> 7 8 9]

Outra maneira para introduzir matrizes no MATLAB é através de um ficheiro no formato texto com extensão ".m". Por exemplo, se um ficheiro chamado "gera.m" contém estas três linhas de texto,

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

Então a expressão "gera" lê o ficheiro e introduz a matriz A. >>gera

O comando load pode ler matrizes geradas pelo MATLAB e armazenadas em ficheiros binários ou matrizes geradas por outros programas armazenadas em ficheiros ASCII.

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].

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).

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:

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

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 1 12]; >> A= [A;r]

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:

ans= 23.4568

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.

expressão na próxima linha usando um espaço em branco e três pontos,"", ao final das

Se a expressão é tão grande que não cabe em apenas uma linha, pode-se continuar a 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/1 - 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.4. INFORMAÇÕES SOBRE A ÁREA DE TRABALHO

Os exemplos de declarações mostrados nos itens acima criaram variáveis que são armazenadas na Área de Trabalho do MATLAB. Executando:

>> who

Obtêm-se uma lista das variáveis armazenadas na Área de Trabalho:

Your variables are: A ans r s x

Que mostra as cinco variáveis geradas nos exemplos, incluindo ans.

Uma informação mais detalhada que indica a dimensão de cada uma das variáveis correntes é obtida com whos, que para o exemplo produz:

Name Size Elements Bytes Density Complex A 3 by 3 9 72 Full No ans 1 by 1 1 8 Full No r 1 by 3 3 24 Full No s 1 by 1 1 8 Full No x 1 by 6 6 48 Full No Grand total is 20 elements using 160 bytes

Cada elemento de uma matriz real requer 8 bytes de memória, assim a matriz A de dimensão 3x3 faz uso de 72 bytes e todas as variáveis utilizadas um total de 160 bytes.

2.5. NÚMEROS E EXPRESSÕES ARITMÉTICAS

A notação decimal convencional, com ponto decimal opcional e o sinal negativo, é usada para números. A potência de dez pode ser incluída como um sufixo. A seguir são mostrados alguns exemplos de números aceites:

As expressões podem ser construídas através dos operadores aritméticos usuais e das regras de precedência:

1 Potenciação 2 / Divisão a direita 2 \ Divisão a esquerda 3 * Multiplicação 4 + Adição 4 - Subtracção

Deve-se notar que existem dois símbolos para divisão: as expressões 1/4 e 4\1 possuem o mesmo valor numérico, isto é, 0.25.

São usados parêntesis na sua forma padrão para alterar a precedência usual dos operadores aritméticos.

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+5*i 2+6*i; 3+7*i 4+8*i]

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:

>> i = sqrt(-1); >> z = 3 + 4*i

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]

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:

É mostrada para cada formato, da seguinte maneira:

format short 1.3 0.0 format short e 1.3333e+0 1.2345e-006 format long 1.3 0.000000123450000 format long e 1.333333333333333e+0 1.234500000e-006 format hex 3ff5555555555555 3eb4b6231abfd271 format rat 4/3 1/810045 format bank 1.3 0.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

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:

TITLE Titles for 2-D and 3-D plots. TITLE (‘text’) adds text at the top of the current axis. See also XLABEL, YLABEL, ZLABEL, TEXT.

Note-se que no exemplo mostrado para adicionar o título a um gráfico, TITLE (‘TEXT’) está escrito em letras maiúsculas somente para destacar. Recordar que todos os comandos do MATLAB devem ser escritos em letras minúsculas, portanto, para adicionar o texto "Título do Gráfico" a um gráfico, deve-se introduzir:

>> title (‘Título do Gráfico’)

2.9. FUNÇÕES

As potencialidades do MATLAB residem no seu extenso conjunto de funções. O

MATLAB possui um grande número de funções intrínsecas que não podem ser alteradas pelo utilizador. Outras funções estão disponíveis numa biblioteca externa distribuídas com o programa original (MATLAB TOOLBOX), que são na realidade ficheiros com a extensão ".m" criados a partir das funções intrínsecas. As categorias gerais de funções matemáticas disponíveis no MATLAB incluem:

- Matemática elementar; - Funções especiais;

- Matrizes elementares;

- Matrizes especiais;

- Decomposição e factorização de matrizes;

- Análise de dados;

- Polinómios;

- Solução de equações diferenciais;

- Equações não-lineares e optimização;

- Integração numérica;

- Processamento de sinais;

- Entre outras

As secções subsequentes mostram mais detalhadamente as diferentes categorias de funções.

Qualquer informação adicional sobre os conteúdos das diversas categorias poderá ser encontrado no respectivo help.

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'

E, >> x = [-1 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:

(Parte 1 de 4)

Comentários