9788522107896_programaÇÃo em matlab para engenheiros

20
7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 1/20 STEPHEN J. CHAPMAN G N Ç Ã O

Upload: bruno-rodrigues-de-oliveira

Post on 03-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 1/20

S T E P H E N J . C H A P M A N

G N Ç Ã O

Page 2: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 2/20

Page 3: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 3/20  vii

Prefácio xv

1 Introdução ao MATLAB 1

1.1 Vantagens do MATLAB 21.2 Desvantagens do MATLAB 31.3 O Ambiente MATLAB 4

1.3.1 A Área de Trabalho MATLAB 41.3.2 A Janela de Comandos 51.3.3 A Janela de Histórico de Comandos 71.3.4 O Botão Iniciar 71.3.5 A Janela de Edição/Depuração 8

1.3.6 Janela de Figuras 101.3.7 Como Estacionar e Transportar Janelas 101.3.8 O Espaço de Trabalho MATLAB 111.3.9 O Navegador do Espaço de Trabalho 121.3.10 Obtendo Ajuda 131.3.11 Alguns Comandos Importantes 141.3.12 O Caminho de Busca MATLAB 15

1.4 Utilizando o MATLAB como Prancheta de Rascunhos 171.5 Resumo 18

Resumo do MATLAB 191.6 Exercícios 19

2 MATLAB Básico 21

2.1 Variáveis e Matrizes 212.2 Criando e Iniciando Variáveis no MATLAB 25

Sumário

Page 4: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 4/20

2.2.1 Iniciando Variáveis em Expressões de Atribuição 252.2.2 Iniciando com Expressões de Atalho 282.2.3 Iniciando com Funções Predefinidas 29

2.2.4 Iniciando Variáveis com Entrada pelo Teclado 292.3 Matrizes Multidimensionais 31

2.3.1 Armazenando Matrizes Multidimensionais em Memória 332.3.2 Acessando Matrizes Multidimensionais com uma Dimensão 33

2.4 Submatrizes 352.4.1 A Função end 352.4.2 Utilizando Submatrizes no Lado Esquerdo de uma Declaração de

Atribuição 362.4.3 Atribuindo um Escalar a uma Submatriz 37

2.5 Valores Especiais 382.6 Exibindo Dados de Saída 40

2.6.1 Alterando o Formato-Padrão 402.6.2 A Função disp 422.6.3 Saída Estruturada Usando a Função fprintf 43

2.7 Arquivos de Dados 442.8 Operações com Escalares e Matrizes 47

2.8.1 Operações com Escalares 472.8.2 Operações com Matrizes 47

2.9 Hierarquia de Operações 512.10 Funções Predefinidas MATLAB 542.10.1 Resultados Opcionais 542.10.2 Utilizando Funções MATLAB com Matrizes como Entrada 542.10.3 Funções MATLAB Comuns 55

2.11 Introdução a Diagramas 562.11.1 Utilizando Diagramas xy Simples 572.11.2 Imprimindo um Diagrama 582.11.3 Exportação de um Diagrama como Imagem Gráfica 592.11.4 Diagramas Múltiplos 592.11.5 Cores de Linhas, Estilos de Linhas, Estilos de Marcadores e Legendas 612.11.6 Escalas Logarítmicas 64

2.12 Exemplos 692.13 Depurando Programas MATLAB 752.14 Resumo 75

2.14.1 Resumo de Boas Práticas de Programação 752.14.2 Resumo do MATLAB 76

2.15 Exercícios 79

3 Expressões de Ramificação e Projeto de Programa 87

3.1 Introdução a Técnicas de Projeto Top-Down 873.2 Uso de Pseudocódigo 933.3 O Tipo de Dados Logical 93

3.3.1 Operadores Relacionais 94

viii  |  Programação em MATLAB ®  para Engenheiros - 2ª Edição 

Page 5: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 5/20

  Sumário   |  ix

3.3.2 Nota de Atenção a Respeito dos Operadores == e ~= 973.3.3 Operadores Lógicos 983.3.4 Funções Lógicas 103

3.4 Ramificações 1043.4.1 A Construção if 1053.4.2 Exemplos de Utilização de Construções if 1073.4.3 Notas a Respeito do Uso de Construções if 1133.4.4 A Construção switch 1153.4.5 A Construção try/catch 117

