20
STEPHEN J. CHAPMAN S S E E E E G G U U N N N D D D A A A A A A E E E E E E D D D D I I I I Ç Ç Ç Ã Ã O

PROGRAMAÇÃO EM MATLAB PARA ENGENHEIROS - 2ª edição

Embed Size (px)

DESCRIPTION

O autor apresenta, ao longo de toda a obra, uma metodologia de resolução de problemas top-down (do mais geral para o mais específico), reforçando a capacidade do MATLAB como uma linguagem de programação técnica que permite ao estudante escrever programas limpos, eficientes e bem documentados. O livro enfatiza o uso de funções para decomposição lógica de tarefas em subtarefas ainda menores e de ferramentas MATLAB pré-construídas. Apresenta, com igual ênfase, notas sobre boas práticas de programação e erros de programação.

Citation preview

STT

EEPPPPPP

HHHHHHEEEEEE

NNNNNNNNNNNN JJJJJJ...... CCCCCC

HHHHHHHAAAAAAA

PPPPPPPPMMMMMMMM

AAAAAAAANNNNNNNN

PPPPPPPPRRRRRR

OOOOOOGGGG

RRAA

MMMAA

ÇÇÃÃ

OO EE

MM MMM

AAATTT

LLLAA

BT

LLAA

BB PPAA

RRAA

EENN

GGEE

NNNNNNHHHHH

EEEEEEEIIRRRR

OOOOOOSS

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

SS EEEE GG UU NNN DDD AAAAAA EEEEEE DDDD IIII ÇÇÇ ÃÃ O

O O OO auauauautototot r r r apapaprererereeeseseseseses ntntntnta,aa,a, a a ao o lolongngo o dede

tototototodadadada a a a a o oo obrbrbrbra,aa,a, u uumamma m metetododolologogiaiaia dd ddeeee

reereresssosoluluçãçããão oo dededede pp pproroblblememas

totop-p-dodownw ((dodo mmaiais s gegerararall l papapapararara o o

mamaisis espspececífí ico)o), rerefoforçrçanandodo aa

cacapap cicidadade do o MAMATLTLABAB ccomomomommmommmommmo o

uuumumumuuu aa liingngngngngngngngngngngngnn uauagegem m dede prorogrgramamaçaçãoão

tététététéécncnicica quququque e e pepermrmitite aoao eststududanntete

esesesesesesccrcrcrcrcrcc eveverer p roogrgramammmasasasas l limimpopos,s,

efefefefefefefefficccciccieientntnnn es ee b bemem doco ummenennntatatatadodos.s.

OO OOOOO lllililil vrvvvvv o oo enfafaf tizaaaaa o uuusssosos de e

fuffffufunçnçnçnççnçnçnçõeõ sss ss parararaa decccccompoppp siçãçççção

ólóóólólóllóóggigiigigiicacacccacaaa ddde taaatt reefafafafafafas emmemm

ssususususususubtbtbttbbbb aaararaa efefeee aaaaasas aaaaaaininnninndadadadaaa mmenennnnnooresssse e ddddddeeee

fefeeefefeff rrrrrrrrrrraaamamamamaamenenenenenentatatatatat ssss ss MAMAMAMAMAMATLTLTLTLTLTLABABABABABAB

prprrrprpré---é-éé ccococcococococ nsnssnsnsnstrtrtrtrtrtruíuíuuuuídadadadadadass.ssss AAAA AAprprprprprpresesesesssenenenenenentatatatatata,

cooocoocomm m mmm igggguauauauauaual l ênênênênênênfafafafafafasesesesesese, , nonononoootatatatatatas ss sosososososobrbrbrbrbrbreeeee e

bobobooboboboboasasasss p p p prárááátitititicacaaacc s s s s dededededede pppppprorororororogrgrgrrgrramamamamamamaçaçaçaçaçaçãoãoãoãoãoão

e e ee eererererrorororoooos s sss dededede pp p prororr grrgramamamamamamaçaçaçaçaçaçãoãoãoãoãoão..

ApApApApApplililiililicacacacacacaçõçõçõçõçõçõõesesesesesesesDeDeststtinininna-a-a-a-sesesesesee à à à à àà d d d d ddisisisisisisciciciciciciplplplplplplplininininninina a a aa a a

