Hardware e Software
Hardware o termo em ingls empregado para designar todo e qualquer componente, parte e sistema, capaz de realizar um processamento computacional, isto , um processamento de modificao e controle de dados numricos. Exemplos de hardware so o computador, suas partes, componentes e perifricos (monitor de vdeo, disco magntico, impressora, etc). Um computador constitudo pelas seguintes unidades: unidade central de processamento (CPU - Central Processing Unit): responsvel pela execuo de instrues e pelo controle da operao de todas as unidades do computador. unidade de armazenamento de instrues e dados, que pode ser dividida em unidade primria, para armazenamento em tempo de execuo (memria RAM - Random Access Memory) de curta durao e unidade de armazenamento secundria, de longa durao, uma memria permanente constituda pela memria ROM (Read-Only Memory), pelos discos magnticos (floppy disk e disco rgido) e pelos discos pticos (CD-ROM, CD-RW) e magneto-pticos. unidades de entrada e sada (I/O - Input/Output), cuja funo primria a entrada e sada de dados do computador. Exemplos de dispositivos de entrada de dados so o teclado, o mouse, microfone e joystick, enquanto que dispositivos de sada tpicos so o monitor de vdeo, caixa de som e impressora. Exemplos de perifricos que funcionam como dispositivos de entrada e sada de dados so a tela de vdeo sensvel ao toque (touch screen) e o modem, usado para comunicao de dados entre computadores atravs de uma linha telefnica. Atualmente, a capacidade dos computadores superam e muito as suas especificaes e propsitos de uso original. Os computadores so capazes no apenas de armazenar, tratar e gerir
C.Y. Shigue
Introduo
informaes em quantidade e velocidade, so capazes tambm de proverem comunicao entre computadores e outros dispositivos eletrnicos digitais, tais como telefones, fax e televisores; so capazes de aceitar, manipular e apresentar informaes na forma de voz, som, imagem, vdeo e texto; permitem o controle de outros dispositivos eletrnicos digitais, tais como semforos, sistema de trfego areo (radares, torre de controle, mesa de operao), sistema de comunicaes (telefonia digital), sistemas bancrios (caixa eletrnico, terminal de consulta, mesa de operao) e inmeras outras aplicaes essenciais para a vida cotidiana. A penetrao da computao na vida diria se d de tal forma, que aparelhos eletrodomsticos comuns, como torradeiras, mquina de fazer caf so dotadas de um computador embutido num componente integrado miniaturizado e a tendncia que o computador de mesa que conhecemos hoje se torne um eletrodomstico que vai comandar os outros aparelhos eletrodomsticos. Os programas de computador so um conjunto de instrues que comandam o hardware. O software, por sua vez, designa um programa ou um conjunto de programas, capazes de atuar, modificar e controlar o processamento de dados lgicos e numricos pelo computador. Existem trs tipos de software: sistemas operacionais e firmware: os sistemas operacionais so programas de computador que contm todas as instrues para o controle e a operao do computador. Exemplos de sistemas operacionais so o MS-DOS, Windows-9x (95, 98, ME e XP/Home), Windows NT, 200 e XP/Professional e o UNIX e suas variantes (Linux, FreeBSD, Solaris, Mac-OSX, etc) que "rodam" em diversas plataformas de hardware. A maioria dos sistemas operacionais prov uma interface de usurio grfica (GUI - Graphical User Interface), de modo a facilitar a operao do computador sem a necessidade de memorizao de comandos. O firmware um conjunto de instrues que informa ao sistema operacional quais so os componentes de hardware que esto instalados no computador. Normalmente, o firmware um conjunto de instrues que vem gravado numa memria ROM do tipo CMOS (Complementary Metal Oxide Semiconductors) instalada na placa-me. Em microcomputadores do tipo PC o firmware tambm chamado de BIOS (Basic Input-Output System) a que muitos tcnicos se referem como CMOS (por causa do tipo de memria). linguagens de programao: so as ferramentas para a construo de softwares, tanto para sistema operacional como para aplicaes. Todos os programas que rodam num computador so feitos partir de uma linguagem de programao. Existem diversas linguagens de programao, incluindo os seus dialetos que, geralmente, so constitudos por extenses da linguagem feitos por um fabricante de software em particular. Exemplos de linguagens de programao so: FORTRAN (linguagem de uso cientfico), COBOL (linguagem de uso comercial), BASIC, Pascal, C, C++ e Java. Existem linguagens de programao implementadas dentro de um software de aplicao e que so denominados scripts, como o VisualBasic for Applications (VBA), que a linguagem script encontrada nos programas de processamento de texto Word, planilha Excel e banco de dados Access, todos integrantes do pacote de software Office da Microsoft. Outros programas que, originalmente foram criados como programas de aplicao com recursos de programao script, como os softwares de gerenciamento de banco de dados, evoluram para linguagens de programao de banco de dados, como o caso da linguagem SQL, desenvolvida pela IBM e pelo programa Oracle da empresa homnima.
C.Y. Shigue
Introduo
software aplicativo: programas de computador desenvolvidos para o usurio final, podem ser classificados como software de aplicao. Os softwares de aplicao geralmente so programas desenvolvidos para uma aplicao especfica como, por exemplo, um software de controle de contas a pagar e receber ou um software de planilha eletrnica ou de processamento de texto. Na medida em que o hardware foi evoluindo (processadores mais velozes, memrias e discos com maior capacidade de armazenamento, etc), os programas aplicativos foram evoluindo englobando diversas tarefas e agregando outros programas num "pacote", como o MS Office. Na Fig. 1.1 esquematizado, em nvel hierrquico, a relao entre hardware, software e o usurio (ser humano). Quanto mais inferior o nvel, mais ele se aproxima do nvel puramente fsico em que enxergamos um computador como sendo um conjunto de componentes eletrnicos, placas de circuito e gabinetes, sem uma funo lgica (e inteligente) a faz-lo funcionar. medida que subimos nos diversos nveis, aproxima-nos do nvel puramente lgico, representado pela inteligncia criadora do computador, o ser humano. Neste nvel, estamos numa camada mais abstrata em que os conceitos so baseados na lgica e no raciocnio para criarmos os programas que iro interagir com o nvel fsico. Um programa de computador , na essncia, um conjunto de instrues transcritas para a linguagem do computador da inteligncia (abstrata) do seu criador. Usualmente, ele confundido pelo disquete no qual armazenado, mas na realidade trata-se de uma entidade lgica relacionada com a capacidade intelectual do seu autor em descrever de forma algoritmica a sequncia para a consecuo de uma atividade executada pelo computador.
SER HUMANO
APLICATIVO APLICATIVO INTERFACE GRFICA (GUI) NVEL DE ABSTRAO LINGUAGEM DE PROGRAMAO (COMPILADOR) SISTEMA OPERACIONAL FIRMWARE (BIOS) HARDWARE NVEL FSICO
COMPUTADOR
Arquitetura de Microcomputador
Um computador essencialmente uma mquina de processamento de dados. Ele recebe dados ou requisio de informaes, processa-os e fornece as informaes ou dados requisitados de modo ordenado, digerido e reduzido, em forma de tabelas, grficos, imagens, texto, som, etc. Um microcomputador um tipo de computador no qual a unidade central de processamento (CPU) constituda por um circuito integrado de uso genrico de ultra alta escala de integrao (ULSI - Ultra Large Scale of Integration) denominado microprocessador. Devido sua disponibilidade, o microcomputador vem encontrando inmeras aplicaes em diferentes
Clculo Numrico e Computacional C.Y. Shigue
Introduo
reas, como na comunicao de dados, em redes de computadores, como sistema de aquisio de dados e de controle de instrumentao nas reas cientfica, mdica e industrial, como videogame e centro de entretenimento. Internamente, um microcomputador organiza-se da forma esquematizada na Fig. 1.2.
CPU
UNIDADE LGICA E ARITMTICA (ALU) UNIDADE DE CONTROLE
MEMRIA
APENAS DE LEITURA (ROM)
PERIFRICOS
DISCOS MAGNTICOS MONITOR DE VDEO TECLADO, MOUSE
ENTRADA
SADA
DADOS
Fig. 1.2 - Arquitetura de um microcomputador. Um microprocessador um circuito integrado de elevadssimo grau de integrao, contendo milhes de transistores, constitudo basicamente por trs unidades: i. Unidade de Controle: obtm as informaes que esto armazenadas na memria principal, interpreta-as e d sequncia s operaes para as outras unidades para executar as instrues; ii. Unidade Lgica e Aritmtica: unidade que realiza as operaes lgicas e aritmticas. As operaes lgicas principais so a multiplicao lgica (AND lgico), adio lgica (OR lgico), negao lgica, inverso ou complementao lgica (NOT lgico), alm de outras operaes como NAND, NOR, XOR, etc. As operaes aritmticas so a adio, subtrao, multiplicao, diviso e deslocamento. iii. Memria interna cache: realiza operao de armazenamento da parcela de dados da memria principal mais requisitadas, com a finalidade de aumentar a velocidade de acesso aos dados entre a CPU e a memria principal. Outras unidades podem ser agregadas na pastilha do circuito integrado para aumentar a velocidade de processamento e melhorar o desempenho do processador. A Fig. 1.3 mostra a arquitetura do microprocessador Pentium da Intel, com tamanho tpico de circuito de 0,6 m e contendo mais de trs milhes de transistores. Observar que o processador de operaes flutuante (Pipelined floating point) e o processador de operaes inteiras (Superscalar integer execution units) so unidades adicionais, que tem como justificativa a capacidade de processamento superescalar e vetorial, caractersticas essas de supercomputadores, bem como suporte a unidade de processamento de operaes com nmeros complexos (Complex instruction support) que melhoram o desempenho do computador na execuo de diversas tarefas simultaneamente (processamento paralelo multitarefa) e no
C.Y. Shigue
Introduo
processamento numrico intensivo (como na gerao de grficos 3-D, execuo de sons no formato MP3 e exibio de vdeo digital).
Fig. 1.3 - Esquema do circuito do microprocessador Pentium. A memria usada para armazenar instrues e dados operados pela CPU. Existem dois tipos de memria: memria ROM e memria RAM. A memria ROM ou memria apenas de leitura (Read-Only Memory) armazena principalmente as informaes que necessitam ficar armazenadas permanentemente, como aquelas relativas ao hardware (tipo e quantidade de discos magnticos, tipo de controladora de vdeo, endereamento e quantidade de memria). A memria RAM ou memria de acesso direto (Random-Access Memory) um tipo de memria voltil, isto , as informaes armazenadas nela so temporrias e se perdem quando o computador desligado. A memria RAM utilizada principalmente para armazenar dados e instrues relativos aos programas a serem executados e que ficam disponveis apenas durante o tempo de execuo.
O Computador Digital
Desde os primrdios da Computao, nos anos 40, at os dias de hoje, os computadores vm sofrendo um contnuo processo de desenvolvimento. Entretanto, o princpio fundamental de operao do computador no mudou, desde o ENIAC em 1945 e o EDVAC em 1952, que foi o primeiro computador integralmente eletrnico. Os computadores atuais so digitais (isto , processam as informaes utilizando nmeros binrios) que processam os dados e as instrues na CPU, com armazenamento na memria. Este modelo computacional deve-se ao matemtico John Von Neumann, que estabeleceu os princpios dos computadores atuais e que por isso tambm so chamados de computadores Von Neumann. Pelo fato de operarem no formato numrico binrio, significa que os nmeros de base decimal a que estamos familiarizados devem ser convertidos no seu correspondente binrio. Da mesma forma, o alfabeto e os smbolos grficos (!?,.%$#<> etc) tambm devem ser convertidos em seu equivalente codificado em binrio.
C.Y. Shigue
Introduo
Fig. 1.4 - John Von Neumann e o computador EDVAC, o primeiro computador digital do mundo. A quantificao da informao armazenada e processada por um computador feita atravs do byte (simbolizado pela letra B maiscula), que igual a 8 bits (simbolizado pela letra b minscula). Em termos aproximados, um byte equivalente um caracter, e a informao quantificada em termos de mltiplos de bytes, que so potncias de 2, como veremos adiante, e esto apresentados como ordens de grandeza do byte, como descrito a seguir: 1 kB = 210 bytes = 1.024 bytes = 8.192 bits = 8 kb 1 MB = 220 bytes = 1.048.576 bytes = 1.024 kB 1 GB = 230 bytes = 1.073.741.824 bytes = 1.048.576 kB = 1.024 MB Assim, um computador que contenha uma unidade de disco magntico de 650 MB de capacidade, capaz de armazenar 650 x 1.048.576 = 681.574.400 bytes de informao, ou o equivalente a aproximadamente 681 milhes de caracteres, ou o equivalente a 180 mil pginas ou a cerca de 400 volumes de livros ou o equivalente a 40 volumes da Enciclopdia Britannica contendo somente texto. Para efeito de comparao, 650 MB tambm a capacidade de armazenamento de um CD-ROM. O equivalente em CD a um arquivo de som digital cerca de 75 minutos de gravao e equivalente 100 imagens fotogrficas coloridas de mdia definio (600 dpi - dpi = pontos por polegada).
Linguagens de Computador
No incio da Computao, a programao era realizada atravs da abertura e fechamento de vlvulas eletrnicas por meio de chaves que controlavam a passagem de corrente pelas vlvulas. Era uma tarefa essencialmente de manipulao fsica do hardware (Fig. 1.5).
C.Y. Shigue
Introduo
partir dos anos 50, com o desenvolvimento das linguagens de programao, que iniciouse primeiramente com as linguagens de mquina (baseadas em codificao por nmeros binrios, 0 e 1), at as linguagens mais naturais como o FORTRAN e o COBOL, a programao de computadores vm se afastando do nvel fsico e se torna cada vez mais uma atividade "abstrata" em que um algoritmo escrito em linguagem mais prxima humana (da o nome, linguagem "natural") tornando a programao codificao de uma seqncia de instrues baseada numa linguagem de descrio de comandos. As primeiras linguagens foram projetadas para realizao de tarefas especficas e foram evoluindo para linguagens de uso geral e hoje, se observa novamente uma tendncia de dispor-se de linguagens de uso especfico. seguir, listamos as principais linguagens de programao. FORTRAN Uma das mais antigas linguagens de programao, o FORTRAN que um siglnimo de FORmula TRANslator, foi projetado para ser uma linguagem para manipulao de operaes matemticas, originalmente em computadores mainframe. Na poca em que foi criado, a programao era feita em cartes perfurados, um para cada instruo do programa, caracterstica essa que influenciou numa srie de comandos que permanecem como herana at hoje. Embora seja uma das linguagens mais antigas, o FORTRAN evoluiu juntamente com a informtica e hoje, a verso padronizada mais recente, o FORTRAN-90 possui uma srie de recursos disponveis nas linguagens mais modernas e mantm uma grande comunidade de programadores em todo o mundo ainda desenvolvendo programas cientficos e de engenharia altamente complexos e sofisticados. Por essas caractersticas, ainda o FORTRAN a lingua franca de inmeros cientistas e engenheiros. COBOL O COmmon Business Oriented Language ou COBOL a linguagem desenvolvida na mesma poca do FORTRAN para criar programas de aplicao comercial, que envolvem a criao e manipulao de informaes comerciais disponveis em banco de dados, usando uma linguagem de comandos em ingls. Devido ao fato de ser uma linguagem com capacidade de manipulao de registros de dados comerciais, a sua capacidade de manipulao matemtica limitada s operaes aritmticas bsicas. Pascal A linguagem Pascal deve esse nome ao filsofo, matemtico e fsico francs Blaise Pascal, a quem Niklaus Wirth, professor do Instituto Tcnico Federal (ETH) da Sua, criador dessa linguagem homenageou. O Pascal foi projetado como uma linguagem de ensino de programao, da a sua ampla aceitao em crculos acadmicos de todo o mundo como a primeira linguagem a ser ensinada em cursos de programao para estudantes de cincias exatas. A sua construo fora aos alunos aprenderem e programar de forma estruturada e modular. Outra vantagem que o Pacal foi desenvolvido para ser independente da plataforma de hardware e do sistema operacional.Assim, um programa escrito num computador poderia ser compilado sem modificao em outro tipo de computador, com diferente processador e sistema operacional.
C.Y. Shigue
Introduo
BASIC A linguagem BASIC, que o acrnimo de Beginner's All-purpose Symbolic Instruction Code, tal como a linguagem Pascal, tambm foi criada para o ensino de programao de computadores em nvel introdutrio no Darthmouth College, EUA. No incio, o BASIC foi a primeira linguagem interpretada disponvel para uso geral e uma das primeiras a serem disponveis pela ento recm-criada empresa produtora de software Microsoft nos primeiros microcomputadores fabricados na dcada de 1970. A rpida popularizao dos microcomputadores nos anos seguintes tambm popularizaram a linguagem BASIC entre os jovens aficionados por jogos eletrnicos em computador, resultando numa gerao de programadores que aprendeu o BASIC como primeira linguagem de programao. Atualmente, a linguagem Microsoft Visual BASIC uma das linguagens mais utilizadas na programao em ambiente Windows. Linguagem Assembly A linguagem Assembly uma linguagem de representao simblica da linguagem de mquina de um processador em particular, sendo por isso, considerada uma linguagem de baixo nvel, isto , de nvel hierrquico prximo ao fsico. Assim, cada processador tem sua linguagem assembly prpria, apesar de que uma famlia de processadores, tais como a famlia Intel 80x86, pode compartilhar parte ou o todo de seu cdigo assembly. Em portugus, as linguagens assembly so tambm denominadas linguagens montadoras (assembler em ingls). C Nos idos anos 60 e incio dos 70 era comum os programadores criarem suas prprias linguagens de programao partir de cdigos assembler, por no haver a cultura de comercializao do software como um produto independente do hardware como hoje. Uma dessas linguagens experimentais foi denominada linguagem "A", que aps alguns aperfeioamentos deu origem linguagem "B". Esta linguagem, por sua vez, naturalmente evoluiu para o que hoje conhecemos como linguagem "C". O fato da linguagem ter evoludo e encontrado grande aceitao entre os programadores deriva do fato dela ser uma linguagem ao mesmo tempo simples e poderosa, capaz de programar o hardware em nvel de linguagem de mquina ao mesmo tempo que possibilita uma construo sinttica prxima linguagem natural. Ela foi criada por Kerninghan e Ritchie, pesquisadores do Laboratrio Bell dos Estados Unidos, como linguagem de desenvolvimento do sistema operacional Unix. Como este sistema foi adaptado para uma ampla variedade de plataformas de hardware quer foram adotados pela maioria dos fabricantes de computadores utilizados em aplicaes crticas (bancos de dados, processadores de comunicao, gerenciadores de redes) a linguagem C ganhou grande popularidade entre os programadores de sistema e de aplicaes sofisticadas. C++ No final dos anos 80 com o aumento da capacidade do hardware, os desenvolvedores de software no conseguiam acompanhar o ciclo de desenvolvimento com a mesma rapidez da evoluo do hardware, ocasionando o que se chamou de crise do software. Para fazer frente ao aumento da complexidade na criao dos softwares, os cientistas da computao elaboraram os conceitos de objetos e de programao orientada a objects , que determinaram
C.Y. Shigue
Introduo
um novo paradigma de programao que as linguagens de programao da poca, como a linguagem C padro (o chamado ANSI-C), no tinham suporte estrutura lgica desse novo paradigma. Devido ao fato da linguagem C ser (e ainda ) a linguagem de desenvolvimento mais utilizada pelos programadores profissionais, um tipo de extenso da linguagem proposto por Bjarne Stroustrup do mesmo Laboratrio Bell onde foi criado a linguagem C foi desenvolvido. Esta linguagem denominada C++ retro-compatvel com programas escritos em linguagem C, ao mesmo tempo que adota uma estrutura para o desenvolvimento de programas de acordo com o paradigma de orientao a objetos. Linguagens Scripting As linguagens scripting existem desde os anos 60. Entretanto, o poder e sofisticao dessas linguagens aumentou dramaticamente nos ltimos anos. Combinando com o avano na tecnologia de hardware, o uso de linguagens scripting ampliou o horizonte de aplicaes para um sem nmero de tarefas. As linguagens scripting foram criadas para funcionar como "cola" na integrao de componentes de software e aplicaes criados em linguagens de programao convencionais, como as descritas anteriormente. Elas avanaram no vcuo da crise de software dos anos 80 e funcionaram e tm funcionado como uma mola propulsora na criao de aplicativos grficos e distribudos, que hoje mantm em funcionamento parcela significativa dos sites comerciais da internet. seguir, relacionamos algumas linguagens scripting mais utilizadas. Shell Unix (sh, csh, ksh, etc) O sistema operacional tm uma linguagem de comandos que possui a sintaxe da linguagem C e que possibilita a digitao de comandos interativamente. A estas linguagens scripting de linha de comando denomina-se shell. O primeiro shell do sistema operacional Unix foi criado no incio dos anos 70 e uma srie de outros shells (csh, ksh, bash, etc) foram criados para automatizar tarefas rotineiras de operao e administrao do Unix. Um dos aspectos que tornam o Unix poderoso e singular a sua capacidade de criar novas aplicaes partir da composio de diferentes aplicaes j existentes e que, talvez seja uma das razes da popularidade do Unix como plataforma de desenvolvimento de software entre os desenvolvedores profissionais. Perl Criado por Larry Wall no final dos anos 80 com a finalidade de colocar em um nico lugar as funes de muitas aplicaes de processamento de texto Unix, tais como sh, sed e awk, o Perl (acrnimo de Practical Extraction and Report Language) rapidamente se tornou uma das ferramentas mais utilizadas pelos administradores de sistemas de informao. Com a chegada do WWW (internet com interface grfica), o Perl adquiriu fama como linguagem para construo de scripts para pginas Web dinmicas, isto , que se atualizam com o acesso dos usurios. Tcl Criada por John Ousterhout no fim dos anos 80 como uma linguagem de comandos embutvel para uso como ferramenta interativa. Completa-o a ferramenta de construo de interface
Clculo Numrico e Computacional C.Y. Shigue
Introduo
10
grfica Tk. O Tcl e o Tk so disponveis para todas as principais plataformas de hardware e software, sendo uma ferramenta essencial na criao de aplicativos multiplataforma. Hoje, a linguagem Tcl usada para uma ampla variedade de uso, desde gerao automtica de contedo para internet, at gerenciamento de sistemas, passando por automao de projeto eletrnico. Visual Basic A linguagem da Microsoft pode ser considerada ao mesmo tempo como linguagem de programao de sistema e como linguagem scripting. Conforme mencionado anteriormente, ela se popularizou como ferramenta para criao rpida de aplicativos (em ingls, RAD Rapid Application Development), baseado na interface grfica do Windows. A combinao do Visual Basic e da linguagem de componentes scripting VBX (atualmente denominado ActiveX) a fora motriz por detrs de inmeros sites de comrcio eletrnico da internet baseados na tecnologia de software ASP (acrnimo de Active Server Pages) que executa todas as tarefas de gerao de pginas HTML dinmicas e de administrao de banco de dados. Esse sucesso em grande parte devido facilidade de integrao propiciada pelo Visual Basic. Python O Python uma linguagem orientada a objetos dinmica, criada por Guido van Rossum no incio dos anos 90 como uma proposta de facilitar o aprendizado de uma linguagem de programao e ao mesmo tempo prover uma ponte entre entre o shell e a linguagem C. uma linguagem elegante, com uma sintaxe fcil de aprender, portvel como o Tcl, com o qual compartilha a ferramenta GUI Tk e com uma extensa biblioteca de suporte matemtico, grfico e multimdia. fcil de estender para diversas aplicaes e ser embutido em C/C++, o que tem contribudo para a sua popularizao. Originalmente projetada como uma linguagem scripting avanada, tm encontrado novos usos como ferramenta RAD para a Web, bem como para aplicaes distribudas. JavaScript Criada no meio da dcada de 90 pela Netscape para executar scripts embutidos em pginas HTML, como por exemplo, validao de preenchimento de formulrios. O JavaScript se tornou um padro de facto para scripts executados no lado do cliente. Embora no tenha relao com a linguagem Java, compartilha com a sintaxe dos principais funes e tipos de dados. Java O Java, originalmente desenvolvido por Bill Joy da SUN como uma linguagem de programao de dispositivos eletrnicos programveis, encontrou o seu nicho de aplicao na Web como linguagem de gerao de pseudo-cdigos compilados orientados a byte e no a bits e independente de plataforma. Para ser executado, o Java pode rodar tanto do lado do cliente, quando o cdigo denominado applet, quanto do lado do servidor, quando denominado servlet o programa compilado Java. Para ser executado no lado do cliente
C.Y. Shigue
Introduo
11
necessrio que o navegador (browser) Web tenha instalado a mquina virtual Java (JVM Java Virtual Machine) que o interpretador de cdigo orientado a byte do Java. PHP A linguagem PHP (um acrnimo recursivo para PHP: Hypertext Preprocessor) uma linguagem scripting de uso geral, muito utilizada para o desenvolvimento de aplicaes Web embtivel dentro de documentos HTML. Ela foi criada por Jamus Ledorf em 1995, inicialmente como simples script Perl para gerar estatsticas de acesso para seu currculo online. Ele nomeou esta srie de scripts como Personal Home Page Tools (da veio o nome PHP originalmente). Como mais funcionalidades foram requeridas, Rasmus escreveu uma implementao C muito maior, que era capaz de comunicar-se com base de dados, e possibilitava usurios desenvolver simples aplicativos dinmicos para Web. O que distingui o PHP de outras linguagens script, como Javascript que embora o comando esteja escrito na pgina HTML, o cdigo executado no servidor. Se o script estiver no servidor, o cliente recebe os resultados da execuo desse script, sem determinar como o cdigo fonte. Por causa dessa caracterstica e tambm pela integrao com programas open source como o MySQL (gerenciador de banco de dados) e Apache (servidor WWW), o PHP muito utilizado na administrao de sites com contedo dinmico.
Introduo
12
constante para cada linha do cdigo, independentemente da linguagem, de forma que escrever uma linha de instruo em programa escrito em linguagem de alto nvel, que equivale a dez linhas de cdigo escrito em linguagem de baixo nvel, representa um custo de 1/10 do custo do programa escrito em linguagem de baixo nvel.
Representao de Nmeros
Os nmeros empregados no clculo computacional podem ser de dois tipos: nmeros inteiros e nmeros em ponto flutuante (que representam os nmeros reais da Matemtica). Os computadores atuais representam os nmeros internamente no formato binrio, como seqncia de 0s e 1s. Apesar dessa representao ser conveniente para as mquinas, anti-natural para os seres humanos, cujo sistema de numerao natural o decimal. A seguir, apresentamos a representao de nmeros decimais e binrios e os mtodos de converso de um sistema a outro.
Observar que a posio relativa de cada algarismo indica a potncia pela qual ele est multiplicando. Assim, de acordo com esta conveno, o algarismo 3 do exemplo (1.1), que est na 2a posio contar da direita para a esquerda, est multiplicando 101. O algarismo 7 (unidade) do mesmo exemplo chamado de algarismo menos significativo e o algarismo 1 (milhar) o algarismo mais significativo. O algarismo 3 o 2o algarismo significativo e o 5 o 3o algarismo significativo. De acordo com os exemplos acima, qualquer nmero decimal pode ser escrito na forma geral como: N = anbn + an-1bn-1 + an-2bn-2 + ... + a0b0 + a-1b-1 + ... + a-mb-m (1.4)
onde N um dado nmero na base b e an, an-1, etc representam os coeficientes que multiplicam as correspondentes potncias de b. Assim, N = anan-1...a0,a-1 a-2...a-m na representao usual (implcita). Detalhe importante a observar o de os coeficientes que multiplicam potncias de b cujos expoentes sejam < 0 esto separados por uma vrgula daqueles coeficientes cujos expoentes de b sejam 0.
C.Y. Shigue
Introduo
13
Observar que o ndice 10 em 2,5 e 98,75 indica que esses nmeros so decimais. Utilizando a frmula de representao expressa pela equao (1), podemos reescrever os dois exemplos numricos acima como: 2,510 10,12 98,7510 1100010,112 Como no caso dos nmeros decimais, a posio relativa de cada algarismo binrio indica a potncia pela qual ele est multiplicando. Igualmente os coeficientes que multiplicam potncias de 2 cujos expoentes sejam < 0 esto separados por uma vrgula daqueles coeficientes cujos expoentes de 2 sejam 0.
C.Y. Shigue
Introduo
14
Outro exemplo,
15 1 2 7 1 2 3 1 2 1 1 2 0 15 = 10 01111 = 1111 2 2
Notar que neste exemplo necessitamos apenas de quatro dgitos binrios para descrever 1510, pois o zero `a esquerda de 11112 no siginificativo. Para converter um nmero fracionrio de base decimal para base binria aplicamos o mtodo das multiplicaes sucessivas. Ele consiste nas seguintes etapas: multiplicamos o nmero fracionrio por 2; deste resultado, a parte inteira ser o primeiro dgito do nmero fracionrio binrio e parte fracionria ser novamente multiplicada por 2. O processo repete-se at que a parte fracionria do ltimo produto seja zero. Como exemplo, tomemos o nmero decimal 0,1875:
0,1875 x 2 0,3750 0,3750 x 2 0,750 0,75 x 2 1,50 0,50 x 2 1,00 0,1875 = 0,0011 10 2
Outro exemplo,
0,1 x 2 0,2 0,2 x 2 0,4 0,4 x 2 0,8 0,1 10 0,8 x 2 1,6 0,6 x 2 1,2 2 0,2 x 2 0,4 ... e os produtos continuam.
= 0,0001100110011...
Como mostrado neste exemplo, nem sempre um nmero decimal exato possui uma representao binria exata. Este fato a principal causa de erros de arredondamento no clculo numrico em computadores digitais. A converso de bases para um nmero decimal que contm parcela inteira e parcela fracionria constituda por duas partes distintas sobre as quais so aplicadas as respectivas regras de converso: 23,187510 = 10111,00112
C.Y. Shigue
Introduo
15
16 e 32 bits. Computadores com arquitetura mais avanada possuem tamanho de palavra de 64 bits ou mais. O tamanho de palavra de computador tem a seguinte implicao: quanto maior o tamanho da palavra, mais veloz e mais preciso ser o computador. Para entender como o tamanho de palavra afeta a preciso e, consequentemente, os erros de arredondamento do clculo computacional, veremos a representao de nmeros reais binrios em notao de ponto flutuante. Um nmero binrio em ponto flutuante (nmero real) representado da seguinte forma:
sinal da caracterstica sinal da mantissa
caracterstica
mantissa
Pela norma IEEE-754 do Instituto dos Engenheiros Eltricos e Eletrnicos (IEEE), o dgito mais esquerda (tambm chamado de dgito mais significativo - em ingls, MSB) o sinal da caracterstica: 0 (positivo) e 1 (negativo). Os dgitos seguintes representam o valor binrio da caracterstica seguido pela mantissa. O nmero de bits da caracterstica obtido pela diferena entre o tamanho da palavra de computador e o nmero de bits da mantissa que se seguem caracterstica, sendo que o primeiro bit da mantissa representa o seu sinal. A conveno para o sinal da mantissa o mesmo da caracterstica, isto , 0 positivo e 1, negativo. Os nmeros em ponto flutuante no formato IEEE tem a seguinte representao: Tamanho (bytes) 4 8 No de bits de sinal 1 1 No de bits do expoente 8 11 No de bits da mantissa 23 52 Bias 127 1023
Bit de sinal O bit de sinal apresenta zero como nmero positivo e um como nmero negativo.
Expoente (caracterstica) O campo do expoente precisa representar tanto nmeros positivos como nmeros negativos. Para fazer isto, um valor bias adicionado ao expoente para obter o expoente armazenado no computador. Para a norma IEEE o valor de 127 para varivel em preciso simples. Assim, um expoente significa que 127 armazenado no campo do expoente. Um valor armazenado de 200 indica um expoente real de (200 127) ou 73. Expoentes armazenados de 127 e +128 so usados para fins especiais. Mantissa A mantissa representa os bits de preciso de um nmero. Qualquer nmero pode ser expresso em notao cientfica. Por exemplo, o nmero cinco pode ser representado em qualquer uma das seguintes formas:
C.Y. Shigue
Introduo
16
5.00 x 100 0.05 x 102 5000 x 10-3 Por convenincia, os nmeros em ponto flutuante so armazenados na forma normalizada. Em notao cientfica, a forma normalizada de representar o nmero cinco como 5.0 x 100, enquanto que na notao de ponto flutuante, a parte inteira no representada, de modo que o nmero cinco representado na forma normalizada como 0.5 x 101.
Denominao
inteiro curto inteiro inteiro longo
bytes
1 2 4
Faixa
-128 a 127 -32.768 a 32.767 -2.147.483.648 a 2.147.483.647
Algarismos significativos
3 5 10
Tipo REAL Os nmeros fracionrios ou decimais so representados como nmeros reais, cuja notao empregada a de nmero com ponto decimal fixo ou ponto flutuante. A vantagem deste ltimo permitir expressar nmeros muito pequenos ou nmeros muito grandes de forma automtica. Existem dois tipos de nmeros reais de acordo com a sua preciso: 1) Preciso simples, com 4 bytes e 2) Dupla preciso, com oito bytes. A tabela seguinte apresenta os tipos representativo dos nmeros reais. Tipo
float double
Denominao
Preciso simples Dupla preciso
bytes
4 8
Faixas de valores
-3,4028235.1038 a -1,1754944.10-38 1,1754944.10-38 a 3,4028235.1038 -1,797693134862316.10308 a -2,225073858507201.10-308 2,225073858507201.10-308 a 1,797693134862316.10308
Algarismos significativos
7 15
C.Y. Shigue
Introduo
17
apresentar o nmero 1.0000535 como sada ao invs do nmero exato 1. O pequeno erro de representao do nmero decimal 0,0001 em binrio se propagar pela soma, comprometendo o resultado da soma final.
C.Y. Shigue
Introduo
18
Definio de erro absoluto e erro relativo Erro absoluto erro absoluto = |valor verdadeiro - valor aproximado| ex = x = |xexato - xaprox| Podemos representar, matematicamente, xaprox = x e xverdadeiro = x, de modo que x = |x - x | Erro relativo O erro relativo o erro absoluto dividido pelo valor verdadeiro: erro relativo = x | x x| = x x
e que, frequentemente, expresso tambm como erro percentual, multiplicando-se o erro relativo por 100: erro percentual = erro relativo x 100
Tipos de Erros
Erro de arredondamento Os erros de arredondamento so causados pela limitao dos dispositivos empregados no clculo numrico como, por exemplo, uma rgua de clculo que possui uma limitao geomtrica, uma calculadora eletrnica com nmero de dgitos limitado no display ou mesmo um computador com o erro de representao de um nmero decimal no seu equivalente binrio. Por exemplo, consideremos o nmero decimal exato 0,110, cujo equivalente binrio representado pela dzima . 1111112 ... Para um computador com tamanho de palavra de 16 bits, o nmero decimal 0,110 armazenado como: 0,110 . 11111112 = 0,09999084410 de modo que o erro de arredondamento dado por: erro absoluto = |0,1 - 0,099990844| = 0,000009155 9.10-6 Erro por estouro de memria (Overflow) e Underflow
C.Y. Shigue
Introduo
19
A varivel numrica real em preciso simples (default) pode conter no mximo o nmero 1038 e no mnimo 10-38, como visto anteriormente. O erro de overflow ocorre quando o resultado de uma operao aritmtica excede o valor de 3,4028235.1038. Analogamente, o erro de underflow ocorre para uma varivel real em preciso inferior a 1,1754944.10-38. A multiplicao e a diviso podem acarretar erro de overflow como de underflow. O caso mais extremo de overflow na diviso acontece quando ocorre uma diviso por zero, mas, geralmente, tal tentativa provoca uma interrupo na execuo do programa com a emisso de um aviso pelo programa de overflow. Erro de Truncamento O erro de truncamento um erro devido ao mtodo de aproximao empregado para o clculo de uma funo exata. Por exemplo, considere a expanso da funo exponencial em sries de potncia da forma:
Por se tratar de uma srie infinita, devemos escolher um nmero de termos limitado da srie para que possamos computar o valor numrico da funo ex. Escolhemos aproximar a srie infinita por uma srie contendo trs termos, isto , pela aproximao: ex 1 + x + x2 2!
No importa a quantidade de algarismos significativos que utilizemos no clculo de ex pela srie truncada, o resultado ser sempre aproximado e, portanto, sempre ter um erro, que denominado erro de truncamento. Exemplo Calcule o valor numrico de e1 = e (nmero de Euler) empregando a srie truncada de 2a ordem: e1 1 + 1 + 12 = 1 + 1 + 0,5 = 2,5 2!
Sabendo-se que o valor exato do nmero de Euler com quatro algarismo significativos igual a 2,718, podemos avaliar o erro de truncamento como: erro absoluto = |2,718 - 2,500| = 0,218 ou, em termos do erro percentual, como: erro = (0,218/2,718) x 100 = 8,0%
C.Y. Shigue
ex = 1 + x +
x2 x3 + + 2! 3!
Introduo
20
C.Y. Shigue
2-1
Definio
Uma Srie de Potncias em x - x0 uma srie da forma
O problema do clculo de uma funo por meio de sries de potncia consiste em se encontrar os coeficientes an de uma srie infinita, tal que: f ( x) =
a (x x )
n 0 n= 0
Sries de Taylor
Definio: Uma funo y = f(x) analtica num ponto x0, se f(x) for a soma de uma srie de potncias para todo x tal que |x - x0| < r, r > 0: f ( x) =
a (x x )
n 0 n= 0
Toda a funo analtica em x0, tambm o na vizinhana de x0. Lembrando: uma funo f(x) analtica num ponto x0 se ela satisfizer as seguintes condies: (1) a funo existe em x0 e vale f(x0); (2) a funo contnua em x0 e (3) a funo diferencivel em x0 e suas derivadas f(x), f(x), ..., f(n)(x) existem nesse ponto. Clculo dos coeficientes an: Se f(x) analtica em x0, ento a funo vale f(x0) nesse ponto e tambm as suas derivadas existem e valem f '(x0), f "(x0), ... , f (n)(x0). Deste modo, podemos calcular o valor da funo e de suas derivadas fazendo: f ( x) = f ( x ) =
na (x x )
n 0 n =1
n= 0
a (x x )
n 0
n 1
a 0 + a1 ( x x0 ) + a 2 (x x0 ) + a 3 ( x x0 ) +
2 3
a (x x )
n 0 n= 0
(2.1)
C.Y. Shigue
2-2
f ( x) =
n(n 1)a ( x x )
n 0 n=2 n
n2
f ( x) =
n( n 1)( n 2 _ a (x x )
0 n= 3
n3
(n)
( x) =
n(n 1)
n= m
( n m + 1)a n ( x x 0 ) n m
Substituindo x = x0, obtemos: f(x0) = a0, f '(x0) = a1, f "(x0) = 2!a2, f (x0) = 3!a3, ... , f(m)(x0) = m!am, de onde vem que: f ( x0 ) f ( x 0 ) a 0 = f ( x0 ), a1 = f ( x0 ), a 2 = , a3 = , 2! 3! que, substituindo na equao (2.1), resulta em: f ( x) = f ( x 0 ) + f ( x 0 )( x x 0 ) + = f ( x 0 ) f ( x 0 ) ( x x0 )2 + ( x x0 )3 + 2! 3! , am f ( m) ( x 0 ) = m!
n =0
f ( n) ( x 0 ) ( x x0 ) n n!
A expresso (2.2) fornece o mtodo para o clculo dos coeficientes de uma srie de potncias denominada sries de Taylor. Exemplo 1: Expanso da funo f(x) = ex em sries de Taylor em torno de x0 = 0. Clculo da funo e suas derivadas em x0 = 0: f(x) = ex, f '(x) = ex f "(x) = ex
f (n)(x) = ex,
f (n)(0) = 1
n=0
xn n!
(2.2)
C.Y. Shigue
2-3
Funo exponencial
80
60
40
y = f(x)
20
-20 -5 -4 -3 -2 -1 0 1 2 3 4 5
Fig. 2.1 - Grfico comparativo entre a funo ex exata e a srie de Taylor aproximada com diferentes nmeros de termos da srie. Exemplo 2: Expanso em sries de Taylor para a funo sen x em torno de x0 = 0. Clculo da funo e suas derivadas em x0 = 0: f(x) = sen x f '(x) = cos x f "(x) = sen x f '''(x) = cos x f(4) (x) = sen x
As derivadas da funo sen x so cclicas, de modo que f(4) (x) = f(x), f(5) (x) = f(x), e assim por diante. Substituindo na expresso geral para a srie de Taylor, resulta: x3 x5 x7 + + sen x = x 3! 5! 7! =
n= 0
x 2 n +1 ( 1) ( 2n + 1)!
n
C.Y. Shigue
2-4
Funo seno
2.0 1.5 1.0 0.5
y = f(x)
Fig. 2.2 - Grfico comparativo entre a funo sen x exata e a srie de Taylor aproximada com diferentes nmeros de termos da srie. Exemplo 3: Expanso da funo cos x em sries de Taylor em torno de x0 = 0. Clculo da funo e suas derivadas em x0 = 0: f(x) = cos x f '(x) = sen x f "(x) = cos x f '''(x) = sen x f(4) (x) = cos x
Observar que, como no caso da funo sen x, as derivadas da funo cos x so repetitivas a partir da 4a derivada. Substituindo na expresso geral para a srie de Taylor, resulta: x2 x4 x 6 + + cos x = 1 2! 4! 6! =
n =0
( 1)
n x
2n
(2 n)!
C.Y. Shigue
2-5
Funo cosseno
2
y = f(x)
-1
-2 -10 -8 -6 -4 -2 0 2 4 6 8 10
Fig. 2.3 - Grfico comparativo entre a funo cos x exata e a srie de Taylor aproximada com diferentes nmeros de termos da srie.
Exemplo 4: Seja f(x) = ln x. Expandir em sries de Taylor em torno de x0 = 0. Clculo de f(0) e suas derivadas: f(x) = ln x, f ( x) = 1 1 2 , f ( x) = 2 , f ( x) = 3 , x x x ( n 1)! f ( n ) ( x) = ( 1) n 1 (n = 1, 2, 3, ...), xn ,
de modo que f(1) = 0, f '(1) = 1, f "(0) = -1, f '''(1) = 2, ..., f (n)(1) = (-1)n-1(n-1)!. Substituindo em (2.2), vem que: ( x 1) 2 ( x 1) 3 ( x 1) 4 + + ln x = ( x 1) 2 3 4 =
n =1
( 1) n 1
( x 1) n n
C.Y. Shigue
2-6
Funo logaritmo
1.0
0.5
0.0
y = f(x)
-1.0
-1.5
Fig. 2.4 - Grfico comparativo entre a funo ln x exata e a srie de Taylor aproximada com diferentes nmeros de termos da srie.
a (x x )
n 0 n= 0
uma srie de
potncias dada. Uma das seguintes condies vlida: (i) a srie converge somente quando x = x0; (ii) a srie absolutamente convergente para todos os valores de x; (iii) existe um nmero R > 0, tal que a srie seja absolutamente convergente para todos os valores de x, para os quais |x-x0| < R, e seja divergente para todos os valores de x, para os quais |x-x0| > R. A grandeza R denominada raio de convergncia da srie de potncias dada. Exemplo 5: Determinar o raio de convergncia da srie de Taylor para a funo ex. Para determinarmos o raio de convergncia da funo ex, vamos aplicar o teste da razo: x n +1 x ( n + 1)! = lim = lim = 0, para qualquer valor de x n n n n + 1 x n!
lim
a n +1 an
Como o critrio da razo estabelece que a srie convergente quando o limite acima menor do que 1, conclui-se que o raio de convergncia da srie de Taylor da funo exponencial so todos os valores de x, tal que x , ou seja, |x| < .
Clculo Numrico e Computacional C.Y. Shigue
2-7
Exemplo 6: Determinar o raio de convergncia da srie de Taylor para a funo ln x, expandida em torno de x0 = 1. A srie de Taylor da funo ln x expressa como: ( x 1) 2 ( x 1) 3 ( x 1) 4 + + ln x = ( x 1) 2 3 4 Aplicando o teste da razo ao termo geral da srie: ( x 1) n +1 n n n+1 = lim = lim ( x 1) = lim x 1 = x1 n n + 1 n n +1 n ( x 1) n n =
n =1
( 1) n 1
( x 1) n n
a n +1 n a n lim
Como o critrio da razo estabelece que a srie convergente quando o limite menor do que 1, resulta: x1 < 1 1< x1< 1 0< x < 2 Como o critrio da razo no diz nada sobre a convergncia ou divergncia em x = 2 (para o qual o limite igual a 1), vamos analis-lo em separado. Fazendo x = 2 na srie de Taylor, tem-se que:
Mas, esta srie infinita a srie harmnica alternada, que convergente. Assim, o raio de convergncia para ln x 0 < x 2. Observao: A convergncia de uma srie de potncias nos assegura que podemos utiliz-la para o clculo dos valores corretos de uma funo. Exemplo 7: O clculo de ln 1,5 e de ln 2, usando a srie de Taylor fornece os valores:
n 2 4 5 10 11 12 13 15 20 Exato: ln (1,5) 0,37500 0,40104 0,40729 0,40543 0,40548 0,40546 0,40547 0,40547 0,40547 0,40547 n 10 50 100 500 1.000 10.000 50.000 100.000 200.000 Exato: ln (2,0) 0,64564 0,68325 0,68817 0,69215 0,69265 0,69310 0,69314 0,69314 0,69315 0,69315
1 1 1 n 2 = 1 + + 2 3 4
n =1
( 1) n 1 n
C.Y. Shigue
2-8
Como a srie convergente para x = 1,5 observa-se que a funo fornece o resultado correto com cinco casas decimais empregando 13 termos da srie. Os outros valores, para n < 13, embora no sejam exatos, mostram tendncia de convergncia para o valor exato. No caso de ln 2, como x = 2 o valor de x no limite superior de convergncia da srie de Taylor da funo ln x, observamos dos dados da tabela que a convergncia lenta. Para obter o resultado com preciso de cinco casas decimais, necessitamos da ordem de 200.000 termos da srie! Geralmente, quanto maior o valor do argumento de uma funo, i.e., quanto maior o valor de x para o clculo de f(x), necessitamos de um nmero cada vez maior de termos da srie para que possamos obter o resultado com uma certa preciso. Vamos ver agora quando utilizamos um valor de x fora do intervalo de convergncia de uma dada srie. Na tabela seguinte esto mostrados os valores calculados de ln 3 usando diferentes nmeros de termos da srie de potncias:
n 5 7 10 15 20 25 Exato: ln (3,0) 5,06667 12,6857 -6,48254 1424,42 -34359,7 882703 1,09861
Neste caso, como a srie infinita para ln 3 divergente, o clculo pela srie de Taylor fornece valores errados e, em nenhum momento, vai convergir para o valor correto 1,09861 com qualquer nmero de termos da srie. Exemplo 8: Para calcular ln 3 ou qualquer outro valor de x que esteja fora do intervalo de convergncia, utilizamos a propriedade das funes logartmicas: ln (a.b) = ln a + ln b. Para x = 3, fazemos ln 3 = ln (2x1,5) = ln 2 + ln 1,5 = 0,69315 + 0,40547 = 1,09862. A diferena de 0,00001 vem do erro de arredondamento de ln 2 e de ln 1,5. Exemplo 9: Poderamos ter adotado o mesmo procedimento do Exemplo 8 para o clculo de ln 2, pois assim, com o argumento x menor, o nmero de termos da srie de potncia seria bem menor do que os 200.000 termos necessrios para preciso de cinco casas decimais. Assim, poderamos fazer: ln 2 = ln
( 2 )2 = 2 ln
2 . Para o clculo de ln
2 = 0,34657. ln 2 = 2(0,34657) =
n =0
f ( n) ( x 0 ) ( x x0 ) n n!
C.Y. Shigue
2-9
se desejamos calcular a srie com um nmero finito de termos, podemos reescrever (2.2) na forma: f ( x) = f ( x0 ) + f ( x 0 )( x x 0 ) + f ( x 0 ) ( x x0 ) 2 + 2! + f ( n ) ( x0 ) ( x x 0 ) n + R n ( x) n! (2.3)
onde Rn(x) representa o resto da srie de potncias truncada no n-simo termo. O resto Rn(x) pode ser definido de acordo com a frmula de Leibniz como: R n ( x) max f ( n) ( )
} (x nx0 ) !
, x0 x
Rn(x) representa o erro de truncamento (absoluto) da srie de Taylor. Observar que a expresso para a frmula de Leibniz depende do mximo valor da derivada n-sima da funo f(x) e do termo geral da srie de potncia. Exemplo 10: Determinar quantos termos so necessrios para se calcular e1 atravs de sries de Taylor, com erro menor do que 10-6. O erro absoluto para a srie de Taylor da funo ex pode ser calculada atravs da frmula de Leibniz: xn R n ( x) M , onde M = max f ( n ) ( ) = max e , 0 1 n! O valor mximo de e ocorre quando = 1, ou seja, max f ( n) ( ) = e . Entretanto, o valor do nmero de Euler, e , o que desejamos calcular, de modo que estimamos o valor de max f ( n) ( ) como sendo igual a 3 (> e). Assim, podemos calcular n da frmula de Leibniz como: R n ( x = 1) 3 1n 3 = < 10 6 n! > 3106 . Esta desigualdade no tem soluo . n! n!
1
analtica, de modo que vamos calcular o valor de n substituindo-se numericamente valores de n at encontrar um que satisfaa a condio de Leibniz. Se fizermos n = 9, teremos que 9! = 362.880 < 3.106. Se n = 10, vem que 10! = 9!x10 = 3.628.800 > 3.106. Portanto, para se calcular e1 com erro inferior a 10-6 so necessrios n = 10 termos na srie de potncias. Exemplo 11: Determinar o nmero de termos necessrios para se avaliar o sen 5 por sries de potncias com preciso de cinco casas decimais. Soluo: Preciso de cinco casas decimais equivalente a calcular sen 5 com erro absoluto de 1 em 10-5, ou seja, Rn(x) 10-5: x 2 n +1 52 n +1 = M 105 , R n ( x = 5) M ( 2n + 1)! ( 2n + 1)!
Clculo Numrico e Computacional C.Y. Shigue
(2.4)
{ }
}
2-10
onde M = max f ( n ) ( ) = 1, pois embora no saibamos qual ser a n-sima derivada de sen x, sabemos que no mximo ela ser igual a 1. Assim, 52n +1 (2n + 1)! 1 105 105 2 n +1 (2n + 1)! 5 Novamente, calcularemos o valor de n por substituio numrica. A soluo vem para (2n + 1) = 21, ou n = 10. Observar que a varivel contadora n se inicia em 0. Assim, sero necessrios, no mximo, 11 (= n + 1) termos da srie de Taylor para o clculo de sen 5 com preciso de cinco casas decimais. Exemplo 12: Vamos verificar se o valor de n calculado no Exemplo 2 fornece o resultado com cinco casas decimais de preciso. Utilizando o programa de clculo FORTRAN seno.for ou a verso em linguagem C, seno.c1, obtemos para n = 11, sen 5 = -0,9589238336 e erro absoluto = 9,3.10-6. Observar que o resultado obtido por sries de potncias est correto at a quinta casa decimal em comparao ao resultado exato (-0,9589242762) com dez casas decimais.
( )
Observe que o primeiro ndice do ltimo somatrio vale n = 1 devido derivao da potncia xn que reduziu em um termo a srie. Exemplo 13: Seja f(x) = sen x, calcular a derivada da srie de Taylor desta funo. x3 x5 x 7 sen x = x + + 3! 5! 7 ! Derivando-se os dois lados da equao, =
n= 0
2-11
n=0
x2 n ( 1) (2n)!)
n
de modo que
Exemplo 14: Seja f(x) = ln x, calcular a derivada da srie de Taylor desta funo expandida em torno de x0 = 1. ( x 1) 2 ( x 1) 3 ( x 1) 4 + + ln x = ( x 1) 2 3 4 =
n =1
( 1) n 1
Observe a troca do ndice do somatrio de n = n - 1 para n = n na ltima expresso acima, de modo que o primeiro ndice desse somatrio comea em n = 0.
f (x) dx =
a n x n dx = n= 0
a x dx =
n n n= 0 n= 0
Observe que, de forma anloga diferenciao, o primeiro ndice do ltimo somatrio vale n = 1 devido adio de mais um termo srie de potncia xn.
= 1 ( x 1) + ( x 1) ( x 1) +
2 3
(1)
n =1
n 1
( x 1)
a n x n +1 = n +1
n 1
(1) (x 1)
n n=0
n =1
( x 1) n n
n
3x2 5x4 7 x 6 = 1 + + 3! 5! 7!
d d x 3 x5 x 7 x + + (sen x) = dx dx 3! 5! 7!
2 n +1 d n x = ( 1) dx (2n + 1)!) n =0
x2 x4 x6 = 1 + + 2! 4! 6!
anxn n
C.Y. Shigue
2-12
x 2 x4 x6 + + cos x = 1 2! 4! 6! =
n= 0
( 1) n
x2 n (2 n)!
Integrando, obtm-se:
que exatamente a srie de potncias da funo sen x. sen x dx bastante utilizada no Eletromagnetismo. Entretanto, o x integrando sen x/x no possui primitiva, de modo que a sua soluo obtida atravs da expanso em sries de potncias. Vamos mostrar neste exemplo como relativamente simples obter a expresso em sries de potncias dessa integral. Consideremos, inicialmente, a srie de Taylor da funo sen x: Exemplo 16: A integral
Dividimos termo a termo ambos os lados da equao por x: sen x x2 x 4 x6 = 1 + + x 3! 5! 7! Agora, integramos a equao e obtemos: =
sen x dx = x
x 2 x 4 x6 1 + + 3! 5! 7!
x 3 x5 x 7 + + sen x = x 3! 5! 7!
n= 0
x 2 n +1 ( 1) ( 2n + 1)!
n
n= 0
(1) n
x 2n ( 2n + 1)!
cos x.dx =
x 2 x 4 x6 1 + + 2! 4! 6!
x 3 x5 x 7 dx = x + + 3! 5! 7!
n =0
x 2 n +1 ( 1) (2 n + 1)!
n
n =0
( 1) n x2 n +1 (2 n + 1)!(2 n + 1)
C.Y. Shigue
2-13
n= 0
f ( n ) ( 0) n x n!
2.
3.
Funo cosseno
4.
Funo tangente
onde: B0 = 1, B1 = 1 / 2 e
(n k)!k ! = 0
Bn
k= 0
n 1
5.
Funo exponencial
x
6.
x2 x4 x6 cosh x = 1 + + + + 2! 4! 6!
x2 x 3 x4 e = 1+ x + + + + 2! 3! 4!
n= 0
xn n!
n =0
x2 n (2 n)!
1 2 17 7 62 9 tg x = x + x3 + x5 + x + x + 3 15 315 2835
x2 x4 x6 cos x = 1 + + 2! 4! 6!
x 3 x5 x7 sen x = x + + 3! 5! 7!
n =0
x 2 n +1 ( 1) (2 n + 1)!
n
n =0
x2n ( 1) (2 n)!
n
x3 + x 4
x5 +
x <1
x <
x <
n= 0
22 n 2 2 n 1 Bn x 2 n 1 (2 n)!
para n 2
Bn : no de Bernoulli
x <
x <
x < 2
C.Y. Shigue
= 1
2-14
7.
8.
Srie binomial
9.
Funo logaritmo
15.
Funo erro
3 5 7 2 2 2 x x + x + x + erf ( x ) = e u du = 3 1! 5 2! 7 3! 0
x3 x4 + e .cos x = 1 + x 3 6
x
x 3 x5 x 7 + + arc tg x = x 3 5 7
n= 0
x 2 n +1 ( 1) 2n + 1
n
x <1
x <
n= 0
2n / 2 cos( n / 4) n x n!
x <
2 x 2n +1 = ( 2n + 1) n! n =0
1 1 + x x 3 x5 x7 + + + ln = x+ 2 1 x 3 5 7
n= 0
x 2 n +1 2n + 1
x <1
(a + x) n = a n + a n 1x + a n 2 x 2 + a n 3x 3 +
n 1
x 3 x5 x 7 + + + senh x = x + 3! 5! 7!
n= 0
x 2 n +1 (2 n + 1)!
x <
n 2
n 3
x <
x <1
x <1
x <
C.Y. Shigue
2-15
16.
Funo sen x / x
Sries de Taylor
Frmula geral: f ( x ) = f ( x 0 ) + f ( x 0 )( x x 0 ) + =
n =0
f (n ) ( x 0 ) (x x 0 )n n!
1.
Funo logaritmo
2.
Funo logaritmo
3.
Funo hiperblica
Exerccios propostos
1. Expandir as seguintes funes em sries de potncia: (a) ex.cos x (b) tg x (c) arc tg x (d) (a + x)3 (e) (1 + x)-2
2. Qual o significado de expanso em sries de potncias em torno de um valor x0? A escolha de um valor x0 arbitrrio influencia na preciso de clculo de uma funo por sries de potncias? Justifique e d exemplos numricos para a sua argumentao.
x
n= 0
1 : 1 x
(a) Determinar o nmero de termos necessrios para calcular a soma com um erro inferior a 10-2, quando x = 0,5; x = 0,9 e x = 0,99.
Clculo Numrico e Computacional C.Y. Shigue
1 = 1 ( x 1) + ( x 1) 2 ( x 1) 3 + x
(1) (x 1)
n n= 0
x 1 1 x 1 3 1 x 1 5 ln x = 2 + + + x + 1 3 x + 1 5 x + 1
1 x 1 =2 n = 0 2n + 1 x + 1
( x 1) 2 ( x 1) 3 ( x 1) 4 + + ln x = ( x 1) 2 3 4
(1)
n =1
n 1
( x 1) n n
2 n +1
0< x< 2
f ( x 0 ) (x x 0 )2 + f ( x 0 ) (x x 0 )3 + 2! 3!
Si( x) =
sen u x x3 x5 x7 + + + + du = u 1 1! 3 3! 5 5! 7 7!
n= 0
x 2 n +1 ( 2n + 1) ( 2n + 1)!
x <
0<x2
x>0
2-16
(b) Verificar que, para x > 1 ou x < -1, a srie diverge. Comprove, calculando a soma para x = 2 empregando 10, 20 e 30 termos e observando que os resultados so diferentes. (c) Mostrar que, medida que x se aproxima de 1, o nmero de termos necessrios para calcular a soma com um erro inferior a um fixo tende ao infinito. 4. Mostrar, usando sries de potncias, que:
(a)
n=0
1 1 = ( 1) n! e
n 3
(b)
5
2
n= 0 7
1
n
=2
(c) x
2 n+1
n =1
( 1) n 1 = ln 2 n
d 1 (f) nx = dx x (g)
(h) e ln x = x
5. Calcule e1 utilizando a srie de potncias com cinco termos. Calcule o erro a partir do valor exato obtido diretamente da calculadora. Agora, faa e1 = (e0,2)5, calcule o valor de e1 primeiramente calculando o valor de e0,2 por srie de potncias com cinco termos e posteriormente, elevando o resultado quinta potncia para obter o valor de e1. Determine o erro e compare com o resultado anterior. Repita o mesmo procedimento para calcular e1 = (e0,25)4. Qual a razo para as diferenas observadas nos trs clculos? Justifique. Obs.: Utilize o nmero de algarismos significativos necessrios para mostrar a diferena entre os trs resultados. 6. Desenvolver a funo f(x) = e x calcular
2
/2
ex
/2
0,1
x ln a ( x ln a ) ( x ln a) + + + (e) a = 1 + 1! 2! 3
x
(d)
1 1 + x x x x + + + ln = x+ 2 1 x 3 5 7
2n + 1
n= 0
n =0
( x ln a ) n n
x
n= 0
sen( a + n / 2)
C.Y. Shigue
3-1
Para uma equao particular f(x) = x2 - 5x + 6, temos que a = 1, b = -5 e c = 6, resultando na soluo: (5) + (5) 2 (4).(1).(6) 5 + 1 x1 = = =3 (2).(1) 2 x2 = (5) (5) 2 (4).(1).(6) 5 1 = =2 (2).(1) 2
Substituindo-se o valor das razes na expresso de f(x) = x2 - 5x + 6, veremos que tanto x1, quanto x2 fazem com que esta funo se anule, ou seja, que f(x1) = 0 e f(x2) = 0. As equaes polinomiais tambm conduzem a solues cujo domnio seja o dos nmeros complexos. Por exemplo, a equao de 2o grau f(x) = x2 - 2x + 2 apresenta as seguintes razes: x1 = ( 2) + ( 2) 2 (4).(1).(2) 4 + 4 4 + 2 1 = = = 2+i ( 2).(1) 2 2
( 2) ( 2) 2 (4).(1).(2) 4 4 4 2 1 x2 = = = = 2i (2).(1) 2 2 sendo que i = 1 . Na prtica, nem sempre um problema pode ser equacionado na forma de uma funo que possui uma soluo analtica como a funo de 2o grau. As funes transcendentes, por exemplo, no possuem frmula analtica para o clculo das razes. Nesses casos, pode-se calcular as razes atravs de dois mtodos:
C.Y. Shigue
3-2
Nesta nota de aula, trataremos apenas dos mtodos para o clculo de razes reais, embora os mtodos numricos possam calcular razes complexas tambm.
Mtodo Grfico
As funes transcendentes podem ter razes reais e complexas. Entretanto, diferentemente das funes polinomiais, no se pode determinar nem se a funo possui raiz real e nem a sua quantidade. O mtodo grfico o procedimento inicial adotado para estimar as razes e como a determinao da raiz com preciso no pode ser feita com este mtodo, deve-se utilizar um mtodo numrico para "refinar" a soluo, isto , melhorar a preciso do valor calculado da raiz. Vamos mostrar a avaliao da raiz de uma funo pelo mtodo grfico atravs do exemplo de uma funo transcendente do tipo: f(x) = ex - 3x, cujo grfico est mostrado na Fig. 3.1.
f(x) = e - 3x
-1 -1 0
xR1
xR2
Fig. 3.1 - Grfico da funo f(x) = ex - 3x. No grfico observa-se duas razes indicadas como xR1 e xR2 e localizadas, respectivamente, nos intervalos [0,5;1] e [1,5;2]. Uma estimativa grosseira das razes seria xR1 0,6 e xR2 1,5. O valor com maior preciso ser calculado pelos mtodos numricos.
C.Y. Shigue
3-3
Mtodo da Bisseo
O mtodo da bisseo um mtodo conceitualmente simples e baseia-se na idia de "cercar" a raiz xR por dois valores: um esquerda da raiz (xE) e outro direita (xD), formando um intervalo que vai ser continuamente reduzido at que a largura final do intervalo seja to pequena quanto o erro absoluto da raiz. A reduo contnua da largura do intervalo feita dividindo-se o intervalo em dois e definindo um valor mdio xM.pela frmula: xM = ( xE + xD ) 2 (3.1)
O valor mdio xM estabelece dois sub-intervalos: um, entre xE e xM, outro entre xM e xD. A raiz xR estar em um dos dois sub-intervalos. Para determinar em qual dos dois sub-intervalos est localizada a raiz, calculamos f(xE), f(xD) e f(xM) e realizamos a seguinte comparao: Se sinal[f(xM)] = sinal[f(xE)], ento xR est no intervalo [xE; xM] seno xR est no intervalo [xM; xD] Este procedimento est ilustrado para os dois casos nos grficos da Fig. 3.2 e 3.3. Na Fig. 3.2 esto mostrados os valores [xE, f(xE)] e [xD, f(xD)], respectivamente esquerda e direita da raiz xR. Utilizando a equao (3.1) obtm-se o valor xM, que para este caso est localizado esquerda da raiz. A verificao algbrica deste fato feita comparando-se o sinal de f(xM), que positivo assim como positivo o sinal de f(xE). O grfico da Fig. 3.3 ilustra o caso em que o valor calculado de xM est localizado direita da raiz xR, porque, algebricamente, o sinal de f(xM) igual ao sinal de f(xD).
y = f(x)
f(xE)
f(xM)
0
f(xD)
xE
xM
xR
xD
Fig. 3.2 - Mtodo da bisseo para o caso do valor xM estar localizado esquerda da raiz xR
C.Y. Shigue
3-4
y = f(x)
f(xE)
0
f(xM) f(xD)
xE
xR
xM
xD
Fig. 3.3 - Mtodo da bisseo para o caso do valor xM estar localizado direita da raiz xR Uma vez determinado em qual dos dois sub-intervalos est localizada a raiz, atribui-se o valor de xM ao valor de xE ou xD, conforme o resultado do teste algbrico descrito anteriormente e re-escrito na forma: Se sinal[f(xM)] = sinal[f(xE)], ento xE xM seno xD xM Em linguagem C, o cdigo para este teste descrito por:
if (signbit(f(xm) == signbit(f(xe))) { xe = xm; } else { xd = xm }
Uma vez estabelecido o novo intervalo [xE; xD], repete-se o clculo do valor de xM e aplica-se novamente o teste para verificao do sub-intervalo em que est localizado a raiz. Atribui-se o valor de xM a xE ou xD , conforme o resultado do teste e redefine-se o novo intervalo, conforme ilustra a Fig. 3.4. Os clculos e testes se repetem at uma determinada varivel alcanar um critrio de convergncia. A este procedimento de clculo automtico denomina-se ITERAO (no confundir com interao, que tem outro significado) ou clculo iterativo, que se baseia na repetio de clculos partir de valores iniciais arbitrariamente estabelecidos. Do dicionrio Michaelis:
i.te.ra.o sf (lat iteratione) Ato de iterar ou repetir. in.te.ra.o sf ( inter+ao) 1 > Ao recproca de dois ou mais corpos uns nos outros. 2 Atualizao da influncia recproca de organismos inter-relacionados. 3 Ao recproca entre o usurio e um equipamento (computador, televisor etc.).
C.Y. Shigue
3-5
y = f(x)
xE
(1)
xE
(3)
xR
xD
(2)
xD
(1)
Fig. 3.4 - Determinao de intervalos sucessivos em torno da raiz xR pelo mtodo da bisseo. Os expoentes numricos indicam a seqncia de iterao.
O clculo iterativo continua at que o seguinte critrio de convergncia seja satisfeito: xE xD < (3.2)
no qual o erro absoluto especificado. Quando o critrio for satisfeito, a raiz xR ser dada por: x R = xM (3.3)
Observar que o erro estabelece o nmero de casas decimais de preciso. Assim, se quisermos calcular a raiz de uma funo com preciso de sete casas decimais, estabelece-se que = 10-7.
Exemplo
Vamos ilustrar a aplicao do mtodo da bisseo no clculo da raiz da funo f(x) = ex - 3x localizada no intervalo [0; 1], com erro de 10-5. Soluo A funo f(x) = ex - 3x, como visto anteriormente, possui duas razes, sendo que ser calculada a raiz localizada no intervalo [0; 1]. Assim, esses valores sero os valores iniciais de xE e xD. Como o erro 10-5, vamos apresentar os resultados do clculo com cinco casas decimais na tabela 3.1. A 1a coluna contm o contador do nmero de iteraes, denotado pela letra i. O contedo das outras colunas esto identificadas pelo nome das variveis na 1a linha.
C.Y. Shigue
3-6
Tabela 3.1 - Resultado do clculo da raiz da funo f(x) = ex - 3x no intervalo [0;1] pelo mtodo da bisseo
i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 xE 0,00000 0,50000 0,50000 0,50000 0,56250 0,59375 0,60938 0,61719 0,61719 0,61719 0,61816 0,61865 0,61890 0,61902 0,61902 0,61905 0,61905 0,61906 0,61906 xD 1,00000 1,00000 0,75000 0,62500 0,62500 0,62500 0,62500 0,62500 0,62109 0,61914 0,61914 0,61914 0,61914 0,61914 0,61908 0,61908 0,61906 0,61906 0,61906 xM 0,50000 0,75000 0,62500 0,56250 0,59375 0,60938 0,61719 0,62109 0,61914 0,61816 0,61865 0,61890 0,61902 0,61908 0,61905 0,61906 0,61906 0,61906 0,61906 f(xE) 1,00000 0,14872 0,14872 0,14872 0,06755 0,02952 0,01116 0,00214 0,00214 0,00214 0,00103 0,00047 0,00019 0,00005 0,00005 0,00001 0,00001 0,00001 0,00000 f(xD) -0,28172 -0,28172 -0,13300 -0,00675 -0,00675 -0,00675 -0,00675 -0,00675 -0,00232 -0,00009 -0,00009 -0,00009 -0,00009 -0,00009 -0,00002 -0,00002 0,00000 0,00000 0,00000 f(xM) 0,14872 -0,13300 -0,00675 0,06755 0,02952 0,01116 0,00214 -0,00232 -0,00009 0,00103 0,00047 0,00019 0,00005 -0,00002 0,00001 0,00000 0,00001 0,00000 0,00000 erro 1,00000 0,50000 0,25000 0,12500 0,06250 0,03125 0,01563 0,00781 0,00391 0,00195 0,00098 0,00049 0,00024 0,00012 0,00006 0,00003 0,00002 0,00001 0,00000
A raiz calculada aps 18 iteraes com < 10-5 igual a 0,61906. Este resultado exato com cinco casas decimais. Observar que quando o critrio de convergncia atingido, os valores de xE, xD e xM so iguais com cinco casas decimais.
Se considerarmos que o valor de x = x1, est prximo raiz, ento podemos considerar que f(x1) 0, de modo que podemos escrever a equao na forma: x1 x0 f ( x0 ) f ( x0 ) (3.5)
partir de x1 podemos calcular um novo valor x2 mais prximo ainda da raiz atravs da mesma aproximao anterior: f ( x2 ) f ( x1 ) + f ( x1 )( x2 x1 ) (3.6)
C.Y. Shigue
3-7
Neste caso, vamos considerar que f(x2) 0 e que f(x1) pequeno porm diferente de zero. Assim, podemos re-escrever a equao como: x2 x1 f ( x1 ) f ( x1 ) (3.7)
Se prosseguirmos, podemos escrever uma equao geral para o clculo de x na iterao i+1 partir do valor de x, f(x) e f(x) em x = x0: xi +1 = xi f ( xi ) f ( xi ) (3.8)
Este clculo, denominado de clculo iterativo, realizado at que o critrio de convergncia seja satisfeito: xi +1 xi (3.9)
Exemplo
Vamos calcular novamente a raiz da funo f(x) = ex - 3x localizada prxima ao valor x = 0 pelo mtodo iterativo de Newton-Raphson. A Tabela 3.2 apresenta os valores calculados. Tabela 3.2 - Resultado do clculo da raiz localizada prxima a x = 0 da funo f(x) = ex - 3x pelo mtodo iterativo de Newton-Raphson
i 0 1 2 3 4 xi 0,00000 0,50000 0,61006 0,61900 0,61906 f(xi) 1,00000 0,14872 0,01036 0,00007 0,00000 f'(xi) -2,00000 -1,35128 -1,15946 -1,14294 -1,14282 xi+1 0,50000 0,61006 0,61900 0,61906 0,61906 erro 0,50000 0,11006 0,00894 0,00006 0,00000
A raiz calculada aps 4 iteraes igual a 0,61906 com erro menor do que 10-5. Comparando-se este resultado com o obtido pelo mtodo da bisseo, observa-se que a convergncia do mtodo da bisseo foi muito mais lenta do que a do mtodo de NewtonRaphson. Isto deve-se ao fato que o mtodo da bisseo apresenta erro proporcional ao intervalo |xE xD|, isto , de primeira ordem na varivel x, ao passo que o mtodo de NewtonRaphson apresenta erro de segunda ordem sobre a varivel x.
C.Y. Shigue
3-8
f(x) = 3x - x - 4x + 5
10
y
-5 -10 -2,0 -1,5 -1,0 -0,5 0,0 0,5 1,0 1,5 2,0
Fig. 3.5 - Grfico da funo f(x) = 3x3 x2 4x + 5 exibindo pontos de mximo e mnimo locais na proximidade da raiz. No exemplo, a funo f(x) = 3x3 x2 4x + 5 uma funo polinomial de 3o grau que possui apenas uma raiz real ( x = -1) e duas razes complexas. O grfico cartesiano x-y mostra somente a raiz real e mostra tambm que a funo possui um ponto de mximo local em x -0,57 e um ponto de mnimo local em x 0,79. Para exemplificar o problema da convergncia do mtodo de Newton-Raphson, vamos calcular a raiz real empregando o mtodo de Newton-Raphson com x0 = 5. Tabela 3.3 - Resultado do clculo da raiz da funo polinomial cbica pelo mtodo de Newton-Raphson.
i 0 1 2 3 4 5 6 7 8 9 10 11 12 xi 5,00000 3,41232 2,35981 1,64927 1,11725 0,42391 1,46187 0,94296 -0,40560 3,25771 2,25681 1,57730 1,05386 f(xi) 335,00000 98,90543 29,41532 9,14139 3,46658 3,35320 6,38783 2,85435 6,25771 85,07572 25,36255 7,97532 3,18525 f'(xi) 211,00000 93,97085 41,39873 17,18238 4,99978 -3,23055 12,30993 2,11659 -1,70821 84,99877 37,32498 15,23630 3,88786 xi+1 3,41232 2,35981 1,64927 1,11725 0,42391 1,46187 0,94296 -0,40560 3,25771 2,25681 1,57730 1,05386 0,23458 erro 1,58768 1,05251 0,71054 0,53202 0,69335 1,03797 0,51892 1,34856 3,66331 1,00091 0,67951 0,52344 0,81928
C.Y. Shigue
3-9
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
0,23458 1,25256 0,68575 3,10335 2,15372 1,50428 0,98531 -0,08364 1,32913 0,79229 -40,68675 -27,09523 -18,03833 -12,00686 -7,99619 -5,33933 -3,59653 -2,48363 -1,82513 -1,51228 -1,42999 -1,42435 -1,42433
4,04539 4,31632 2,75417 72,61888 21,71661 6,93188 2,95764 5,32582 4,96100 2,69513 -203547,62007 -60296,80000 -17856,25044 -5284,02970 -1560,76358 -458,79785 -133,11269 -37,19392 -9,26958 -1,61366 -0,09728 -0,00044 0,00000
-3,97392 7,61508 -1,13922 76,47034 33,43898 13,35705 2,76687 -3,76975 9,24111 0,06498 14976,07806 6657,55526 2960,51034 1317,49538 587,44457 263,25419 119,60839 56,48287 29,63008 19,60760 17,26372 17,10769 17,10698
1,25256 0,68575 3,10335 2,15372 1,50428 0,98531 -0,08364 1,32913 0,79229 -40,68675 -27,09523 -18,03833 -12,00686 -7,99619 -5,33933 -3,59653 -2,48363 -1,82513 -1,51228 -1,42999 -1,42435 -1,42433 -1,42433
1,01799 0,56681 2,41760 0,94963 0,64944 0,51897 1,06895 1,41278 0,53684 41,47904 13,59152 9,05690 6,03148 4,01066 2,65687 1,74279 1,11290 0,65850 0,31284 0,08230 0,00564 0,00003 0,00000
Por causa da presena de pontos de mnimo e mximo na vizinhana da raiz observa-se que o mtodo de Newton-Raphson apresenta uma convergncia lenta, principalmente quando o valor calculado de xi+1 cai na regio compreendida pelos pontos de mnimo e mximo (iterao 22) para a qual f(x) 0.
Mtodo da Secante
Apesar da convergncia do mtodo de Newton-Raphson ser rpida, ele apresenta uma dificuldade prtica na implementao de um algoritmo para o clculo de razes de uma funo genrica pelo fato de requerer o clculo algbrico da derivada da funo f(x). Este problema pode ser contornado atravs da aproximao da derivada exata (que requer um procedimento algbrico) pela diferena finita da funo f(x), que um procedimento numrico. Este mtodo recebe o nome de mtodo da secante, mas tambm conhecido, com algumas variaes, com o nome de mtodo da falsa posio ou mtodo regula falsi. O procedimento para deduo do mtodo da secante pode ser explicado atravs do grfico da Fig. 3.6. Nele vamos definir dois valores de x localizados esquerda (xE) e direita (xD) da raiz xR, tal como no mtodo da bisseo. No entanto, diferentemente deste, o valor que ir dividir o intervalo |xE xD| em dois estabelecido atravs de um clculo que utiliza a uma reta secante (ou corda) que une os valores de f(xE) e f(xD).
C.Y. Shigue
3-10
y y = f(x) f( x D)
Reta secante
xE
xN
xR
xD
f( xE )
Por identidade entre os dois tringulos da figura, podemos escrever: f ( xE ) x N xE = f ( xD ) xD xE Rearranjando a expresso e isolando o termo para xN, obtm-se a equao: x f ( xD ) xD f ( xE ) xN = E f ( xD ) f ( xE ) Escrevendo-a na forma mais conveniente como: x( i ) = x( i ) N E ( x( i ) x( i ) ) f ( x ( i ) ) D E E f ( x( i ) ) f ( x( i ) ) D E (3.11) (3.10)
(3.12)
obtm-se uma expresso equivalente expresso (3.8) do mtodo de Newton-Raphson, na qual a derivada da funo f(x) do denominador substituda pela diferena finita [f(xD)-f(xE)]/(xD-xE) na frmula do mtodo da secante. O critrio de convergncia semelhante ao do mtodo de Newton-Raphson (equao 3.9), porm aplicado sobre os valores de xN.
C.Y. Shigue
3-11
Exemplo
O clculo da raiz da funo f(x) = ex 3x apresentado na tabela seguinte empregando o mtodo da secante. Tabela 3.4 - Resultado do clculo da raiz da funo f(x) = ex 3x pelo mtodo da secante.
i 0 1 2 3 4 5 6 7 8 9 10 xE 0,00000 0,00000 0,00000 0,00000 0,00000 0,00000 0,00000 0,00000 0,00000 0,00000 0,00000 xD 1,00000 0,78020 0,67335 0,63568 0,62399 0,62051 0,61949 0,61919 0,61910 0,61907 0,61906 f(xE) 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 1,00000 f(xD) -0,28172 -0,15869 -0,05925 -0,01874 -0,00561 -0,00165 -0,00048 -0,00014 -0,00004 -0,00001 0,00000 xN 0,78020 0,67335 0,63568 0,62399 0,62051 0,61949 0,61919 0,61910 0,61907 0,61906 0,61906 erro 0,10686 0,03767 0,01169 0,00348 0,00102 0,00030 0,00009 0,00003 0,00001 0,00000
Observa-se que aps 10 iteraes o mtodo convergiu para a raiz 0,61906 com < 10-5. A convergncia deste mtodo semelhante do mtodo de Newton-Raphson, porm, com a simplicidade conceitual do mtodo da bisseo.
Exerccios propostos
1. Para cada uma das equaes abaixo, encontre pelo menos uma das razes para que f(x) = 0, empregando o mtodo da bisseo e o mtodo de Newton-Raphson: (a) ex/2 - x2 = y (b) x2 - 5x + 6 = 0 (c) ln x - x + 2 (d) x2 - senh x (e) x4 14x2 + 24x - 10 2. Um outro mtodo para encontrar as razes de f(x) = 0 o chamado mtodo iterativo linear, no qual a raiz calculada re-escrevendo a funo f(x) = g(x) - x, de maneira que o problema agora encontrar o valor de x tal que g(x) = x por iterao. Encontre a funo g(x) e resolva o problema do clculo da raiz de x localizada no intervalo [0; 0,5] da funo f(x) = ex 3x empregando o mtodo iterativo linear. 3. Escreva uma equao de iterao pelo mtodo de Newton-Raphson para o clculo da raiz quadrada e raiz cbica de um nmero real x. Faa x = 2 e aplique a equao de iterao obtida para calcular a sua raiz quadrada e a sua raiz cbica. 4. Duas escadas, uma de 20 m e outra de 30 m, apoiam-se em edifcios frontais a uma avenida, conforme ilustrado na Fig. P1. Se o ponto no qual as escadas se cruzam est a 8 m de altura do solo, determinar a largura da avenida. Gruenberger e Jeffrey, em Problems for Computer Solution (New York: Wiley, 1964), mostram que este problema pode ser formulado para pedir a soluo da seguinte equao: y 4 16y 3 + 500y 2 8000y + 32.000 = 0
C.Y. Shigue
3-12
30 20
y 8
Fig. P1
5. Analisando-se o comportamento de compressores de ar a pisto, frequentemente necessrio obter-se grficos de presso versus rotao angular da rvore de manivelas do compressor durante o tempo de compresso. Esses dados podem ser aproximados analiticamente primeiro definindo-se um modelo para o compressor e, em seguida, aplicando-se fundamentos de mecanismos e termodinmica ao modelo. Os componentes bsicos do compressor a pisto so mostrados na Fig. P2, juntamente com os parmetros geomtricos usados na determinao do volume limitado entre o pisto e o cilindro. Pela aplicao dos fundamentos de mecanismos, este volume pode ser expresso como: D 2 4 r (1 cos ) +
2 r 1 1 sen
no qual: Vc - volume morto no ponto morto alto r - raio da rvore de manivelas D - dimetro do cilindro - comprimento da biela - ngulo de rotao da rvore de manivelas a partir do ponto morto alto Consideremos que o tempo de compresso ao se mover o pisto a partir do ponto morto baixo ( = 180o) at o ponto morto alto ( = 360o). Um modelo freqentemente usado para este processo supe que as vlvulas de admisso e escape conservam-se fechadas e que no h transferncia de calor de ou para o ar durante o tempo de compresso. A aplicao da termodinmica a este modelo fornece as seguintes relaes entre presso, volume e temperatura:
V = Vc +
(P5.1)
C.Y. Shigue
3-13
T V 1 A n + B ( T Ti ) + C ( T 2 Ti2 ) + D n = 0 2 Ti Vi Vi Ti p = pi V T
(P5.2) (P5.3)
nas quais: p - presso V - volume T - temperatura absoluta A = 0,15787 B = 0,51001.10-4 C = 0,74171.10-8 D = 0,6855 e o ndice i denota a condio inicial no incio do tempo de compresso, que se supe conhecido. As equaes (P5.1), (P5.2) e (P5.3) podem ser usadas para determinar p versus . O procedimento para obter esses valores selecionar um valor de entre 180o e 360o em (P5.1). O valor resultante para V pode ser usado em (P5.2), que pode ser resolvido pelo mtodo de Newton-Raphson para se obter T. Os valores de T e V so, ento, usados em (P5.3) para determinar o valor de p correspondente. Calcular uma tabela de versus p, V e T, para entre 180o e 360o com incremento de 10o. Com estes resultados, traar o grfico de p em funo de . Considere para o problema que, para pi = 14,7 psi, Ti = 530oR, = 240o, Vc = 6,3 ft3, r = 2,0 in, D = 3,5 in e = 7,0 in, os resultados aproximados poderiam ser p = 18,7 psi, V = 37,3 ft3 e T = 568oR.
Cilindro d
Pisto
Biela
Virabrequim
Fig. P2
C.Y. Shigue
3-14
6. Deseja-se determinar o efeito da presso sobre a temperatura do ponto de condensao do produto da combusto completa de hidrocarbonetos parafnicos com ar terico. A temperatura de condensao, tambm chamada de ponto de orvalho, definida como a temperatura na qual o vapor dgua comea a condensar-se medida que o produto da combusto seja resfriado presso constante. Quando alcanado o ponto de orvalho, a presso parcial do vapor dgua no produto da combusto vai igualar a presso do vapor de gua pura na temperatura de condensao e esta relao pode ser usada para determinar o ponto de orvalho. Um hidrocarboneto parafnico tem frmula qumica CnH2n+2 e a equao para combusto completa com ar terico pode ser expressa como: C n H 2 n+ 2 + ( 2n + 1) O 2 + ( 2n + 1) 79 79 N 2 n CO 2 + ( n + 1) H 2 O + ( 2n + 1) N (P6.1) 21 21 2
da qual a frao molar do vapor dgua nos produtos calculada por: x H2O = n+1 n+1 = n + ( n + 1) + ( 2n + 1) ( 79 / 21) 9,52n + 4,76 (P6.2)
A presso parcial do vapor dgua no produto da combusto igual ao produto da frao molar do vapor dgua pela presso do produto da combusto. Assim, p H2O = x H2 O p = ( n + 1) p 9 ,52n + 4,76 (P6.3)
A relao entre a presso do vapor de gua pura e a temperatura dada por: x a + bx + cx 3 n p v = 8,07284 2,3026 T 1 + dx
(P6.4)
no qual: pv - presso de vapor (psi) T - temperatura absoluta (oR) x = 1165,09 - T a = 3,2437814 b = 3,2601444.10-3 c = 2,0065808.10-9 d = 1,2154701.10-3 Como a presso parcial e a presso do vapor dgua devem ser iguais no ponto de condensao, (P6.2), (P6.3) e (P6.4) podem ser combinados para se obter: x a + bx + cx 3 ( n + 1) p n = 8,07284 2,3026 T 1 + dx 9,52m + 4,76
(P6.5)
C.Y. Shigue
3-15
que pode ser solucionado em T para valores dados de p e n. Como (P6.5) uma equao no-linear, um mtodo numrico como o Newton-Raphson deve ser usado. Com este objetivo, conveniente reescrever (P6.5) como: f (T) = 2,3026 x a + bx + cx 3 ( n + 1) p n 8,07284 = 0 T 1 + dx 9,52 m + 4,76
(P6.6)
Para usar o mtodo de Newton-Raphson necessrio diferenciar-se (P6.6) com relao a T, para se obter: df 1165,09 x( b + 3cx 2 ) a + bx + cx 3 xd = 2,3026 T(1 + dx) dT T2 1 + dx T(1 + dx)
(P6.7)
Para o etano (n = 2) sob 1 atm (p = 14,7 psi), o resultado T = 582,97oR = 323,87 K. Verificar este resultado e calcular o ponto de orvalho para o produto da combusto do metano (n = 1), do propano (n = 3), do butano (n = 4) e do pentano (n = 5).
7.
O pH de solues diludas de cidos fracos pode ser calculado pela frmula: [ H + ] 3 + K a [ H + ] 2 ( K a C a + K w )[ H + ] K w K a = 0 na qual: pH = - log [H+] Ka - constante de dissociao do cido Ca - concentrao molar do cido Kw - produto inico da gua Calcular o pH de uma soluo de cido brico a 24oC sabendo-se que: Ka = 6,5.10-10 (moles/l)2, Ca = 1,0.10-5 moles/l Kw = 1,0.10-14 (moles/l)2 (P7.1)
C.Y. Shigue
4-1
(1)
Formulao Matricial
As equaes representadas em (1) podem ser descritas na forma matricial como: [A][x] = [b] para o qual:
(2)
a n3
Nesta representao, a soluo direta pode ser obtida fazendo-se: [x] = [A]-1[b] (4)
para a qual emprega-se os mtodos de inverso de matrizes utilizados em cursos de lgebra Linear. O clculo da matriz inversa pode ser feito atravs da propriedade da matriz identidade: [I] = [A]-1[A] (5)
Se os coeficientes da matriz inversa [A]-1 so as incgnitas do problema, ento o clculo desses coeficientes resume-se a encontrar a soluo do seguinte sistema de equaes:
Clculo Numrico e Computacional C.Y. Shigue
a13 a 23 a 33
a1n x1 b1 x b a 2n 2 2 , [x ] = x 3 , [b] = b 3 a 3n x n b n a nn
(3)
4-2
Assim, o problema do clculo de sistemas de equaes lineares atravs do produto da matriz inversa resulta num problema de clculo de sistemas de equaes lineares. seguir, apresentaremos um mtodo direto para a soluo de sistemas de equaes lineares denominado mtodo de eliminao gaussiana e outro mtodo, iterativo, chamado mtodo de Gauss-Seidel. Alm desses mtodos, inmeros outros apropriados para cada tipo de sistema de equaes lineares existem, mas que no trataremos neste texto.
x n2
a n2
x 11 x 1 [A ] [A ] = 21 x n1
x 12 x 22
x 1n a 11 x 2 n a 21 x nn a n1
a 12 a 22
a 1n 1 0 a 2 n 0 1 = a nn 0 0
0 0 = [I ] 1
(6)
C.Y. Shigue
4-3
a 13 a 23 a 33 a 43
a 14 x1 b1 x b a 24 , [x] = 2 , [b] = 2 x3 b3 a 34 a 44 x4 b4 a 13 a 14 a 23 a 24 a 33 a 34 a 43 a 44 b1 b2 b3 b4
a11 a 12 a a [A]+ = 21 22 a 31 a 32 a 41 a 42
(7)
Os seguintes passos descrevem o procedimento para a triangularizao da matriz [A]: 1o Passo: Calcular p1 = mx{|a11|, |a21|, |a31|, |a41|}. Certamente p1 0, pois caso contrrio |A| = 0 e o sistema no teria soluo nica. Caso p1 |a11|, permutar a 1a linha pela linha que contm p1. 2o Passo: Definir um multiplicador para cada linha:
a a a m 2 = 21 , m 3 = 31 , m 4 = 41 a11 a11 a11
(8)
3a Linha:
a a = a 31 m3a11 = a 31 31 a 11 = 0 31 a 11 a = a 32 m 3a12 32 a = a 33 m3a 13 33 a = a 34 m 3a14 34
C.Y. Shigue
4-4
b = b 3 m3 b1 3
(18)
4a Linha:
a a = a 41 m4 a 11 = a 41 41 a11 = 0 41 a11 a = a 42 m 4 a12 42 a = a 43 m4 a 13 43 a = a 44 m 4 a14 44 b = b 4 m 4 b1 4
Repetindo os passos de 1 a 3 para a coluna 2: 1o Passo: Calcular p2 = mx { a , a , a } . Novamente p2 0, seno |A| = 0. Caso p2 |a21|, permutar 22 32 42 a 2a linha pela linha que contm p2. 2o Passo: Definir um multiplicador para cada linha:
a a m = 32 , m = 42 3 4 a a 22 22
(24)
C.Y. Shigue
4-5
4a Linha:
a a = a m a = a 42 a = 0 42 42 4 22 42 22 a 22 a = a m a 43 43 4 23 a = a m a 24 44 44 4 b = b m b 4 4 4 2
(33)
Repetindo os passos 1 a 3 para as duas ltimas linhas: 1o Passo: Calcular p3 = mx { a , a } . Novamente p3 0, seno |A| = 0. Caso p3 |a31|, permutar a 3a 33 43 linha pela 4a linha. 2o Passo: Definir um multiplicador para a 4a linha:
a m = 43 4 a 33
(34)
a a = a m a = a 43 a = 0 43 43 4 33 43 33 a 33 a = a m a 34 44 44 4 b = b m b 4 4 4 3
(38)
C.Y. Shigue
4-6
Re-escrevendo a matriz [A]+ triangularizada sem as linhas nos expoentes dos coeficientes aij e bj de modo a tornar mais clara as equaes:
a11 a12 0 a 22 [A]+ = 0 0 0 0 a 13 a 14 a 23 a 24 a 33 a 34 0 a 44 b1 b2 b3 b4
(39)
observando que os coeficientes aij e bj da matriz triangularizada acima no so os mesmos coeficientes da matriz [A]+ original. Resolvemos o sistema por recorrncia atravs da frmula:
4 bi a ij x j j= i +1 xi = , i = 4,3,2,1 a ii
(40)
O determinante da matriz de coeficientes [A] calculado a partir do produto dos coeficientes aii da diagonal principal: |A| = a ii = a11a 22 a 33a 44
i =1 4
(41)
Exemplo:
Seja o sistema de trs equaes e trs incgnitas:
2x1 + 3x2 -x1 + x3 = 0
x2 + 4x3 = 3 x3 = 1
x1 8x2 -
cuja matriz aumentada [A]+ descrita como: 3 1 0 2 1 1 [A]+ = 4 3 1 8 1 1 Utilizando o programa de clculo de eliminao gaussiana em preciso simples (com arredondamento de sete casas decimais), cuja listagem aparece adiante neste texto, obtm-se a matriz triangularizada:
C.Y. Shigue
4-7
3 1 2 0 [A] = 9 ,5 0,5 0 0,0000001 3,3684211 cujo determinante vale |A| = -64,0000009. A soluo do sistema calculada pelo mesmo programa resulta: 0 ,718750 [x] = 0,156250 0,968750 Observar que a soluo do problema exata, exceto pelo valor do determinante da matriz [A], cuja soluo exatamente 64. O algarismo 9 na stima casa decimal resultado do erro de arredondamento pelo clculo das variveis reais com preciso simples. Neste problema simples o erro de arredondamento no afetou o vetor soluo [x] do sistema, porm em problemas que envolvam um nmero maior de equaes ou em problemas cujos coeficientes da matriz [A] j possuam erro de arredondamento na sua formulao, acarretam em severo erro de arredondamento, inviabilizando a utilizao do mtodo de clculo direto de eliminao gaussiana. Nestes tipos de problema, um mtodo iterativo, como o mtodo de Gauss-Seidel apresentado a seguir, mais aconselhvel.
10
510 500
530
C.Y. Shigue
4-8
540
580 570
600 590
610
620 50 60 65 70 80 100
TEMP = A(I,J) A(I,J) = A(L,J) A(L,J) = TEMP CONTINUE END IF PIVOT = A(I,I) NEXTR = I + 1 DO 550 J = NEXTR, NN CONST = A(J,I) / PIVOT DO 560 K = I, NN+1 A(J,K) = A(J,K) - CONST*A(I,K) CONTINUE CONTINUE CONTINUE DO 570 I = 1, NN IREV = NN + 1 - I Y = A(IREV,NN+1) IF (IREV .NE. NN) THEN DO 580 J = 2, I K = NN + 2 - J Y = Y - A(IREV,K)*X(K) CONTINUE END IF X(IREV) = Y / A(IREV,IREV) CONTINUE WRITE(*,60) WRITE(*,65) DO 590 I = 1, NN DO 600 J = 1, NN+1 WRITE(*,70) I, J, A(I,J) CONTINUE CONTINUE DET = 1.0 DO 610 I = 1, NN DET = DET * A(I,I) CONTINUE WRITE(*,80) DET DO 620 I = 1, NN WRITE(*,100) I, X(I) CONTINUE FORMAT(1X, 'A(',I2,',',I2,'): ') FORMAT(/10X,'SOLUCAO'/) FORMAT(/5X,'COEFICIENTES DA MATRIZ TRIANGULARIZADA'/) FORMAT(5X, 'A(',I2,',',I2,') = ',F12.7) FORMAT(1X/, 5X, 'DETERMINANTE DO SISTEMA = ', F12.7/) FORMAT(5X, 'X(',I2,') = ', F12.7) END
Linguagem C
/* Programa elimina.c */
#include <stdio.h> #include <stdlib.h> #include <math.h> #define NMAX 50 int int float float i, j, k, l; neq, nmais, last, rev; a[NMAX][NMAX+1], x[NMAX+1]; coef, big, term, temp, pivot, nextr, cnt, y;
void main() { printf("Numero de equacoes: "); scanf("%d", &neq); for(i = 1; i <= neq; i++) {
C.Y. Shigue
4-9
nmais = neq +1; for (j = 1; j <= nmais; j++) { printf("A( %d , %d ) = ", i, j); scanf("%f", &coef); a[i][j] = coef; } } last = neq - 1; for (i = 1; i <= last; i++) { big = 0.f; for (k = i; k <= neq; k++) { term = fabs(a[k][i]); if ((term - big) > 0.f) { big = term; l = k; } } if (big == 0.f) { printf("Matriz singular\n"); exit(0); } if (i != l) { for (j = 1; j <= nmais; j++) { temp = a[i][j]; a[i][j] = a[l][j]; a[l][j] = temp; } } pivot = a[i][i]; nextr = i + 1; for (j = nextr; j <= neq; j++) { cnt = a[j][i] / pivot; for (k = i; k <= nmais; k++) { a[j][k] = a[j][k] - cnt*a[i][k]; } } } for (i = 1; i <= neq; i++) { rev = neq + 1 - i; y = a[rev][nmais]; if (rev != neq) { for (j = 2; j <= i; j++) { k = neq + 2 - j; y -= a[rev][k]*x[k]; } } x[rev] = y / a[rev][rev]; } printf("\nMatriz triangularizada\n"); for (i = 1; i <= neq; i++) { for (j = 1; j <= nmais; j++) { printf("A( %d , %d ) = %f\n", i, j, a[i][j]); } } printf("\nSolucao\n"); for (i = 1; i <= neq; i++) { printf("X( %d ) = %f\n", i, x[i]); } }
C.Y. Shigue
410
Nestes casos podemos utilizar um mtodo iterativo que, em geral, no seja muito sensvel propagao de erros de arredondamento, desde que a soluo seja convergente. Entre os mtodos iterativos de resoluo de sistemas de equaes, vamos abordar o mtodo iterativo de Gauss-Seidel, que um dos mtodos iterativos mais comuns e simples para ser programado em computador. Como em todos os mtodos iterativos, o erro de arredondamento pequeno, mas o mtodo converge para a soluo somente sob certas condies e normalmente conduz a um nmero significativamente maior de operaes aritmticas em comparao aos mtodos de resoluo direta. Seja o sistema de equaes: a11x1 + a12x2 + a13x3 + ... + a1nxn = b1 a21x1 + a22x2 + a23x3 + ... + a2nxn = b2 a31x1 + a32x2 + a33x3 + ... + a3nxn = b3 an1x1 + an2x2 + an3x3 + ... + annxn = bn onde os termos da diagonal a11, a22, ..., ann so todos supostos no nulos; se necessrio, as equaes devem ser reordenadas para que todos estes termos sejam no nulos. Encontramos o valor de x1 a partir da primeira equao, x2 a partir da segunda e assim sucessivamente, para obtermos: x1 = (b1 - a12x2 - a13x3 - ... - a1nxn)/a11 x2 = (b2 - a21x1 - a23x3 - ... - a2nxn)/a22 x3 = (b3 - a31x1 - a32x2 - ... - a3nxn)/a33 xn = (bn - an1x1 - an2x2 - ... - an,n-1xn-1)/ann
A iterao iniciada tomando-se um conjunto inicial de estimativas para todos os xi , onde k o nmero da iterao. Tomamos o valor inicial de x2, x3, ..., xn para calcular o valor de x1 na primeira equao acima. Com o valor de x1 calculado mais os valores iniciais de x3, x4, ..., xn calcula-se o novo valor de x2 na segunda equao e assim sucessivamente at a n-sima equao, quando ento obtemos o valor de xn (e, anteriormente, os valores de x1, x2, ..., xn-1) para a primeira iterao. Voltamos, ento, para a primeira equao e calculamos novamente x1 e sucessivamente todos os xi na segunda iterao. Este procedimento prossegue at que haja convergncia, isto , at que todos os valores de xi simultaneamente parem de variar. Deste modo, este mtodo exigir provavelmente muitas iteraes antes de obtermos uma exatido razovel. Alm disto, na maioria das vezes pode no ocorrer convergncia e os resultados se afastarem de um valor constante e finito. O problema da convergncia deste mtodo no simples e o principal empecilho ao seu uso. Podemos empregar alguns critrios para se verificar quando necessrio parar a iterao:
C.Y. Shigue
411
1. 2.
O nmero de iteraes excedeu um valor mximo m pr-determinado; As diferenas entre dois valores sucessivos de todos os xi so menores do que um valor pr-determinado : x1 - x1
(k) (k-1)
< , x2 - x2
(k)
(k-1)
< , ... xn - xn
(k)
(k-1)
<
(46)
Exemplo:
Seja o sistema de duas equaes:
2x + 3y = 4 -x + y = 1 (e1) (e2)
C.Y. Shigue
412
Iterao 0 1 2 3 4 5
Observamos, dos dados da tabela, que o mtodo iterativo de Gauss-Seidel aplicado ao sistema de duas equaes diverge, pois os valores de erro x e y aumentam a cada iterao. Vamos agora inverter as duas equaes para obter as equaes do clculo iterativo, isto , a equao para o clculo de x ser a (2), enquanto a equao para y ser a (1):
x = (y - 1) y = (4 - 2x)/3 (e5) (e6)
A convergncia obtida aps 41 iteraes: x = 0,2 e y = 1,2 com erro de 10 . O problema da convergncia para este exemplo pode ser ilustrado na Fig. 1, onde so mostrados os grficos para as equaes (e1) e (e2). As linhas tracejadas e pontilhadas indicam, respectivamente, as iteraes divergentes, dada pelas equaes (e3) e (e4), e as iteraes convergentes dada pelas equaes (e5) e (e6).
C.Y. Shigue
413
(1)
3
(2)
-1
-2
-3
-2
-1
Como visto no exemplo, a convergncia das iteraes depende da ordem como as equaes esto escritas. Genericamente, para um sistema com n = 2, podemos escrever: a11x1 + a12x2 = b1 a21x1 + a22x2 = b2 de onde vem que, x1 x2 Se definirmos: x1 x2 Ento, a partir de (49) e (51) vem que: x1 e, de (50) e (52):
Clculo Numrico e Computacional C.Y. Shigue
(k) (k) (k) (k) (k)
(47) (48)
= [b1 - a12x2
(k-1) (k)
]/a11
(49) (50)
= x1 - x1 = x2 - x2
(k) (k)
(51) (52)
= - a12/a11.x2
(k-1)
(53)
414
x2 Combinando estas duas equaes, resulta: x1 Igualmente, pode-se escrever que x1 Prosseguindo desta maneira, resulta: x1 Analogamente, para a outra varivel, x2 Assim, se
(k)
= - a21/a22.x1
(k)
(54)
(k)
= a12a21/(a11a22).x1
(k-1)
(55)
(k)
= [a12a21/(a11a22)] x1
(k-2)
(56)
(k)
= [a12a21/(a11a22)] x1
(0)
(57)
(k)
= [a12a21/(a11a22)] x2
(0)
(58)
a12a21/a11a22 < 1 o mtodo iterativo de Gauss-Seidel converge para uma soluo de (47) e (48). Pode-se satisfazer (59), se a11 > a12 e a22 a21 ou se a11 a12 e a22 > a21
(59)
(60) (61)
(62) (63)
Isto significa que os termos da diagonal a11 e a22 devem ser dominantes, isto , eles devem ser pelo menos to grandes quanto os termos fora da diagonal e realmente maiores em pelo menos um caso. Para um sistema de n equaes podemos mencionar um teorema simples que fornece condies suficientes, mas no necessrias, para que haja convergncia: Teorema da convergncia do mtodo iterativo de Gauss-Seidel: A iterao do mtodo de Gauss-Seidel convergir se, no determinante caracterstico, cada termo da diagonal
C.Y. Shigue
415
principal for maior (em valor absoluto) do que a soma dos valores absolutos de todos os outros termos na mesma linha ou coluna. Isto , teremos garantido a convergncia se,
a ii >
j= 1 j i n
a ij
i = 1, 2, ... , n
(64)
e
a ii >
j= 1 j i
a ji
i = 1, 2, ... , n
(65)
O teorema no muito til a no ser que, de alguma maneira, possamos reordenar as equaes a fim de satisfazerem o teorema to bem quanto possvel e, geralmente, isto no tarefa simples. Pode ser necessrio rearranjar de vrias formas um sistema de equaes at encontrarmos, atravs do clculo iterativo, um arranjo que se aproxime das condies do teorema.
Exemplo:
Seja o seguinte sistema de equaes:
-x1 + 3x2 + 5x3 + 2x4 x1 + 9x2 + 8x3 + 4x4 x2 + x4 2x1 + x2 + x3 - x4 = = = = 10 15 2 -3
Se re-ordenarmos as equaes de modo a satisfazer da melhor forma o teorema da convergncia, obteremos o seguinte sistema de equaes:
2x1 + x2 + x3 x1 + 9x2 + 8x3 -x1 + 3x2 + 5x3 x2 x4 + 4x4 + 2x4 + x4 = = = = -3 15 10 2
C.Y. Shigue
416
x1 = -1; x2 = 0; x3 = 1 e x4 = 2
Observamos para este exemplo que o mtodo iterativo de Gauss-Seidel apresenta uma preciso superior ao mtodo de eliminao gaussiana. Entretanto, o nmero de iteraes relativamente alto (78 neste caso) e este nmero cresce substancialmente com o aumento do nmero de equaes. Esta limitao atualmente no restringe a aplicao do mtodo iterativo de Gauss-Seidel, devido elevada capacidade de processamento dos microcomputadores atuais. Usualmente, o mtodo de eliminao gaussiana usado numa etapa preliminar para obter os valores iniciais do mtodo de Gauss-Seidel que, ento, faz o refinamento da soluo.
10 100
Linguagem C
/* Programa gseidel.c */ #include <stdio.h> #define MAX 80 void main() { int i; float x1, x2, x3, x4; x1 = 0.0; x2 = 0.0; x3 = 0.0; x4 = 0.0; for (i = 1; i <= MAX; i++) { x1 = (-3.0 - x2 - x3 + x4) / 2.0; x2 = (15.0 - x1 - x3 * 8.0 - x4 * 4.0) / 9.0; x3 = (x1 + 10.0 - x2 * 3.0 - x4 * 2.0) / 5.0; x4 = 2.0 - x2; printf("x1 = %10.6f x2 = %10.6f x3 = %10.6f X4 = %10.6f\n",x1,x2,x3,x4); } }
C.Y. Shigue
Ajuste de curvas
5-1
S=
i =1
i2 =
(yi yi )2
i =1
(1)
A condio de minimizao da funo S satisfeita fazendo-se dS = 0, ou seja, necessitamos calcular a derivada da funo S em relao aos parmetros de ajuste da funo y = f(x) para que possamos encontrar o sistema de equaes denominado equaes normais que conduz ao melhor ajuste dos pontos (x,y) pela funo y = f(x) escolhida. Para cada tipo de funo de ajuste existe um sistema de equaes normais que minimiza a soma dos desvios quadrticos S. Em seguida, faremos a deduo das equaes normais para alguns tipos de funes mais comumente empregados no ajuste de curvas pelo mtodo dos mnimos quadrados.
Ajuste Linear
Se a funo de ajuste for a funo linear na forma: y = a 0 + a1x (2)
onde a0 e a1 so os coeficientes a serem determinados pelo Mtodo dos Mnimos Quadrados. A condio de minimizao do somatrio dos desvios quadrticos dada pelas equaes: S =0 a 0 e S =0 a 1 (3)
(4)
C.Y. Shigue
Ajuste de curvas
5-2
(5)
(6)
As equaes (5) e (6) constituem-se no sistema de equaes normais, contendo duas incgnitas (a0 e a1) e duas equaes. Podemos re-arranj-las de modo a obter as seguintes expresses para o seu clculo:
a 0 = i =1
x y x xy
2 i =1 i =1
x2 x i =1 i =1
n
n i =1
i =1 2
(7)
n a1 =
xy x y
i =1 n i =1
x2 x i =1 i =1
(8)
C.Y. Shigue
Ajuste de curvas
5-3
Exemplo: Ajustar uma funo linear pelo mtodo dos mnimos quadrados aos seguintes valores numricos:
x y 0 0,134 1,2 0,275 2,5 0,339 3,7 0,401
Resoluo: Para resolvermos o problema, vamos calcular os coeficientes das equaes normais (5) e (6), atravs do clculo na tabela seguinte dos valores de x, x2, y e xy:
x 0 1,2 2,5 3,7 7,4 y 0,134 0,275 0,339 0,401 1,149 x
2
SOMA = Resumindo:
n=4
xi = 7,4 yi = 1,149
i =1 i =1
i =1
2 x i = 21,38
x i yi = 2,6612
i =1
Substituindo nas equaes (7) e (8): a0 = (21,38)(1,149) (7, 4)(2,6612) (4)(21,38) (7,4) 2 (4)(2,6612) (7,4)(1,149) (4)(21,38) (7,4)
2
a1 =
A funo linear que melhor ajusta os pontos dados pelo mtodo dos mnimos quadrados descrita pela equao: y = 0,1584 + 0,0696 x
Ajuste Polinomial
Seja uma funo polinomial de grau m da forma:
y = a 0 + a1x + a 2 x 2 +
+ amxm
(9)
C.Y. Shigue
Ajuste de curvas
5-4
i =1
i =1
As equaes normais para o clculo dos coeficientes da funo polinomial so obtidas a partir das condies para a minimizao da soma do desvio quadrtico:
= n
Rearranjando as equaes acima, resulta o seguinte sistema de equaes, denominado de equaes normais: n n 2 na 0 + x i a1 + xi a2 + i =1 i =1
n n n 2 3 xi a0 + x i a1 + xi a2 + i =1 i =1 i =1
n n m xi am = yi + i =1 i =1
S = a n
2 (yi a 0 a1x i a 2 x i2 i 1
n
2 (yi a 0 a1xi a 2 x i2 i 1
2 (yi a 0 a1x i a 2 x i2 i 1
n
n n m +1 xi am = x i yi + i =1 i =1
2 (yi a 0 a1x i a 2 x i2 i 1
n
S S S = = = a 0 a 1 a 2
S =0 a m
m a m x i (1) = 0
m a m x i (x i ) = 0
m a m x i x i2 = 0
m m a m x i x i = 0
S=
a mx m
)2
(10)
)( )
)( )
C.Y. Shigue
Ajuste de curvas
5-5
Na forma matricial, o sistema de equaes normais para o ajuste polinomial toma a forma: [A][x] = [b] que podem ser escritos omitindo os ndices dos somatrios na forma:
m x i yi
Observar que a matriz de coeficientes [A] simtrica, isto , aij = aji. Deste modo, podemos determinar o sistema de equaes normais para qualquer ajuste polinomial como um subconjunto do sistema acima.
Ajuste Parablico
O ajuste parablico ou de 2a ordem um caso particular do ajuste polinomial para m = 2: y = a 0 + a1x + a 2 x 2 de modo que o sistema de equaes normais pode ser escrito como: (12)
a0 a 1 [x ] = a 2 , a m
[b] =
yi x2i yi x i yi
xi x i2 x im
[ A] =
xi x i2 x3 i xim +1
n n n m +2 m +3 m xi a0 + xi xi a1 + a2 + i =1 i =1 i =1
n n n 2 3 4 xi a0 + x i a1 + xi a 2 + i =1 i =1 i =1
n n m +2 2 + xi x i yi am = i =1 i =1
n n 2m m + xi a m = x i yi i =1 i =1
xmim+1 xm +2 i x i , 2m xi
(11)
C.Y. Shigue
Ajuste de curvas
5-6
[A] =
x2i xi
x2i x i2 x i3 x 3 , i x i x i4
a 0 a , [b ] = [x ] = 1 a 2
yi x2i yi xi yi
(13)
Exemplo: A tabela seguinte apresenta os valores de calor especfico a presso constante para o ouro na faixa de temperatura entre 10 e 100K. Ajustar pelo Mtodo dos Mnimos Quadrados uma curva parablica do tipo C p = a 0 + a1T + a 2 T 2 , onde Cp o calor especfico e T a temperatura absoluta.
T(K) Cp (J/kg.K) 10 2 15 7 20 16 25 26 30 37 40 57 50 73 60 84 70 92 80 99 90 104 100 108
Resoluo: Para o clculo dos coeficientes da matriz [A], por uma questo de compatibilidade com a notao de (13), definiremos y = Cp e x = T. TABELA 1 Coeficientes do sistema de equaes
x 10 15 20 25 30 40 50 60 70 80 90 100 590 y 2 7 16 26 37 57 73 84 92 99 104 108 705 x2 100 225 400 625 900 1600 2500 3600 4900 6400 8100 10000 39350 x3 1000 3375 8000 15625 27000 64000 125000 216000 343000 512000 729000 1000000 3044000 x4 10000 50625 160000 390625 810000 2560000 6250000 12960000 24010000 40960000 65610000 100000000 253771250 xy 20 105 320 650 1110 2280 3650 5040 6440 7920 9360 10800 47695 x2y 200 1575 6400 16250 33300 91200 182500 302400 450800 633600 842400 1080000 3640625
SOMA:
Substituindo-se os valores calculados na tabela nas matrizes do sistema [A][x] = [b], obtm-se: 590 39350 12 590 39350 3044000 [ A] = 39350 3044000 253771250 705 [b] = 47695 3640625
C.Y. Shigue
Ajuste de curvas
5-7
a1 = 2,54971
a2 = -0,01202
C p = 27,1891 + 2,54971T 0,01202T 2 A Fig. 1 mostra os dados experimentais juntamente com a curva parablica ajustada pelos coeficientes calculados acima, na qual observa-se uma excelente concordncia entre a curva ajustada e os pontos experimentais.
120
100
80 Cp (J/kg.K)
60
40
20
Fig. 1 Dados experimentais do calor especfico a presso constante para o ouro (smbolos) e a curva parablica ajustada (linha).
Ajuste Multivarivel
O ajuste por funo polinomial visto anteriormente um caso particular de um ajuste multivarivel, no qual cada um das variveis x, x2, x3, ..., xm podem ser descritas como variveis distintas e independentes entre si: x1, x2, x3, ... , xm. A funo dessas mltiplas variveis pode ser escrita como:
Substituindo a funo (14) na equao para a soma dos desvios quadrticos resulta:
y = a 0 + a 1x 1 + a 2 x 2 +
+ a mxm
(14)
C.Y. Shigue
Ajuste de curvas
5-8
i =1
i =1
As equaes normais para o clculo dos coeficientes da funo polinomial so obtidas a partir das condies para a minimizao da soma do desvio quadrtico:
n n n 2 x2 a 0 + x 2 x1 a 1 + x2 a2 + i=1 i =1 i=1
n n + xm a m = yi i =1 i =1
S S S = = = a 0 a 1 a 2
S =0 a m
a m x m )(1) = 0
a m x m )( x1 ) = 0 (16) a m x m )(x 2 ) = 0
a m x m )(x m ) = 0
n n + x1 x m a m = x1y i i =1 i =1
n n + x2xm a m = x2yi i =1 i =1
S=
(y
i yi
(y a
0 a 1 x1 a 2 x 2
a mx m )
(15)
(17)
C.Y. Shigue
Ajuste de curvas
5-9
Na forma matricial, o sistema de equaes normais para o ajuste polinomial toma a forma: [A][x] = [b] que podem ser escritos omitindo os ndices dos somatrios na forma: (18)
Observar que a matriz de coeficientes [A] simtrica, isto , aij = aji. Deste modo, podemos determinar o sistema de equaes normais para qualquer ajuste multivarivel como um subconjunto do sistema acima.
Exemplo: Considere os seguintes valores de temperatura (T), presso (p) e volume (v) especfico para o ar. Ajustar uma funo multivarivel do tipo T = apbvc, na qual a, b e c so constantes a serem determinados pelo mtodo dos mnimos quadrados.
Temperatura (K) 90 100 110 120 130 Presso (bar) 2,397 5,599 11,22 20,14 33,32 Volume especfico (dm /kg) 100,2 44,67 22,15 11,45 5,425
3
Resoluo: Primeiramente, necessrio linearizar a funo de ajuste de modo que as constantes estejam desacopladas das variveis T, p e v. Para isso, vamos aplicar o logaritmo sobre a funo T = T(p,v) para obter: n T = n a + b. n p + c. n v
Fazendo a seguinte troca de variveis, y = n T, x1 = n p, x2 = n v, a0 = n a, a1 = b e a2 = c, a equao acima pode ser re-escrita como: y = a 0 + a 1x1 + a 2 x 2
x m x1 x m x 2
x2 m
n x1 [ A] = x 2 x m
x1 x2 2 x1 x1x 2 x 2 x1 x 2 2
a0 xm a x1x m 1 , [x ] = a , x2xm 2 am
n n 2 + xm am = xmyi i=1 i =1
y x 1y [ b] = x 2 y x y m
(19)
C.Y. Shigue
Ajuste de curvas
5 - 10
As equaes normais para esta funo de ajuste de duas variveis (x1 e x2) um subsistema da equao (17) com trs incgnitas (a0, a1 e a2) e trs equaes:
n n n na 0 + x1 a 1 + x 2 a 2 = yi i =1 i =1 i =1
n n n n a + a = 2 x1 0 x1 a 1 + x1x 2 2 x1 y i i =1 i =1 i =1 i =1
(20)
n n n n a + a + 2 x2 0 x 2 x1 1 x 2 a 2 = x 2 yi i =1 i =1 i =1 i =1
Substituindo os valores dos somatrios em (20), obtemos o seguinte sistema de equaes: 5a 0 + 11,52337a 1 + 15,63332a 2 = 23, 46049 11,52337a 0 + 30,8863332a 1 + 31,31148a 2 = 54,67275 15,63332a 0 + 31,31148a 1 + 54,06063a 2 = 72,69208 cuja soluo ser: a0 = 4,762418, a1 = 0,063776 e a2 = -0,0695. A partir destas constantes, podemos obter a soluo para o ajuste multivarivel fazendo: a 0 = n a a = e a 0 = e 4,762418 = 117,0285 b = a1 = 0,063776 de modo que T = 117,0285 p 0,063776 v 0,0695 a funo de ajuste do problema.
c = a 2 = 0,0695
C.Y. Shigue
Ajuste de curvas
5 - 11
Linearizao de Funes
As funes transcendentes de duas constantes devem ser linearizadas antes de aplicarmos o Mtodo dos Mnimos Quadrados, a fim de obtermos o sistema de equaes normais lineares. O procedimento varia, dependendo do tipo de funo. Ilustraremos o procedimento de linearizao para as funes exponencial, logaritmica, potencial e hiperblica.
Ajuste Exponencial
Um ajuste exponencial geralmente emprega uma funo do tipo: y = a.e bx (21)
onde a e b so as constantes da funo de ajuste exponencial. Este tipo de funo no-linear, de modo que precisamos lineariz-lo antes de aplicar o Mtodo dos Mnimos Quadrados. A linearizao consiste em transformarmos a equao (21) numa equivalente equao (2): y aj = a 0 +a1x Para tanto, aplicamos o logaritmo em ambos os lados de (21): n y = na + bx
(22)
Se fizermos:
Observe que esta equao idntica equao (2), exceto pelo fato de que a varivel y' calculada pelo logaritmo de base natural da varivel y original. Aplicando-se as transformaes (25) e (26), obtemos as constantes de ajuste exponencial a e b empregando as equaes (7) e (8) do Mtodo dos Mnimos Quadrados para a funo linear.
Ajuste Logaritmico
Um ajuste logartmico geralmente emprega uma funo do tipo:
y = n y
(27)
C.Y. Shigue
Ajuste de curvas
5 - 12
y = a + b. n x
(28)
onde a e b so as constantes da funo de ajuste. Linearizando (21), obtemos as seguintes relaes de transformao:
x' = n x
a0 = a
a1 = b
(29)
y aj = a 0 + a1x
(30)
Ajuste Potencial
Um ajuste potencial geralmente emprega uma funo do tipo: y = a.x b (31)
onde a e b so as constantes da funo de ajuste. Linearizando (22), obtemos as seguintes relaes de transformao:
y = n y
x' = n x
a0 = n a
a1 = b
(32)
Ajuste Hiperblico
Um ajuste hiperblico geralmente emprega uma funo do tipo: y=a+ b x (34)
onde a e b so as constantes da funo de ajuste. Linearizando (23), obtemos as seguintes relaes de transformao: y = y x' = 1 x a0 = a a1 = b (35)
C.Y. Shigue
Ajuste de curvas
5 - 13
y = a 0 + a1x aj
(36)
n r2 = 1
n
(yi y aj )2
i =1
n 2 n yi yi i =1 i =1
(37)
O coeficiente de correlao limitado aos seguintes valores: 0 r 2 1 . Quanto mais prximo de 1 for o valor de r2, melhor ser o ajuste. Quando r2 0 para um ajuste a dois coeficientes, significa que o coeficiente angular desprezvel. Como um critrio neste curso, vamos considerar que um bom ajuste representado por valores de r2 > 0,99. Uma outra forma do coeficiente de correlao, vlido para ajuste de funo do tipo linear y = a0 + a1x, expressa como:
r=
[(x i x m )(yaj y m )]
i =1
(x i x m )2 (y aj ym )2
i =1 i =1
= i =1
x i y aj nx m y m
(n 1)S x S y
(38)
para a qual x m = i =1 n
xi
e y m = i =1 n
yaj
so os valores mdios de x e yaj, respectivamente.
As expresses:
Sx =
(x i x m )
i =1
n 1
e Sy =
(y aj ym )2
i =1
n 1
C.Y. Shigue
Ajuste de curvas
5 - 14
representam a covarincia x e covarincia y, respectivamente. A equao (37) tem a vantagem de poder ser usada na avaliao da qualidade do ajuste de funes polinomiais e multivariveis. J a equao (38) somente pode ser utilizada para avaliar a qualidade do ajuste de funes lineares ou linearizadas, como visto com as funes exponencial, logaritmo, potencial e hiperblica, vistas anteriormente neste texto. Outras funes linearizveis tambm podem empregar a equao (38) para o clculo do coeficiente de correlao, devendo observar que os valores de Exemplo Ajuste empregando diferentes tipos de funes:
x y 1,0 0,525 1,2 0,8448 1,4 1,2807 1,6 1,8 1,8634 2,6326 2,0 3,6386 2,2 2,4 4,944 6,6258 2,6 8,7768 2,8 3,0 11,5076 14,9484
Vamos ajustar aos pontos tabelados as seguintes funes: (a) linear y = a0 + a1x, (b) exponencial, do tipo y = aebx, (c) logaritmico, do tipo y = a + b ln x, (d) potencial, do tipo y = axb e (e) hiperblico, do tipo y = a + b/x. Vamos determinar atravs do coeficiente de correlao de Pearson qual destas funes representa o melhor ajuste e comparar graficamente os ajustes realizados. Resoluo: (a) Ajuste linear (regresso linear) y = a 0 + a 1x
x 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 22,0 y 0,52500 0,84478 1,28068 1,86340 2,63260 3,63856 4,94400 6,62580 8,77679 11,50759 14,94844 57,58764 x
2
xy 0,52500 1,01374 1,79295 2,98144 4,73868 7,27712 10,87680 15,90192 22,81965 32,22125 44,84532 144,99387
Soma =
1,000 1,440 1,960 2,560 3,240 4,000 4,840 5,760 6,760 7,840 9,000 48,400
( x)
= 6,7770
C.Y. Shigue
Ajuste de curvas
5 - 15
Clculo do coeficiente de correlao: Sendo a funo de ajuste y aj = 8,3187 + 6,7770 x , o coeficiente de correlao: n r2 = 1
n
(yi yaj )2
i =1
n 2 n yi yi i =1 i =1
requer o clculo das seguintes quantidades: (y - yaj)2, y2 e (y)2 que esto apresentadas na tabela seguinte:
yaj -1,54171 -0,18632 1,16907 2,52446 3,87985 5,23524 6,59063 7,94602 9,30141 10,65680 12,01219 57,58764 (y - yaj) 4,27130 1,06317 0,01246 0,43700 1,55563 2,54939 2,71139 1,74298 0,27523 0,72384 8,62155 23,96394
2
Soma =
y 0,27563 0,71365 1,64014 3,47226 6,93058 13,23912 24,44314 43,90123 77,03204 132,42463 223,45586 527,52827
(x x m ) 2
n1 =
4 ,40 = 0,66332 10
sy = r = a1
(y y m ) 2
n 1
226,04314 = 4,75440 10
C.Y. Shigue
Ajuste de curvas
5 - 16
Assim, o ajuste linear y = 8,3187 + 6,7770 x no representa um bom ajuste porque o valor de r2 < 0,99.
y = n y
a0 = n a y = a 0 + a 1x
a1 = b
Soma =
x 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 22,0
y' = ln y -0,64436 -0,16868 0,24739 0,62240 0,96797 1,29159 1,59817 1,89097 2,17211 2,44301 2,70461 13,12519
x 1,000 1,440 1,960 2,560 3,240 4,000 4,840 5,760 6,760 7,840 9,000 48,400
xy' -0,64436 -0,20241 0,34635 0,99584 1,74235 2,58318 3,51598 4,53833 5,64749 6,84042 8,11382 33,47699
yaj -0,44921 -0,12073 0,20775 0,53623 0,86472 1,19320 1,52168 1,85016 2,17865 2,50713 2,83561 13,12519
(y yaj) 0,03808 0,00230 0,00157 0,00743 0,01066 0,00968 0,00585 0,00167 0,00004 0,00411 0,01716 0,09855
y 0,41520 0,02845 0,06120 0,38739 0,93697 1,66820 2,55416 3,57577 4,71807 5,96828 7,31490 27,62859
Assim,
C.Y. Shigue
Ajuste de curvas
5 - 17
Na tabela acima, esto calculados os valores de (y - yaj)2 = 0,09855 e y2 = 27,62859, que substituindo na equao (37) do coeficiente de correlao, resulta: r2 = 1 11 0,09855 11 27,62859 (13,12519) 2 = 0,992
Este coeficiente de correlao indica que a funo de ajuste exponencial representa um bom ajuste para os dados (x,y).
a0 = a y = a 0 + a 1x
a1 = b
Soma =
x' = ln x 0,000 0,182 0,336 0,470 0,588 0,693 0,788 0,875 0,956 1,030 1,099 7,017
y 0,52500 0,84478 1,28068 1,86340 2,63260 3,63856 4,94400 6,62580 8,77679 11,50759 14,94844 57,58764
x' 0,000 0,033 0,113 0,221 0,345 0,480 0,622 0,766 0,913 1,060 1,207 5,761
x'y 0,00000 0,15402 0,43091 0,87580 1,54741 2,52206 3,89813 5,80068 8,38632 11,84844 16,42254 51,88632
yaj -2,28673 -0,13699 1,68059 3,25505 4,64382 5,88612 7,00991 8,03586 8,97964 9,85344 10,66693 57,58764
(y - yaj) 7,90581 0,96387 0,15993 1,93669 4,04501 5,05152 4,26800 1,98827 0,04115 2,73622 18,33135 47,42781
y 0,27563 0,71365 1,64014 3,47226 6,93058 13,23912 24,44314 43,90123 77,03204 132,42463 223,45586 527,52827
C.Y. Shigue
Ajuste de curvas
5 - 18
A funo de ajuste logaritmo tem a forma: y = 2,2866 + 11,7909 n x Coeficiente de correlao: r 2 = 1 11 47,42781 11 527,52827 (57,58764) 2
= 0,790
x = n x
y = n y
a0 = n a
a1 = b
y = a 0 + a 1x
x' = ln x 0,000 0,182 0,336 0,470 0,588 0,693 0,788 0,875 0,956 1,030 1,099 7,017 y' = ln y -0,64436 -0,16868 0,24739 0,62240 0,96797 1,29159 1,59817 1,89097 2,17211 2,44301 2,70461 13,12519 x' 0,000 0,033 0,113 0,221 0,345 0,480 0,622 0,766 0,913 1,060 1,207 5,761
2
Soma =
x'y' 0,00000 -0,03075 0,08324 0,29253 0,56896 0,89526 1,26009 1,65549 2,07548 2,51537 2,97131 12,28698
yaj -0,75020 -0,19479 0,27481 0,68159 1,04040 1,36136 1,65171 1,91677 2,16061 2,38637 2,59655 13,12519
(y - yaj) 0,01120 0,00068 0,00075 0,00350 0,00525 0,00487 0,00287 0,00067 0,00013 0,00321 0,01168 0,04480
y 0,41520 0,02845 0,06120 0,38739 0,93697 1,66820 2,55416 3,57577 4,71807 5,96828 7,31490 27,62859
C.Y. Shigue
Ajuste de curvas
5 - 19
O coeficiente de correlao do ajuste potencial o maior dentre todos os ajustes realizados at aqui, indicando ser esta a melhor funo de ajuste.
a1 = b
Soma =
x'y 0,52500 0,70398 0,91477 1,16463 1,46256 1,81928 2,24727 2,76075 3,37569 4,10985 4,98281 24,06659
yaj (y - yaj) -2,72875 10,58687 0,29697 0,30010 2,45819 1,38653 4,07911 4,90936 5,33982 7,32904 6,34839 7,34319 7,17359 4,97105 7,86125 1,52633 8,44312 0,11134 8,94186 6,58297 9,37410 31,07322 57,58764 76,12000
y 0,27563 0,71365 1,64014 3,47226 6,93058 13,23912 24,44314 43,90123 77,03204 132,42463 223,45586 527,52827
Ajuste de curvas
5 - 20
C.Y. Shigue
Ajuste de curvas
5 - 21
18
y Linear Exponencial Logaritmo Potencial Hiperblico
14 10 y 6 2 -2 1.0
1.5
2.0 x
2.5
3.0
Exerccios
1. Considere a seguinte tabela de dados:
x y 1,0 0,340 1,4 2,25 2,0 5,89
Ajustar uma funo linear do tipo y = a0 + a1x e uma funo exponencial do tipo y = aebx aos dados acima. Determinar qual delas representa o melhor ajuste atravs do clculo do coeficiente de correlao de Pearson. Verificar graficamente os ajustes calculados. 2. Desenvolver as equaes normais para a funo f(x) = a.x + b.cos x (a e b so os coeficientes de ajuste), empregando o Mtodo dos Quadrados Mnimos, ajust-la aos seguintes valores numricos e calcular o coeficiente de correlao:
x y 1,0 1,683 1,2 2,046 2,0 2,512
C.Y. Shigue
Ajuste de curvas
5 - 22
Traar o grfico dos pontos tabelados e ajustar uma funo linear a eles. Traar a reta ajustada ao grfico dos pontos tabelados. Verificar grfica e numericamente pelo coeficiente de correlao de Pearson que o ajuste de m qualidade. Corrigir o problema que est prejudicando o ajuste linear e verificar novamente pelo grfico e pelo coeficiente de correlao de Pearson a qualidade do ajuste. 4. Linerizar as seguintes funes: b (a) y = a . x + 2 (b) y = a.ln bx x (d) y = a. e bx
2
(e) y = ax + bx 3
5. A tabela seguinte fornece a populao do Brasil (em milhes de habitantes) desde 1872:
ANO Pop. 1872 9,9 1890 14,3 1900 17,4 1920 30,6 1940 41,2 1950 51,9 1960 70,9 1970 93,1 1980 130 1990 150
Obtenha uma estimativa para a populao brasileira no ano 2000 empregando diferentes tipos de ajustes de curvas.
C.Y. Shigue
Integrao Numrica
Introduo
A integrao numrica uma tcnica comumente empregada na determinao de uma integral definida, cuja funo ou no disponvel ou no possui uma soluo analtica. Ela consiste na aproximao de uma integral definida do tipo: I = f ( x )dx
a b
(1)
(2)
na qual f(xi) so os valores da funo f(x), x = xi+1 - xi e wi um valor numrico de ponderao que tambm conhecido por funo peso. No presente curso, nos restringiremos aos mtodos de integrao numrica para intervalo x constante. A determinao desses mtodos consiste basicamente em avaliar o valor da funo peso wi.
y = f(x)
f(b)
reta
f(a)
Fig. 1 Grfico de uma funo aproximada por uma reta no intervalo [a,b].
f (x )dx 2 [f (a ) + f (b)]
h
a
(3)
Exemplo 1: Calcular
0 e
Soluo: Vamos calcular a integral aproximada pela regra do trapzio com um, dois e quatro intervalos, entre os extremos de integrao [0;1]. (a) Com um intervalo, n = 1 e, portanto, h = x = (b a)/n = (1 0)/1 = 1.
0 e
.dx
e x .dx
0 e
.dx
h [f (0) + 2f (0,25) + 2f (0,5) + 2f (0,75) + f (1)] 2 0,25 0 = e + 2e 0,25 + 2e 0,5 + 2e 0,75 + e1 2 0,25 (1 + 2.1,28403 + 2.1,64872 + 2.2,11700 + 2,71828) = 1,72722 = 2
0 e
valor de integral obtida pela regra dos trapzios, temos: (a) n = 1, erro = 1,71828 - 1,85914= 0,14 (b) n = 2, erro = 1,71828 - 1,75393= 0,036 (c) n = 4, erro = 1,71828 - 1,72722= 0,0089
Regra de Simpson
A Regra de Simpson consiste na aproximao da funo contnua f(x) no intervalo [a,b] por uma funo de segunda ordem, ou seja, na aproximao de uma curva por uma parbola. A frmula para a integral tem a forma:
b
f ( x)dx
h f ( x 0 ) + 4 f ( x1 ) + f ( x 2 ) , onde h = x = x 2 x1 = x1 x 0 3
(5)
Esta frmula tambm conhecida como regra de Simpson 1/3 por causa do fator que multiplica h. Observar que so necessrios, no mnimo, trs valores de f(xi) para se calcular a integral pela regra de Simpson. Na notao usada aqui, x0 = a, x2 = b e x1 um ponto equidistante de x0 e x2. Para n intervalos x, a frmula pode ser escrita como:
b
f ( x)dx
h [f ( x0 ) + 4f ( x1) + 2 f ( x2 ) + L + 2f ( x n 2 ) + 4 f ( x n 1) + f ( x n )] 3
(6)
na qual n par (correspondendo a um nmero par de intervalos de integrao) ou, equivalentemente, a regra de Simpson 1/3 s pode ser aplicada para um nmero mpar de pontos xi ,f(xi). O erro de truncamento eS expresso por: eT = h4 ( b a ) M , onde: M = max f ( 4) ( ) , a b 180
x
(7)
Exemplo 2: Calcular
0 e
Soluo: Vamos calcular a integral aproximada pela regra de Simpson com dois e quatro intervalos, entre os extremos de integrao [0;1]. (a) Com dois intervalos, n = 2 e, portanto, h = x = (b a)/n = (1 0)/2 = 0,5.
e x .dx
e x .dx
h [ f ( 0 ) + 2 f ( 0,25 ) + 4 f ( 0,5 ) + 2 f ( 0,75 ) + f ( 1 )] 3 0 ,25 0 = e + 4e 0 ,25 + 2e 0 ,5 + 4e 0 ,75 + e1 3 0 ,25 (1 + 4.1,28403 + 2.1,64872 + 4.2,11700 + 2,71828) = 1,71832 = 3
0 e
valor de integral obtida pela regra de Simpson, temos os seguintes valores numricos: (a) n = 2, erro = 1,71828 - 1,71886= 0,00058 (b) n = 4, erro = 1,71828 - 1,71832= 0,00004 Comparando estes resultados com aqueles obtidos pela regra dos trapzios, observa-se que a regra de Simpson apresenta menor erro de truncamento, pois a aproximao pela regra de Simpson feita por uma funo de 2o grau integrada, o que representa uma aproximao com convergncia de 4a ordem, conforme podemos observar da equao (7).
Exerccios propostos
1. Demonstre geometricamente e prove analiticamente que se f(x) > 0 e a x b, a
b
aproximao para
f (x).dx dada pela regra dos trapzios ser sempre maior que o valor
a 1
verdadeiro da integral.
2. Considere a integral
h = 0,5 prximo ao resultado exato (dentro de aproximadamente uma parte em 3000). Explique qualitativamente porque a concordncia prxima obtida.
K( ) =
d 1 sen 2 .sen 2
o Calcule K(30 ), usando a regra de Simpson com quatro intervalos. O resultado exato para o quatro casas decimais 1,6858. Calcule K(85 ) usando a regra de Simpson com quatro
intervalos; o resultado exato 3,8320. Por que este resultado to ruim comparado ao do exerccio anterior?
5
4. Use a frmula de erro de truncamento para estimar o valor de h para o clculo de usando a regra dos trapzios e a regra de Simpson com erro menor do que 10-6.
e
0
dx
5. Dados trs valores de x = -h, 0, h e trs valores correspondentes de y = y0, y1 , y2, substitua os trs pares de valores de x e y na equao geral de uma parbola, y = a + bx + 2 cx , para obter trs equaes nas trs incgnitas a, b e c. Usando esses valores de a, b e c, integre a equao da parbola entre os limites -h e h para obter:
(a + bx + cx ) .dx = 3 (y
2
+ 4 y1 + y 2 )
que , naturalmente, a regra de Simpson para trs pontos adjacentes. Mostra-se, assim, que a regra de Simpson equivalente a aproximao por uma srie de segmentos de parbolas.
6.
f (x).dx
a
dividindo o intervalo em n
ba intervalos iguais de largura h = . Aproxime a integral para cada intervalo pela rea n do retngulo cuja altura o valor de f(x) na extremidade esquerda, conforme mostra a Fig. P1. Este mtodo de integrao chamado de integral de Riemann, e o procedimento para o clculo exato de uma integral atravs da teoria de limites.
y2 y1 y0 h h h
...
h x0 x1 x2 x3 Fig. P1 xn-1 xn
yn-1
7. Dados os seguintes valores numricos, onde y deve ser alguma funo (desconhecida) de x, encontre a rea sob a curva representada aproximadamente por y: (a) Usando a regra do trapzio; (b) Usando a regra de Simpson; (c) Estimar o erro de truncamento para cada um dos casos acima. Qual dos dois resultados mais preciso? Justifique a sua resposta.
x y
1,0 1,00
1,2 1,82
1,4 2,08
1,8 3,52
2,0 4,70
2,2 5,12
2,4 6,38
2,6 6,98
2,8 8,22
3,0 9,00
x 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 y 1,543 1,668 1,811 1,971 2,151 2,352 2,577 2,828 3,107
1,8
Calcule
(a) h = 0,1 (b) h = 0,2 (c) h = 0,4 Se a funo tabulada for cosh x, avalie o erro da aproximao, estime o erro de truncamento para os mtodos utilizados e compare-os.
9. As integrais seguintes no possuem primitiva, de modo que utilizaremos a prpria soluo da integrao numrica para encontrar a soluo exata com cinco casas decimais usando a regra de Simpson e variando o nmero de intervalos de integrao at encontrar o resultado no qual ele no difira do anterior na quinta casa decimal. Calcule para a = 0 e b = 1 nas duas primeiras integrais e a = 0,1 e b = 1 na ltima. (a)
ex
a
dx ;
(b)
sen x dx ; x
(c)
(1 + x) dx
a
ln x
7-1
Dos exemplos citados, vemos que o grau (ou ordem) de uma equao diferencial pode variar. O grau de uma equao diferencial definido pelo termo da equao que contm a derivada de maior ordem. Por exemplo, a seguinte equao diferencial y +x 2 = 0 uma equao diferencial de 1o grau porque a derivada y de 1a ordem. J a equao diferencial y 2 xy + 5 y + y x + 8 = 0 uma equao diferencial de 3o grau porque o termo de derivada de maior ordem de 3a ordem. Se a soluo de uma equao diferencial y for uma funo de uma nica varivel x, isto , se y = y(x), ento a equao diferencial chamada de equao diferencial ordinria.
Definio
Uma equao diferencial ordinria de grau n uma equao que pode ser descrita na forma geral como: y ( n ) = f ( x , y , y , y ,K , y ( n1 ) ) (1)
C.Y. Shigue
7-2
empregando a notao de Leibniz. dx n Uma equao diferencial ordinria (E.D.O.) de 1a ordem para duas variveis x e y definida como uma equao da forma espacial: y = dy = f ( x, y ) dx (2)
sendo que y ( n )
dny
No caso particular f(x,y) = f(x), podemos obter a soluo geral para E.D.O. de 1a ordem (2) por separao de variveis: y = dy = f(x) dx dy = f ( x ) dx (4)
f ( x ) dx + C
(5)
onde C a constante de integrao. Para obtermos uma soluo particular (ou seja, um valor especfico para a constante C), necessrio fornecer uma condio de contorno para a equao (2): f ( x 0 , y 0 ) = C0 (4)
Se y = y(x) uma soluo, ento dy/dx = f(x,y) e y0 = y(x0) a condio de contorno da equao (2). Se considerarmos a E.D.O. (3) em que a varivel t representa o tempo, ento a condio para obteno de uma soluo particular de (3) chamada condio inicial (anloga condio de contorno, somente que esta se aplica a problemas envolvendo apenas coordenadas espaciais). Exemplo 1 Seja a E.D.O. de 1a ordem: y = y , cuja soluo analtica geral expressa por y = Ce x . Se impusermos como condio de contorno y(0) = 1, isto , em x = 0, y = 1 e substituirmos na soluo geral, vem que, 1 = Ce 0 = C . Portanto, a soluo particular da E.D.O. y = y obtida substituindo-se o valor da constante de integrao C calculada da condio de contorno y(0) = 1, resultando: y = ex
C.Y. Shigue
7-3
Exemplo 2 Seja a E.D.O. de 1o grau, y' = x + y, cuja soluo analtica, obtida pelo Mtodo dos Fatores Integrantes1, expressa por: y(x) = Cex -x - 1. Se adotarmos a condio de contorno y(0) = 0, vem que y(0) = C - 1 = 0. Portanto, C = 1, que substituindo na soluo geral, resulta a soluo particular: y(x) = ex - x - 1. importante salientar que a soluo geral representa uma famlia de solues (isto , um conjunto infinito de solues) e que a soluo particular representa uma soluo nica. Como nos mtodos numricos pressupe-se que a soluo do problema seja nica, isto ir requerer na descrio do problema a especificao da condio de contorno juntamente com a equao diferencial.
Mtodo de Euler
O Mtodo de Euler um mtodo aproximado de 1a ordem, isto , ele aproxima a soluo da E.D.O. de 1o grau y(x) = y(x) por uma funo de 1o grau, isto , por uma reta. A Fig. 6.1 ilustra a aproximao da soluo exata y = y(x) por uma soluo aproximada y , obtida pelo prolongamento de uma reta tangente curva de y = y(x) at o valor de x para o qual deseja-se obter a soluo da E.D.O. A equao genrica para o clculo da soluo de uma E.D.O. de 1o grau pelo Mtodo de Euler expressa por: y i +1 = yi + hf ( xi , y i ) para a qual h = x i +1 xi
Exemplo 3: Seja a E.D.O. y = x, com a condio de contorno y(0) = 2. Calcular a soluo da E.D.O. empregando o mtodo de Euler em x = 2. No enunciado do exemplo no foi especificado o valor do sub-intervalo de integrao h, de modo que vamos calcular inicialmente com h = 1. A equao do mtodo de Euler para a E.D.O. do exemplo tem a forma: yi +1 = yi + h. xi partir da condio de contorno, x = 0, at o valor de x = 2, existem dois valores da soluo a serem calculados: em x = 1 e em x = 2. A seguir esto apresentadas as contas para o clculo da soluo aproximada da E.D.O. nesses dois pontos.
C.Y. Shigue
7-4
i=1
Assim, a soluo da E.D.O. y = x em x = 2 igual a y = 3. Vamos repetir o clculo agora para h = 0,5 (a) h = 0,5 i=0 x1 = x0 + h = 0 + 0,5 = 0,5 y1 = y0 + h.x0 = 2 + 0,5.0 = 2 x2 = x1 + h = 0,5 + 0,5 = 1,0 y2 = y1 + h.x1 = 2 + 0,5.0,5 = 2,25 x3 = x2 + h = 1,0 + 0,5 = 1,5 y3 = y2 + h.x2 = 2,25 + 0,5.1,0 = 2,75 x4 = x3 + h = 1,5 + 0,5 = 2,0 y4 = y3 + h.x3 = 2,75 + 0,5.1,5 = 3,5
i=1
i=2
i=3
Assim, a soluo da E.D.O. y = x em x = 2 igual a y = 3,5. Vamos comparar os dois resultados com a soluo analtica: x2 dy = x dy = x.dx y = +C dx 2 A constante de integrao C avaliada substituindo-se a condio de contorno na soluo analtica: y (0) = 2 2 = 02 +C C = 2 2
x2 Desta forma, a soluo analtica particular para este problema : y = + 2 . Calculando-se a 2 22 soluo exata em x = 2, resulta y(2) = +2=4. 2 Assim, o erro da soluo pelo mtodo de Euler com h = 1 vale valor exato - valor aproximado = 4 - 3 = 1, enquanto que para h = 0,5 o erro vale
Clculo Numrico e Computacional C.Y. Shigue
7-5
4 - 3,5 = 0,5. Observa-se, assim, que quando o intervalo h reduzido pela metade, o erro reduz-se pela metade. Para verificarmos este resultado, vamos calcular a soluo aproximada de uma outra E.D.O. pelo mtodo de Euler com diferentes valores de h e comparar com a soluo exata. Exemplo 4: Seja a E.D.O. y = y, com a condio de contorno y(1) = 1. Calcular a soluo da E.D.O. empregando o mtodo de Euler em x = 2, para h = 0,5 e h = 0,25. Neste exemplo, por questo de convenincia, vamos realizar os clculos numa tabela que sumariza os resultados. A equao do mtodo de Euler para a E.D.O. y = y : yi +1 = yi + h. yi (a) h = 0,5
i 0 1 2 xi 1,0 1,5 2,0 yi 1,0 1,5 2,25 yi+1 1,5 2,25
(b) h = 0,25
i 0 1 2 3 4 xi 1,0 1,25 1,5 1,75 2,0 yi 1,0 1,25 1,5625 1,9531 2,4414 yi+1 1,25 1,5625 1,9531 2,4414
(c) A soluo analtica dada por: dy dy = y = dx ln y = x + C dx y Re-escrevendo a soluo analtica na forma y = f(x), resulta: y = Ce x A constante de integrao C calculada a partir da condio de contorno do problema: y (1) = 1 1 = Ce1 C = e 1
C.Y. Shigue
7-6
que, substituindo na soluo analtica geral, resultar na expresso: y = e x1 como soluo analtica particular do problema. Calculando-se a soluo exata em x = 2, obtm-se y(2) = e2-1 = e1 = 2,7183. Comparando-se o resultado exato com os resultados aproximados de (a) e (b), resulta: h = 0,5 h = 0,25 erro = 2,7183 2,25 = 0,47 erro = 2,7183 2,4414 = 0,28
o que corresponde a uma reduo de 1,7 vezes no erro quando o intervalo h reduzido pela metade.
Observar que, alm do clculo da derivada da funo y = y(x), este mtodo requer o clculo da sua derivada segunda tambm.
Mtodos de Runge-Kutta
Os Mtodos de Runge-Kutta consistem em mtodos de aproximao de 2a e 4a ordem. No caso do Mtodo de Runge-Kutta de 2a ordem, a expresso para o clculo aproximado de yi+1 equivalente do Mtodo de Euler Modificado, ou seja, y i +1 = yi + que pode ser reescrito na forma:
Clculo Numrico e Computacional C.Y. Shigue
h [ f ( xi , yi ) + f ( xi + h, yi +1 ] 2
7-7
h (k + k2 ) 2 1 k1 = f ( x i , yi ) k 2 = f ( xi + h, yi + hk1 ) y i +1 = yi + A frmula do Mtodo de Runge-Kutta de 4a ordem dada por: y i +1 = yi + k1 = k2 = k3 = k2 = h (k + 2k2 + 2k3 + k4 ) 6 1 f ( xi , y i ) f ( xi + h / 2, yi + hk1 / 2) f ( x i + h / 2, y i + hk 2 / 3) f ( xi + h, y i + hk 3 )
Exemplo 5
Seja a equao diferencial ordinria y y = 1 x, com a condio de contorno y(1) = -2, calcular a soluo numrica empregando o mtodo de Euler, o mtodo de Euler Modificado e o mtodo de Runge-Kutta de 4a ordem. Vamos verificar numericamente que a soluo pelo mtodo de Runge-Kutta de 2a ordem igual do mtodo de Euler Modificado. Sendo a soluo exata y(x) = Cex + x, vamos calcular a constante de integrao e, partir da soluo exata particular, determinar o erro para cada um dos mtodos numricos.
Soluo
Re-escrevendo a E.D.O. na forma cannica, y = y x + 1, vem que: f(x,y) = y x + 1 A condio de contorno, x0 = 1, y0 = -2 que, substituindo na soluo exata geral, y(x) = Cex + x, vem que C = -1,10364, de modo que a soluo exata particular da E.D.O. expressa como: y(x) = -1,10364ex + x (soluo exata)
1. Mtodo de Euler
C.Y. Shigue
7-8
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0
-5.46 -6.76 -8.35 -10.30 -12.68 -15.58 -19.09 -23.35 -28.50 -34.72 -42.22 -51.27 -62.16 -75.27 -91.04 -110.01
-6.15 -7.76 -9.77 -12.26 -15.35 -19.17 -23.88 -29.67 -36.79 -45.53 -56.26 -69.40 -85.49 -105.19 -129.30 -158.79
0.69 1.00 1.42 1.96 2.67 3.59 4.78 6.32 8.29 10.82 14.04 18.13 23.33 29.92 38.26 48.78
-6.46 -7.96 -9.75 -11.90 -14.48 -17.58 -21.29 -25.75 -31.10 -37.52 -45.22 -54.47 -65.56 -78.87 -94.84 -114.01
2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2
-6.76 -8.35 -10.30 -12.68 -15.58 -19.09 -23.35 -28.50 -34.72 -42.22 -51.27 -62.16 -75.27 -91.04 -110.01 -132.82
i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
xi 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0
yi -2.00 -2.46 -3.07 -3.85 -4.85 -6.11 -7.69 -9.67 -12.12 -15.16 -18.91 -23.53 -29.22 -36.19 -44.75 -55.23 -68.06 -83.75 -102.95 -126.41 -155.07
yexato -2.00 -2.46 -3.08 -3.87 -4.88 -6.15 -7.76 -9.77 -12.26 -15.35 -19.17 -23.88 -29.67 -36.79 -45.53 -56.26 -69.40 -85.49 -105.19 -129.30 -158.79
erro 0.00 0.00 0.01 0.02 0.03 0.05 0.07 0.10 0.14 0.19 0.25 0.34 0.45 0.60 0.79 1.03 1.34 1.74 2.25 2.90 3.72
y'(xi) -2.00 -2.66 -3.47 -4.45 -5.65 -7.11 -8.89 -11.07 -13.72 -16.96 -20.91 -25.73 -31.62 -38.79 -47.55 -58.23 -71.26 -87.15 -106.55 -130.21 -159.07
xi+1 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 5.2
y*i+1 -2.40 -2.99 -3.76 -4.74 -5.98 -7.53 -9.47 -11.88 -14.87 -18.55 -23.10 -28.68 -35.54 -43.95 -54.26 -66.87 -82.31 -101.18 -124.26 -152.45 -186.89
y'(xi+1) -2.60 -3.39 -4.36 -5.54 -6.98 -8.73 -10.87 -13.48 -16.67 -20.55 -25.30 -31.08 -38.14 -46.75 -57.26 -70.07 -85.71 -104.78 -128.06 -156.45 -191.09
y'm -2.30 -3.03 -3.91 -4.99 -6.31 -7.92 -9.88 -12.27 -15.20 -18.76 -23.11 -28.41 -34.88 -42.77 -52.40 -64.15 -78.48 -95.97 -117.30 -143.33 -175.08
yi+1 -2.46 -3.07 -3.85 -4.85 -6.11 -7.69 -9.67 -12.12 -15.16 -18.91 -23.53 -29.22 -36.19 -44.75 -55.23 -68.06 -83.75 -102.95 -126.41 -155.07 -190.09
C.Y. Shigue
7-9
C.Y. Shigue
7 - 10
10 11 12 13 14 15 16 17 18 19 20
3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0
-19.17 -23.87 -29.67 -36.79 -45.53 -56.25 -69.39 -85.49 -105.19 -129.30 -158.79
-19.17 -23.88 -29.67 -36.79 -45.53 -56.26 -69.40 -85.49 -105.19 -129.30 -158.79
0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.01
-21.17 -26.07 -32.07 -39.39 -48.33 -59.25 -72.59 -88.89 -108.79 -133.10 -162.79
-23.38 -28.78 -35.38 -43.43 -53.27 -65.28 -79.95 -97.88 -119.77 -146.51 -179.17
-23.61 -29.05 -35.71 -43.83 -53.76 -65.88 -80.69 -98.78 -120.87 -147.85 -180.80
-26.09 -32.08 -39.41 -48.36 -59.28 -72.63 -88.93 -108.84 -133.16 -162.87 -199.15
3.20 3.40 3.60 3.80 4.00 4.20 4.40 4.60 4.80 5.00 5.20
-23.87 -29.67 -36.79 -45.53 -56.25 -69.39 -85.49 -105.19 -129.30 -158.79 -194.85
Para comparao visual, o grfico contendo as solues numricas e a soluo exata est mostrado na Fig. 1 e os resultados numricos resumidos na Tabela seguinte. Tabela comparativa dos resultados numricos e exato.
x 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4 4.6 4.8 5.0 Euler -2.00 -2.40 -2.92 -3.58 -4.42 -5.46 -6.76 -8.35 -10.30 -12.68 -15.58 -19.09 -23.35 -28.50 -34.72 -42.22 -51.27 -62.16 -75.27 -91.04 -110.01 Euler Modificado -2.00 -2.46 -3.07 -3.85 -4.85 -6.11 -7.69 -9.67 -12.12 -15.16 -18.91 -23.53 -29.22 -36.19 -44.75 -55.23 -68.06 -83.75 -102.95 -126.41 -155.07 Runge-Kutta 4a ordem -2.00 -2.46 -3.08 -3.87 -4.88 -6.15 -7.76 -9.77 -12.26 -15.35 -19.17 -23.87 -29.67 -36.79 -45.53 -56.25 -69.39 -85.49 -105.19 -129.30 -158.79 Soluo exata -2.00 -2.46 -3.08 -3.87 -4.88 -6.15 -7.76 -9.77 -12.26 -15.35 -19.17 -23.88 -29.67 -36.79 -45.53 -56.26 -69.40 -85.49 -105.19 -129.30 -158.79
C.Y. Shigue
7 - 11
2.0 x
3.0
4.0
5.0
Exerccios propostos
1. Calcular a soluo das seguintes E.D.O. de 1o grau nos valores indicados, utilizando o mtodo de Euler e compare com a soluo exata partir da soluo analtica: (a) y + 2y = x2, y(0) = 0,25, y(2) h = 0,5 e h = 0,25 x2 x Soluo analtica: y = +C 2 2 (b) y + y = sen x, y(0) = -0,5, y(2) h = 1,0 e h = 0,5 Soluo analtica: y = C (sen x cos x) (c) y + 2y = x, y(0) = 1, y(3) h = 1 e h = 0,5 x 1 Soluo analtica: y = + Ce 2 x 2 4 (d) y y = 1 x, y(1) = -2, y(2) h = 0,5 e h = 0,2 Soluo analtica: y = Ce x x
C.Y. Shigue