3.5 Características Adicionais de Diagramas 1193.5.1 Controlando os Limites nos Diagramas dos Eixos x e y 1193.5.2 Desenhando Múltiplos Diagramas sobre os Mesmos Eixos 1223.5.3 Criando Múltiplas Figuras 1233.5.4 Subdiagramas 1243.5.5 Controle Avançado de Linhas Desenhadas 1253.5.6 Controle Avançado de Cadeias de Texto 1263.5.7 Diagramas Polares 1273.5.8 Anotando e Armazenando Diagramas 135

3.6 Notas Adicionais a Respeito da Depuração de Programas MATLAB 1393.7 Resumo 141

3.7.1 Resumo de Boas Práticas de Programação 1433.7.2 Resumo do MATLAB 143

3.8 Exercícios 144

4 Laços 151

4.1 O Laço  while 1514.2 O Laço for 157

4.2.1 Detalhes de Operação 1654.2.2 O Compilador No-momento-exato (JIT) do MATLAB 1674.2.3 As Expressões break e continue 1714.2.4 Laços Aninhados 173

4.3 Matrizes Lógicas e Vetorização 175

4.3.1 Criando o Equivalente a Construçõesif/else com Matrizes Lógicas 1764.4 Os Perfis MATLAB 1784.5 Exemplos Adicionais 1814.6 Resumo 196

4.6.1 Resumo de Boas Práticas de Programação 1964.6.2 Resumo do MATLAB 197

4.7 Exercícios 197

5 Funções Definidas pelo Usuário 205

5.1 Introdução a Funções MATLAB 207

5.2 Passagem de Variáveis em MATLAB: O Esquema de Passagem por Valor 2135.3 Argumentos Opcionais 2245.4 Compartilhando Dados pelo Uso de Memória Global 2295.5 Preservando Dados entre Chamadas de uma Função 2375.6 Funções de Funções 242

Page 6: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 6/20

x  |  Programação em MATLAB ®  para Engenheiros - 2ª Edição 

5.7 Subfunções e Funções Privadas 2465.7.1 Subfunções 2475.7.2 Funções Privadas 248

5.7.3 Ordem de Avaliação de Funções 2495.8 Resumo 249

5.8.1 Resumo de Boas Práticas de Programação 2505.8.2 Resumo do MATLAB 250

5.9 Exercícios 251

6 Tipos Adicionais de Dados e de Diagramas 263

6.1 Dados Complexos 2636.1.1 Variáveis Complexas 265

6.1.2 Usando Números Complexos com Operadores Relacionais 2666.1.3 Funções Complexas 2676.1.4 Colocando Dados Complexos em Diagramas 271

6.2 Funções de Cadeias de Caracteres 2746.2.1 Funções de Conversão de Cadeias de Caracteres 2746.2.2 Criando Matrizes Bidimensionais de Caracteres 2746.2.3 Concatenação de Cadeias de Caracteres 2756.2.4 Comparação de Cadeias de Caracteres 2766.2.4.1 Comparando Cadeias de Caracteres quanto à Igualdade 2766.2.4.2 Comparando Cadeias Individuais quanto à Igualdade e Desigualdade 277

6.2.4.3 Categorizando Caracteres em uma Cadeia de Caracteres 2776.2.5 Buscando ou Substituindo Caracteres Dentro de uma Cadeia 2796.2.6 Conversão para Caixa Alta e Caixa Baixa 2816.2.7 Eliminação de Espaços em Branco das Cadeias de Caracteres 2816.2.8 Conversões de Número para Cadeia de Caracteres 2826.2.9 Conversões de Cadeia de Caracteres para Número 2846.2.10 Resumo 285

6.3 Matrizes Multidimensionais 2916.4 Diagramas Bidimensionais Adicionais 293

6.4.1 Tipos Adicionais de Diagramas Bidimensionais 2936.4.2 Funções para Diagramas 2986.4.3 Histogramas 299

6.5 Diagramas Tridimensionais 3006.5.1 Diagramas Tridimensionais de Linha 3016.5.2 Diagramas Tridimensionais de Superfície, Malha e Curva de Nível 303

6.6 Resumo 3066.6.1 Resumo de Boas Práticas de Programação 3066.6.2 Resumo do MATLAB 307

6.7 Exercícios 308

7 Matrizes Celulares, e Estruturas Gráficos de Controle 312