ininintrtrtrtrododododuçuçãoão àà c comommpupupupupuputatatatataçãçãçãçãçãção o o ooo (o(o(o(o(o(ou u uuuu

ciciênêncicia a dada ccc comomommpupupuputataçãção)o), nonoos s ss

cursos d dee ininformrmátáticica,a, cccomomomomo o

SiSiststsstememmemasasa d de e Informmaçaçãoã ,

Ciiênêncicia a dada CC CComomomompupup tataçãção e

EnEngegenhharariaia da a CoCompmppututututaçaçaça ãoão, ,

beem m cocomomo nnosos currsosos dede

Fíísis caca, QuQuímímicica a e e EnEngegenhnharariaia, ,

ses nddo o papartrticicululararmementnte e útútilil

paparara eeststududanantetes s deestste e úlú tit momo.

DeD ststststininini a-a-se, aiaindnda,a, a a

profissionnnnaiaiaiais s s emem g gereralal queue

desejem utilizar ee eessssss a a

ffferramamaaa ennnnta da computututtaçaçaçaçãoão.

Para suas soluções de curso e aprendizado,visite www.cengage.com.br

9 788522 107896

ISBN 13 978-85-221-0789-6ISBN 10 85-221-0789-0

PPPPPPRRRRROOOOGGGGGGGGGGGGGGGRRRRRRRAAAAAAAMMMMMMMAAAAAAÇÇÇÇÇÃÃÃÃÃOOOOO EEEEMMMMMMMM

GGGGGGGEEEEEEEENNNNNNHHHHHHHHEEEEEEEEIIIIIIIIRRRRRRRROOOOOOOOSSPPPPPPPPAAAAAAARRRRRRRRAAAAAAAA EEEEEEEENNNNNNNNGGGGGGGGEEEEEEEENNNNNNNNHHHHHHHHEEEEEIIIROOOOOOOSSS ES E G UG U N DN A E DE DE DE DE DD I ÇI ÇI ÇI ÇI ÇI ÇI Ç Ã OÃ OÃ OÃ OÃ OÃ OÃ O

Ouutrass obrbrassassssasssas

adaddadadadadaadduçuççççuçuçuçuçuççAAAnAAnAAnAAAnAAnálálálllláláláláláláliiisiiisisisississe e ee ee e NuNNNNuNuNuNuNuNuNumémémééééémémééééériririririrricacacacacacacacacaaca TrTrTrTrTrTTrTrTTrTTrTrTraaaaaaaaaaa ãããããoãoãã dddddd ddddddaa a aa 8 88 8888 88

nanaaaaaanaanananaaaddddedddddddiçiççiçiçiçiçiçãoãoãoãoãooooãoãoão nnnnnnnnorrrorororororoorrrtttetettttetetetetee-a-aaaaaaaaammmmememememememeememeeme iiriririiiriiiicacaaacacaccccacacac nnnnnnnnnn

DDDDDDDDDDDDouououououououououuuuuuglglglglgglglgglglggggg asasasasasasasasasas F FFaaiaiaiaiaaiaiaiaiairerereereeeereererererereesssssssssRiRiRiRiRiRiRiRRRRR chccccccchhhharaaaaa dd dddddd LLLLL.LLL.LLLLL B BBBBBBBururururururururrururuurrdededededededededeen n nnnn nnnnnn n eeeeee ee e e J.J.JJJ D DDDD D D

AAAAAAAAAAlglglglglglgglglgororororororororororititttitititiitttittmomomomomomomomomm sss sss ememememm CCCCC CCCC++++++++++++++++++EsEsEsEsEsEsEsEstrtrtrtrtrtrtrt ututututututututurururururururura a a a a aa dededededededde D DD adadadddddddddddosososos eeee e eee A AAAAAAAAA

AddddddAddamamaaaamaa DDDDDDDDrororooroororozdzdzdzdzdzdzdzdekekekekekekekekekk

iaaaaaaaaa d ddddddddddddda a aaaaaaa CoCoCooCCCCoooCCoCoCoCoCoompmppppmppppmpmpmpmpmpmpppuuuutututuu açaçaaçaçaçççaaçççççãããããoãoããão InnInnInInInIntrtrtrtrtrtrtrtrododooooododododododuçuççççuçuçuçuçuççãoãoãoããããoããoã à à à ààà C C CCCCC CCCCCCCiêiêêiêiêiêiêiêêncncncncncncnnncnciaiaiiiiaii

2222222 2 eee e eeeedidididididididiçççççççççççç aaaaaãoãooãoãoãoãoãoãoão a aa aaaaaaaatutututututututututualalaaaalaaaaalala iziziiii adadaaaa

eleleeelelelee i,i,i,ii,i,,, E E E EE Enrnricicoo oooooo GiGiGiGiGiGiGiiulululululullioioiioioiooioi Ricaa dddrdrdddo o o o DaDaDaDaDaDaDaDaDaanininininnininininieleleleeleeeleelelele F FFFFFFFFFedededededededededeeeeeeee

ererrrrrrrnanananananananannandndndnndndndndndndo o oooooooo EdEdEEEdEdEdEdEdEdEdEduauauaaaaauauauauauarddddddrddooo o o oo PePereesFrFrFrFrFrFrFrF anananananaancocococo P P P Pololoo lololoolooooo iiininninnini e eeee F FFFFFFFFeeeeeeeeeee

SSSSSSSisisiiiiisisssisistetemamammmm s s OpOpOOOpOOpOOOOOOO eeererererereracacacacacaccioioioioioooioioioioionanananananaananannaisissssisisisissisisIIInInI trtrttrtttrododdodododoododo uçuçuçuçuçuçuçuçuççãoãoãoãoãoãoãoãoãããoãoãoãoo a aaaaaaaaaososooosososososososos S S SSS S SSS

nnnnnnnnnnnnnnnnnn M MMMMMMMMcIcIcIcIccIcIcccIveveeeeevevevevevevevv r r rrr rrrr McMcccccMcMcMcMcMcMcMcHoHoHoHoHoHoHoHoHoesesesesessesesessessIda a M.M. F F F FFFFFFlllylylyylylyylyynnnnnnnnnnnnnnnnn e eeeeeeeee A AAAAAAAAAnnnnnnnn

sscrcreteta:a uumamammmmmmm ii i intntttntntnttttrororooooooodududududdddduçãçãçãçãçãçãããão o ooMaMaMaMaMaMaMaMatetetetetetetet mámámmmámámmámmám titiititittiiicacacacacacaca DD DDisisisis

TrTTTTT addddduçuçuçuçuuuuçuu ee eeeedididididiiçãçãçãçãçãção o o o o o nonooooonononoortrteee-eee-e-e-e amamamamamamamamamerericicananaaãoãoãoãoãoã dddddda aaaaa 2 2222

heininerermamannEdwawawawawawawaw rd R. Sch

a Objeto cooooooom PrPrPrPrPrPrPrototototototototoooooo ipaçãoeentn açação aOrOrOrOrOrOrO ien

ninielel F Fededeli, EEEEEEEnrn iccccccooooo oo o GiGiGGGGiG ulu io ddoo DaDannRiRiRRRR cacardrdoo

oonini e e FFerernanaaaaaandndnnnnn oooooo o EEEdEdEEE uauauuuuu drdPPololollololoFranncoo PPo uauuuuuardrdo o PePereress

PrPrinincc ssípípioioss Sistemmmmmmass OOO O OO O Opepepeeeeeperaraacicicionono aiaia sss dde e SS

caççe e ee AA AAplplplicicaPrPrPP ojojjjetetosos õeõeõõõõ ss

SStutuararttBrB iiaian nn LL.LL SSSS

C

M

Y

CM

MY

CY

CMY

K

AF_matlab.ai 5/18/10 5:05:22 PM

vii

Prefácio xv

1 Introdução ao MATLAB 11.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 81.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 212.1 Variáveis e Matrizes 212.2 Criando e Iniciando Variáveis no MATLAB 25

Sumário

Book_Matlab.indb 7 13/5/2010 18:04:04

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 292.2.4 Iniciando Variáveis com Entrada pelo Teclado 29

2.3 Matrizes Multidimensionais 312.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 54

2.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 873.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

Book_Matlab.indb 8 13/5/2010 18:04:05

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 292.2.4 Iniciando Variáveis com Entrada pelo Teclado 29

2.3 Matrizes Multidimensionais 312.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 54

2.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 873.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

Book_Matlab.indb 8 13/5/2010 18:04:05

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 1514.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 1754.3.1 Criando o Equivalente a Construções if/else com Matrizes Lógicas 176

4.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 2055.1 Introdução a Funções MATLAB 2075.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

Book_Matlab.indb 9 13/5/2010 18:04:05

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 2485.7.3 Ordem de Avaliação de Funções 249

5.8 Resumo 2495.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 2636.1 Dados Complexos 263

6.1.1 Variáveis Complexas 2656.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 2776.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 3127.1 Matrizes Celulares 312

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

Book_Matlab.indb 10 13/5/2010 18:04:06

Sumário | xi

7.1.3 Visualizando o Conteúdo de Matrizes Celulares 3177.1.4 Estendendo Matrizes Celulares 3187.1.5 Apagando Células em Matrizes 3207.1.6 Utilizando Dados em Matrizes Celulares 3217.1.7 Matrizes Celulares de Cadeias de Caracteres 3217.1.8 A Importância das Matrizes Celulares 3227.1.9 Resumo das Funções da Matriz cell 326

7.2 Matrizes Estruturas 3277.2.1 Criando Matrizes Estruturas 3277.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 3387.3.1 O Sistema de Gráficos MATLAB 3387.3.2 Controles de Objetos 3397.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 3577.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 3617.8.2 Resumo do MATLAB 361

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

Book_Matlab.indb 11 13/5/2010 18:04:06

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 e de 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ível capaz de resolver essencialmente qualquer problema técnico.

O programa MATLAB implementa esta linguagem e oferece uma ampla biblioteca de 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 resol ver proble-mas técnicos em MATLAB do que em outras linguagens, como Fortran ou C. Este livro apresenta 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 de MATLAB como uma linguagem técnica de programação, que pode ser usada no lugar de linguagens como Basic, Fortran ou C++. A maioria dos currículos de engenharia atualmente 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 os estudantes se fami liarizem 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 centenas de funções do MATLAB. Em vez disso, ensina ao estudante como utilizar MATLAB como uma linguagem para resolver problemas e como localizar qualquer função dese-jada utilizando os recursos de ajuda on-line do MATLAB.

Prefácio

Book_Matlab.indb 13 13/5/2010 18:04:06

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

O livro Fundamentos de Programação em MATLAB, 2ª edição, foi elaborado para ser utilizado como livro-texto em disciplinas de Introdução à Programação e à Resolução de 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 computador convencionais, 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, ou para executar programas grandes previamente escritos. Programas podem ser escri tos e modificados com facilidade usando o ambiente de desenvolvimento integrado embutido, bem como depurados usando o depurador MATLAB. Por ser 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 fornecidas para 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 PlataformaMATLAB tem suporte em muitos sistemas computacionais diferentes, propor-cionando, em grande medida, uma independência de plataforma. No momento de 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 plataforma podem 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 PredefinidasMATLAB vem completo, com uma grande biblioteca de funções predefinidas que proporcionam soluções testadas e empacotadas para muitas tarefas técnicas básicas. Por exemplo, suponha que você esteja escrevendo um programa que precise calcular a estatística associada com um conjunto de dados de entrada. Na maioria das linguagens, você precisaria escrever suas próprias sub-rotinas ou funções para implementar os cálculos, como média aritmética, desvio padrã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ásica MATLAB, existem muitas outras caixas de ferramentas especializadas dispo-níveis para ajudar a resolver problemas complexos em áreas específicas. Por exemplo, um usuário pode adquirir caixas de ferramentas-padrão para resol-

Book_Matlab.indb 14 13/5/2010 18:04:06

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 qualquer dispositivo gráfico compatível com computador que executa o MATLAB. Este recurso torna o MATLAB uma ferramenta excepcional para visualizaçã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 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 rela tivamente inexperientes.

Características deste Livro

Muitas características deste livro têm por objetivo enfatizar a maneira apropriada de escrever 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 a codificação. Ela enfatiza a importância de definir claramente o pro blema a ser resolvido e os dados de entrada e saída requeridos antes de iniciar qualquer outra 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 testes em todos os estágios do processo, tanto unitários das rotinas componentes como 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.

Book_Matlab.indb 15 13/5/2010 18:04:07

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 em subtarefas 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 em funções e como evitá-los.

3. Ênfase em ferramentas MATLABO livro ensina o uso apropriado das ferramentas pré-construídas MATLAB para 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ço de 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 a seguir 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ção e à Resolução de Problemas. Todo o conteúdo pode facilmente ser abordado em um curso de nove semanas, com três horas semanais. Se o tempo for insuficiente em algum programa particular de engenharia, os capítulos 6 e 7 podem ser desconsiderados; os remanescentes ainda assim ensinarão os fundamentos de programação e uso do MATLAB para resolução

Book_Matlab.indb 16 13/5/2010 18:04:07

Prefácio | xvii

de problemas. Essa característica deve ser atraente para os professores de engenharia que tê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 e o projeto de interfaces gráficas de usuários para os programas.

O livro possui diversas características projetadas para dar suporte à compreensão do 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 de Programaçã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 de Programaçã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, que se encontra em www.cengage.com/engineering

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

Book_Matlab.indb 17 13/5/2010 18:04:07

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-se em 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 de programação técnica mais fáceis e eficientes. Este livro apresenta a linguagem MATLAB versã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 produto MATLAB, e as ferramentas adicionais ampliam esses recursos com muito mais funções em diferentes especialidades. Este livro não pretende ensinar todas as funções do MATLAB. Em vez disso, o usuário aprende os fundamentos de como escrever, depurar e otimizar bons programas MATLAB, juntamente com um subconjunto das funções mais importantes. Outro aspecto igualmente importante é que o programador aprende a utilizar as ferramentas do próprio MATLAB para localizar a função adequada a um propósito específico a partir da enorme gama de opções disponíveis.

C a p í t u l o 1

Introdução ao MATLAB

Book_Matlab.indb 1 13/5/2010 18:04:07

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 como pran cheta de rascunhos para avaliar expressões digitadas em linha de coman-do, ou para executar programas grandes escritos previamente. Os programas podem ser facilmente escritos e modificados no ambiente integrado de desen-volvimento, e depois depurados por meio do depurador MATLAB. Como a linguagem é 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 trabalho e 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, a lingua gem tem suporte em Windows XP/Vista, Linux, diversas versões de Unix e Macintosh. Programas escritos em qualquer plataforma são executados nas outras, e arqui vos de dados escritos em qualquer plataforma podem ser lidos transparentemente em todas as outras. Com isso, programas escritos em MATLAB podem migrar para novas plataformas quando as necessidades do usuá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. Na maioria das linguagens, você precisaria escrever suas próprias sub-rotinas ou funções para implementar os cálculos de média aritmética, desvio-padrão, me diana etc. Estas, e centenas de outras funções fazem parte da linguagem MATLAB, facili tando 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 resolver problemas complexos em áreas específicas. Por exemplo, um usuário pode adquirir ferramentas-padrão para resolver problemas em Processamento de Sinais, Sistemas de Controle, Comunicações, Processamento de Imagens e Redes Neurais, além de outros. Existem também muitos programas MATLAB de uso livre, que são contribuições de usuários compartilhadas por meio do site MATLAB.

Book_Matlab.indb 2 13/5/2010 18:04:08

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

4 Desenhos Independentes de DispositivosDiferente da maioria das linguagens de computador, MATLAB tem muitos co mandos para desenhos e imagens, que podem ser exibidos em qualquer dis-positivo de saída gráfica compatível com o computador que executa o MATLAB. Este recurso torna o MATLAB uma ferramenta excepcional para visua lizaçã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 User Interface) para seus progra mas. Com este recurso, o programador é capaz de projetar pro gramas sofisticados de aná lise de dados, os quais podem ser opera-dos por usuários relativamente inexperientes.

6 O Compilador MATLABA flexibilidade e a independência de plataforma do MATLAB resultam da com-pilação de programas MATLAB em um código independente de dispositivo denomi nado pcode, e da interpretação em tempo de execução das instruções em pcode. Essa abordagem é similar à adotada pela linguagem Visual Basic da Microsoft. Infelizmente, os programas resultantes às vezes podem se tornar lentos, pois o código MATLAB é interpretado, em vez de compilado. Indicaremos os aspectos que tendem a tornar a execução de programas mais lenta quando os encontrarmos. Versões recentes do MATLAB resolveram parcialmente esse problema 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 rodar sem a necessidade de uma licença MATLAB. Essa é uma boa forma de converter um progra ma protótipo MATLAB em um programa executável que pode ser vendido e distribuído a usuários.

1.2 Desvantagens do MATLAB

MATLAB tem duas desvantagens principais. Primeiro, é uma linguagem interpre tada, 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 a dez 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. Ele pode 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 que queiram aprender a linguagem. A versão estudante do MATLAB é essencialmente idêntica à versão completa.

Book_Matlab.indb 3 13/5/2010 18:04:08

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, determi nada por um nome único. Valores individuais de dados em uma matriz podem ser acessados por meio do nome da matriz seguido de índices entre parênteses que identificam a linha e a coluna de 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 criar e a manipular matrizes MATLAB na seção 1.4.

Na execução do MATLAB podem ser exibidas janelas de diferentes tipos, as quais aceitam comandos ou exibem informações. Os três tipos mais importantes são Janelas de Comandos, onde podem ser inseridos comandos; Janelas de Figuras, que exibem desenhos e 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 aqui algumas dessas janelas adicionais, e examinar as outras quando discutirmos como depurar 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 de ferramentas e um botão “Iniciar” similar aos utilizados no Windows XP ou Vista. A maior parte 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 janelas separadas.

A configuração inicial da área de trabalho MATLAB está apresentada na Figura 1.1. Ela integra muitas ferramentas para gerenciar arquivos, variáveis e aplicações do ambiente 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.

Book_Matlab.indb 4 13/5/2010 18:04:08

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 de Comandos, e eles serão executados de imediato.

Um exemplo de cálculo interativo simples é o seguinte: suponha que você queira calcular 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^2area =

19.6350

O MATLAB calcula a resposta assim que a tecla Enter é pressionada, e armazena o resultado 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 ligeiramente em diferentes tipos de computador.

Book_Matlab.indb 5 13/5/2010 18:04:08

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 π é predefinido no MATLAB, por isso podemos simplesmente usar pi sem antes termos de declarar seu valor 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 cada linha, e então continuando na linha seguinte. Por exemplo, as duas expressões a seguir sã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 de comandos pode ser colocada em um arquivo, e o arquivo inteiro pode ser executado quando digitamos seu nome na Janela de Comandos. Esses arquivos são denominados arquivos 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 podem inserir comandos e ver as respostas ali.

Book_Matlab.indb 6 13/5/2010 18:04:09

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 π é predefinido no MATLAB, por isso podemos simplesmente usar pi sem antes termos de declarar seu valor 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 cada linha, e então continuando na linha seguinte. Por exemplo, as duas expressões a seguir sã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 de comandos pode ser colocada em um arquivo, e o arquivo inteiro pode ser executado quando digitamos seu nome na Janela de Comandos. Esses arquivos são denominados arquivos 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 podem inserir comandos e ver as respostas ali.

Book_Matlab.indb 6 13/5/2010 18:04:09

Visite a página deste livro na Cengage Learning Brasil e conheça também todo o nosso catálogo

STT

EEPPPPPP

HHHHHHEEEEEE

NNNNNNNNNNNN JJJJJJ...... CCCCCC

HHHHHHHAAAAAAA

PPPPPPPPMMMMMMMM

AAAAAAAANNNNNNNN

PPPPPPPPRRRRRR

OOOOOOGGGG

RRAA

MMMAA

ÇÇÃÃ

OO EE

MM MMM

AAATTT

LLLAA

BT

LLAA

BB PPAA

RRAA

EENN

GGEE

NNNNNNHHHHH

EEEEEEEIIRRRR

OOOOOOSS

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

SS EEEE GG UU NNN DDD AAAAAA EEEEEE DDDD IIII ÇÇÇ ÃÃ O

O O OO auauauautototot r r r apapaprererereeeseseseseses ntntntnta,aa,a, a a ao o lolongngo o dede

tototototodadadada a a a a o oo obrbrbrbra,aa,a, u uumamma m metetododolologogiaiaia dd ddeeee

reereresssosoluluçãçããão oo dededede pp pproroblblememas

totop-p-dodownw ((dodo mmaiais s gegerararall l papapapararara o o

mamaisis espspececífí ico)o), rerefoforçrçanandodo aa

cacapap cicidadade do o MAMATLTLABAB ccomomomommmommmommmo o

uuumumumuuu aa liingngngngngngngngngngngngnn uauagegem m dede prorogrgramamaçaçãoão

tététététéécncnicica quququque e e pepermrmitite aoao eststududanntete

esesesesesesccrcrcrcrcrcc eveverer p roogrgramammmasasasas l limimpopos,s,

efefefefefefefefficccciccieientntnnn es ee b bemem doco ummenennntatatatadodos.s.

OO OOOOO lllililil vrvvvvv o oo enfafaf tizaaaaa o uuusssosos de e

fuffffufunçnçnçnççnçnçnçõeõ sss ss parararaa decccccompoppp siçãçççção

ólóóólólóllóóggigiigigiicacacccacaaa ddde taaatt reefafafafafafas emmemm

ssususususususubtbtbttbbbb aaararaa efefeee aaaaasas aaaaaaininnninndadadadaaa mmenennnnnooresssse e ddddddeeee

fefeeefefeff rrrrrrrrrrraaamamamamaamenenenenenentatatatatat ssss ss MAMAMAMAMAMATLTLTLTLTLTLABABABABABAB

prprrrprpré---é-éé ccococcococococ nsnssnsnsnstrtrtrtrtrtruíuíuuuuídadadadadadass.ssss AAAA AAprprprprprpresesesesssenenenenenentatatatatata,

cooocoocomm m mmm igggguauauauauaual l ênênênênênênfafafafafafasesesesesese, , nonononoootatatatatatas ss sosososososobrbrbrbrbrbreeeee e

bobobooboboboboasasasss p p p prárááátitititicacaaacc s s s s dededededede pppppprorororororogrgrgrrgrramamamamamamaçaçaçaçaçaçãoãoãoãoãoão

e e ee eererererrorororoooos s sss dededede pp p prororr grrgramamamamamamaçaçaçaçaçaçãoãoãoãoãoão..

ApApApApApplililiililicacacacacacaçõçõçõçõçõçõõesesesesesesesDeDeststtinininna-a-a-a-sesesesesee à à à à àà d d d d ddisisisisisisciciciciciciplplplplplplplininininninina a a aa a a

ininintrtrtrtrododododuçuçãoão àà c comommpupupupupuputatatatataçãçãçãçãçãção o o ooo (o(o(o(o(o(ou u uuuu

ciciênêncicia a dada ccc comomommpupupuputataçãção)o), nonoos s ss

cursos d dee ininformrmátáticica,a, cccomomomomo o

SiSiststsstememmemasasa d de e Informmaçaçãoã ,

Ciiênêncicia a dada CC CComomomompupup tataçãção e

EnEngegenhharariaia da a CoCompmppututututaçaçaça ãoão, ,

beem m cocomomo nnosos currsosos dede

Fíísis caca, QuQuímímicica a e e EnEngegenhnharariaia, ,

ses nddo o papartrticicululararmementnte e útútilil

paparara eeststududanantetes s deestste e úlú tit momo.

DeD ststststininini a-a-se, aiaindnda,a, a a

profissionnnnaiaiaiais s s emem g gereralal queue

desejem utilizar ee eessssss a a

ffferramamaaa ennnnta da computututtaçaçaçaçãoão.

Para suas soluções de curso e aprendizado,visite www.cengage.com.br

9 788522 107896

ISBN 13 978-85-221-0789-6ISBN 10 85-221-0789-0

PPPPPPRRRRROOOOGGGGGGGGGGGGGGGRRRRRRRAAAAAAAMMMMMMMAAAAAAÇÇÇÇÇÃÃÃÃÃOOOOO EEEEMMMMMMMM

GGGGGGGEEEEEEEENNNNNNHHHHHHHHEEEEEEEEIIIIIIIIRRRRRRRROOOOOOOOSSPPPPPPPPAAAAAAARRRRRRRRAAAAAAAA EEEEEEEENNNNNNNNGGGGGGGGEEEEEEEENNNNNNNNHHHHHHHHEEEEEIIIROOOOOOOSSS ES E G UG U N DN A E DE DE DE DE DD I ÇI ÇI ÇI ÇI ÇI ÇI Ç Ã OÃ OÃ OÃ OÃ OÃ OÃ O

Ouutrass obrbrassassssasssas

adaddadadadadaadduçuççççuçuçuçuçuççAAAnAAnAAnAAAnAAnálálálllláláláláláláliiisiiisisisississe e ee ee e NuNNNNuNuNuNuNuNuNumémémééééémémééééériririririrricacacacacacacacacaaca TrTrTrTrTrTTrTrTTrTTrTrTraaaaaaaaaaa ãããããoãoãã dddddd ddddddaa a aa 8 88 8888 88

nanaaaaaanaanananaaaddddedddddddiçiççiçiçiçiçiçãoãoãoãoãooooãoãoão nnnnnnnnorrrorororororoorrrtttetettttetetetetee-a-aaaaaaaaammmmememememememeememeeme iiriririiiriiiicacaaacacaccccacacac nnnnnnnnnn

DDDDDDDDDDDDouououououououououuuuuuglglglglgglglgglglggggg asasasasasasasasasas F FFaaiaiaiaiaaiaiaiaiairerereereeeereererererereesssssssssRiRiRiRiRiRiRiRRRRR chccccccchhhharaaaaa dd dddddd LLLLL.LLL.LLLLL B BBBBBBBururururururururrururuurrdededededededededeen n nnnn nnnnnn n eeeeee ee e e J.J.JJJ D DDDD D D

AAAAAAAAAAlglglglglglgglglgororororororororororititttitititiitttittmomomomomomomomomm sss sss ememememm CCCCC CCCC++++++++++++++++++EsEsEsEsEsEsEsEstrtrtrtrtrtrtrt ututututututututurururururururura a a a a aa dededededededde D DD adadadddddddddddosososos eeee e eee A AAAAAAAAA

AddddddAddamamaaaamaa DDDDDDDDrororooroororozdzdzdzdzdzdzdzdekekekekekekekekekk

iaaaaaaaaa d ddddddddddddda a aaaaaaa CoCoCooCCCCoooCCoCoCoCoCoompmppppmppppmpmpmpmpmpmpppuuuutututuu açaçaaçaçaçççaaçççççãããããoãoããão InnInnInInInIntrtrtrtrtrtrtrtrododooooododododododuçuççççuçuçuçuçuççãoãoãoããããoããoã à à à ààà C C CCCCC CCCCCCCiêiêêiêiêiêiêiêêncncncncncncnnncnciaiaiiiiaii

2222222 2 eee e eeeedidididididididiçççççççççççç aaaaaãoãooãoãoãoãoãoãoão a aa aaaaaaaatutututututututututualalaaaalaaaaalala iziziiii adadaaaa

eleleeelelelee i,i,i,ii,i,,, E E E EE Enrnricicoo oooooo GiGiGiGiGiGiGiiulululululullioioiioioiooioi Ricaa dddrdrdddo o o o DaDaDaDaDaDaDaDaDaanininininnininininieleleleeleeeleelelele F FFFFFFFFFedededededededededeeeeeeee

ererrrrrrrnanananananananannandndndnndndndndndndo o oooooooo EdEdEEEdEdEdEdEdEdEdEduauauaaaaauauauauauarddddddrddooo o o oo PePereesFrFrFrFrFrFrFrF anananananaancocococo P P P Pololoo lololoolooooo iiininninnini e eeee F FFFFFFFFeeeeeeeeeee

SSSSSSSisisiiiiisisssisistetemamammmm s s OpOpOOOpOOpOOOOOOO eeererererereracacacacacaccioioioioioooioioioioionanananananaananannaisissssisisisissisisIIInInI trtrttrtttrododdodododoododo uçuçuçuçuçuçuçuçuççãoãoãoãoãoãoãoãoãããoãoãoãoo a aaaaaaaaaososooosososososososos S S SSS S SSS

nnnnnnnnnnnnnnnnnn M MMMMMMMMcIcIcIcIccIcIcccIveveeeeevevevevevevevv r r rrr rrrr McMcccccMcMcMcMcMcMcMcHoHoHoHoHoHoHoHoHoesesesesessesesessessIda a M.M. F F F FFFFFFlllylylyylylyylyynnnnnnnnnnnnnnnnn e eeeeeeeee A AAAAAAAAAnnnnnnnn

sscrcreteta:a uumamammmmmmm ii i intntttntntnttttrororooooooodududududdddduçãçãçãçãçãçãããão o ooMaMaMaMaMaMaMaMatetetetetetetet mámámmmámámmámmám titiititittiiicacacacacacaca DD DDisisisis

TrTTTTT addddduçuçuçuçuuuuçuu ee eeeedididididiiçãçãçãçãçãção o o o o o nonooooonononoortrteee-eee-e-e-e amamamamamamamamamerericicananaaãoãoãoãoãoã dddddda aaaaa 2 2222

heininerermamannEdwawawawawawawaw rd R. Sch

a Objeto cooooooom PrPrPrPrPrPrPrototototototototoooooo ipaçãoeentn açação aOrOrOrOrOrOrO ien

ninielel F Fededeli, EEEEEEEnrn iccccccooooo oo o GiGiGGGGiG ulu io ddoo DaDannRiRiRRRR cacardrdoo

oonini e e FFerernanaaaaaandndnnnnn oooooo o EEEdEdEEE uauauuuuu drdPPololollololoFranncoo PPo uauuuuuardrdo o PePereress

PrPrinincc ssípípioioss Sistemmmmmmass OOO O OO O Opepepeeeeeperaraacicicionono aiaia sss dde e SS

caççe e ee AA AAplplplicicaPrPrPP ojojjjetetosos õeõeõõõõ ss

SStutuararttBrB iiaian nn LL.LL SSSS

C

M

Y

CM

MY

CY

CMY

K

AF_matlab.ai 5/18/10 5:05:22 PM