scilablivro2.pdf

Upload: paulo-cezar

Post on 14-Apr-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 ScilabLivro2.pdf

    1/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 1

    Iniciao ao ScilabIniciao ao Scilab

    Segunda edioSegunda edio

    Lus Soares Barreto

  • 7/30/2019 ScilabLivro2.pdf

    2/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 2

    Sem texto

  • 7/30/2019 ScilabLivro2.pdf

    3/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 3

    Iniciao ao Scilab

  • 7/30/2019 ScilabLivro2.pdf

    4/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 4

    Sem texto

  • 7/30/2019 ScilabLivro2.pdf

    5/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 5

    Iniciao ao Scilab

    Lus Soares Barreto

    Professor Catedrtico Jubilado

    do Instituto Superior de Agronomia,Lisboa, Portugal

    Segunda edio

  • 7/30/2019 ScilabLivro2.pdf

    6/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 6

    Lus Soares Barreto, 2008, 2011

    INICIAO AO SCILAB

    Segunda edio

    Edio do autor

    Texto conforme a nova ortografia

    Prof. Doutor Lus Soares BarretoAv. do Movimento das Foras Armadas, 41 3DPT-2825-372 Costa de Caparica

    Portugal

    Com os melhores cumprimentos

    Este e-book freeware, mas no do domnio pblico.Pode ser divulgado livremente, respeitada a sua autoria edireitos conexos, desde que o seja na sua totalidade, mas

    no pode ser comercializado. Quem o utilizar f-lototalmente por sua conta e risco, e no me pode serimputada nenhuma responsabilidade, de nenhuma naturezae a qualquer ttulo, por pretensos inconvenientes resultantesda sua utilizao.

  • 7/30/2019 ScilabLivro2.pdf

    7/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 7

    Para a Sandra Isabel,que trouxe minha ateno

    vrio software de fonte aberta e livre,com terna gratido

  • 7/30/2019 ScilabLivro2.pdf

    8/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 8

    Sem texto

  • 7/30/2019 ScilabLivro2.pdf

    9/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 9

    Grande, todo-poderosa, todo aperfeioadora, e divina a fora donmero, comeo e governante da vida divina e humana,

    participante de tudo. Sem nmero, tudo confuso e obscuroFilolau de Cretona, filsofo pitagrico, sc. V a. C.

    No acreditamos que no mundo fsico exista alguma coisano-matematizvel.P. J. Davis e E. R. Hersh. Descartes Dream: The World Accordingto Mathematics.Traduzido em Davis e Hersh (1997:30)

    Lus Soares Barreto, engenheiro silvicultor, M.F., Ph. D. (DukeUniversity, E.U.A.), professor catedrtico jubilado do InstitutoSuperior de Agronomia, da Universidade Tcnica de Lisboa,tendo anteriormente exercido atividade na investigao eensino superior, em Moambique. o nico portugus queestabeleceu uma teoria cientfica. Comeou por criar umateoria, de carcter sinttico, dedutivo-matemtico, abrangendode forma unificada povoamentos florestais puros e mistos, tantoregulares como irregulares, sendo a nica disponvel, com estaabrangncia, neste domnio. Em 2005, apresentou umaconstruo do mesmo tipo no mbito da ecologia terica, deque a primeira passou a ser um caso particular. sciohonorrio da Associao Portuguesa de Engenheiros doAmbiente por ter concebido, instalado, e consolidado a primeiralicenciatura em engenharia do ambiente, em Portugal, naFaculdade de Cincias e Tecnologia, da Universidade Nova deLisboa, em 1977, onde prestou colaborao graciosa durantecerca de oito anos. A sua lista de textos didticos, cientficos,tcnicos e de comunicaes a vrias reunies cientficasultrapassa as duas centenas. Exerceu atividade de consultoriano mbito das engenharias do ambiente e florestal.

  • 7/30/2019 ScilabLivro2.pdf

    10/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 10

    Trabalhos recentes do autor

    Conceitos e Modelos da Dinmica de uma Coorte de rvores. Aplicao ao Pinhal. e-

    book. 2 edio. Instituto Superior de Agronomia, Lisboa, 2004.Pinhais Bravos. Ecologia e Gesto. e-book. Instituto Superior de Agronomia, Lisboa,2004.

    Theoretical Ecology. A Unified Approach. e-book. Costa de Caparica, 2005.

    The Stochastic Dynamics of Self-Thinned-Pure Stands. A Simulative Quest. SilvaLusitana, 14(2):227-238, 2006.

    The Changing Geometry of Self-Thinned Mixed Stands. A Simulative Quest. SilvaLusitana, 15(1):119-132, 2007.

    The Reconciliation of r-K, and C-S-R Models for Life-History Strategies . Silva Lusitana,16(1):97-103, 2008.

    O Algoritmo Barcor: Classificao de Cortia para Rolhas Recorrendo a Quatro Atributosde Qualidade. Silva Lusitana, 16(2):207-227, 2008.

    Growth, Regeneration, and Survival Indices for Tree Species. Silva Lusitana, 17(1):83-95, 2009.

    Caracterizao da Estrutura e Dinmica das Populaes de Lince Ibrico (Lynxpardinus). Uma Digresso Exploratria. Silva Lusitana, 17(2):193-209, 2009.

    Simulao do Carbono Retido no Pinhal Bravo e da sua Acreo . Silva Lusitana,

    18(1):47-58, 2010.

    Simulator SB-IberiQu. Simulator for self-thinned even-aged forests of Quercus robur,written in Scilab. setembro de 2010.

    rvores e Arvoredos. Geometria e Dinmica. 'E-book' divulgado em novembro de 2010.

    The Blended Geometry of Self-Thinned Uneven-Aged Mixed Stands . Silva Lusitana,18(2):47-58, 2010.

    From Trees to Forests. A Unified Theory. E-book divulgado em maio de 2011.

    Submetidos para publicao

    Gauses Competition Experiments with Paramecium sps. Revisited. Submetido SilvaLusitana, setembro de 2007.

    Modelling and Simulating Omnivory. Submetido Silva Lusitana, maro de 2009.

    Plant Growth and Kleiber's Law. Submetido Silva Lusitana, maro de 2009.

    A Unified Theory for Self-Thinned Pure Stands. A Synoptic Presentation. Submetido Silva Lusitana, maio de 2009.

    A Unified Theory for Self-Thinned Mixed Stands. A Synoptic Presentation. Submetido Silva Lusitana, maio de 2009.

  • 7/30/2019 ScilabLivro2.pdf

    11/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 11

    The Simulation of Thinning in Mixed Even-Aged Stands. Submetido Silva Lusitana,outubro de 2009.

    An Ecological Approachto the Management of Mixed Uneven-Aged Forests. Submetido

    Silva Lusitana, outubro de 2009.Breve Revisitao do Algoritmo BARCOR. Submetido Silva Lusitana, novembro de2009.

    The Total Biomass of Self-Thinned Mixed Forests. A Theoretical and Simulative Inquiry.Submetido Silva Lusitana, fevereiro de 2010.

    The Global Yield and Allometry of Self-Thinned Mixed Forests. Submetido SilvaLusitana, junho de 2010.

    Introducing Simulator SB-IberiQu, and Algorithm SB-AloThin. Submetido SilvaLusitana, novembro de 2010.

  • 7/30/2019 ScilabLivro2.pdf

    12/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 12

    ndice

    ndice

    Prefcio Segunda Edio..............................................................................................15

    Prefcio Primeira Edio...............................................................................................16Inicie-se, ficando j a conhecer.....................................................................................180 Sinopse Geral.........................................................................................................22

    0.1 Captulo 1 Mos obra......................................................................................230.2 Captulo 2 Exerccios de aquecimento...............................................................240.3 Captulo 3 vetores e matrizes.............................................................................260.4 Captulo 4 Grficos.............................................................................................270.5 Captulo 5 Outros comandos com interesse......................................................280.6 Captulo 6 Introduo elementar programao..............................................290.7 Captulo 7 Programao em Scilab....................................................................29

    0.8 Captulo 8 Aplicaes.........................................................................................311 Mos obra...........................................................................................................321.1 Apresentando o Scilab..........................................................................................331.2 Como obter o Scilab..............................................................................................341.3 Convenes tipogrficas.......................................................................................341.4 As janelas de interface com o utilizador...............................................................341.5 Algum conhecimento prvio necessrio...............................................................371.6 Quadro sinptico dos comandos introduzidos neste captulo.............................45

    Exerccios de aquecimento......................................................................................472.1 Clculo aritmtico com escalares.........................................................................482.2 Fazer um grfico simples de vetores.....................................................................522.3 Anlise combinatria............................................................................................552.4 Clculo trigonomtrico.........................................................................................562.5 Resolvendo alguns problemas de fsica................................................................582.6 Uma anotao preliminar sobre cadeias de caracteres (strings)......................602.7 Criar uma funo simples.....................................................................................612.8 Achar a soluo de um sistema de equaes lineares..........................................622.9 Anlise de uma funo polinomial........................................................................642.10 Operaes com polinmios................................................................................672.11 Limites.................................................................................................................702.12 Estatstica elementar...........................................................................................71

    2.13 Probabilidades elementares...............................................................................742.14 Criar uma funo on-line.................................................................................782.15 Quadro sinptico dos comandos introduzidos neste captulo...........................79

    3 Vetores e matrizes.................................................................................................813.1 Recapitular a criao de vetores e matrizes.........................................................823.2 Criar matrizes especiais.........................................................................................833.3 Identificar os elementos de um vetor ou matriz..................................................853.4 Manipular vetores e matrizes...............................................................................863.5 Operaes com vetores e matrizes.......................................................................883.6 Analisar matrizes...................................................................................................93

    3.7 Novamente os sistemas de equaes lineares.....................................................953.8 Outra aplicao da lgebra linear.........................................................................96

  • 7/30/2019 ScilabLivro2.pdf

    13/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 13

    ndice3.9 Quadro sinptico dos comandos introduzidos neste captulo.............................99

    4 Grficos...............................................................................................................1004.1 Continuando a criar grficos de duas dimenses (2D).......................................1014.2 Escrever no espao do grfico e identificar curvas.............................................103

    4.3 Escrever no espao do grfico as legendas das curvas.......................................1044.4 Formatar grficos 2D com os menus e botes da sua janela.............................1054.5 Outras possibilidades de criar facilmente grficos a duas dimenses...............1134.6 Inserir vrios grficos na mesma janela..............................................................1154.7 Grficos a trs dimenses (3D)...........................................................................1184.8 Formatar grficos 3D com os menus e botes da sua janela.............................1194.9 Outras possibilidades de criar facilmente grficos 3D........................................1224.10 Quadro sinptico dos comandos introduzidos neste captulo.........................124

    5 Outros comandos ................................................................................................1255.1 Ajustar curvas .....................................................................................................126

    5.2 Interpolao........................................................................................................1305.3 Diferenciao......................................................................................................1335.4 Integrao...........................................................................................................1345.5 Soluo de sistemas de equaes no lineares..................................................1355.6 Soluo numrica de equaes diferenciais ordinrias......................................1365.7 Otimizao..........................................................................................................1415.8 Comandos supervenientes.................................................................................1455.9 Quadro sinptico dos comandos introduzidos neste captulo...........................147

    6 Introduo elementar programao..................................................................1486.1 Problemas, algoritmos e programao...............................................................149

    6.2 Solucionar um problema.....................................................................................1506.3 Antes de comear a programar...........................................................................1536.4 Planear o programa............................................................................................1536.5 O fluxograma clssico.........................................................................................1546.6 O pseudocdigo .................................................................................................1576.7 Estruturas de controlo de um programa.............................................................159

    7 Programao em Scilab........................................................................................1617.1 Tipos de dados que o Scilab reconhece..............................................................1627.2 Identificar tipos de funes ............................................................................1707.3 Tipos de variveis ............................................................................................170

    7.4 Entrada de dados................................................................................................1707.5 Sada de resultados.............................................................................................1787.6 O controlo if........................................................................................................1797.7 O controlo select.................................................................................................1877.8 O comando for...end...........................................................................................1907.9 O comando while ... end.....................................................................................1927.10 O comando break..............................................................................................1947.11 Erros nos programas.........................................................................................1957.12 Quadro sinptico dos comandos introduzidos neste captulo.........................195

    8 Aplicaes...........................................................................................................197

    8.1 Programa reglinmul............................................................................................1988.2 Programa RK4......................................................................................................204

  • 7/30/2019 ScilabLivro2.pdf

    14/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 14

    ndice8.3 Programa sbpred11.............................................................................................2068.4 Programa paramcaos..........................................................................................2088.5 Programa sematdial............................................................................................2108.6 Programa SOBANPK............................................................................................213

    8.7 Programa Cnobravo ...........................................................................................2168.8 Programa plantafu..............................................................................................2178.9 Programa funcroc................................................................................................2228.10 Programa ProbExt.............................................................................................2278.11 Programa plamarg.............................................................................................2298.12 Programa fuMBE2.............................................................................................2368.13 Programa ABETARfu..........................................................................................2428.14 Programa Lypard...............................................................................................2448.15 O simulador SB-IberiQu....................................................................................246

    Bibliografia.............................................................................................................255

    Bibliografia................................................................................................................256ndice do Scilab......................................................................................................258

  • 7/30/2019 ScilabLivro2.pdf

    15/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 15

    Prefcio Segunda Edio

    Prefcio Segunda EdioOs melhoramentos introduzidos na verso 5 do Scilab, justificam plenamente aapresentao desta segunda edio do livro que divulguei h trs anos atrs.

    Nesta segunda edio, eliminei alguns erros de vria natureza, melhorei adisposio do texto e grficos, introduzi mais comandos, eliminei os que se tornaramobsoletos, e o texto em tipo Century passa a estar em cor azul.

    O comando while ilustrado agora com a conjetura de Lothar Collatz, e por fimintroduzi trs novas aplicaes: a) Um simulador para uma populao da abetardagrande; b) Um simulador para uma populao de lince ibrico; c) um simulador paraflorestas de carvalho roble.

    No disponho de informao sobre espcies quer africanas quer sul-americanas, o que no me permite contempl-las numa aplicao.

    Existem especialistas na elaborao de ndices alfabticos, analticos ouremissivos, a que as grandes editoras recorrem (e. g., Haugland e Jones: 2003:335). Damesma maneira que um bom ndice remissivo pode valorizar bastante um livro, ummau ndice alfabtico pode tornar-se uma experincia frustrante e desencorajadora.Certamente que no sou especialista nesta matria e por isso o nico ndice alfabticoque apresento s contm os comandos do Scilab. Como assumo que este livro serpredominantemente lido no computador, ou outro equipamento para leitura de livros

    electrnicos, utilizando uma das varias aplicaes existentes para o efeito, a leitora, ouo leitor, pode recorrer ao seu procedimento para localizar palavras, quando pretenderencontrar isoladamente um tpico do seu interesse. Nesta perspetiva de leitura, para ocorpo do texto, escolhi um tipo de letra adequado - o calibri em vez do tipoGaramond, utilizado na primeira edio.

    L. S. B.

    Costa de Caparica, agosto de 2011

  • 7/30/2019 ScilabLivro2.pdf

    16/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 16

    Prefcio Primeira EdioPrefcio Primeira Edio um trusmo afirmar-se que a informtica, como poderoso instrumento de clculo,armazenamento e manuseamento de dados, potencia a matematizao depraticamente quase todos os domnios do conhecimento.

    No so por isso triviais as vantagens que advm de se poder utilizar umalinguagem de clculo numrico. Pelas razes que a leitora encontrar adiante expostas,entendo ser o Scilab uma das linguagens mais adequadas para qualquer pessoa seiniciar na programao para o clculo numrico.

    Embora tenha outros programas comerciais de clculo simblico e numrico(no tenho o MATLAB, nem nunca o usei), iniciei-me no Scilab, no vero de 2005, emalguns dias, quando pretendi propor, de maneira facilmente controlvel por terceiros, a

    minha elaborao unificada no domnio da ecologia matemtica ou terica (Barreto,2005). Isto foi possvel porque o Scilab , de facto, fcil de aprender, poderoso eeficiente, como constatar.

    pois, o propsito deste livro introduzir o leitor no uso do Scilab, software parao clculo numrico, de fonte aberta e livre, de origem francesa.

    A escrita deste texto inicitico informada pelas seguintes preocupaes:

    No afogar a leitora com uma avalanche de informao, que a possa confundire desencorajar, nesta fase de aprendizagem, dominado por uma preocupaode completude.

    Permitir uma abordagem aberta, que possa posteriormente ser aprofundada,na direo que for tida por mais conveniente.

    Tirar todo o partido dos instrumentos que o software disponha, capazes defacilitar a sua utilizao. O surgimento do rato e das interfaces grficas no soalheias rpida difuso da informtica.

    Construir uma introduo de forma progressiva, inicialmente centrada noclculo das solues de problemas do conhecimento da leitora, desde o ensinopr universitrio, e depois passar a situaes eventualmente menos .familiares.No pois uma iniciao para 'cientistas e engenheiros', mas pretendeabranger um pblico mais vasto.

    Procurei tornar mais agradvel e frutuosa a leitura do texto, atravs dosseguintes procedimentos:

    Na medida do possvel, padronizar a exposio dos temas, e permitir uma ante-viso clara dos tpicos que ir encontrar em cada captulo.

    Fornecer, no incio do livro, uma sinopse facilmente consultvel, de todos oscaptulos, no sentido de, em qualquer ocasio, ser possvel encontrar-se semesforo, o que se pretende..

    Encerrar os captulos com o resumo dos comandos em linguagem Scilab, nelesintroduzidos.

  • 7/30/2019 ScilabLivro2.pdf

    17/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 17

    Prefcio Primeira Edio Inserir exerccios de forma informal, ao longo do texto, para estimular a leitora

    a controlar o seu progresso na aprendizagem do Scilab.

    Quando iniciei este texto, pretendia que fosse particularmente dirigido a

    bilogos e ecologistas, mas como no conheo outro similar em lngua portuguesa eno existe traduo para portugus da ajuda do Scilab, procurei escrev-lo naperspetiva de poder ser til a qualquer pessoa interessada. No entanto, reconheo que impossvel expurgar completamente a influncia do domnio da minhaespecializao, no produto final que disponibilizo aqui.

    O livro, para alm da Sinopse Geral, estende-se por oito captulos. O primeirotem por finalidade proporcionar, de uma maneira simples e suave, uma iniciao aouso do Scilab.

    O captulo dois pretende ser uma transio para aplicaes mais avanadas. Osconhecimentos de Scilab aqui introduzidos so-no atravs de exerccios simples de

    aritmtica, matemtica e fsica elementares, recorrendo a conhecimentos que adquiriunos ensinos bsico e secundrio.

    A criao, manipulao e anlise de vetores e matrizes preenchem o captuloterceiro.

    No quarto captulo inicio o leitor na utilizao dos vastos recursos do Scilab paracriar grficos, tirando o mximo benefcio da interface grfica das janelas dos grficos.

    No quinto captulo introduzo outros comandos do Scilab, tidos como entre osmais comummente utilizados.

    Para a leitora no familiarizada com a programao, exponho os conceitosbsicos sobre o tema, no sexto captulo.

    O captulo stimo ocupa-se da programao em Scilab e, finalmente, o oitavoapresenta vrios programas de aplicao.

    Ao longo do texto, uso a primeira pessoa tanto no plural como no singular. No inconsistncia. No primeiro caso por entender ser a leitura deste livro uma conversaa dois, uma aventura intelectual compartilhada, de certo modo um acto decompanheirismo. No segundo, porque ocorrem situaes ao longo da caminhada, quetm de ser assumidas s pelo autor.

    Desejo-lhe uma agradvel e proveitosa leitura e .... mos obra.L. S. B.

    Costa de Caparica, maro de 2008

  • 7/30/2019 ScilabLivro2.pdf

    18/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 18

    Prefcio Primeira Edio

    Inicie-se, ficando j a conhecer

  • 7/30/2019 ScilabLivro2.pdf

    19/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 19

    Inicie-se, ficando j a conhecer

    Sem texto

  • 7/30/2019 ScilabLivro2.pdf

    20/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 20

    Inicie-se, ficando j a conhecer

    uma dzia de boas razes para usar o Scilab

    No clculo numrico, a utilizao do Scilab pode ser defendida,

    genericamente, com os seguintes argumentos:1- fcil a aprendizagem do Scilab, embora seja um ambiente poderoso erpido de clculo numrico.2- simples a obteno de grficos de alta resoluo.3 - Os dados, ao fim e ao cabo, so fundamentalmente vetores ou matrizesde nmeros (lembre-se das folhas de clculo). O Scilab particularmentedotado para lidar com estas estruturas, no que resulta em elevada rapidezde clculo.4 - Os resultados e grficos que proporciona podem ser copiados e

    inseridos facilmente noutros documentos.5 - Os resultados numricos que proporciona so de elevada preciso.6 - Depois do MATLAB, tido com a lngua franca do clculo numrico emcincia, o Scilab deve ser o software mais usado por matemticos,cientistas e engenheiros, para o mesmo fim.7 - O Scilab tem acesso aos ficheiros de MATLAB e do Excel.8 - um software aberto em contnuo aperfeioamento e evoluo.9 - o melhor substituto para as calculadoras, suscetveis a erros de

    propagao de arredondamentos, e com visor pequeno.10 - Dada a afinidade entre as duas linguagens, quem aprende Scilab -lhefcil transitar para MATLAB, e vice-versa.11 Tem uma interface em portugus, de origem brasileira, incluindo otexto da 'Ajuda', que muito completo e de onde possvel correrimediatamente os exemplos, ou envi-los para o editor de programas(SciNotes), com um simples clique.12 E apesar de toda a sua qualidade, gratuito, enquanto o MATLAB considerado caro mesmo por autores americanos (Morris e Doak, 2002,

    pgina 14, nota 4), embora a sua verso para estudantes seja tida comorelativamente acessvel, pelo menos para os alunos americanos.

  • 7/30/2019 ScilabLivro2.pdf

    21/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 21

    Inicie-se, ficando j a conhecer

    Sem texto

  • 7/30/2019 ScilabLivro2.pdf

    22/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 22

    Inicie-se, ficando j a conhecer

    Sinopse Geral

    Com esta smula inicial, pretendo apresentar um panorama geral do livro.Procuro satisfazer este propsito, disponibilizando para cada captulo alista de tpicos nele abordados, complementada por uma tabela com osnomes e descries dos comandos do Scilab introduzidos. Dadoapresentar um ndice alfabtico dos comandos do Scilab, eliminei agora asua localizao, por se tornar redundante.

  • 7/30/2019 ScilabLivro2.pdf

    23/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 23

    Sinopse Geral

    0.1 Captulo 1 Mos obra

    0.1.1 Tpicos

    Este captulo tem por finalidade proporcionar-lhe, de uma maneira simples e suave,uma iniciao ao uso do Scilab.

    Vai ficar a ter uma ideia geral do que o Scilab e como obt-lo

    Como introduzir comandos no prompt do Scilab e obter resposta

    Conhecer as suas trs principais janelas de interface com o utilizador

    A estrutura mais comum dos comandos do Scilab

    Como obter ajuda

    Como guardar o seu trabalho

    Saber como formatar nmeros Familiarizar-se com algumas constantes, operadores e comandos bsicos do

    Scilab

    Ver o Scilab a funcionar nalguns procedimentos simples, que sugerimos querepita no seu computador

    0.1.2 ndice de comandos

    Comandos Descrio%pi 3.1415927- Subtrao%e 2.7182818%eps Preciso mquina do Scilab%i Raiz quadrada de -1. Por exemplo, para entrar o complexo 2+4i escreve-se2+4*%i%inf Infinito%nan Not a number* Multiplicao/ Diviso^ Potncia. 3^2=9+ Soma< Menor que Maior que>= Maior ou igual queArcocosseno deapropos Pede ajuda a partir de uma palavra-chaveasin Arcosseno deatan Arcotangente declc() Limpa a janela dos comandosclc(n) Limpa n linhas acima da atual linha de comandos e move o cursor para lclear x y Remove as variveis x e y da memriaclear() Remove todas as variveis da memriacos Cosseno de

  • 7/30/2019 ScilabLivro2.pdf

    24/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 24

    Sinopse Geralexp(x) Exponecial de x, exformat Formata um nmerogsort Ordena um conjunto de nmeros, vetor ou matriz, numa sequnciadecrescente

    help Pede ajuda sobre um comandolog Logaritmo natural ou na base elog10 Logaritmo na base 10log2 Logaritmo na base 2matrix Cria uma matrizrand Nmero casual entre zero e umsave Guarda um ficheiroSciNotes() Abre o editor de texto do Scilabsin Seno desqrt Raiz quadradatan Tangente dewho Lista as variveiswhos Lista as variveis longas

    0.2 Captulo 2 Exerccios de aquecimento

    0.2.1 Tpicos

    Sistematizar alguns procedimentos j anteriormente ilustrados.

    Fazer operaes aritmticas com escalares Utilizar funes trigonomtricas.

    Criar um sector simples e utiliz-lo como objeto de algumas funes.

    Criar grficos com procedimentos simples

    Calcular permutaes, arranjos e combinaes

    Criar uma funo que permite obter permutaes, arranjos e combinaes

    Criar funes on-line

    Resolver um sistema de equaes lineares

    Iniciar-se na utilizao das cadeias de caracteres (strings)

    Criar e analisar uma funo polinomial

    Realizar operaes aritmticas com polinmios Limites

    Estatstica elementar

    Probabilidades elementares

  • 7/30/2019 ScilabLivro2.pdf

    25/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 25

    Sinopse Geral0.2.2 ndice de comandos

    Comando Descrio[ ] Enquadra os elementos de um vetor ou matriz. Z=[] cria uma matriz vaziaonde mais tarde se pode inserir os elementos A seguir a uma matriz fornece a sua transposta== Igualdade de comparao\ Diviso direita de uma matriz.* Multiplicao elemento a elemento./ Diviso elemento a elemento.\ Diviso direita elemento a elementoabs Valor absoluto ou o mdulo de um nmero complexocdfbin Funo da probabilidade acumulada de uma distribuio binomialcdfnor Funo da probabilidade acumulada de uma distribuio normalceil Arredonda para o inteiro superior

    clf Apaga o contedo numa janela de grficoconj Fornece o conjugado de um nmero complexodeff Cria funes on-linederivat Avaliao numrica da derivada de um polinmiodiff D a diferena entre elementos seguidos de um vetor e a derivadanumrica de uma funodisp Exibe variveiseval Avalia uma matriz de stringsevstr Avalia uma varivel que esteja sob a forma de textofactorial Calcula n!floor Arredonda para o inteiro inferior

    grand Gera uma amostra de nmeros casuais com uma distribuio definidagsort Ordenar por ordem crescentehistplot Cria um histogramahorner Avalia um polinmio para um valor da sua varivelimag Permite obter a parte imaginria de um nmero complexoimult Multiplica um nmero por iint Extrai a parte inteira de um nmerolinspace Cria um vetor de valores igualmente espaadoslsq Aplica o mtodo dos mnimos quadradosmax Mximomean Mdia de uma amostramedian Mediana de uma amostramodulo D o resto da diviso de um nmero por outropdiv Diviso de polinmiosplot Obteno de um grfico simplesplot2d Permite traar um grfico no espao a duas dimensespoly Define um polinmioprod Produtoreal Permite obter a parte real de um nmero complexoround Arredonda um nmero para o inteiro mais prximosign Sinal. Os nmeros positivos so assinalados com 1, e os negativos com -1sample Amostragem com reposiosamwr Amostragem sem reposiosize Fornece as dimenses de um vetor ou matriz

  • 7/30/2019 ScilabLivro2.pdf

    26/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 26

    Sinopse Geralst_deviation Desvio padrostring Transforma uma varivel numa cadeia de texto ou stringsum Soma dos elementos de um vetor ou duma matriztabul Cria uma tabela de frequncias dos valores de um vetor ou matrizunique Extrai componentes nicos de um vetor ou matrizxgrid() Insere uma grelha num grficoxtitle Insere o ttulo e as legendas dos eixos num grfico

    0.3 Captulo 3 vetores e matrizes

    0.3.1 Tpicos

    Criar vetores e matrizes

    Conhecer matrizes especiais que o Scilab cria facilmente Identificar elementos de vetores e matrizes

    Manipular matrizes, como acrescentar e eliminar elementos

    Realizar operaes com vetores e matrizes

    Analisar matrizes

    Resolver sistemas de equaes lineares no contexto da lgebra matricial

    0.3.2 ndice de comandos

    Comando Descrio\ Diviso direita de uma matriz.* Multiplicao elemento a elemento./ Diviso elemento a elemento.\ Diviso direita elemento a elemento.^ Exponenciao elemento a elementobdiag Valores e vetores prprios de uma matrizdet Determinante de uma matrizdiag Diagonal principal de uma matrizexpm Exponencial de uma matrizeye Matriz de zeros com 1s na diagonal principalinv Inversa de uma matrizlinsolve Soluo de um sistema de equaes lineareslogm Logaritmo de uma matrizlogspace vetor de nmeros correspondentes aos logaritmos na base 10 do

    intervalo especificado, igualmente espaadosones Matriz de 1s. Sintaxe igual do comando zerosspec Valores prprios de uma matrizsqrtm Raiz quadrada de uma matriztrace Trao de uma matrizzeros Matriz s de zeros

  • 7/30/2019 ScilabLivro2.pdf

    27/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 27

    Sinopse Geral

    0.4 Captulo 4 Grficos

    0.4.1 Tpicos

    Expandir a criao de grficos de duas dimenses

    Inserir texto na rea do grfico Introduzir os grficos a trs dimenses

    Obter as coordenadas de pontos duma curva num grfico

    Utilizar os menus e botes da janela dos grficos para facilmente os formatar

    Fazer grficos com marcas ou smbolos grficos no traado das curvas

    0.4.2 ndice de comandos

    Comando Descriochamp Cria um campo de vetores de duas dimenseschamp1 Permite colorir os vetores do campocontour2d Traa as curvas de nvel de uma superfcie num grfico 2Derrbar Acrescenta baras verticais de erros a um grfico 2Dfchamp Campo de vetores associado a uma equao diferencial ordinria (EDO)fcontour2d Traa as curvas de nvel de uma superfcie definida por uma funo numgrfico 2Dfgrayplot Cria uma superfcie definida por uma funo num grfico a duas dimensesusando coresfplot2d Faz o grfico de uma curva definida por uma funograyplot Cria uma superfcie num grfico a duas dimenses usando coreslegend Insere uma legenda com o nome das curvas do grfico, no espao dos eixoslocate Permite obter as coordenadas de pontos numa curvamatplot Cria uma quadricula preenchida a coresmesh Faz um grfico 3D definido por uma redepie Cria um grfico circular, como se ilustra na figura 4.13plot2d Cria um grfico a duas dimenses

    plot3d Faz um grfico de uma superfcie 3Dplot3d1 Faz um grfico 3D de uma superfcie cinzento ou com nveis a coresplot3d2 Faz um grfico 3D de uma superfcie definida por retngulosplot3d3 Faz um grfico 3D de uma superfcie em rede (mesh) definida porretngulossfgrayplot Suaviza uma superfcie definida por uma funo num grfico a duasdimenses usando coressgrayplot Suaviza uma superfcie num grfico a duas dimenses usando cores, comose ilutra na figura 4.14subplot Cria mais de um grfico nua janelaxarc Desenha parte de uma elipsexarcs Desenha partes de um conjunto de elipsesxfarc Preenche parte de uma elipse

  • 7/30/2019 ScilabLivro2.pdf

    28/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 28

    Sinopse Geralxfpoly Preenche um polgonoxfpolys Preenche um conjunto de polgonosxfrect Preenche um retnguloxpoly Desenha uma linha ou um polgonoxpolys Desenha um conjunto de linhas ou polgonosxrect Desenha um retnguloxrects Desenha ou preenche um conjunto de retngulosxrpoly Desenha um polgono regularxsegs Desenha segmentos de recta no ligadosxset xset('windows', i) abre a janela i para receber um grficoxstring Insere texto no espao dos eixos, num grfico

    0.5 Captulo 5 Outros comandos com interesse

    0.5.1 Tpicos

    Ajustamento de curvas no lineares

    Interpolao

    Diferenciao

    Integrao

    Sistemas de equaes no lineares

    Soluo numrica de equaes diferenciais ordinrias

    Equaes discretas Otimizao

    0.5.2 ndice de comandos

    Comando Descriocumprod Calcula o produto acumuladocumsum Calcula a soma acumuladadatafit Ajusta uma equao no linearderivative Aproxima numericamente a derivada de uma funo num dado pontofsolve Acha a soluo de um sistema de equaes no linearesinterp1 Interpola valores de yj=f(xj)interp2d Interpola valores de zj=f(xj,yj)interp3d Interpola valores de vj=f(xj,yj,zj)intsplin Integrao numrica de dados usando interpolao pelo mtodo splineinttrap Integrao numrica de dados usando interpolao pelo mtodo

    trapezoidallsqrsolve Ajusta uma equao no linear pelo mtodo dos mnimos quadradosode Resolve equaes diferenciais ordinriasoptim Rotina de otimizao no linearquapro Resolve problemas de programao quadrticasmooth Interpolao recorrendo ao mtodo spline

  • 7/30/2019 ScilabLivro2.pdf

    29/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 29

    Sinopse Geral

    0.6 Captulo 6 Introduo elementar programao

    0.6.1 Tpicos

    Linguagem de programao

    Abordagem heurstica dos problemas

    Articular algoritmos

    Estruturar fluxogramas

    Utilizar pseudocdigos

    Estruturas de controlo

    Modular programas

    Recursividade

    0.7 Captulo 7 Programao em Scilab

    0.7.1 Tpicos

    Neste captulo, especialmente dedicado programao numa perspetiva maisabrangente e no sequencial Abordaremos:

    Tipos de dados que o Scilab reconhece

    Matrizes multidimensionais Estruturas de dados Comandos de inquirio sobre tipos de funes Tipos de variveis Entrada de dados Sada de resultados e mensagens Estruturas de controlo do fluxo do programa:

    -Declaraes if- Declaraes select e case- Ciclos for

    - Ciclos while- Declaraes break

    Despistagem e correo de erros nos programas

    0.7.1 ndice de comandos

  • 7/30/2019 ScilabLivro2.pdf

    30/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 30

    Sinopse Geral

    Comando Descrio

    abort Interrompe a execuo do programabreak Interrompe a execuo de um cicloclearglobal Apaga as variveis globaisfor Comando para executar ciclosfull Converte matrizes esparsas em matrizes completasglobal Define variveis globaishypermat Cria matriz multidimensionalf Cria um Comando de execuo condicionalinput Pede uma entrada de informao atravs do tecladoisglobal Verifica se uma varivel globallist Cria um objeto list (lista)mgetl L linhas de texto de um ficheiro *.txtpause Interrompe o programa e aguarda uma entrada atravs do tecladoprintf Comando para imprimir no monitorprintsetupbox Comando para ter acesso jenela de controlo das impressorasresume Retoma a execuo interrompida de um programareturn Retoma a execuo interrompida de um programaselect Comando de escolha condicionalsparse Cria uma matriz esparsatlist Cria um objeto do tipo tlisttype Verifica o tipo da variveltypeof Verifica o tipo de um objeto Scilabxls_open Abre um ficheiro em formato do Excelxls_read L um ficheiro Excel previamente aberto

  • 7/30/2019 ScilabLivro2.pdf

    31/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 31

    Sinopse Geral

    while Comando para ciclo condicional

    0.8 Captulo 8 Aplicaes

    0.8.1 Tpicos

    Numa escolha arbitrria, apresentam-se os seguinte doze programas:

    reglinmul ajusta modelos da regresso linear multivariada

    RK4 aplica o mtodo de Runge-Kuta de 4 ordem a um sistema de EDO

    sbpred11 acha o equilbrio do modelo SBPRED(1,1) para a interaopredador-presa e analisa a sua estabilidade

    paramcaos aplica o modelo BACO2 a populaes de Paramecium sp. E ilustraa ocorrncia do efeito de borboleta determinstico

    sematdial dada uma matriz de Leslie, estima a sensibilidade e a elasticidadedo seu valor prprio dominante, os valores reprodutivos das classes e adistribuio etria estvel

    SOBANPK simula os ciclos biogeoqumicos do N, K e P no pinhal bravo regular

    Cnobravo simula o carbono retido no pinhal bravo e a sua acreo

    plantafu simula o crescimento de uma planta anual no hemisfrio norte, comseleco de data de sementeira e latitude

    funcroc simula o crescimento de uma populao de crocodilos australianos

    ProbExt calcula a probabilidade acumulada de extino de uma espcie

    plamarg simula o planeta das margaridas de James Lovelock

    fuMBE2 um modelo de balano da energia da Terra

    Todos os programas, em formato *.sci, encontram-se na pasta Aplicaes, queacompanha este livro. Para os correr basta FileExec.... e dois cliques no

    ficheiro escolhido. Reveja na seco 2.7 as vrias alternativas para correr umprograma.

  • 7/30/2019 ScilabLivro2.pdf

    32/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 32

    Sinopse Geral

    Captulo 1

    Mos obra

    Este captulo tem por finalidade proporcionar-lhe, de uma maneirasimples e suave, uma iniciao ao uso do Scilab.

    Vai ficar a ter uma ideia geral do que o Scilab e como obt-lo Como introduzir comandos no prompt do Scilab e obter resposta

    Conhecer as suas trs principais janelas de interface com outilizador

    A estrutura mais comum dos comandos do Scilab

    Como obter ajuda

    Como guardar o seu trabalho

    Saber como formatar nmeros

    Familiarizar-se com algumas constantes, operadores e comandosbsicos do Scilab

    Ver o Scilab a funcionar nalguns procedimentos simples, quesugerimos que repita no seu computador

  • 7/30/2019 ScilabLivro2.pdf

    33/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 33

    Mos obra

    1.1 Apresentando o Scilab

    O Scilab um potente software livre

    De clculo numrico;

    Visualizao grfica;

    E simultaneamente uma linguagem de programao de nvel elevado.No faz operaes de clculo simblico, mas permite interfaces com software

    que o faa.O Scilab aceita vrios tipos de dados e baseado fundamentalmente na

    manipulao de vetores e matrizes. Contm uma rica coleo de algoritmos quepodem ser utilizados para executar complexas operaes de clculo e traar grficos,com comandos simples e curtos. O facto de ser uma linguagem de programaopermite ao utilizador desenvolver comandos para seu uso prprio, ou program-los emlinguagem C ou FORTRAN.

    O Scilab tem inmeros comandos que so pequenos programas chamadosfunctions (funes), agrupados, de acordo com a afinidade dos algoritmos queexecutam, em toolboxes (caixas de ferramentas) que designaremos por bibliotecas.Este software dispe de um manual em ficheiro PDF (Scilab Reference Manual) ondeso identificadas as bibliotecas e as suas funes descritas.

    Para ver as bibliotecas do Scilab, com o software aberto, tecle em F1, abre-se aajuda do Scilab, que exibe as bibliotecas no painel de navegao situado esquerda. direita surge uma janela, em ingls, com ligaes diretas a vrios locais do site doScilab, que certamente h interesse em explorar. Encontra-se aqui disponvel o Scilabmanual, em verso portuguesa, que se estende por 2299 pginas, com a descrio detodos os comandos do software.

    No surpreende que neste livro introdutrio no abordemos todas asbibliotecas, nem utilizaremos todos os comandos daquelas a que recorreremos. Almdos procedimentos indispensveis e bsicos de uso do software (e.g., input/output), anossa escolha recair naqueles de maior relevncia para os clculos associados aosinstrumentos matemticos e de visualizao tidos como os mais utilizados.

    No entanto, convm esclarecer que com o enriquecimento da abordagemquantificada destas cincias, este quadro de referncia no esttico e outroscomandos e bibliotecas podem vir a ganhar interesse. A abordagem faz-se tambm na

    perspetiva de que uma vez iniciado, o leitor poder por si, com os instrumentos deapoio que acompanham o Scilab e outros que venha a dispor, alargar o horizonte dasua utilizao. Mas no se esquea que o software de clculo, simblico e numrico,ser-lhe-a de pouca utilidade se no tiver o conhecimento adequado dos sistemas queaborda, e dos instrumentos matemticos a que recorre.

    O Scilab pode ser instalado em ambientes Windows, Mac e Linux.Se a leitora j utilizou o software MATLAB no vai ter nenhuma dificuldade em

    utilizar o Scilab pois h grande afinidade entre eles.Na atualizao deste texto usei o Scilab 5.3.3.

  • 7/30/2019 ScilabLivro2.pdf

    34/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 34

    Mos obra

    1.2 Como obter o Scilab

    O Scilab foi desenvolvido, em Frana, pelo Institut National de Recherche en

    Informatique et en Automatique (I.N.R.I.A.). Pode ser descarregado gratuitamente dosite seguinte:

    http:// www.scilab.org

    O software vem acompanhado de instrues de instalao, e esta em ambienteWindows no oferece qualquer problema. Instalei-o em computadores com a versoME, XP e Vista sem qualquer dificuldade.

    O stio do Scilab muito completo e repleto de ligaes para janelas onde possvel encontrar a mais variada informao para um pleno aproveitamento daaplicao.

    Um stio de apoio ao ensino recorrendo ao Scilab pode ser acedido em

    http://cermics.enpc.fr/scilab/

    Um newsgroup dedicado ao Scilab encontra-se em

    comp.soft-sys.math.scylab

    1.3 Convenes tipogrficas

    Neste texto, para destacar o significado operacional dos diversos tipos de texto usareias seguintes convenes:

    O tipo de letra usado colibri (o presente), criado para permitir uma leiturafcil em monitores de computador e de leitores de "e-books".

    Para comandos e outras entradas na janela de comandos do Scilab, serempregue o tipocentury.

    Os resultados proporcionados pelo Scilab sero impressos emarial. Texto em locais onde devem ser inseridas palavras associadas execuo de um

    comando ser apresentado em itlico. Por exemplo, para obter ajuda sobre um

    assunto, tpico ou comando escreve-se help tpico. No caso de se querer pedirajuda sobe o comando relativo ao seno de um ngulo, escreve-se help sin.

    Na primeira vez que usamos um comando, para mais fcil localizao, o seunome vem a cor vermelha, no texto.

    1.4 As janelas de interface com o utilizador

    A principal interface do Scilab com o utilizador feita atravs das janelas

    A consola ou janela de comandos (figura 1.1) As janelas onde surgem os grficos (figura 1.2)

    http://www-rocq.inria.fr/scilabhttp://cermics.enpc.fr/scilab/http://www-rocq.inria.fr/scilabhttp://cermics.enpc.fr/scilab/http://www-rocq.inria.fr/scilab
  • 7/30/2019 ScilabLivro2.pdf

    35/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 35

    Mos obra

    A janela SciNotes (figura 1.3) para edio de comandos e programao (podeser substituda por um processador de texto simples)

    Figura 1.1. Janela da interface grfica de comandos do Scilab, ou console.

    Para evitar uma leitura passiva deste texto, sugiro que o leitor instale o Scilab,se ainda no o fez, e abra a aplicao. Como pressuponho que est familiarizado com ouso do computador e outras aplicaes, sugiro que explore os menus e botes das

    janelas, que usam cones conhecidos, e basta apontar para eles com o rato para seobter informao a seu respeito. Use a Ajuda, clicando no menu ? ou pressionando

    F1, para obter informao complementar. Explore o sitio wiki.scilab.org para aceder amais documentao, e informao sobre o Scilab. Atravs do menu ? tem-se acessodireto a este stio.

    A janela de comandos do Scilab exibe um prompt (-->) que assinala o local deintroduo de instrues, dados, etc., pelo utilizador. A figura 1.1exibe a soma de 3com 4, e o seu resultado (ans de answer resposta) que 7. A leitora j concluiu queas operaes aritmticas bsicas introduzem-se como se escrevem e, como todos oscomandos, concluem-se pressionando a tecla enter/return.

    O primeiro boto esquerda permite nova(s) janela(s) de trabalho.A menu Aplicativos permite aceder ao SciNotes, caixa de ferramentas

    grficas para modelar sistemas dinmicos Xcos (no abordado neste livro), ao tradutorde comandos de MatLab para Scilab, ao controlador ATOMS, de mdulos obtenveis no

  • 7/30/2019 ScilabLivro2.pdf

    36/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 36

    Mos obrasitio do Scilab, ao navegador pelas variveis (til em programas longos e complexos), eao histrico dos comandos.

    Alm dos mdulos acessveis atravs da janela ATOMS, possvel encontrarcontribuies de terceiros, no stio do Scilab.

    O boto com o smbolo de uma roda dentada permite aceder diretamente janela de demonstraes, que sugerimos que seja explorada, para se obter umaprimeira avaliao das capacidades do Scilab.

    Alm do modo de utilizao descrito, atravs da interface grfica (o mais usado)existem outras duas formas (modes) de o fazer que no contemplaremos.

    A janela dos grficos ser explorada no captulo 4.O SciNotes um processador de texto com alguns comandos extra que facilitam

    a formatao do programa e a eliminao dos erros de programao. Por exemplo,controla os parnteses que vamos inserindo, e completa os comandos com mais deuma palavra, para evitar a memorizao.

    A janela do SciNotes tem as linhas numeradas na barra lateral esquerda.

    Figura 1.2. Janela de grfico com quatro sub janelas contendo grficos relativos dinmica de um pinhalbravo regular, nas idades dos 10 aos 60 anos

  • 7/30/2019 ScilabLivro2.pdf

    37/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 37

    Mos obraSe fecharmos a janela da console com o rato encerra-se o Scilab. O mesmo

    pode ser feito escrevendo Exit, Enter/Return ou clicando esta palavra no menu File.

    Figura 1.3. Janela do editor de comandos e programas SciNotes, com o programa que gera os grficosexibidos na figura 1.2

    1.5 Algum conhecimento prvio necessrio

    Antes de iniciar uma srie de sesses tutoriais convm dispor de algum conhecimento

    sobre certos tpicos da linguagem do Scilab, que passo a abordar.A forma geral dos comandos do Scilab a seguinte:

    Entidade que recebe o resultado=Funo do Scilab(objecto a que a funo se aplica,atributos)

    Um exemplo. Obter o valor do logaritmo natural de 30 e atribui-lo varivel x,com o comandolog.-->x=log(30)x =

    3.4011974

  • 7/30/2019 ScilabLivro2.pdf

    38/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 38

    Mos obraOutro exemplo. Usando o comandomatrix, transformar os nmeros inteiros

    de 1 a 12, numa matriz de 4 linhas e 3 colunas e atribui-la a M.

    -->M=matrix(1:12, 4,3)

    M =

    1. 5. 9.2. 6. 10.3. 7. 11.4. 8. 12.

    O Scilab ordena os nmeros por colunas, mas pode-se obter uma ordenaopor linhas, como veremos adiante.

    O leitor anotou que uma sequncia de nmeros inteiros seguidos tem a forma

    Primeiro valor /dois pontos/ltimo valor

    Se os nmeros no forem inteiros seguidos, o intervalo entre eles introduzidodo seguinte modo:

    Primeiro valor /dois pontos/intervalo/dois pontos/ltimo valor

    Para criar o vetor linha z com os elementos 1, 1.1, 1.2, ..2 procede-se assim:

    -->z=1:0.1:2

    z =

    1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.

    Tambm podemos aplicar a funo log ao vetor z e obter outro vetor x doslogaritmos:

    -->x=log(z)x =

    column 1 to 70. 0.0953102 0.1823216 0.2623643 0.3364722 0.4054651 0.4700036

    column 8 to 11

    0.5306283 0.5877867 0.6418539 0.6931472

    Se terminarmos uma linha com ponto e virgula, o Scilab no escreve a sada docomando no monitor.

    Do mesmo modo o vetor z pode ser objeto de outras funes que nos

    permitem obter informao sobre os seus elementos, como a mdia e o desvio padro,por exemplo. O mesmo se passa com a matriz M.

  • 7/30/2019 ScilabLivro2.pdf

    39/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 39

    Mos obra

    O Scilab trata todas as variveis como uma matriz. Um escalar, real oucomplexo, visto como uma matriz 1x1. Um vetor linha com n elementos visto como uma matriz 1xn. Um vetor coluna como uma matriz nx1. O

    Scilab lida com matrizes de nmeros, polinmios, booleanas e cadeias decaracteres (strings).

    1.5.1 Sensibilidade ao tipo de letraO Scilab distingue entre maisculas e minsculas. Se escreversin(2)ele devolve-lhe ovalor do seno de um ngulo; se escrever Sin(2) ele diz que a varivel Sin no foidefinida.

    1.5.2 AjudaOs dois comandos mais utilizados para aceder a ajuda sobre o Scilab so:

    apropospalavra-chave faz uma pesquisa a partir de uma palavra-chave.helptpico obtm informao especfica sobre um s comando ou funo.A ajuda do Scilab pode abrir-se escrevendohelp, a partir do menu ?, clicando

    o boto com o mesmo smbolo, pressionando a tecla F1.Os exemplos das entradas da ajuda esto numa caixa de texto que tm dois

    botes, no canto superior direito. O boto da esquerda permite executarimediatamente todo o exemplo; o da direita copia todo o exemplo para o SciNotes.Muito conveniente e prtico.

    1.5.3 Constantes e variveis especiais

    %pi 3.1415927%e 2.7182818%i raiz quadrada de -1. Por exemplo, para entrar o complexo 2+4i escreve-se 2+4*%i%inf infinito%eps preciso mquina do Scilab%nan Not a number

    Estas variveis no podem ser apagadas, nem alteradas.Um exemplo:

    -->%eps

    %eps =2.220D-16

    1.5.4 Formato dos nmerosO Scilab no requer o prvio dimensionamento das variveis e separa a parte inteira dadecimal com um ponto. Por defeito os nmeros tm dez posies (incluindo o ponto).Para aumentar este valor e passar a ter uma varivel longa usa-se format(n);varivel.Por exemplo:

    -->format(15);%pi

    %pi =

  • 7/30/2019 ScilabLivro2.pdf

    40/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 40

    Mos obra3.14159265359

    1.5.5 Operadores aritmticos e relacionais+ soma

    - subtraco* multiplicao/ diviso^ potncia. 3^2=9< menor que maior que>= maior ou igual que ou ~= diferente de

    1.5.6 Prioridade de execuo dos operadores

    Alm dos operadores atrs introduzidos, o Scilab tem outros que sero apresentadosadiante. Os operadores agrupam-se em sete grupos de igual prioridade. Se umoperador tem maior prioridade que outro executado primeiro. Os sete grupos deprioridade dos operadores do Scilab ordenados por ordem decrescente so:

    ( , .)( ^ )(* , / , \ , .* , ./ , .\ , .*. , ./. , .\.)

    (+ , -)(== , > , < , = ,~=)(&)(|)

    A prioridade inata aos operadores pode ser alterada com recurso a parnteses.Por exemplo, 1+2^2=5 e (1+2)^2 =9. Do mesmo modo, 18/2+4=13 e 16/(2+4)=3.

    1.5.7 Funes bsicaslog logaritmo natural ou na base elog10 logaritmo na base 10log2 logaritmo na base 2sin seno decos cosseno detan tangente deasin arcosseno deacos arcocosseno deatan arcotangente deexp(x) exponecial de x, ex.sqrt raiz quadradarand nmero casual entre zero e um

  • 7/30/2019 ScilabLivro2.pdf

    41/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 41

    Mos obragsort ordena um conjunto de nmeros , vetor ou matriz, numa sequnciadecrescente

    Alguns exemplos.

    -->exp(1)ans =

    2.7182818

    -->randans =

    0.0683740

    Criemos uma matriz 3x3, de nmeros aleatrios com o comandorand:

    -->A=rand(3,3)A =

    0.5608486 0.1985144 0.23122370.6623569 0.5442573 0.21646330.7263507 0.2320748 0.8833888

    Agora achemos a raiz quadrada de cada elemento da matriz com o comandosqrt:

    -->C=sqrt(A)C =

    0.7488983 0.4455495 0.48085730.8138531 0.7377380 0.46525610.8522621 0.4817414 0.9398876

    -->D=gsort(A)D =

    0.8833888 0.5608486 0.23122370.7263507 0.5442573 0.21646330.6623569 0.2320748 0.1985144

    1.5.8 Na linha de comandosPara se mover o cursor na linha de comandos usar as teclas com setas como numprocessador de texto. As teclas home (ou a combinao Ctrl-a) e end (ou acombinao Ctrl-e) levam ao princpio e fim da linha respetivamente. As teclas deapagar texto usam-se com no processador de texto.

    Ctrl+pchama a ltima linha de comando introduzida.

    Se colocarmos o cursor no prompt e pressionarmos sucessivamente a tecla vamos chamando sucessivas linhas de comando, a comear na ltima introduzida.

  • 7/30/2019 ScilabLivro2.pdf

    42/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 42

    Mos obraUma linha ou qualquer regio da janela de comandos pode ser selecionada

    usando o rato, copiada e colada no prompt ativo ou noutro documento.Uma linha de comandos que termine com um ponto e vrgula (;) no mostra ou

    ecoa o resultado na janela de comandos. Sem ponto e vrgula ecoa a operao, como

    se ilustrou atrs.Uma alternativa a estas instrues usar o menu Edit e clicar em History.Podem-se inserir comentrios precedidos de //.

    Exemplo de insero de um comentrio, sem sada do resultado (; no fim docomando):

    -->exp(1); //exponencial de 1

    Num comando com vrias linhas, estas terminam com trs pontos, at ao Enter

    final. Numa linha, pode-se introduzir mais de um comando, separados por ponto evrgula.

    -->a=2;b=5;z=a+bz =

    7.

    Nos comandos anteriores crimos trs variveis, a, b, z. Os nomes de variveispodem comear por uma letra ou %, seguido de outras letras, algarismos, oucaracteres especiais, como #. No devem ter mais de 24 caracteres.

    1.5.9 Manipulao e informao sobre o espao de trabalhoQuando trabalhamos no Scilab, alm das janelas visveis, o software guarda numa reada memria, chamada workspace (espao de trabalho) informao sobre as variveise funes existentes. Muitas vezes, nomeadamente em programas muito extensos, necessrio verificar que informao existe no espao de trabalho para evitarrepeties. Para esta finalidade, o Scilab disponibiliza os seguintes comandos:

    clc() limpa a janela dos comandos.clc(n) limpa n linhas acima da atual linha de comandos e move o cursor para l.clear() remove todas as variveis da memria.clear x y remove as variveis x e y da memria.whos lista as variveis longas.who lista as variveis.

    1.5.10 Lidar com ficheirosPara lidar com ficheiros (abrir, guardar), mudar de diretrio e imprimir, a forma maisexpedita de o fazer usar o menu file, como num processador de texto, e activar ocomando desejado. Para este efeito tambm existem alguns comandos especficos quepodem ser selecionados escrevendo, por exemplo, apropos print. Obtm-se uma

    janela. de ajuda como se exibe na figura 1.4. Clicando num dos comandos da listaapresentada esquerda, o respectivo texto de ajuda aparece direita, como habitual

  • 7/30/2019 ScilabLivro2.pdf

    43/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 43

    Mos obra

    Figura 1.4. Janela da ajuda que surge depois de se ter: a) pressionado a tecla F1; b) no local para apalavra a ser procurada (Find) termos escrito matrix; c) de entre as varias alternativas apresentadastermos escolhido matrix

    1.5.11 Outra forma de utilizar o ScilabAlm da forma interativa direta de submeter instrues ao Scilab na linha decomandos, a seguir ao prompt, na janela da console do software, h outro

    procedimento mais controlado de o fazer. particularmente adequado para umasequncia de comandos interligados num algoritmo com um determinado propsito,programas e funes definidas pelo utilizador. Aqui as instrues so previamenteescritas no SciNotes o processador de texto do SciLab, com as funes bsicas dosoftware simples deste tipo, e barra de ferramentas condizente.

    O editor de texto SciNotes pode ser aberto quer clicando, na barra superior daconsole, o primeiro boto esquerda, que representa uma folha e um lpis, queratravs do menu Aplicaes. Trabalhar com o SciNotes no oferece nenhumadificuldade a quem esteja familiarizado com um processador de texto. Se passar oapontador do rato sobre os seus cones surge a informao da funo de cada um

    (abrir uma nova entrada de texto, abrir, abrir um ficheiro C, guardar, etc). Podem ter-se vrios ficheiros abertos e passar de um para outro, clicando o separador respetivo. A

  • 7/30/2019 ScilabLivro2.pdf

    44/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 44

    Mos obramaneira mais expedita de os fechar clicando o X que aparece no separador doficheiro aberto.

    O SciNotes faz o controlo dos parnteses abertos e facilita a utilizao dasprincipais instrues, inserido a concluso do comando, como j foi referido.

    Na seco 2.7, abordam-se as vrias alternativas para executar programas apartir do SciNotes.

    Vamos abordar um procedimento de arranjo da interface grfica denominadodocagem (docking). Como se pode verificar na figura 1.3, a janela do SciNotes tem duasbarras azuis. Se clicar na inferior e mais estreita, o SciNotes pode ser alojado no espaoda console por arrastamento . Ali alojado, a mesma barra, direita, passa a ter umaseta, que permite tirar o SciNotes para fora, e torn-lo novamente uma janelaindependente, e o usual boto (X) de fechar, que permite encerrar o SciNotes. Verfigura 1.4.

    Figura 1.4. Janela do SciNotes alojada na consola de modo a ocupar todo o espao disponvel. Os doisseparadores em baixo, esquerda, permitem alternar entre as respectivas janelas

    A docagem aplicvel tambm s janelas de grficos e da Ajuda, e permitetrabalhar com uma s janela contendo sub-janelas. A barra de ferramentas adapta-seautomaticamente sub-janela ativada.

    1.5.12 Guardar e imprimir todo o trabalho na janela de comandosO ambiente de trabalho pode ser guardado, por exemplo numa disquete, no ficheiromeuficheiro com o comandosave, ou clicando no menuFileSave.

    -->save('A:\\meuficheiro.sci')

  • 7/30/2019 ScilabLivro2.pdf

    45/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 45

    Mos obraPara carregar o ficheiro, clicar no menu FileLoad, na janela que se abre,

    escolher a opo ver todos os ficheiros e fazer um duplo clique no ficheiro pretendido.Na janela do Scilab aparece:

    -->load('D:\meuficheiro.sci');disp('file loaded');

    file loaded

    A partir de agora o utilizador pode evocar as variveis que definiu na sessocorrespondente ao ficheiro.

    Tambm se pode selecionar todo o ambiente de trabalho (menu EditSelectAll), copiar e colar num processador de texto e depois guardar o ficheiro no formato*txt, que o SciNotes abre, ou outro. No processador de texto, ou no SciNotes, podeeliminar os erros e outra informao no executvel e passar a dispor de um ficheiro

    que pode cativar como se descreve na seco 2.7.No fim do trabalho, em vez do comando save, pode usar o comando diary. Ocomando diary(0)interrompe o dirio. Explore este comando na Ajuda.

    Para imprimir toda a sesso de trabalho presente na janela de comandos doScilab, basta clicar no cone que representa uma impressora.

    Sugerimos, mais uma vez, que o leitor no faa uma leitura passivadeste livro e introduza os comandos, nele apresentados, na janela doScilab, e procure fazer clculos que j anteriormente realizou numacalculadora, o que permite controlar os seus resultados.

    Leitora, nas sociedades atuais, o conhecimento sobretudo performativo.Sabe, quem sabe fazer.

    1.6 Quadro sinptico dos comandos introduzidos neste captulo

    Comando Descrio%pi 3.1415927- subtrao%e 2.7182818%eps Preciso mquina do Scilab%i Raiz quadrada de -1. Por exemplo, para entrar o complexo 2+4i escreve-se2+4*%i%inf Infinito%nan Not a number

    * Multiplicao/ Diviso

  • 7/30/2019 ScilabLivro2.pdf

    46/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 46

    Mos obra^ Potncia. 3^2=9+ Soma< Menor que Maior que>= Maior ou igual que

    Arcocosseno deapropos Pede ajuda a partir de uma palavra-chaveasin Arcosseno de5atan Arcotangente declc() Limpa a janela dos comandosclc(n) Limpa n linhas acima da actual linha de comandos e move o cursor para l.clear x y Remove as variveis x e y da memria.clear() Remove todas as variveis da memria.cos Cosseno deexp(x) Exponecial de x, ex.format Formata um nmerohelp Pede ajuda sobre um comandolog Logaritmo natural ou na base elog10 Logaritmo na base 10log2 Logaritmo na base 2matrix Cria uma matrizrand Nmero casual entre zero e umsave Guarda um ficheiroSciNotes()

    Abre o editor de texto do Scilab

    sin Seno desort Ordena um conjunto de nmeros, vetor ou matriz, numa sequnciadecrescentesqrt Raiz quadradatan Tangente dewho Lista as variveiswhos Lista as variveis longas.

  • 7/30/2019 ScilabLivro2.pdf

    47/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 47

    Mos obra

    Captulo 2

    Exerccios de aquecimento

    Este captulo pretende ser uma transio para aplicaes mais avanadas.Para no apresentarmos os conceitos no vazio, vamos servir-nos deexerccios simples de aritmtica, matemtica e fsica elementares,recorrendo a conhecimentos que adquiriu nos ensinos primrio e

    secundrio. As finalidades deste captulo so: Sistematizar alguns procedimentos j anteriormente ilustrados.

    Fazer operaes aritmticas com escalares

    Utilizar funes trigonomtricas.

    Criar um vetor simples e utiliz-lo como objeto de algumas funes.

    Criar grficos com procedimentos simples

    Calcular permutaes, arranjos e combinaes

    Criar uma funo que permite obter permutaes, arranjos e

    combinaes Criar funes on-line

    Resolver um sistema de equaes lineares

    Iniciar-se na utilizao das cadeias de caracteres (strings)

    Criar e analisar uma funo polinomial

    Realizar operaes aritmticas com polinmios

    Limites

    Estatstica elementar

    Probabilidades elementares

  • 7/30/2019 ScilabLivro2.pdf

    48/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 48

    Exerccios de aquecimento

    2.1 Clculo aritmtico com escalares

    Vamos comear por reintroduzir alguns exemplos j apresentados, recorrendo aomaterial das seces 1.6.3 e 1.6.5.

    Passemos a ilustrar operaes com nmeros reais.Introduzimos 3 varveis (a,b,c) e depois calculamos uma expresso numrica

    com elas.A expresso numrica ser:

    2)2( ac

    bad

    =

    -->a=3.5;b=2/3;c=0.5;

    -->d=(a-b)/(2*c-a)^2d =

    0.4533333

    -->exp(log(d))ans =

    0.4533333

    Criemos um vetor linha cujos elementos so a,b,c, e depois calculamos a somae o produto dos seus elementos (comandos sum, prod, max).

    -->v=[a b c]v =

    3.5 0.6666667 0.5

    -->sum(v)ans =

    4.6666667

    -->prod(v)ans =

    1.1666667

    -->max(v)ans =

    3.5

  • 7/30/2019 ScilabLivro2.pdf

    49/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 49

    Exerccios de aquecimento

    A soma dos quadrados dos nmeros 3.5, 2/3, 0.5 obtm-se facilmente:

    -->sum(v^2)

    ans =

    12.944444

    Criemos o vetor k e vamos distinguir os valores positivos dos negativos, com ocomando sign.

    -->k=[-2 3 4 -5 -8];

    -->sign(k)

    ans =- 1. 1. 1. - 1. - 1.

    Os valores absolutos do elementos do vetor k obtm-se com abs.

    -->k#=abs(k)k# =

    2. 3. 4. 5. 8.

    O comando intproporcionaa parte inteira de um nmero:

    -->int(3.8)ans =

    3.

    Por sua vez, o comando modulo proporcionao resto da diviso de um nmeropor outro:

    modulo(dividendo, divisor)

    -->modulo(44,2)ans =

    0.

    Podemos pedir a dimenso do vetor k, recorrendo ao comando size:

    -->size(k)ans =

    1. 5.

  • 7/30/2019 ScilabLivro2.pdf

    50/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 50

    Exerccios de aquecimento

    Ilustremos o uso do comandoround.-->round(3.1)ans =

    3.

    -->round(3.7)ans =

    4.

    Criemos o vetor z utilizando os comandos ceil e floor:

    -->z=[floor(3.7) 3.7 ceil(3.7)]z =

    3. 3.7 4.

    Calcular o volume V de um cilindro com o dimetro do 5 cm e a altura de 13 cm.

    -->V=%pi*(5/2)^2*13V =

    255.25440310417070577387

    Lidemos agora com nmeros complexos, seguindo um procedimentosemelhante. Sabidos os valores de a, b e c queremos calcular a expresso:

    acb

    baA

    +=

    3)2(

    -->a=-5+3*%i; b=-2+3*5*%i;c=6-2*%i;

    -->A=(a+2*b)^3/(c*b-a)

    A =

    - 213.51146 - 369.06334i

    Alternativamente podemos usar o comando imult:

    -->2+imult(5)ans =

    2. + 5.i

    Separemos a parte real da imaginria, de A, com os comandos real e imag:

  • 7/30/2019 ScilabLivro2.pdf

    51/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 51

    Exerccios de aquecimento-->real(A)ans =

    - 213.51146

    -->imag(A)ans =

    - 369.06334

    Obtenhamos agora o mdulo de A com o comando abs:

    -->abs(A)ans =

    426.37412

    Com o auxlio do comando conj o conjugado de A vir

    -->conj(A)ans =

    - 213.51146 + 369.06334i

    A altura de uma planta na idade t, alt(t), dada pela equao (de Gompertz)

    seguinte:

    alt(t)= hf Rk

    em que hf=14 cm; R=0.2148; k=e-0.0284 t. Desejamos obter o vetor das alturas da planta,

    em centmetros, de duas em duas semanas, desde o nascimento at idade de 140dias. No Scilab isto obtm-se facilmente da forma seguinte:

    -->t=0:14:140;

    -->alt=14*0.2148^exp(-0.0284*t)alt =

    column 1 to 5

    3.0072 4.9808255 6.9911331 8.779845 10.232157

    column 6 to 10

    11.340635 12.152137 12.729778 13.133257 13.411526

    column 11

  • 7/30/2019 ScilabLivro2.pdf

    52/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 52

    Exerccios de aquecimento

    13.601808

    Podemos obter os acrscimos peridicos recorrendo ao comando diff:

    -->acres=diff(alt)acres =

    column 1 to 5

    1.9736255 2.0103076 1.7887119 1.4523119 1.1084782

    column 6 to 10

    0.8115017 0.5776413 0.4034793 0.2782690 0.1902817

    A planta tem o maior acrscimo no perodo entre os 14 e 28 dias.

    2.2 Fazer um grfico simples de vetores

    Vamos visualizar o crescimento em altura num grfico simples. Para obtermos maispontos e termos uma curva mais suave, reescrevemos t como um vetor de maiordimenso. E vamos usar o comandoplot2d

    plot2d(valores do eixo horizontal, [valores do vetor])

    Para escrever o ttulo e as legendas dos eixos temos o comando xtitle

    xtitle("Ttulo do grfico","legenda do eixo x","legenda do eixo y")

    -->t=0:0.1:140;

    -->alt=14*0.2148^exp(-0.0284*t);

    -->plot2d(t,[alt])

    Podemos agora dar um ttulo ao grfico, inserir as legendas dos eixos e

    inscrever nele uma grelha (comando xgrid()), como se ilustra, obtendo o grfico dafigura 2.1.

    -->xtitle("Altura de uma planta","Idade, dias","Centmetros");

    -->xgrid();

    Podemos tambm fazer um grfico dos dez acrscimos peridicos:

  • 7/30/2019 ScilabLivro2.pdf

    53/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 53

    Exerccios de aquecimento

    -->x=1:10;

    -->plot2d(x,[acres])

    -->xtitle("Acrscimos peridicos em altura","Perodos","Acrscimos, cm");

    -->xgrid();

    O grfico dos acrscimos exibe-se na figura 2.2.A capacidade do Scilab para fazer grficos muito rica, por isso lhe dedicaremos

    um captulo especfico adiante.

    Figura 2.1. Grfico do crescimento em altura de uma planta

    Podemos agora fazer um grfico de uma equao exponencial e da curva deGompertz, no domnio de 0 a trs com 300 valores igualmente espaados. Comecemos

    por criar o domnio com o comando linspace:

    -->x=linspace(0,3,300);

    x um vetor linha de 300 colunas. A matriz a grafar tem de ter 300 linhas eduas colunas. Para isto criamos a matriz com duas linhas e 300 colunas (; separa aslinhas) [2*exp(0.5*x);2*0.2^(exp(-0.8*x)-1)], e depois obtemos a sua transpostausando o apostrofo (). Com os comandos seguintes obtm-se a figura 2.3.

    -->plot2d(x,[2*exp(0.5*x);2*0.2^(exp(-0.8*x)-1)]')

  • 7/30/2019 ScilabLivro2.pdf

    54/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 54

    Exerccios de aquecimento

    -->xtitle("Curvas exponencial e de Gompertz","x","y");

    Vamos verificar as dimenses da matriz [2*exp(0.5*x);2*0.2^(exp(-0.8*x)-

    1)]':

    -->size([2*exp(0.5*x);2*0.2^(exp(-0.8*x)-1)]')ans =

    300. 2.

    Figura 2.2. Grfico dos acrscimos bissemanais da altura de uma planta

    Vamos salvar o grfico da figura 2.1, usando o menu File-->Salvar da janela dogrfico, numa disquete na drive A. Chamamos-lhe planta.scg.

    Alternativamente, podemos usar o comando xsave(C://planta.scg).Para abrir o grfico: a) comece por abrir uma janela de grfico, executando o

    comando clfna console; b) no menu File desta janela clique em carregar, na janelaque se abre, escolher a opo ver todos os ficheiros e fazer um duplo clique no ficheiropretendido. Na janela do Scilab aparece:

    -->load('C:\planta.scg');disp('file loaded');

    file loaded

    Para fechar a janela de um grfico clicar no boto X do canto superior direito,ou no menu File->Close.

    Para limpar a janela de um grfico, clique no menu Editar->Limpar figura. Ou naconsole de comandos entrar com clf(nmero da janela do grfico). No caso de s

  • 7/30/2019 ScilabLivro2.pdf

    55/259

  • 7/30/2019 ScilabLivro2.pdf

    56/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 56

    Exerccios de aquecimentoAgora, o nmero de arranjos de 6 objetos 2 a 2 dado por:

    -->n=6;r=2;

    -->n2=n-r;

    -->ar62=prod(1:n)/prod(1:n2)ar62 =

    30.

    Para calcularmos o nmero de combinaes de 6 objetos 2 a 2 procedemosdeste modo:

    -->co62=ar62/prod(1:r)co62 =

    15.

    2.4 Clculo trigonomtrico

    O Scilab expressa os ngulos em radianos. A biblioteca de funes trigonomtricas doScilab bastante rica, como se pode constatar na Ajuda. Vamos ilustrar alguns

    comandos.Verificar a igualdade sen2 x+cos2x=1 (comandos sin e cos), sem sada doresultado. Atribumos o calculo da expresso a a e depois comparamo-la com 1, usando==. Se for verdadeira o Scilab devolve T (de true- verdadeiro), se for falsa a sada F.

    -->x=2;

    -->a=sin(x)^2+cos(x)^2;

    -->a==1ans =

    T

    A igualdade foi comprovada.Para valores de x no intervalo .[-2, 2 }, criemos um grfico das funes cos2x e

    cos x2., na figura 2.4.

    -->x=[-2*%pi:0.01:2*%pi];

    -->M=[cos(x)^2;cos(x^2)]';

    -->plot2d(x,[M])

  • 7/30/2019 ScilabLivro2.pdf

    57/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 57

    Exerccios de aquecimento

    Para obter informao sobre as funes trigonomtricas hiperblicas, entrecom

    -->apropos hyperbolic

    Dada a funo f(x)=3 cos x +x , fazer o seu grfico no domnio Df=[0, 8], e acharo valor mnimo da funo. Vamos criar cem mil pontos no domnio.

    -->x=linspace(0,8*%pi,100000); //Domnio

    -->f=3*cos(x)+x; //Valores da funo

    -->min(f) //Obteno do mnimo de f

    ans =

    - 0.0266714

    Introduzimos agora o comando plot.

    -->plot(f)

    -->xtitle("Grfico de f(x)=3*cos(x)+x","Nmero do ponto","f")

    -->xgrid()

    Na figura 2.5, verifica-se que comando plot(f) no revela os valores de x, mas aordem dos pontos de zero a cem mil.

    Figura 2.4. Grficos das funes trigonomtricas cos 2 x (menor amplitude) e cos x2

  • 7/30/2019 ScilabLivro2.pdf

    58/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 58

    Exerccios de aquecimento

    .Figura 2.5. Grfico da funo trigonomtrica f(x)=3 cos x +x

    2.5 Resolvendo alguns problemas de fsica

    As energias renovveis esto em foco, por isso introduzo um problema ligado energiahidrulica.

    Uma barragem com o comprimento de 100 m (L), de forma retangular, sustmuma albufeira com 30 m de altura de gua (H). Pretendemos calcular a pressohidrosttica na parede da barragem.

    A expresso que nos d a presso pretendida (F, N) a seguinte

    2

    HLgF a=

    sendo L=100 m, H=30 m, g=9,81 m s-2, a=1000 kg m-3. Podemos proceder agora aoclculo de F.

    -->L=100; H=30; g=9.81; roa=1000;

    -->F=g*roa*L*H/2F =

    14715000.

    Passemos termodinmica. Um aerstato cheio com hlio (gs monoatmico)tem o volume de 400 m3 (V), sob uma presso de 105 Pa (p). Devido ao calor do Sol, asua temperatura subiu de 18 (t1) para 30 (t2) graus Celsius. Deseja-se saber em quantoaumentou a energia interna do hlio.

  • 7/30/2019 ScilabLivro2.pdf

    59/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 59

    Exerccios de aquecimentoA diferena entre as energias internas aos 18 e 30 graus Celsius (U, J), dada

    pela equao seguinte:

    )1(2

    3

    1

    2=

    T

    T

    pVU

    Calculemos U.

    -->3/2*10^5*400*((273.15+30)/(273.15+18)-1)ans =

    2472952.1

    Por fim, o clssico problema da cinemtica, do projtil de um canho, ignorada

    a resistncia do ar.Um canho disparou um projtil, sob um ngulo com a horizontal de 45 graus

    (), com a velocidade inicial de 380 m s -1 (v0). Desejamos saber o tempo de voo doprojtil, a altura mxima que atinge e o seu alcance.

    O tempo de voo (tv , s) do projtil dado pela relao:

    g

    senvtv

    02= segundos

    O tempo de ascenso igual a metade de t v, da a simetria da trajetria

    parablica do projtil.A altura mxima (hm, m) vem dada por:

    g

    senvhm

    2

    22

    0 = metros

    O alcance do tiro (l, m) obtm com a equao seguinte:

    g

    senvl

    )2(2

    0 = metros

    Os clculos no Scilab produzem um vetor sol com a soluo completa doproblema:

    -->vo=380;a=%pi/4;g=9.81;

    -->tv=2*vo*sin(a)/g;hm=vo^2*sin(a)^2/(2*g);l=vo^2*sin(2*a)/g;

    -->sol=[tv hm l]sol =

    54.780953 3679.9185 14719.674

  • 7/30/2019 ScilabLivro2.pdf

    60/259

  • 7/30/2019 ScilabLivro2.pdf

    61/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 61

    Exerccios de aquecimento

    -->Z=['2*x^2+5*y^3+x*y+30','2*x^2+5*y^3+x*y+40'];

    -->x=2;y=5;

    -->[h]=eval(Z)h =

    673. 683.

    2.7 Criar uma funo simples

    Vamos aproveitar o material da seco 2.3 (anlise combinatria) combinatria quenos vai permitir obter os arranjos e combinaes de n r a r.

    Para isto temos que usar o comando functionque tem a seguinte estrutura:

    function [argumentos de sada]= nome da funo(argumentos de entrada)comandos para execuoendfunction

    Abra o SciNotes escreva as seguintes instrues (ver seco 2.3)

    function [c]=combi(n,r)f1=prod(1:n);n2=n-r;f2=prod(1:n2);f3=prod(1:r);a=f1/f2;c=a/f3;disp([Permutae: string(f1)])disp(["Arranjos: string(a)] )disp([ Combinaes: string(c)])endfunction

    Salve esta funo, com o nome combi.sci, usando o menu File do SciNotes, noseu disco, na localizao que lhe for mais conveniente.

    Aps isto, tem quatro alternativas para executar o programa ou script: Manter.se no SciNotes e clicar o boto de execuo

    Manter-se no SciNotes, abrir o menu executar, e clicar em 'arquivo sem eco'

    para no repetir todos os comandos na console. Teclar CTRL+SHIFT+E Com a console ativada, abrir o menu File e clica em 'executar...'. Abre-se uma

    janela para localizar e abrir o ficheiro combi.sci.

  • 7/30/2019 ScilabLivro2.pdf

    62/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 62

    Exerccios de aquecimento

    Na console aparece a respetiva indicao de execuo. Pode agora entrar com ocomando:

    -->combi(5,2)

    A sada do Scilab ser:

    !Permutae: 120 !

    !Arranjos: 20 !

    !Combinaes: 10 !ans =

    10.

    A funo combi criada pode ter utilidade, por exemplo, para resolver certosproblemas do clculo das probabilidades.

    Quando se est a escrever um programa no SciNotes, ele pode ser testado medida que criado. Para isso proceda do seguinte modo:

    1. Ponha o cursor no fim do ltimo comando que quer correr. Entre com acombinao Ctrl+E ou

    2. Clique no espao do SciNotes com o boto direito do rato. Abre-se um menucom vrias opes (que deixo sua curiosidade explorar), clique na primeiraavaliar at ao cursor com eco. Tambm pode selecionar os comandos quequer correr, proceder com no ponto anterior, ou no menu do boto direito,clicar na primeira opo, agora com a entrada avaliar seleo com eco.Quando se acaba de escrever um programa no SciNotes, o ltimo boto

    direita, que tem no cone o tringulo de correr sobreposto ao de guardar o script,permite executar estas duas tarefas com um s clique.

    2.8 Achar a soluo de um sistema de equaes lineares

    Seja o sistema de equaes lineares

    0,5 x1 + 3x2 + 1,5 x3 = 20,6 x1 + 2x2 - 2 x3 = 52 x1 - 4x2 + 12 x3 = 3

    Deste sistema pode-se extrair uma matriz 3x3, com os coeficientes das variveisde acordo com a tabela

  • 7/30/2019 ScilabLivro2.pdf

    63/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 63

    Exerccios de aquecimento

    0,5 3 1,5

    0,6 2 -2

    2 -4 12

    e o vetor coluna

    2

    53

    Vamos introduzir a matriz no Scilab, atribuindo-a varivel A, separando aslinhas por ;. O vetor coluna ser a varivel b. Os elementos dos vetores tanto podem

    ser separados por espaos como por vrgulas.O comando a utilizar ser X=lsq(A,b), que utiliza o mtodo dos mnimos

    quadrados.

    -->A=[0.5,3,1.5;0.6,2,-2;2,-4,12];

    -->b=[2,5,3]';

    -->X=lsq(A,b)X =

    5.82386360.0482955

    - 0.7045455

    Vamos verificar o erro associado soluo achando a seguinte diferena:

    -->b-(A*X)ans =

    1.0D-14 *

    - 0.5773160- 0.1776357- 0.3552714

    O erro virtualmente zero, sendo x1=5.8238636, x2=0.0482955 e x3=-0.7045455.

    O vetor coluna b tambm podia ter sido entrado com os elementos separadospor ponto e vrgula, [2;3;5], em vez de transpor um vetor linha.

  • 7/30/2019 ScilabLivro2.pdf

    64/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 64

    Exerccios de aquecimento

    2.9 Anlise de uma funo polinomial

    O Scilab tem uma biblioteca denominada Polynomial calculations, recheada de

    ferramentas para lidar com polinmios. Vamos tirar benefcio de algumas delas, nestaseco.

    Usamos o comando poly.

    poly([coeficientes do polinmio a comear na constante],nome da varivel,coeff)

    Criemos o polinmio do quarto grau y=3 - 2x - 12x2 - 2x3 + 2x4 com o comando

    -->y=poly([3 -2 -12 -2 2],"x","coeff")y =

    2 3 43 - 2x - 12x - 2x + 2x

    Criemos um grfico do funo y(x), na figura 2.7, no domnio de -2 a 3,2. Paraisso temos de primeiro avaliar o polinmio no domnio usando o comando horner. Asequncia de comandos a seguinte:

    -->x=[-2:0.1:3.2};

    -->k=[horner(y,x)];

    -->plot2d(x,k')

    -->xtitle("Funo polinomial","x","y");

    -->xgrid()

    -2 -1 0 1 2 3 4

    -40

    -30

    -20

    -10

    0

    10

    20

    Funo polinomial

    x

    y

    Figura 2.7. Grfico da funo polinomial definida

  • 7/30/2019 ScilabLivro2.pdf

    65/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 65

    Exerccios de aquecimentoPara obter as suas razes usamos o comando roots(y)

    -->zery=roots(y)zery =

    0.4165815- 0.6652887- 1.78440293.0331101

    Para derivar numericamente o polinmio usamos o comandoderivat.

    -->d=derivat(y)d =

    2 3- 2 - 24x - 6x + 8x

    que tem as razes

    -->zerd=roots(d)zerd =

    - 0.0853624- 1.3438946

    2.1792569

    Calculamos agora o polinmio nos pontos extremos

    -->extr=horner(y,zerd)extr =

    3.0846341- 4.6069015- 33.93867

    Vamos, de modo semelhante, na figura 2.8, traar o grfico da primeiraderivada.

    -->m=[horner(d,x)];

    -->plot2d(x,m');

    -->xtitle("Primeira derivada","x","Derivada");

    -->xgrid()

    Passemos ao clculo da segunda derivada.

  • 7/30/2019 ScilabLivro2.pdf

    66/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 66

    Exerccios de aquecimento

    -->dd=derivat(d)dd =

    2- 24 - 12x + 24x

    Os zeros da segunda derivada do-nos os pontos de inflexo:

    -->inflex=roots(dd)inflex =

    - 0.78077641.2807764

    -2 -1 0 1 2 3 4

    -60

    -40

    -20

    0

    20

    40

    60

    80

    10 0

    12 0

    14 0

    Primeira derivada

    x

    Deriv

    ada

    Figura 2.8. Grfico da primeira derivada do polinmio y

    Tracemos o grfico da segunda derivada (figura 2.9).

    -->x=[-2:0.1:3.2};

    -->n=[horner(dd,x)];

    -->plot2d(x,n');

    -->xtitle("Segunda derivada","x","Derivada");

  • 7/30/2019 ScilabLivro2.pdf

    67/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 67

    Exerccios de aquecimento

    -->xgrid()

    Avaliemos o polinmio nos pontos de inflexo:

    -->x=[inflex];

    -->infl=horner(y,x)infl =

    - 1.0585946- 18.066405

    -2 -1 0 1 2 3 4

    -50

    0

    50

    100

    150

    200

    Segunda derivada

    x

    Derivada

    Figura 2.9. Grfico da segunda derivada do polinmio

    2.10 Operaes com polinmios

    Vamos criar dois polinmios e realizar com eles operaes aritmticas. A leitora j estem condies de interpretar, por si, os comandos seguintes:

    -->a=poly([5 2 9 8 1],"x","coeff") //criar o polinmio a

    a =

  • 7/30/2019 ScilabLivro2.pdf

    68/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 68

    Exerccios de aquecimento2 3 4

    5 + 2x + 9x + 8x + x

    -->b=poly([5 -3 8],"x","coeff") //criar o polinmio b

    b =

    25 - 3x + 8x

    -->soma=sum(a,b) //somar os dois polinmiossoma =

    2 3 45 + 2x + 9x + 8x + x

    -->sub=a-b //subtrair b de asub =

    2 3 45x + x + 8x + x

    -->mult=a*b //multiplicar os polinmiosmult =

    2 3 4 5 6

    25 - 5x + 79x + 29x + 53x + 61x + 8x

    Para dividir os polinmios usamos o comando pdiv.

    -->div=pdiv(a,b) //dividir os dois polinmiosdiv =

    21.4394531 + 1.046875x + 0.125x

    -->poten=a^3 //potncia de apoten =

    2 3 4 5 6 7 8125 + 150x + 735x + 1148x + 1878x + 2802x + 2835x + 2676x + 2082x

    9 10 11 12+ 950x + 219x + 24x + x

    Por ltimo criemos a frao z=a/b, e faamos o seu grfico no domnio -5 a 5, nafigura 2.10.

  • 7/30/2019 ScilabLivro2.pdf

    69/259

  • 7/30/2019 ScilabLivro2.pdf

    70/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 70

    Exerccios de aquecimentoans =

    22 - 3x + x

    -->roots(ans)ans =

    1.2.

    2.11 Limites

    Nesta seco, apresentarei uma breve incurso sobre o tpico limites de funes.A funo

    x

    xsenoxf

    )()( =

    uma indeterminao no ponto x=0. Recorrendo regra de lHopital, mostra-se que oseu valor quando x tende para zero 1.

    Numericamente, podemos aproximar o valor deste limite, com os comandosseguintes:

    -->x=[-.001 -.0001 -.00001 -.000001 -.0000001 0.0000001 0.000001 0.000010.0001 0.001];

    -->limite=[sin(x)/x]limite =

    0.9999998

    Por sua vez, a funo racional

    2

    4)(

    2

    =

    x

    xxf

    redunda numa indeterminao para x=2. Apliquemos o mesmo procedimento:

    -->x=[1.99 1.999 1.9999 1.99999 1.999999 2.000001 2.00001 2.0001 2.0012.01];

    -->[limite]=[(x^2-4)/(x-2)]limite =

  • 7/30/2019 ScilabLivro2.pdf

    71/259

    2008, 2011 L. S. Barreto Iniciao ao Scilab 71

    Exerccios de aquecimento

    4.Usando um procedimento que introduziremos adiante, podemos escrever os

    valores da funo para o domnio considerado (vetor x) como um vetor coluna, e fazer

    os seu grfico, na f