7.1 Matrizes Celulares 3127.1.1 Criando Matrizes Celulares 3157.1.2 Utilizando Chaves {} como Construtores de Células 317

Page 7: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 7/20

  Sumário   |  xi

7.1.3 Visualizando o Conteúdo de Matrizes Celulares 317

7.1.4 Estendendo Matrizes Celulares 318

7.1.5 Apagando Células em Matrizes 320

7.1.6 Utilizando Dados em Matrizes Celulares 321

7.1.7 Matrizes Celulares de Cadeias de Caracteres 321

7.1.8 A Importância das Matrizes Celulares 322

7.1.9 Resumo das Funções da Matriz cell 326

7.2 Matrizes Estruturas 327

7.2.1 Criando Matrizes Estruturas 327

7.2.2 Adicionando Campos a Estruturas 3307.2.3 Removendo Campos de Estruturas 3317.2.4 Usando Dados em Matrizes Estruturas 3317.2.5 As Funções getfield e setfield 3337.2.6 Nomes Dinâmicos de Campos 3337.2.7 Usando a Função size com Matrizes Estruturas 3357.2.8 Aninhando Matrizes Estruturas 3357.2.9 Resumo das Funções structure 336

7.3 Gráficos de Controle 338

7.3.1 O Sistema de Gráficos MATLAB 3387.3.2 Controles de Objetos 339

7.3.3 Examinando e Modificando Propriedades de Objetos 3407.3.4 Usando set para Listar Valores Possíveis de Propriedades 3477.3.5 Localizando Objetos 3487.3.6 Selecionando Objetos com o Mouse 350

7.4 Posição e Unidades 3537.4.1 Posições de Objetos figure 3537.4.2 Posições de Objetos axes 3547.4.3 Posições de Objetos text 354

7.5 Posições de Impressão 357

7.6 Propriedades Iniciais e de Fábrica 3587.7 Propriedades de Objetos Gráficos 3607.8 Resumo 360

7.8.1 Resumo de Boas Práticas de Programação 361

7.8.2 Resumo do MATLAB 3617.9 Exercícios 362

Apêndice A Conjunto de Caracteres ASCII 367

Apêndice B Funções de Entrada/Saída 369

Apêndice C Respostas para os Testes 391

Índice Remissivo 403

Page 8: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 8/20  xiii

MATLAB® (abreviatura de MATrix LABoratory – Laboratório de Matrizes) é um pro-grama de computador de uso específico, otimizado para executar cálculos científicos ede engenharia. Ele nasceu como um programa para operações matemáticas sobre matri-zes, mas ao longo dos anos transformou-se em um sistema computacional flexívelcapaz de resolver essencialmente qualquer problema técnico.

O programa MATLAB implementa esta linguagem e oferece uma ampla bibliotecade funções predefinidas para que a programação técnica se torne mais fácil e eficiente.Essa variedade extremamente ampla de funções torna muito mais fácil resolver proble-mas técnicos em MATLAB do que em outras linguagens, como Fortran ou C. Este livroapresenta a linguagem MATLAB e mostra como utilizá-la para resolver pro blemas

técnicos típicos.Este livro não é um texto sobre “como utilizar o MATLAB” (embora os estudantes

aprendam a usá-lo para resolver problemas durante a leitura). O livro ensina o uso deMATLAB como uma linguagem técnica de programação, que pode ser usada no lugarde linguagens como Basic, Fortran ou C++. A maioria dos currículos de engenhariaatualmente exige o aprendizado de MATLAB e usam essa linguagem como uma ferra-menta essencial ao longo de todo o curso. As universidades também exigem que osestudantes se familiarizem pelo menos com os fundamentos da programação de com-putadores. Este livro pretende satisfazer esses dois requisitos simultaneamente em umaúnica disciplina, liberando assim tempo precioso nos cursos de engenharia.

A obra não tem a pretensão de apresentar uma descrição completa das centenasde funções do MATLAB. Em vez disso, ensina ao estudante como utilizar MATLABcomo uma linguagem para resolver problemas e como localizar qualquer função dese- jada utilizando os recursos de ajuda on-line do MATLAB.

Prefácio

Page 9: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 9/20

xiv  | Fundamentos de Programação em MATLAB® - 2ª Edição 

O livro Fundamentos de Programação em MATLAB, 2ª edição, foi elaborado para serutilizado como livro-texto em disciplinas de Introdução à Programação e à Resoluçãode Problemas para estudantes de primeiro ano de engenharia. Este material é compatí-

