(Parte 1 de 3)

Universidade Federal de São João Del-Rei Campus Alto Paraopeba

Disciplina: Cálculo Numérico Apostila de Matlab

Prof. Alexandre Cândido Moreira Prof. Heber Tormentino de Sousa

Agosto de 2010

1. INTRODUÇÃO 4 1.1 Vantagens do Matlab 4 1.2 Desvantagens do Matlab 5

2. O AMBIENTE MATLAB 5 2.1 Comand Window 6 2.2 Workspace 6 2.3 Current Directory 7 2.4 Command History 8

3. COMANDOS BÁSICOS E DECLARAÇÕES DE VARIÁVEIS 8

4. OPERAÇÕES ARITMÉTICAS 8

5. EXIBINDO DADOS DE SAÍDA 9 5.1 O Comando disp 10

6. OPERADORES LÓGICOS 12

7. OPERADORES RELACIONAIS 12

8. CÁLCULO MATRICIAL 13 8.1 Elementos de uma Matriz 13 8.2 Soma e Subtração 14 8.3 Multiplicação de uma Matriz por um Escalar 15 8.4 Multiplicação entre Matrizes 15 8.5 Divisão Direta de Matrizes 16 8.6 Potênciação 16 8.7 Transposta de uma Matriz 17 8.8 Determinante 17 8.9 Inversa da Matriz 18 8.10 Autovalores e Autovetores 18 8.1 Matriz escalonada reduzida 19 8.12 Posto de uma Matriz 19 8.13 Números e Matrizes Complexas 20 8.14 Matriz diagonal ou diagonal de uma matriz 21 8.15 Matrizes Triangulares 21 8.16 Matriz Identidade 2 8.17 Matriz Composta por Elementos Unitários 2 8.18 Matriz Nula (composta por elementos nulos) 23 8.19 Matriz Aleatória 23

9. GERANDO VETORES 24 9.1 O Comando linspace 25

10. ARQUIVOS M DE COMANDOS 26

1. CONTROLE DE FLUXO 28 1.1 Laço For 28 1.2 Laço While 29 1.3 Estrutura If-Else-End 30 1.4 Estrutura Switch-Case 32

12. ARQUIVOS M DE FUNÇÕES 3

13. GRÁFICOS NO MATLAB 35 13.1 Gráficos 2-D 35 13.2 Estilos de Linhas e Símbolos 38 13.3 Coordenada Polar e Gráfico de Barras 40 13.4 Gráficos 3-D 42 13.5 Anotações no Gráfico 48

14. POLINÔMIOS 49 14.1 Raízes 49 14.2 Multiplicação 50 14.3 Adição 51 14.4 Divisão 51 14.5 Cálculo de Polinômios 52 14.6 Derivada de Polinômios 52 14.7 Derivada de um Produto de Polinômios 52 14.8 Derivada de um Quociente de Polinômios 53

15. LISTA DE FUNÇÕES DO MATLAB 54 16. REFERÊNCIAS BIBLIOGRÁFICAS 74

1. INTRODUÇÃO

MATLAB (abreviatura de Matrix Laboratory – Laboratório de Matrizes) é um programa d ecomputador de uso específico, otimizado para executar cálculos científicos e de engenharia. Ele nasceu como um programa para operações matemáticas sobre matrizes, mas ao longo dos anos transformou-se em um sistema computacional flexível capaz de resolver essencialmente qualquer problema técnico.

Seus elementos básicos são matrizes que não requerem dimensionamento. Ele permite implementar e resolver problemas matemáticos muito mais rápida e eficientemente que através de outras linguagens como C, Basic, Pascal ou Fortran.

O MATLAB possui uma família de aplicativos específicos (“toolboxes”), que são coleções de funções usadas para resolver determinados problemas tais como: otimização, manipulação algébrica, redes neurais, processamento de sinais, simulação de sistemas dinâmicos, entre outros.

Provavelmente, a característica mais importante do MATLAB é a sua extensibilidade, que permite que engenheiros, matemáticos cientistas, e até mesmo você, contribuam para o enriquecimento.