vel com disciplinas de nove semanas com três horas de aula semanais.

As Vantagens do MATLAB para Programação Técnica

MATLAB apresenta muitas vantagens, em comparação com linguagens de computadorconvencionais, para resolução de problemas técnicos. Entre elas, temos:

1. Facilidade de UsoMATLAB é uma linguagem interpretada, assim como muitas versões de Basic,

e, como esta, é muito fácil de usar. O programa pode ser usado como pranche-ta de rascunhos para avaliar expressões digitadas em linha de comando, oupara executar programas grandes previamente escritos. Programas podem serescritos e modificados com facilidade usando o ambiente de desenvolvimentointegrado embutido, bem como depurados usando o depurador MATLAB. Porser muito fácil de usar, a linguagem é ideal para uso educacional e para desen-volver rapidamente protótipos de novos programas.

Muitas ferramentas de desenvolvimento de programas são fornecidaspara tornar o programa fácil de usar. Dentre elas, temos um editor/depurador,

um navegador de espaço de trabalho e muitos programas de demonstração.2. Independência de Plataforma

MATLAB tem suporte em muitos sistemas computacionais diferentes, propor-cionando, em grande medida, uma independência de plataforma. No momentode preparação deste livro, a linguagem tinha suporte em Windows 2000/XP/Vista, Linux, Unix e Macintosh. Programas escritos em uma plataforma funcio-nam em todas as outras, e arquivos de dados escritos em qualquer plataformapodem ser lidos transparentemente em todas as outras. Como resultado, pro-gramas escritos em MATLAB podem migrar para novas plataformas quando as

necessidades do usuário se alteram.3. Funções Predefinidas

MATLAB vem completo, com uma grande biblioteca de funções predefinidasque proporcionam soluções testadas e empacotadas para muitas tarefas técnicas básicas. Por exemplo, suponha que você esteja escrevendo um programa queprecise calcular a estatística associada com um conjunto de dados de entrada.Na maioria das linguagens, você precisaria escrever suas próprias sub-rotinasou funções para implementar os cálculos, como média aritmética, desviopadrão, mediana etc. Essas e centenas de outras funções são construídas já na

linguagem MATLAB, tornando seu trabalho muito mais fácil.Além da grande biblioteca de funções construída na linguagem básicaMATLAB, existem muitas outras caixas de ferramentas especializadas dispo-níveis para ajudar a resolver problemas complexos em áreas específicas. Porexemplo, um usuário pode adquirir caixas de ferramentas-padrão para resol-

Page 10: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 10/20

  Prefácio   |  xv

ver problemas em processamentos de sinais, sistemas de controle, comunica-ções, processamentos de imagens e redes neurais, dentre muitas outras.

4. Diagramas Independentes de DispositivosDiferente de outras linguagens de computador, MATLAB tem diversos coman-dos para imagens e desenhos integrais, que podem ser exibidos em qualquerdispositivo gráfico compatível com computador que executa o MATLAB. Esterecurso torna o MATLAB uma ferramenta excepcional para visualização dedados técnicos.

5. Interface Gráfica de UsuárioMATLAB tem ferramentas que permitem a um programador construir intera-tivamente uma interface gráfica de usuário (GUI, do inglês Graphical User

Interface) para seu programa. Com esse recurso, o programador é capaz de pro- jetar programas sofisticados para análise de dados, os quais podem ser opera-dos por usuários relativamente inexperientes.

Características deste Livro

Muitas características deste livro têm por objetivo enfatizar a maneira apropriada deescrever programas MATLAB. Essas características devem ser úteis para um estudan-te aprendendo a usar o MATLAB e para quem já trabalha com este programa. Entre

elas, temos:

1. Ênfase na metodologia de projetos top-downO livro apresenta uma metodologia de projetos top-down no Capítulo 3, e a uti-liza de forma consistente no seu decorrer. Essa metodologia encoraja o estudan-te a pensar a respeito do projeto apropriado de um programa antes de iniciar acodificação. Ela enfatiza a importância de definir claramente o pro blema a serresolvido e os dados de entrada e saída requeridos antes de iniciar qualqueroutra atividade. Uma vez definido apropriadamente o problema, ensina o estu-dante a aplicar o refinamento passo a passo para subdividir a tarefa em subtare-

fas menores, e implementar as subtarefas como sub-rotinas ou funções separa-das. Finalmente, a metodologia utilizada ensina a importância de efetuar testesem todos os estágios do processo, tanto unitários das rotinas componentescomo testes exaustivos do produto final.

O processo formal de projeto ensinado no livro pode ser assim resumido:1. Estabeleça claramente o problema que você está tentando resolver.2. Defina os dados de entrada requeridos pelo programa e os dados de

saída produzidos por ele.3. Descreva o algoritmo que você pretende implementar no programa.

Este passo requer um projeto top-down e decomposição passo a passo,fazendo uso de pseudocódigo ou de diagramas de fluxo.

4. Transforme o algoritmo em sentenças MATLAB.5. Teste o programa MATLAB. Neste passo estão incluídos os testes uni-

tários de funções específicas e o exaustivo do programa final, com dife-rentes conjuntos de dados.

Page 11: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 11/20

xvi  | Fundamentos de Programação em MATLAB® - 2ª Edição 

2. Ênfase em funçõesO livro enfatiza o uso de funções para a decomposição lógica de tarefas emsubtarefas menores. Ele ensina as vantagens das funções para ocultar dados.

Enfatiza também a importância dos testes unitários das funções antes de com- biná-las no programa final. O livro mostra ainda os erros mais comuns emfunções e como evitá-los.

3. Ênfase em ferramentas MATLABO livro ensina o uso apropriado das ferramentas pré-construídas MATLABpara facilitar a programação e depuração de programas. As ferramentas trata-das são o Espaço de Lançamento, o Editor/Depurador, o Navegador do Espaçode Trabalho, o Navegador de Ajuda e ferramentas de projeto de GUI.

4. Notas de boa prática de programaçãoAs notas enfatizam as boas práticas de programação à medida que são apresen-tadas, para a conveniência do estudante. Além disso, as boas práticas de pro-gramação apresentadas em um capítulo são resumidas no seu final. Apre-sentamos a seguir uma nota de boa prática de programação.

Boa Prática de Programação

Sempre destaque com tabulação o corpo de uma construção if, com dois ou mais espa-

ços, para melhorar a legibilidade do código.

5. Notas de erros de programaçãoEssas notas enfatizam erros comuns que podem ser evitados. Apresentamos aseguir uma nota de erros de programação.

Erros de Programação

Sempre verifique se os nomes de variáveis não se repetem nos primeiros 63 caracteres.Se houver repetição, o MATLAB não conseguirá diferenciar as variáveis.

Características Pedagógicas

Este livro foi projetado especificamente para uso em cursos de Introdução à Programaçãoe à Resolução de Problemas. Todo o conteúdo pode facilmente ser abordado em um cursode nove semanas, com três horas semanais. Se o tempo for insuficiente em algum programaparticular de engenharia, os capítulos 6 e 7 podem ser desconsiderados; os remanescentesainda assim ensinarão os fundamentos de programação e uso do MATLAB para resolução

Page 12: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 12/20

  Prefácio   |  xvii

de problemas. Essa característica deve ser atraente para os professores de engenharia quetêm de inserir cada vez mais conteúdo em currículo delimitado.

Os capítulos seguintes tratam de material avançado que será útil para estudantes

e engenheiros ao longo de suas carreiras. Inclui recursos avançados de entrada/saída eo projeto de interfaces gráficas de usuários para os programas.

O livro possui diversas características projetadas para dar suporte à compreensãodo estudante. Estão incluídos 12 testes, distribuídos ao longo dos capítulos. As respos-tas de todos os exercícios estão apresentadas no Apêndice C. Os testes podem ser usa-dos como autotestes de compreensão. Além disso, temos aproximadamente 130 exercí-cios de final de capítulo. Todos os capítulos trazem quadros de Boa Prática deProgramação, e os erros comuns são apresentados em notas de Erros de Programação.O material de final de capítulo é composto por Resumos de Boas Práticas deProgramação e Resumos de Comandos e Funções MATLAB.

Quero agradecer aos seguintes revisores por seus comentários:

Randy Freeman, Northwestern UniversityThomas N. Gambill, University of Illinois – Urbana ChampaignArlene A. Guest, Naval Postgraduate SchoolDieter S. Schmidt, University of Cincinnati.

Manterei atualizada uma lista de errata e correções* na página Web do livro, quese encontra em www.cengage.com/engineering