1.1 Vantagens do Matlab O Matlab tem muitas vantagens, em comparação com linguagens computacionais convencionais, para resolver problemas técnicos. Entre elas, temos: a) Facilidade de uso: o Matlab é uma linguagem interpretada, assim como muitas versões de Basic. b) Independência de Plataforma: tem suporte em diferentes sistemas computacionais: Windows XP/Vista, Linux, diversas versões de Unix e Macintosh. c) Funções Predefinidas: conta com uma grande biblioteca de funções predefinidas, que apresentam soluções testadas e empacotadas para diversas tarefas técnicas básicas d) Desenhos Independentes de Dispositivos: diferente da maioria das linguagens de computador, o Matlab tem muitos comandos para desenhos e imagens, que podem ser exibidos em qualquer dispositivo de saída gráfica compatível com o computador que executa o Matlab. Este recurso torna o Matlab uma ferramenta excepcional para visualização de dados técnicos.

e) Interface Gráfica de Usuário: tem ferramentas que permitem a um programador construir interativamente uma interface gráfica de usuário (GUI – Graphical User Interface) para seus programas. Com este recurso, o programador é capaz de projetar programas sofisticados de análise de dados, os quais podem ser operados por usuários relativamente inexperientes.

1.2 Desvantagens do Matlab

O Matlab tem duas desvantagens principais. Primeiro, é uma linguagem interpretada, por isso pode ser mais lento que linguagens compiladas. Esse problema pode ser diminuído pela estruturação apropriada dos programas Matlab para otimizar o desempenho do código vetorizado.

A segunda desvantagem é o custo: uma cópia completa do Matlab é de cinco a dez vezes mais cara que um compilador convencional C ou Fortran.

2. O AMBIENTE MATLAB

A unidade fundamental de dados em qualquer programa Matlab é a matriz, que é uma coleção de valores de dados organizados em linhas e colunas, determinada por um nome único. Até mesmo escalares são tratados como matrizes em Matlab, eles são simplesmente matrizes co apenas uma linha e uma coluna.

No Matlab, os arquivos de comando tem extensão .m (M-files) e os arquivos de dados binários default tem extensão .mat (Mat-files).

No Windows, o Matlab é instalado com os seguintes diretórios: BIN contém os programas binários do Matlab; DEMOS demonstração em HTML EXTERN suporte às linguagens FORTRAN, C e C++ HELP contém arquivos de auxílio e documentação do Matlab JAVA suporte à linguagem Java NOTEBOOK suporte à geração de documentação no formato MS-Word TEMP diretório temporário TOLLBOX “toolboxes” do Matlab WORK diretório de trabalho.

Figura 1 – Ambiente Matlab janelas: “Comand Window”, “Workspace”, “Current Directory” e “Command History”.

2.1 Comand Window

• É a área de trabalho onde os comandos (as instruções) são digitados; • As operações podem ser realizadas e seus resultados são mostrados;

• Também é nessa janela que se pode executar um arquivo m-file;

• O prompt “>>” indica que o programa está pronto aguardando uma instrução;

• Com as teclas “↑” (seta para cima) e “↓” (seta para baixo) é possível recuperar todos os comandos já digitados.

2.2 Workspace

Figura 2 – Janela “Workspace”.

• É a área na qual são exibidas todas as variáveis definidas na área de trabalho;

• Essa janela possui quatro colunas indicando o nome, dimensão, número de bytes e a classe de cada variável;

• As variáveis podem ser editadas e visualizadas nessa própria janela, basta dar um click-duplo para editá-las; Há um menu flutuante que é possível:

• Open – abrir a janela;

• Graph – criar gráficos a partir dos dados contidos na variável;

• Select All – selecionar todas as variáveis;

• Import Data – importar variáveis de um arquivo para o workspace;

• Save Selection As – salvar as variáveis selecionadas em um arquivo;

• Save Workspace As – salvar todas as variáveis do workspace em um arquivo;

• Copy – copiar a variável para a área de transferência de dados do Windows;

• Delete – apagar a variável do workspace;

• Clear Workspace – apagar todas as variáveis do workspace;

• Rename – renomear a variável.

2.3 Current Directory Área onde é exibida uma lista dos arquivos contidos no diretório corrente.

Figura 3 – Janela “Current Directory”.

2.4 Command History Área onde ficam armazenadas todas as instruções executadas no MATLAB.

Figura 4 – Janela “Command History”. 3. COMANDOS BÁSICOS E DECLARAÇÕES DE VARIÁVEIS

Para iniciar o nosso trabalho no MATLAB é necessário aprender alguns comandos essenciais da janela de trabalho (command window) e na seqüência vamos aplicá-los.