* A errata e as correções dizem respeito à edição original em inglês (N.T.).

Page 13: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 13/20  1

MATLAB (abreviatura de MATrix LABoratory – Laboratório de Matrizes) é um progra-

ma de computador especializado e otimizado para cálculos científicos e de engenharia.Inicialmente, foi projetado para cálculos com matrizes; ao longo dos anos, transformou-seem um sistema computacional flexível, capaz de resolver essencialmente qualquer pro- blema técnico.

O MATLAB implementa a linguagem de programação de mesmo nome, junta-mente com uma grande biblioteca de funções predefinidas que tornam as tarefas deprogramação técnica mais fáceis e eficientes. Este livro apresenta a linguagem MATLABversão 7.5, e mostra como utilizá-la para resolver problemas técnicos típicos.

MATLAB é um programa muito grande, com uma rica variedade de funções. Atémesmo sua versão básica, sem ferramentas adicionais, é muito mais rica que outras

linguagens de programação técnica. Existem mais de 1.000 funções no produtoMATLAB, e as ferramentas adicionais ampliam esses recursos com muito mais funçõesem diferentes especialidades. Este livro não pretende ensinar todas as funções doMATLAB. Em vez disso, o usuário aprende os fundamentos de como escrever, depurare otimizar bons programas MATLAB, juntamente com um subconjunto das funçõesmais importantes. Outro aspecto igualmente importante é que o programador aprendea utilizar as ferramentas do próprio MATLAB para localizar a função adequada a umpropósito específico a partir da enorme gama de opções disponíveis.

C a p í t u l o1

Introdução ao MATLAB

Page 14: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 14/20

2  |  Programação em MATLAB ®  para Engenheiros - 2ª Edição 

1.1 Vantagens do MATLAB

MATLAB tem muitas vantagens, em comparação com linguagens computacionais con-vencionais, para resolver problemas técnicos. Entre elas, temos:

1 Facilidade de UsoMATLAB é uma linguagem interpretada, assim como muitas versões de Basic.Como o Basic, ele é muito fácil de usar. O programa pode ser utilizado comoprancheta de rascunhos para avaliar expressões digitadas em linha de coman-do, ou para executar programas grandes escritos previamente. Os programaspodem ser facilmente escritos e modificados no ambiente integrado de desen-volvimento, e depois depurados por meio do depurador MATLAB. Como alinguagem é muito fácil de utilizar, ele é ideal para o desenvolvimento rápido

de protótipos para novos programas.Diversas ferramentas para desenvolvimento de programas são fornecidas,

o que facilita o uso do programa. Entre elas, temos um editor/depurador inte-grado, documentação e manuais on-line, um navegador do espaço de trabalhoe diversos programas de demonstração.

2 Independência de PlataformaMATLAB tem suporte em diferentes sistemas computacionais, o que propor-ciona independência de plataforma. No momento da preparação deste livro, alinguagem tem suporte em Windows XP/Vista, Linux, diversas versões de

Unix e Macintosh. Programas escritos em qualquer plataforma são executadosnas outras, e arquivos de dados escritos em qualquer plataforma podem serlidos transparentemente em todas as outras. Com isso, programas escritos emMATLAB podem migrar para novas plataformas quando as necessidades dousuário se alteram.

3 Funções PredefinidasMATLAB vem completo, com uma grande biblioteca de funções predefi nidas,que apresentam soluções testadas e empacotadas para diversas tarefas técnicas básicas. Por exemplo, suponha que você esteja escrevendo um programa para

calcular as estatísticas relacionadas a um conjunto de dados de entrada. Namaioria das linguagens, você precisaria escrever suas próprias sub-rotinas oufunções para implementar os cálculos de média aritmética, desvio-padrão,mediana etc. Estas, e centenas de outras funções fazem parte da linguagemMATLAB, facilitando seu trabalho.

Além da grande biblioteca de funções presentes na linguagem MATLAB básica, diversas ferramentas específicas estão disponíveis para ajudar a resolverproblemas complexos em áreas específicas. Por exemplo, um usuário podeadquirir ferramentas-padrão para resolver problemas em Processamento deSinais, Sistemas de Controle, Comunicações, Processamento de Imagens e

Redes Neurais, além de outros. Existem também muitos programas MATLABde uso livre, que são contribuições de usuários compartilhadas por meio do siteMATLAB.

Page 15: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 15/20

  Capítulo 1  Introdução ao MATLAB   |  3

4 Desenhos Independentes de Dispositivos

Diferente da maioria das linguagens de computador, MATLAB tem muitoscomandos para desenhos e imagens, que podem ser exibidos em qualquer dis-positivo de saída gráfica compatível com o computador que executa oMATLAB. Este recurso torna o MATLAB uma ferramenta excepcional paravisualização de dados técnicos.

5 Interface Gráfica de UsuárioMATLAB tem ferramentas que permitem a um programador construir intera-tivamente uma interface gráfica de usuário (GUI, do inglês Graphical UserInterface) para seus programas. Com este recurso, o programador é capaz deprojetar programas sofisticados de análise de dados, os quais podem ser opera-

dos por usuários relativamente inexperientes.6 O Compilador MATLAB

A flexibilidade e a independência de plataforma do MATLAB resultam da com-pilação de programas MATLAB em um código independente de dispositivodenominado pcode, e da interpretação em tempo de execução das instruçõesem pcode. Essa abordagem é similar à adotada pela linguagem Visual Basic daMicrosoft. Infelizmente, os programas resultantes às vezes podem se tornarlentos, pois o código MATLAB é interpretado, em vez de compilado. Indicaremosos aspectos que tendem a tornar a execução de programas mais lenta quando os

encontrarmos. Versões recentes do MATLAB resolveram parcialmente esseproblema com a inclusão da tecnologia de compilação no momento de uso( Just-in-time – JIT). O JIT compila partes do código MATLAB durante a execu-ção dos programas, desta forma acelerando os programas de maneira geral.

Existe um compilador MATLAB separado. Ele pode compilar um pro-grama MATLAB como um programa efetivamente executável, que pode rodarsem a necessidade de uma licença MATLAB. Essa é uma boa forma de converterum programa protótipo MATLAB em um programa executável que pode servendido e distribuído a usuários.

1.2 Desvantagens do MATLAB

MATLAB tem duas desvantagens principais. Primeiro, é uma linguagem interpretada,por isso pode ser mais lento que linguagens compiladas. Esse problema pode ser dimi-nuído pela estruturação apropriada dos programas MATLAB para otimizar o desempe-nho do código vetorizado e pelo uso do compilador JIT.

A segunda desvantagem é o custo: uma cópia completa do MATLAB é de cinco adez vezes mais cara que um compilador convencional C ou Fortran. Esse custo relativa-mente alto é mais do que compensado pelo tempo reduzido requerido para um enge-nheiro ou cientista criar um programa, o que torna o MATLAB eficaz para empresas. Elepode ser muito caro, entretanto, para a compra individual. Felizmente, existe uma ver-são mais barata para o estudante, que é uma excelente ferramenta para aqueles quequeiram aprender a linguagem. A versão estudante do MATLAB é essencialmenteidêntica à versão completa.

Page 16: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 16/20

4  |  Programação em MATLAB ®  para Engenheiros - 2ª Edição 

1.3 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. Valores individuais de dados em uma matriz podem ser acessados por meio donome da matriz seguido de índices entre parênteses que identificam a linha e a colunade um valor particular. Até mesmo escalares são tratados como matrizes em MATLAB –eles são simplesmente matrizes com apenas uma linha e uma coluna. Aprenderemos a criare a manipular matrizes MATLAB na seção 1.4.

Na execução do MATLAB podem ser exibidas janelas de diferentes tipos, as quaisaceitam comandos ou exibem informações. Os três tipos mais importantes são Janelas deComandos, onde podem ser inseridos comandos; Janelas de Figuras, que exibem desenhose gráficos; e Janelas de Edição, que permitem a um usuário criar e modificar programas

MATLAB. Veremos exemplos desses três tipos de janelas na presente seção.Além disso, o MATLAB pode exibir outras janelas de auxílio, que possibilitam ao

usuário examinar o valor de variáveis definidas em memória. Vamos conhecer aquialgumas dessas janelas adicionais, e examinar as outras quando discutirmos comodepurar programas MATLAB.

1.3.1 A Área de Trabalho MATLAB