Tabela 1 – Comando Básicos. who Mostra as variáveis do espaço de trabalho whos Mostra as variáveis do espaço de trabalho com detalhes clear Limpa a memória do espaço de trabalho clc Limpa a tela dir Mostra o conteúdo do diretório que se encontra cd Informa ou altera o diretório corrente what Exibe os arquivos Matlab contidos no diretório

4. OPERAÇÕES ARITMÉTICAS As expressões podem ser construídas usando os operadores aritméticos usuais:

Tabela 2 – Operadores aritméticos.

+ Adição

- Subtração

* Multiplicação

/ Divisão

Potenciação

Figura 5 – Exemplos de operações aritméticas.

5. EXIBINDO DADOS DE SAÍDA

O formato numérico exibido na tela pode ser modificado utilizando-se o comando format, que afeta somente o modo como as matrizes são mostradas, e não como elas são computadas ou salvas.

Se todos os elementos das matrizes são inteiros exatos, a matriz é mostrada em um formato sem qualquer ponto decimal. Por exemplo, x = [-1 0 1] resulta em:

Se pelo menos um dos elementos da matriz não é inteiro exato, existem várias possibilidades de formatar a saída. O formato "default", chamado de formato “short”,

mostra aproximadamente 4 dígitos decimais ou usam notação científica. Por exemplo, a matriz:

x = [4/3 1.2345e-6] é mostrada , para cada formato usado, da seguinte maneira:

x =

1.30.0

O formato-padrão pode ser alterado de duas maneiras: a partir da Janela de Menu

Principal do Matlab ou pelo uso do comando “format”. O formato pode ser alterado pela seleção da opção “File>>Preferences>>Command Window”.

Alternativamente, o usuário pode acionar o comando format para alterar as preferências. Este comando altera o formato-padrão de acordo com os valores dados na Tabela 3. O formato-padrão pode ser modificado para exibir mais dígitos significativos, para forçar a exibição em notação científica, exibir dados com dois dígitos decimais ou então eliminar linhas adicionais para que mais dados sejam visíveis por vez na Janela de comandos.

Tabela 3 – Formatos de exibição de saída.

Comando de Formatação Resultados Exemplo format short 4 dígitos decimais (formato-padrão) 12,3457 format long 14 dígitos decimais 12,34567890123457 format short e 5 dígitos mais expoente 1,2346e+001 format short g 5 dígitos no total, com ou sem expoente 12,346 format long e 15 dígitos mais expoente 1,234567890123457e+0001 format long g 15 dígitos no total, com ou sem expoente 12,3456789012346 format bank Formato monetário 12,35 format hex Exibição hexadecimal de bits 4028b0fcd32f707a format rat Razão aproximada entre inteiros pequenos 1000/81

5.1 O Comando disp O comando disp exibe o conteúdo de uma variável, mas, ocultando o nome da mesma, e/ou mostra strings na forma de textos. A formageral do comando disp é: disp (nome de uma variável) ou dsisp (‘string de texto’)

Toda vez que um comando disp é executado, a saída que ele produz é mostrada numa nova linha. Por exemplo:

% A variável A é inicializada com uma matriz 2x3 A=[5 9 1; 7 2 4]

59 1

A = 7 2 4

% O comando disp é utilizado para exibir a matriz A

59 1
72 4

disp(A)

% O comando disp é utilizado para mostrar uma mensagem disp('O problema não possui solução') O problema não possui solução

O código abaixo ensina como utilizar os comandos input e disp em uma rotina para calcular a soma entre 3 números. Ao final da soma o a rotina exibe um texto juntamente com o resultado da soma.

Figura 6 – M-File implementado, Janela Editor.

Figura 7 – Algoritmo executando na Janela de Comandos.

6. OPERADORES LÓGICOS

Um operador lógico examina senteças verdadeiras/falsas e produz resultados verdadeiro (1) ou falso (0), de acordo com a funcionalidade do operador. Por exemplo, o operador lógico AND resulta 1 (verdadeiro) se, e somente se, todas as senteças envolvidas na operação forem verdadeiras. Tanto os operadores lógicos quanto relacionais podem ser utlizados em expressões matemáticas ou, como será visto adiante, serem combinados a outros comando para controlar ou tomar decisão sobre o fluxo do programa.

Tabela 4 – Operadores lógicos. Símbolo Operador

& e

| ou

~ não

7. OPERADORES RELACIONAIS