Quando iniciado, o MATLAB versão 7.5 abre uma janela especial denominada área de tra- balho MATLAB, na qual há outras janelas, que exibem os dados do MATLAB, barras deferramentas e um botão “Iniciar” similar aos utilizados no Windows XP ou Vista. A maiorparte das ferramentas MATLAB fica “estacionada” na área de trabalho. Entretanto, o usuá-rio pode “transportar” uma ou todas as ferramentas, para que elas apareçam em janelasseparadas.

A configuração inicial da área de trabalho MATLAB está apresentada na Figura1.1. Ela integra muitas ferramentas para gerenciar arquivos, variáveis e aplicações doambiente MATLAB.

As principais ferramentas que podem ser acessadas na ou a partir da área de tra-

 balho MATLAB são:• Janela de Comandos• Janela de Histórico de Comandos• Botão Iniciar• Janela de Documentos, que inclui o Editor/Depurador e o Editor de Matrizes• Janelas de Figuras• Navegador do Espaço de Trabalho• Navegador de Ajuda• Navegador de Caminhos

Discutiremos as funções dessas ferramentas em seções subsequentes do pre-sente capítulo.

Page 17: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 17/20

  Capítulo 1  Introdução ao MATLAB   |  5

1.3.2 A Janela de Comandos

O lado direito da área de trabalho MATLAB contém a  Janela de Comandos. Um usuá-rio pode inserir comandos interativos pelo marcador de comandos (»), na Janela deComandos, e eles serão executados de imediato.

Um exemplo de cálculo interativo simples é o seguinte: suponha que você queiracalcular a área de um círculo com raio de 2,5 m. Isso pode ser feito pela janela de coman-dos MATLAB, digitando:

» area = pi * 2.5^2

area =

19.6350

O MATLAB calcula a resposta assim que a tecla Enter é pressionada, e armazena oresultado em uma variável (na realidade, em uma matriz 1 x 1) denominada area.O conteúdo dessa variável é exibido na Janela de Comandos, conforme mostrado na

Figura 1.1  Área de trabalho MATLAB. A aparência exata da janela pode diferir ligeiramenteem diferentes tipos de computador.

Page 18: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 18/20

6  |  Programação em MATLAB ®  para Engenheiros - 2ª Edição 

Figura 1.2, e a variável pode ser usada em outros cálculos. (Observe que π é predefinidono MATLAB, por isso podemos simplesmente usar pi sem antes termos de declarar seuvalor como 3,141592...).

Se uma declaração é muito extensa para ser digitada em uma única linha, ela pode

ser complementada em linhas sucessivas digitando reticências (...) no final de cadalinha, e então continuando na linha seguinte. Por exemplo, as duas expressões a seguirsão idênticas:

x1 = 1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6

e

x1 = 1 + 1/2 + 1/3 + 1/4...

+ 1/5 + 1/6

Em vez de digitar comandos diretamente na Janela de Comandos, uma série decomandos pode ser colocada em um arquivo, e o arquivo inteiro pode ser executadoquando digitamos seu nome na Janela de Comandos. Esses arquivos são denominadosarquivos de scripts, também chamados arquivos M, por terem uma extensão de arqui-vo “.m” assim como as funções, como veremos.

Figura 1.2  A Janela de Comandos fica mais à direita na área de trabalho. Os usuários podeminserir comandos e ver as respostas ali.

Page 19: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 19/20

Visite a página deste livro naCengage Learning Brasil econheça também todo o nossocatálogo

Page 20: 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

7/29/2019 9788522107896_PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS

http://slidepdf.com/reader/full/9788522107896programacao-em-matlab-para-engenheiros 20/20

to , o e

, me

roblemas

op- own do ma era a

mais específico), reforçando a

apac a e co oma li uagem e programação

t ca te stu te

crever progra s limpos,

e e tes e em ocume a o .

r en at z o uso e

un õe par de om osi ão

g e tare s e

r f s in me ore e

a

- í . p e e ,

c g a , n s

a rá e gr  

e prog a .

 Aplic ç s

Dest n - i l n

o co u o u

ciênc a c t ção), n s

cursos nfor tica,

Sist a de Infor ão,nc a taç o e

Engenh ria da C u ão,

e s

Física, Química e Engenharia,

sen o part cu arment t

para studa tes deste último.

es n -se, a n a, a

profission s em geral queese em ut zar ssa

ferr menta da compu ão.

Para suas soluções de curso e aprendizado,i i b

9 788522 107896

ISBN 13 978-85-221-0789-6

ISBN 10 85-221-0789-0

 

S E G U N D A