O operador relacional compara dois números determinando se oresultado da sentça de comparação é verdadeiro (V) ou falso (F). Por exemplo (5<8 V), ou seja, se a senteça for verdadeira o valor retornado é 1. Caso contrário, o valor retornado é 0.

Tabela 5 – Operadores lógicos. Símbolo Operador

< menor que

<= menor ou igual que

> maior que

>= maior ou igual que

== igual

~= diferente

Perceba que o operador relacional que testa a igualdade entre dois objetos é representado por dois sinais de igualdade (==), sem espaço entre eles. Isso porque um único sinal de igualdade representa o operador de atribuição. Os demais operadores duplos (representados por dois caracteres) também não possuem espaços entre os caracteres (<=, >=, ~=).

Figura 8 – Exemplos com operadores relacionais.

8. CÁLCULO MATRICIAL

As matrizes em Matlab podem ter uma ou mais dimensões. Matrizes unidimensionais podem ser visualizadas como uma série de valores colcoados em uma linha ou em uma coluna, como um único índice para selecionar os elementos individuais da matriz.

O Matlab permite a criação de matrizes com tantas dimensões quanto necessário para um dado problema. Essas matrizes têm um índice para cada dimensão, e um elemento individual é selecionado pela especificação de um valor para cada índice.

8.1 Elementos de uma Matriz

Elementos de uma matriz podem ser qualquer expressão do MATLAB. Por exemplo:

-1.30004.3266 7.5000

Elementos individuais de uma matriz podem ser referenciados com seus respectivos índices entre parênteses. No exemplo anterior, para referenciar o segundo elemento do vetor x: x(2)

Analogamente em uma matriz, com linha e coluna determinada tenho um elemento.

12 3
45 6
78 9

%% extrair o elemento da linha 2 e coluna 3 x(2,3) ans = 6

Repare que a referência é sempre na forma matriz(linha,coluna). 8.2 Soma e Subtração

Os símbolos + e - denotam adição e subtração de matrizes. A operação é definida sempre que as matrizes tenham a mesma dimensão. Exemplo: A = [1 2; 3 4]

12
34
13
24
25
58

A adição e subtração também é definida quando um dos operandos for um escalar.

Exemplo: D=C-2

03
36

8.3 Multiplicação de uma Matriz por um Escalar A

12
34
24
68
36
912

8.4 Multiplicação entre Matrizes

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, ou seja, o número de colunas da primeira matriz for igual ao número de linhas da segunda matriz. Assim a multiplicação pode ser executada como: A

12
34
13
24
51

8.5 Divisão Direta de Matrizes Existem dois símbolos para divisão de matrizes no MATLAB "\" e "/". Se A é uma matriz quadrada não singular, então A\B e A/B correspondem respectivamente a inv(A)*B

12
34
56
78
-3-4
45

%%divisão de elemento por elemento A./B

0.20000.3
0.42860.5000

ans =

8.6 Potênciação

A expressão Ap 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 é computada como múltiplas multiplicações.

Por exemplo: A

12
34
3754

%% potenciação de elementos por elementos A.3

18
2764

ans =

8.7 Transposta de uma Matriz

O caracter ' (apóstrofe) denota transposta de uma matriz. Se z for complexo, z' é o transposto conjugado complexo de z. Exemplo: A = [1 2; 3 4]

12
34

%% realiza a transposta da matriz A A'

13
24

ans =

%% no caso de números complexos, z’ é o conjugado complexo de z z=2+5i

8.8 Determinante

Para calcularmos o determinante de uma matriz utilizamos o comando det(matriz).

12 4 5 6

A = 5 1 1 3 5

78 9 9 0
22 4 0 9
11 1 2 3

%% Calculando o determinante da matriz A det(A)

8.9 Inversa da Matriz Para calcularmos a inversa de uma matriz utilizamos o comando inv(matriz).

%% Calculando a inversa da Matriz A inv(A)

-0.02710.2489 0.0227 0.0157 -0.4079
-0.6218 -0.37990.1022 0.0707 1.6646
0.39910.1048 0.0201 0.0908 -1.2454
0.17470.0393 -0.0175 -0.1659 0.0830
-0.0332 -0.0175 -0.03670.0515 0.2742

ans =

8.10 Autovalores e Autovetores A função eig( ) calcula os autovetores e os autovalores de A, respectivamente.

(Parte 1 de 3)

Comentários