Você está na página 1de 106

Introduo

Introduo ao Clculo Numrico e Computacional


Introduo
O Clculo Numrico consiste na obteno de solues aproximadas de problemas de lgebra Linear e No-Linear, Estatstica e Anlise de Dados, Clculo Diferencial e Integral e outros mtodos matemticos, utilizando mtodos numricos. Com a popularizao de computadores de baixo custo e de alta capacidade de processamento, praticamente todas as atividades de Engenharia tem feito uso cada vez mais intensivo dos mtodos e tcnicas computacionais na resoluo de problemas reais, para os quais as solues manuais so impraticveis e/ou imprecisas. Desta forma, o uso do computador como ferramenta de trabalho de clculo numrico requer o entendimento dos seus princpios de operao e de como eles interferem nos resultados obtidos. Geralmente, aceito como verdade que computadores no erram e que so os usurios que cometem enganos que levam ao mal funcionamento do computador. Na realidade, o computador, como dispositivo de clculo numrico, comete erros devido s suas caractersticas intrnsecas e o papel do usurio quantificar esses erros e encontrar formas de, se no eliminlos, pelo menos minimiz-los.

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

Clculo Numrico e Computacional

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.

Clculo Numrico e Computacional

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

Fig. 1.1 - Modelo hierrquico para um 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)

barramento interno MEMRIA INTERNA CACHE

ACESSO DIRETO (RAM)

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

Clculo Numrico e Computacional

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.

Clculo Numrico e Computacional

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

Fig. 1.5 - "Programando" o ENIAC.

Clculo Numrico e Computacional

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.

Clculo Numrico e Computacional

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

Clculo Numrico e Computacional

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

Clculo Numrico e Computacional

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.

Nveis de Linguagens de Programao


Existe apenas uma linguagem de programao que qualquer computador pode entender e executar: o seu cdigo de mquina nativo. Este o mais baixo nvel em que se pode escrever um programa de computador. Todas as outras linguagens de programao so chamadas de linguagens de alto nvel ou de baixo nvel em funo do seu grau de semelhana com a linguagem de mquina em termos de recurso e de sintaxe. Assim, uma linguagem de baixo nvel corresponde linguagem de mquina, de modo que uma instruo nessa linguagem corresponde a uma instruo em cdigo de mquina. J uma instruo em linguagem de alto nvel corresponde a uma srie de instrues em linguagem de mquina. Em termos gerais, o nmero de instrues em linguagem de mquina equivalente a uma instruo em linguagem de alto nvel denominada pontos de funo. As linguagens de baixo nvel tem a vantagem de poderem ser escritas com instrues que acessam diretamente s particularidades da arquitetura da unidade central de processamento (CPU) tornando, assim, o programa extremamente eficiente, otimizando o uso tanto da memria RAM como do processador em s. Entretanto, escrever um programa em linguagem de baixo nvel demanda um tempo significativamente maior e requer um conhecimento mais aprofundado das caractersticas internas do processador, alm do cdigo estar mais sujeito a falhas plea maior complexidade de programao. Portanto, programao em linguagem de baixo nvel utilizada em programas pequenos ou em segmentos de cdigo em linguagem de alto nvel para otimizar o desempenho de partes crticas do programa. As linguagens de alto nvel permitem o desenvolvimento rpido de programas. Em comparao com os programas escritos em linguagem de baixo nvel, o desempenho pode no ser to bom, mas a economia de tempo na programao supera a menor eficincia na execuo pelo fato do custo operacional mais elevado residir no desenvolvimento de software e no na upgrade do hardware. Como regra bsica, o custo para escrever um programa aproximadamente
Clculo Numrico e Computacional C.Y. Shigue

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.

Sistema de Numerao Decimal


O sistema de numerao decimal o sistema natural, adotado em todas operaes matemticas cotidianas. Este sistema de base 10, no qual todos os mltiplos e submltiplos so expressos como potncias de 10. Por exemplo, os seguintes nmeros decimais podem ser escritos como uma combinao linear de potncias de 10: 1537 = 1x103 + 5x102 + 3x101 + 7x100 36,189 = 3x101 + 6x100 + 1x10-1 + 8x10-2 + 9x10-3 6,032x1023 = 6x1023 + 0x1022 + 3x1021 + 2x1020 (1.1) (1.2) (1.3)

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.

Clculo Numrico e Computacional

C.Y. Shigue

Introduo

13

Sistema de Numerao Binrio


Atualmente, em que pese a nossa familiaridade com o sistema de numerao decimal, este tipo de representao numrica inadequado para a representao da informao em computadores digitais. Os computadores digitais operam basicamente com dois tipos de sinais de tenso: alto e baixo. Matematicamente, pode-se expressar estes valores por 0 (baixo) e 1 (alto). partir de um esquema de representao binria por valores de 0 e 1 podemos expressar qualquer quantidade numrica. Vejamos os seguintes exemplos de nmeros decimais representados como potncias de 2: 2,510 = 1x21 + 0x20 + 1x2-1 98,7510 = 1x26 + 1x25 + 0x24 + 0x23 + 0x22 + 1x21 + 0x20 + 1x2-1 + 1x2-2 (1.5) (1.6)

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.

Converso de Nmeros Decimal-Binrio


Para convertermos um nmero decimal para um nmero binrio devemos aplicar um mtodo para a parte inteira e outro para a parte fracionria. Para a parte inteira, aplicamos o mtodo das divises sucessivas, que consiste em se dividir o nmero decimal por 2, em seguida divide-se o quociente obtido por 2 e assim sucessivamente, at que o ltimo quociente encontrado seja 1. O nmero binrio inteiro ser, ento, formado pela concatenao do ltimo quociente com os restos das divises no sentido contrrio ao que foram obtidos. Por exemplo, vamos converter o nmero decimal 23:
23 1 2 11 1 2 5 1 2 2 0 2 1 23 = 10 10111 2

Clculo Numrico e Computacional

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

Representao Binria em Ponto Flutuante


Em computao digital, um dgito binrio denominado bit (do ingls, binary digit). Um grupo de oito bits corresponde a 1 byte. Nos computadores digitais, a representao dos nmeros binrios feita com um nmero finito de bits. A esse tamanho de bits dado o nome de palavra de computador. O tamanho da palavra de computador depende de caractersticas internas arquitetura do mesmo. Em geral, os microcomputadores padro PC tem o tamanho de palavra de

Clculo Numrico e Computacional

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

Preciso simples Dupla preciso

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:

Clculo Numrico e Computacional

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.

Tipos de Dados Numricos no Computador


Os tipos de dados numricos no computador representados na linguagem C so equivalentes aos tipos numricos de outras linguagens, como o FORTRAN, o BASIC e o Pascal. Tipo INTEIRO Representa os nmeros inteiros, empregando 1, 2 ou 4 bytes, de acordo com o tamanho do nmero que desejamos expressar. Tipo
short int long

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

Clculo Numrico e Computacional

C.Y. Shigue

Introduo

17

Aritmtica Computacional e Erros Computacionais


Quando realizamos clculo manualmente, os erros de arredondamento da calculadora so desprezveis, porque a quantidade de clculo que podemos operar pequeno. No computador, geralmente, a quantidade de operaes aritmticas que se pode realizar muito maior do que aquelas realizadas manualmente, de forma que o erro de arredondamento do dispositivo de clculo se torna importante. Outro problema que no clculo manual temos controle da propagao do erro porque, visualmente, estamos conferindo o resultado de cada operao aritmtica ao digit-lo na calculadora. No computador no temos como checar cada operao, tendo em vista a velocidade com elas so realizadas e tambm pela quantidade, que impossibilita a conferncia dos resultados das operaes aritmticas. Desta forma, a verificao dos resultados e o controle sobre a propagao de erros em programas de computador essencial para se atingir resultados consistentes e confiveis. As seguintes consideraes tem que ser levadas em conta ao se realizar clculos numricos no computador: A aritmtica computacional no a mesma coisa que a aritmtica base de lpis e papel. No clculo manual sempre possvel monitorar os resultados intermedirios e ajustar a preciso dos clculos. Na aritmtica computacional, cada nmero tem uma quantidade de algarismos fixas que muitas vezes podem ser inadequadas para o clculo repetitivo; O clculo manual usualmente realizado para um pequeno nmero de operaes aritmticas, enquanto que o clculo computacional pode envolver bilhes de operaes aritmticas. Assim, pequenos erros que poderiam passar despercebidos no clculo manual, podem arruinar completamente o resultado do clculo computacional, por causa da acumulao e propagao de erro. Impreciso intrnseca da representao binria em ponto flutuante Todo o nmero inteiro decimal pode ser representado exatamente por um nmero inteiro binrio; porm, isto no verdadeiro para nmeros fracionrios. Na realidade, todo o nmero decimal irracional tambm ser irracional no sistema binrio. No sistema binrio, apenas nmeros racionais que podem ser representados na forma p/q, no qual q uma potncia inteira de 2, podem ser expressos exatamente com um nmero de bits finito. Mesmo fraes decimais comuns, tal como o nmero decimal 0,0001 no podem ser representados exatamente em binrio (0,0001 uma frao binria repetitiva com perodo de 104 bits!). Um programa simples de soma de nmeros decimais fracionrios, como o seguinte:
void main() { int i; float soma = 0.; for(i=1;i<=10000;i++) soma = soma + .0001; printf("Soma = %10.7f", soma); }

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.

Clculo Numrico e Computacional

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

Clculo Numrico e Computacional

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%

Clculo Numrico e Computacional

C.Y. Shigue

ex = 1 + x +

x2 x3 + + 2! 3!

Introduo

20

Referncias Bibliogrficas Online


Bjarne Stroustrup FAQ (Frequently asked questions) http://www.research.att.com/~bs/bs_faq.html Tcl website http://dev.scriptics.com/doc/scripting.html Histria do Perl http://www.perl.org/press/history.html Python language http://www.python.org A histria do PHP e projetos relacionados http://www.php.net/manual/pt_BR/history.php Java http://java.sun.com/ Notao de nmeros em ponto flutuante IEEE Standard 754 http://research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html Desastres causados por erro de clculo numrico http://www.ima.umn.edu/~arnold/disasters/

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Funes por Sries de Potncias

2-1

Clculo de Funes por Sries de Potncias


O objetivo do clculo de funes por sries de potncias o de se obter expresses simples para a avaliao de funes com grau de complexidade maior. Alm disso, veremos que o desenvolvimento de funes por sries de Taylor forma o ncleo bsico de um curso de Clculo Numrico, de modo que o entendimento desse assunto indispensvel para o entendimento dos diversos mtodos numricos a serem abordados nos prximos captulos.

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

Clculo Numrico e Computacional

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

Clculo de Funes por Sries de Potncias

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(0) = e0 = 1 f '(0) = 1 f "(0) = 1

f (n)(x) = ex,

f (n)(0) = 1

Substituindo na equao geral da srie de Taylor, resulta: x2 x3 e = 1+ x+ + + 2 ! 3!


x

n=0

xn n!

Clculo Numrico e Computacional

(2.2)

C.Y. Shigue

Clculo de Funes por Sries de Potncias

2-3

Funo exponencial
80

60

40

e 2 termos 3 termos 4 termos 5 termos

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

f(0) = sen 0 = 0 f '(0) = cos 0 =1 f"(0) = 0 f '''(0) = 1 f(4) (0) = 0

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

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Funes por Sries de Potncias

2-4

Funo seno
2.0 1.5 1.0 0.5

y = f(x)

0.0 -0.5 -1.0 -1.5 -2.0 -10 -8 -6 -4 -2 0 2 4 6 8 10


sen x 2 termos 3 termos 4 termos 5 termos

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

f(0) = cos 0 = 1 f '(0) = sen 0 = 0 f"(0) = 1 f '''(0) = 0 f(4) (0) = 1

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

Clculo Numrico e Computacional

(2 n)!

C.Y. Shigue

Clculo de Funes por Sries de Potncias

2-5

Funo cosseno
2

y = f(x)

-1

cos x 2 termos 3 termos 4 termos 5 termos

-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

Clculo Numrico e Computacional

( x 1) n n

C.Y. Shigue

Clculo de Funes por Sries de Potncias

2-6

Funo logaritmo
1.0

0.5

0.0

y = f(x)

-0.5 ln x 2 termos 3 termos 4 termos 5 termos

-1.0

-1.5

-2.0 0.0 0.5 1.0 1.5 2.0

Fig. 2.4 - Grfico comparativo entre a funo ln x exata e a srie de Taylor aproximada com diferentes nmeros de termos da srie.

Teorema da convergncia para sries de potncias: Seja

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

Clculo de Funes por Sries de Potncias

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

Clculo Numrico e Computacional

1 1 1 n 2 = 1 + + 2 3 4

n =1

( 1) n 1 n

C.Y. Shigue

Clculo de Funes por Sries de Potncias

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 com preciso de cinco

casas decimais, seriam necessrios apenas 10 termos: ln 0,69315.

2 = 0,34657. ln 2 = 2(0,34657) =

Sries de Potncias com Resto


Seja a srie de potncias: f ( x 0 ) f ( x) = f ( x0 ) + f ( x0 )( x x0 ) + (x x0 )2 + 2!
Clculo Numrico e Computacional

n =0

f ( n) ( x 0 ) ( x x0 ) n n!
C.Y. Shigue

Clculo de Funes por Sries de Potncias

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)

{ }
}

Clculo de Funes por Sries de Potncias

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.

Derivao de Sries de Potncias


Seja y = f(x) uma funo expandida em uma srie de potncias. O operador linear derivada (ou diferenciao) pode ser aplicado com facilidade a uma srie de potncias devido associatividade da operao de derivao, i.e., a derivada de um somatrio igual ao somatrio das derivadas: dy d d n n anx = a x = na n xn 1 = dx dx dx n n= 0 n =1 n= 0

( )

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

x 2 n +1 (1) (2n + 1)!)


n

Disponveis em http://www.demar.faenquil.br/programas C.Y. Shigue

Clculo Numrico e Computacional

Clculo de Funes por Sries de Potncias

2-11

Mas, sabemos que x2 x 4 x 6 + + cos x = 1 2! 4! 6! =

n=0

x2 n ( 1) (2n)!)
n

de modo que

d (sen x) = cos x , verificado pela identidade entre as sries de potncias acima. dx

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.

Integrao de Sries de Potncias


A integrao de uma funo em srie de potncias pode ser feita termo a termo:

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.

Clculo Numrico e Computacional

= 1 ( x 1) + ( x 1) ( x 1) +
2 3

(1)
n =1

n 1

( x 1)

a n x n +1 = n +1

Derivando esta srie, resulta: d 1 d ( x 1) 2 ( x 1) 3 ( x 1) 4 + + (ln x) = ( x 1) dx x dx 2 3 4

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

Clculo de Funes por Sries de Potncias

2-12

Exemplo 15: Calcular

cos x. dx por Sries de Potncias.

x 2 x4 x6 + + cos x = 1 2! 4! 6! =

A srie de potncias de cos x expressa como:

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: =

Exemplo 17: Calcular

sen x dx com cinco casas decimais de preciso. x

Clculo Numrico e Computacional

sen x dx = x

x 2 x 4 x6 1 + + 3! 5! 7!

x 3 x5 x7 dx = x + + 3!3 5!5 7!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

Clculo de Funes por Sries de Potncias

2-13

1 0,055556 + 0,001667 0,000028 = 0,946083

Algumas Sries de MacLaurin (x0 = 0)


Frmula geral da srie de MacLaurin, que um caso particular da srie de Taylor quando x0 = 0: f ( 0) 2 f ( 0) 3 f ( x) = f ( 0) + f ( 0) x + x + x + 2! 3! 1. Srie geomtrica (1 x) 1 = 1 x + x 2 Funo seno =

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.

Funo cosseno hiperblico

Clculo Numrico e Computacional

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

sen x x3 x5 x 7 dx = x + + x 3!3 5!5 7!7

= 1

1 1 1 + + 3!3 5!5 7!7

Clculo de Funes por Sries de Potncias

2-14

7.

Funo seno hiperblico

8.

Srie binomial

9.

Funo logaritmo

12. Funo arco tangente

14. Funo composta ex.cos x

15.

Funo erro

Clculo Numrico e Computacional

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

13. Funo composta esen x x2 x 4 x5 + esen x = 1 + x + 2 8 15

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

11. Funo arco cosseno 1 x3 1 3 x5 1 3 5 x 7 + + + arc cos x = - arcsen x = x + 2 2 2 3 24 5 246 7

10. Funo arco seno 1 x3 1 3 x5 1 3 5 x 7 + + + arc sen x = x + 2 3 24 5 246 7

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

Clculo de Funes por Sries de Potncias

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.

3. Considere a srie geomtrica

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

Clculo de Funes por Sries de Potncias

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)

sen (ax) dx = cos (ax) + C , onde C uma constante


(h) cos2x + sen2x = 1 (i) sen 2x = 2 sen x.cos x =

(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

em uma srie de Taylor, a partir da srie de ex e

ex

/2

dx com preciso de cinco casas decimais.

ln x 7. Faa o grfico da funo f ( x) = e calcule x 1 com preciso de cinco casas decimais.

0,1

x 1 dx , utilizando sries de potncias


ln x

Clculo Numrico e Computacional

x 2 sen a x 3 cos a x 4 sen a + + (j) sen( x + a ) = sen a + x cos a 2! 3! 4!

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

Clculo de Razes de Funes

3-1

Clculo de Razes de Funes


Introduo
O clculo de razes de funes encontra uso na obteno da soluo de uma ampla gama de problemas de engenharia. Usualmente, a forma analtica de problemas matemticos y = f(x) requer o conhecimento dos valores da varivel independente x para os quais f(x) = 0. Por exemplo, considere a funo f(x) = ax2 + bx + c, que um polinmio de 2o grau com coeficientes a, b, e c e que possui duas razes. Essas razes podem ser determinadas pela conhecida frmula de Baskhara: b + b 2 4ac x1 = 2a e x2 = b b 2 4ac 2a

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:

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

3-2

Mtodo grfico Mtodos numricos

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.

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

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

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

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

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

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.

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

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.

Mtodo Iterativo de Newton-Raphson


O mtodo de Newton-Raphson um mtodo numrico iterativo para o clculo de raiz de uma funo f(x). A frmula para o clculo iterativo pode ser obtida atravs da aproximao de uma funo f(x1) em torno de um ponto x0 por uma srie de Taylor de 1o grau: f ( x1 ) f ( x0 ) + f ( x0 )( x1 x0 ) (3.4)

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)

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

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.

Dificuldades no Clculo de Razes pelo Mtodo de Newton-Raphson


O mtodo de Newton-Raphson apresenta dificuldades no clculo de razes de funes polinomiais que apresentam pontos de mnimos e/ou mximos na vizinhana da raiz, como mostrado na Fig. 3.5.

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

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

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

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

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

3-10

y y = f(x) f( x D)

Reta secante

xE

xN

xR

xD

f( xE )

Fig. 3.6 Grfico esquemtico para deduo do mtodo da secante.

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.

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

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

Clculo Numrico e Computacional

C.Y. Shigue

Clculo de Razes de Funes

3-12

para o qual x = 400 y 2 .

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:

Clculo Numrico e Computacional

V = Vc +

(P5.1)

C.Y. Shigue

Clculo de Razes de Funes

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.

Vlvulas de admisso e escape

Ponto morto alto (extremidade do pisto quando = 0o )

Cilindro d

Pisto

Clculo Numrico e Computacional

Ponto morto baixo (extremidade do pisto o quando = 180 )

Biela

Virabrequim

Fig. P2

C.Y. Shigue

Clculo de Razes de Funes

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

Clculo Numrico e Computacional

(P6.5)

C.Y. Shigue

Clculo de Razes de Funes

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)

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

4-1

Sistemas de Equaes Lineares


Definio
Um sistema de equaes lineares pode ser definido como um conjunto de n equaes com n variveis independentes entre si, na forma genrica, como: a11x1 + a12x2 + a13x3 + ... + a1nxn = b1 a21x1 + a22x2 + a23x3 + ... + a2nxn = b2 a31x1 + a32x2 + a33x3 + ... + a3nxn = b3 an1x1 + an2x2 + an3x3 + ... + annxn = bn na qual aij (i, j = 1, 2, 3, ..., n) so os coeficientes do sistema de equaes, xi (i = 1, 2, 3, ..., n) so as n incgnitas e bi (i = 1, 2, 3, ..., n) os termos independentes.

(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

a11 a12 a 21 a 22 [A] = a 31 a 32 a n1 a n 2


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)

Sistemas de Equaes Lineares

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.

Mtodo da Eliminao Gaussiana


Considere o sistema de equaes representado matricialmente por [A][x] = [b]. O Mtodo da Eliminao de Gauss consiste basicamente em transformar a matriz de A num sistema triangular equivalente, atravs da aplicao repetida de dois tipos de operaes: 1. Permutao entre duas linhas; 2. Subtrao de uma linha por outra multiplicada por uma constante. Essas operaes produzem sistemas equivalentes aos originais; enquanto a operao 2 no altera o determinante da matriz de coeficientes, a operao 1 apenas inverte o seu sinal. A anlise de propagao de erros de arredondamento indica a convenincia de todos os multiplicadores serem menores do que 1 em valor absoluto. A esse procedimento d-se o nome de pivoteamento. Descrio do algoritmo com pivoteamento Vamos considerar um sistema constitudo de quatro equaes e quatro incgnitas: a11x1 + a12x2 + a13x3 + a14x4 = b1 a21x1 + a22x2 + a23x3 + a24x4 = b2 a31x1 + a32x2 + a33x3 + a34x4 = b3 a41x1 + a42x2 + a43x3 + a44x4 = b4 Seja [A] a matriz de coeficientes, [A]+ a matriz aumentada pelos termos independentes e o sistema na forma matricial descrito por [A][x] = [b], no qual:

Clculo Numrico e Computacional

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

Sistemas de Equaes Lineares

4-3

a11 a12 a a [A] = 21 22 a 31 a 32 a 41 a 42

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)

3o Passo: Subtrair o produto do multiplicador pela 1a linha da 2a, da 3a e da 4a linha: 2a Linha


a a = a 21 m2 a 11 = a 21 21 a11 = 0 21 a11 a = a 22 m 2 a12 22 a = a 23 m2 a 13 23 a = a 24 m 2 a14 24 b = b 2 m 2 b1 2

(9) (10) (11) (12) (13) (14) (15) (16) (17)

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

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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

(19) (20) (21) (22) (23)

Aps estes passos, a matriz aumentada fica da seguinte foma:


a11 a12 0 a 22 [A]+ = 0 a 32 0 a 42 a 13 a 14 a 23 a 24 a a 33 34 a a 43 44 b1 b 2 b 3 b 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)

3o Passo: Subtrair o produto do multiplicador pela 2a linha da 3a e da 4a linha: 3a Linha:


a a = a m a = a 32 a = 0 32 32 3 22 32 22 a 22 a = a m a 33 33 3 23 a = a m a 34 34 3 24 b = b m b 3 3 3 2

(25) (26) (27) (28)

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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

(29) (30) (31) (32)

A matriz aumentada agora tem a forma:


a11 a12 + = 0 a 22 [A] 0 0 0 0 a 13 a 14 a 23 a 24 a a 33 34 a a 43 44 b1 b2 b 3 b 4

(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)

3o Passo: Subtrair o produto do multiplicador pela 3a linha da 4a linha: 4a Linha:

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

(35) (36) (37)

A matriz aumentada toma a forma final:


a11 a12 0 a 22 [A]+ = 0 0 0 0 a 13 a 14 a 23 a 24 a a 33 34 0 a 44 b1 b 2 b 3 b 4

(38)

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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:

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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.

Listagens dos programas de eliminao gaussiana com pivoteamento


FORTRAN
PROGRAM ELIMINA PARAMETER (NMAX = 50) REAL A(NMAX,NMAX+1), X(NMAX+1) WRITE(*,10) FORMAT(1X,'NUMERO DE EQUACOES : ') READ(*,*) NN DO 500 I = 1, NN DO 510 J = 1, NN+1 WRITE(*,50) I, J READ(*,*) A(I,J) CONTINUE CONTINUE LAST = NN - 1 DO 520 I = 1, LAST BIG = 0.0 DO 530 K = I, NN TERM = ABS(A(K,I)) IF ((TERM - BIG) .GT. 0.0) THEN BIG = TERM L = K END IF CONTINUE IF (BIG. EQ. 0.0) THEN WRITE(*,*) 'MATRIZ SINGULAR' STOP END IF IF (I .NE. L) THEN DO 540 J = 1, NN+1

10

510 500

530

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

4-8

540

560 550 520

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++) {

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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]); } }

Mtodo Iterativo de Gauss-Seidel


Em sistemas com muitas equaes simultneas e, particularmente, em sistemas malcondicionados, a propagao do erro de arredondamento pode destruir a exatido da soluo.

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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

(42) (43) (44) (45)


(k)

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:

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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)

Podemos escrever as seguintes equaes para o clculo iterativo de x e y:


x = (4 - 3y)/2 y = (1 + x) (e3) (e4)

tomando-se os valores iniciais x = 0 e y = 0, calculamos os seguintes valores:


x(1) = [4 - 3y(0)]/2 = [4 - (3)(0)]/2 = 2 y(1) = [1 + x(1)] = (1 + 2) = 3 x(1) = x(1) - x(0) = 2 - 0 = 2 y(1) = y(1) - y(0) = 3 - 0 = 3 x(2) = [4 - 3y(1)]/2 = [4 - (3)(3)]/2 = -2,5 y(2) = [1 + x(2)] = (1 - 2,5) = -1,5 x(2) = x(2) - x(1) = -2,5 - 2 = 4,5 y(2) = y(2) - y(1) = -1,5 - 3 = 4,5 x(3) = [4 - 3y(2)]/2 = [4 - (3)(-1,5)]/2 = 4,25 y(3) = [1 + x(3)] = (1 + 4,25) = 5,25 x(3) = x(3) - x(2) = 4,25 - (-2,5) = 6,75 y(3) = y(3) - y(2) = 5,25 - (-1,5) = 6,75

Montamos a tabela contendo alguns dos valores calculados:

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

412

Iterao 0 1 2 3 4 5

x 0 2 -2,5 4,25 -5,875 9,3125

x 2 4,5 6,75 10,125 15,1875

y 0 3 -1,5 5,25 -4,875 10,3125

y 3 4,5 6,75 10,125 15,1875

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)

Montamos a tabela contendo alguns dos valores calculados:


Iterao 0 1 2 3 4 5 6 7 x 0 -1 1 -0,33333 0,55556 -0,03704 0,35803 0,09465 y 0 2 0,66667 1,55556 0,96296 1,35803 1,09465 1,27023 x 1 2 1,33333 0,88889 0,59260 0,39507 0,26338 y 2 1,33333 0,88889 0,59260 0,39507 0,26338 0,17558
-5

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

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

413

(1)
3

(2)
-1

-2

-3

-2

-1

Fig.1 Representao grfica do Mtodo de Gauss-Seidel.

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)

= [b2 - a21x1 ]/a22

= x1 - x1 = x2 - x2

(k) (k)

(51) (52)

= - a12/a11.x2

(k-1)

(53)

Sistemas de Equaes Lineares

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

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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

de onde vem as equaes para o clculo iterativo de xi (i = 1, 2, 3 e 4):


x1 x2 x3 x4 = = = = (-3 - x2 - x3 + x4)/2 (15 - x1 - 8x3 - 4x4)/9 (10 + x1 - 3x2 - 2x4)/5 ( 2 - x2) .

cuja soluo, obtida aps 78 iteraes com clculo em preciso simples :

Clculo Numrico e Computacional

C.Y. Shigue

Sistemas de Equaes Lineares

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.

Listagens dos programas do mtodo iterativo de Gauss-Seidel


Os seguintes programas em FORTRAN e C realizam 80 iteraes, definida pela varivel MAX, bastando alter-la para aumentar (ou diminuir) o nmero de iteraes. FORTRAN
C C PROGRAMA PARA O CALCULO ITERATIVO DE UM SISTEMA DE EQUACOES METODO DE GAUSS-SEIDEL PROGRAM GSEIDEL MAX = 80 X1 = 0.0 X2 = 0.0 X3 = 0.0 X4 = 0.0 DO 10 I = 1, MAX X1 = (-3.0 - X2 - X3 + X4)/2.0 X2 = (15.0 - X1 - 8.0*X3 - 4.0*X4)/9.0 X3 = (10.0 + X1 - 3.0*X2 - 2.0*X4)/5.0 X4 = (2.0 - X2) CONTINUE WRITE(*,100) X1,X2,X3,X4 FORMAT(4F10.6) END

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); } }

Clculo Numrico e Computacional

C.Y. Shigue

Ajuste de curvas

5-1

Ajuste de Curvas Pelo Mtodo dos Mnimos Quadrados


Introduo
Seja um conjunto de dados contendo n pares de valores (x, y) obtidos numrica ou experimentalmente. De modo a calcular qualquer valor de y distinto dos valores tabelados, ajustamos uma funo y = f(x) atravs do chamado Mtodo dos Mnimos Quadrados. Considere uma equao relacionando a varivel y com a varivel independente x, como y = f ( x ) , onde y indica que este o valor aproximado de y. Queremos encontrar a funo y = f ( x ) , cujo desvio em relao aos valores y seja expresso como i = y i y i .
2 Por uma questo de convenincia trabalharemos com o desvio quadrtico i = (y i y i )2 . A funo y = f ( x ) que melhor ajusta os pontos (x, y) dados aquela que minimiza o somatrio dos desvios quadrticos S:

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)

Clculo Numrico e Computacional

C.Y. Shigue

Ajuste de curvas

5-2

Substituindo-se (1) na equao (3), resulta:


n n S 2 (y i y i )2 = i = a 0 a 0 a 0 i =1 i =1

Substituindo (2) na equao acima, resulta:


n n S 2 = (y i a 0 a1x i ) = 2 (y i a 0 a1x i )(1) = 0 a 0 a 0 i =1 i =1

de onde vem que:


n n na 0 + x i a1 = yi i =1 i =1

(5)

Analogamente, substituindo-se (1) e (2) em (4), resulta: n n n 2 xi a0 + x i a1 = x i yi i =1 i =1 i =1

(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)

Clculo Numrico e Computacional

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

xy 0 0,33 0,8475 1,4837 2,6612

SOMA = Resumindo:

0 1,44 6,25 13,69 21,38

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

4,8727 = 0,1584 30,76

a1 =

2,1422 = 0,0696 30,76

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:

Substituindo (9) na equao para a o somatrio do desvio quadrtico (1):

Clculo Numrico e Computacional

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:

Substituindo S em (10) e derivando, resulta: S = a 0 S = a 1 S = a 2

= 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

Clculo Numrico e Computacional

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=

(yi yi ) = (yi a 0 a1x a 2 x 2


n n 2

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)

Clculo Numrico e Computacional

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

xi2 x3 i xi4 xim +2

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

A soluo deste sistema de equaes obtida por inverso da matriz [A] :

Clculo Numrico e Computacional

C.Y. Shigue

Ajuste de curvas

5-7

a0 = -27,1891 e a equao ajustada expressa como:

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

0 0 20 40 60 80 100 Te mpe ratura (K)

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:

Clculo Numrico e Computacional

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:

Calculando as derivadas: S n = 2(y i a 0 a 1x1 a 2 x 2 a 0 i =1 S n = 2(y i a 0 a 1x1 a 2 x 2 a 1 i =1 S = 2(y i a 0 a1x1 a 2 x 2 a 2 i =1


n n S = 2(y i a 0 a 1x1 a 2 x 2 a m i =1

Resulta no sistema de equaes normais: n n na 0 + x1 a1 + x2 a 2 + i=1 i =1

Clculo Numrico e Computacional

n n n 2 x2 a 0 + x 2 x1 a 1 + x2 a2 + i=1 i =1 i=1

n n n 2 x1 a 0 + x1 a 1 + x1x 2 a 2 + 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

Clculo Numrico e Computacional

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 n xm a0 + x m x1 a 1 + xmx2 a2 + i=1 i=1 i =1

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

Vamos calcular na tabela seguinte os coeficientes do sistema de equaes normais.


y= nT 4,49981 4,60517 4,70048 4,787492 4,867534 SOMA = 23,46049

x1 = n p 0,874218 1,722588 2,417698 3,002708 3,506158 11,52337

x2 = n v 4,607168 3,799302 3,097837 2,43799 1,691018 15,63332

x1 0,764257 2,967309 5,845263 9,016255 12,29314 30,88623

x2 21,226 14,4347 9,596597 5,943794 2,859542 54,06063

x1x2 4,027669 6,544632 7,489635 7,320571 5,928976 31,31148

x1y 3,933814 7,932811 11,36434 14,37544 17,06634 54,67275

x2y 20,73138 17,49643 14,56132 11,67186 8,231088 72,69208

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

Clculo Numrico e Computacional

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)

(23) (24) (25) (26)

Se fizermos:

a 0 = na a1 = b A equao (21) poder ser re-escrita como: y = a 0 + a1x aj

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:

Clculo Numrico e Computacional

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:

y' = y A relao linearizada toma a forma:

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)

A relao linearizada toma a forma: y = a 0 + a1x aj (33)

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)

Como sempre, a relao linearizada tem a forma:

Clculo Numrico e Computacional

C.Y. Shigue

Ajuste de curvas

5 - 13

y = a 0 + a1x aj

(36)

Avaliao da Qualidade do Ajuste


Alm das funes de ajuste apresentadas neste texto, existem inmeras outras funes com as quais podemos ajustar um conjunto de dados pelo mtodo dos mnimos quadrados. A questo fundamental : qual a funo que representa o melhor ajuste entre todas as outras funes. Um mtodo pelo qual podemos avaliar a qualidade de um ajuste atravs do coeficiente de correlao de Pearson. O coeficiente de correlao de Pearson r2 pode ser calculado na forma mais geral como:

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

Clculo Numrico e Computacional

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 2 y x xy = (48,40)(57,58764) (22)(144,99387) = 8,3187 a0 = 2 (11)(48,40) (22) 2 n x 2 ( x)


a1 = n xy x y n x
2

( x)

(11)(144,99387) (22)(57,58764) (11)(48,40) (22) 2

= 6,7770

Clculo Numrico e Computacional

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

Substituindo em r2: r2 = 1 11 23,96394 11 527,52827 (57,58764) 2 = 0,894

Para verificao, vamos calcular o coeficiente de correlao pelo segundo mtodo: sx =

(x x m ) 2
n1 =

4 ,40 = 0,66332 10

sy = r = a1

(y y m ) 2
n 1

226,04314 = 4,75440 10

sx 0,66332 = ( 6,7770) = 0,95 r2 = 0,89 sy 4,75440

Clculo Numrico e Computacional

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.

(b) Ajuste exponencial y = ae bx Relaes para linearizao da funo exponencial:

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

x 2 y x xy = (48,4)(13,12519) (22)(33,47699) = 2,0916 a0 = 2 (11)(48, 40) (22) 2 n x 2 ( x )


a1 = n

xy x y = (11)(33,47699) (22)(13,12519) = 1,6424 2 (11)(48, 40) (22) 2 n x 2 ( x )


a = e a 0 = e 2,2867 = 0,12349 b = a1 = 1,6424

Assim,

de modo que a funo de ajuste exponencial tem a forma: y = 0,12349 e1,6424x

Clculo Numrico e Computacional

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

(c) Ajuste logaritmico


y = a + b. n x Relaes para linearizao da funo logaritmica: x = n x

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

x 2 y x xy = (5,761)(57,58764) (7,017)(51,88632) = 2,2867 a0 = 2 (11)(5,761) (7,017) 2 n x 2 ( x )


a1 = n

xy x y = (11)(51,88632) (7,017)(57,58764) = 11,7909 2 (11)(5,761) (7,017) 2 n x 2 ( x )


a = a 0 = 2,2867 b = a1 = 11,7909

Clculo Numrico e Computacional

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

(d) Ajuste potencial


y = ax b Relaes para linearizao da funo potencial:

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

x2 y x xy = (5,761)(13,12519) (7,017)(12,28698) = 0,7502 a0 = 2 (11)(5,761) (7,017) 2 n x 2 ( x )


a1 = n

xy x y = (11)(12,28698) (7,017)(13,12519) = 3,0463 2 (11)(5,761) (7,017) 2 n x 2 ( x )


a = e a 0 = e 0,7502 = 0,47227 b = a1 = 3,0463

Clculo Numrico e Computacional

C.Y. Shigue

Ajuste de curvas

5 - 19

y = 0, 47227 x 3,0463 r2 = 1 11 0,04480 11 27,62859 (13,12519) 2 = 0,996

O coeficiente de correlao do ajuste potencial o maior dentre todos os ajustes realizados at aqui, indicando ser esta a melhor funo de ajuste.

(e) Ajuste hiperblico


y=a+ b x

Relaes para linearizao da funo logaritmica: x = 1 x a0 = a y = a 0 + a 1x


x' = 1/x 1,000 0,833 0,714 0,625 0,556 0,500 0,455 0,417 0,385 0,357 0,333 6,174 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' 1,000 0,694 0,510 0,391 0,309 0,250 0,207 0,174 0,148 0,128 0,111 3,921
2

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

x 2 y x xy = (3,921)(57,58764) (6,174)(24,06659) = 15,4255 a0 = 2 (11)(3,921) (6,174) 2 n x 2 ( x )


a1 = n

xy x y = (11)(24,06659) (6,174)(57,58764) = 18,1543 2 (11)(3,921) (6,174) 2 n x 2 ( x )


C.Y. Shigue

Clculo Numrico e Computacional

Ajuste de curvas

5 - 20

a = a 0 = 15,4255 b = a1 = 18,1543 y = 15,4255 r2 = 1 18,1543 x = 0,663

11 76,12 11 527,52827 (57,58764) 2

(f) Comparao entre os valores fornecidos e os valores ajustados


Pelo clculo do coeficiente de correlao de Pearson, os melhores ajustes foram os obtidos pelas funes exponencial (r2 = 0,992) e potencial (r2 = 0,996). Atravs do clculo dos valores (x,y) usando as expresses obtidas pelas funes de ajuste, podemos comparar graficamente cada uma das funes de ajuste e verificar que os melhores ajustes calculados pelo coeficiente de correlao de Pearson correspondem s curvas que melhor representam o comportamento dos valores (x,y) do problema.

Tabela Comparao entre os valores de y fornecido e ajustados,


Dados fornecidos x 1,0 1,2 1,4 1,6 1,8 2,0 2,2 2,4 2,6 2,8 3,0 y 0,52500 0,84478 1,28068 1,86340 2,63260 3,63856 4,94400 6,62580 8,77679 11,50759 14,94844 Linear -1,54171 -0,18632 1,16907 2,52446 3,87985 5,23524 6,59063 7,94602 9,30141 10,65680 12,01219 Exponencial 0,63813 0,88627 1,23091 1,70956 2,37433 3,29761 4,57992 6,36086 8,83434 12,26965 17,04081 Dados ajustados Logaritmo -2,28673 -0,13699 1,68059 3,25505 4,64382 5,88612 7,00991 8,03586 8,97964 9,85344 10,66693 Potencial 0,47227 0,82301 1,31628 1,97702 2,83034 3,90150 5,21589 6,79900 8,67645 10,87395 13,41731 Hiperblico -2,72875 0,29697 2,45819 4,07911 5,33982 6,34839 7,17359 7,86125 8,44312 8,94186 9,37410

Clculo Numrico e Computacional

C.Y. Shigue

Ajuste de curvas

5 - 21

(g) Grfico dos pontos fornecidos e das curvas ajustadas


Grfico comparativo dos ajustes

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

Clculo Numrico e Computacional

C.Y. Shigue

Ajuste de curvas

5 - 22

3. Considere os seguintes valores numricos:


x y 0 3,8 0,5 2,8 0,8 2,5 1,2 1,3 1,8 0,4 2,0 -0,2 3,0 1,0

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

(c) y = a.sen x + b.cos x (f) y = a + bx

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

Clculo Numrico e Computacional

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)

por uma soma do tipo: I = f ( x )dx w i .f ( x i ).x


a i =1 b n

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

Regra dos Trapzios


A Regra dos Trapzios consiste em se aproximar o valor da funo contnua de f(x) no intervalo [a,b] por uma funo de primeira ordem; isto, geometricamente, equivalente a aproximar uma curva qualquer por uma reta, conforme mostra a Fig. 1. Desta forma, a rea sob a funo f(x), que equivalente integral dessa funo, aproximada pela rea do trapzio cuja largura igual a (b a) e a altura mdia igual a [f(a) + f(b)]/2.

y = f(x)

f(b)

reta

f(a)

Fig. 1 Grfico de uma funo aproximada por uma reta no intervalo [a,b].

Fazendo-se x = b a, a frmula para a integral pode ser escrita como:

f (x )dx 2 [f (a ) + f (b)]
h
a

(3)

O erro de truncamento eT pode ser expresso como:


h2 eT = ( b a ) M , onde: M = max{f ( )}, a b 12 (4)

Exemplo 1: Calcular

0 e

.dx empregando a regra dos trapzios.

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

h [f (0) + f (1)] = 1 e 0 + e1 = 1 (1 + 2,71828) = 1,85914 2 2 2

(b) Com dois intervalos, n = 2 e h = x = (b a)/n = (1 0)/2 = 0,5.

e x .dx

h [f (0) + 2f (0,5) + f (1)] = 0,5 e 0 + 2e 0,5 + e1 2 2 0,5 = (1 + 2.1,64872 + 2,71828) = 1,75393 2

(c) Com quatro intervalos, n = 4 e h = x = (b a)/n = (1 0)/4 = 0,25

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

A soluo exata vale

0 e

.dx = e1 e 0 = 2,71828 1 = 1,71828 . Calculando o erro para cada

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

.dx empregando a regra de Simpson 1/3.

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

h [ f ( 0 ) + 4 f ( 0,5 ) + f ( 1 )] = 0,5 e 0 + 4e 0,5 + e1 = 0,5 (1 + 4.1,64872 + 2,71828) 3 3 3 = 1,71886

(b) Com quatro intervalos, n = 4 e h = x = (b a)/n = (1 0)/4 = 0,25

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

A soluo exata vale

0 e

.dx = e1 e 0 = 2,71828 1 = 1,71828 . Calculando o erro para cada

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

sen x. dx . Mostre que o resultado obtido pela regra de Simpson com


0

h = 0,5 prximo ao resultado exato (dentro de aproximadamente uma parte em 3000). Explique qualitativamente porque a concordncia prxima obtida.

3. A integral elptica completa do primeiro tipo expresso por:


/2

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.

Deduza uma frmula de integrao para I =

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

Mostre que o erro de truncamento para a integral de Riemann dado por:

(b a) ET = y () h , onde a < < b 2

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

8. Considere os seguintes valores de uma funo:

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

f (x)dx , usando a regra dos trapzios e a regra de Simpson com:


1, 0

(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

Soluo Numrica de Equaes Diferenciais Ordinrias

7-1

Soluo Numrica de Equaes Diferenciais Ordinrias


Introduo
Diversos problemas tcnicos e cientficos so descritos matematicamente por equaes diferenciais que representam variaes das quantidades fsicas que os descrevem. Alguns exemplos de equaes diferenciais so: dC A (1) reao qumica de 1a ordem A B , descrita pela equao = kC A , na qual CA a dt concentrao do reagente A, k a constante da reao e t o tempo decorrido desde o incio da reao. (2) descarga de um circuito eltrico contendo uma resistor em srie com um capacitor, dQ C descrito pela equao V0 = R + , para a qual V0 a tenso contnua de alimentao dt Q do circuito, R a resistncia, C a capacitncia, Q a carga eltrica acumulada no capacitor e dQ i= a corrente do circuito. dt dT & (3) conduo de calor num material slido, descrito pela equao de Fourier q = kA , na dx & qual q o fluxo trmico, k a condutividade trmica, A a rea de seco transversal ao fluxo trmico, T a temperatura e x a coordenada espacial na direo do fluxo de calor. (4) pndulo simples, descrito pela equao d 2 dt 2 pelo pndulo em relao ao eixo vertical, g a acelerao da gravidade, l o comprimento do pndulo e t o tempo. = g sen , na qual o ngulo formado l

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)

Clculo Numrico e Computacional

C.Y. Shigue

Soluo Numrica de Equaes Diferenciais Ordinrias

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

ou para duas variveis y e t, na forma temporal como: y= & dy = f ( y, t ) dt (3)

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)

que pode ser integrada diretamente como: y=

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

Clculo Numrico e Computacional

C.Y. Shigue

Soluo Numrica de Equaes Diferenciais Ordinrias

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.

Matemtica Superior, E. Kreyszig, Livros Tcnicos e Cientficos, Rio de Janeiro,1969, p.69.

Clculo Numrico e Computacional

C.Y. Shigue

Soluo Numrica de Equaes Diferenciais Ordinrias

7-4

(a) h = 1 i=0 x1 = x0 + h = 0 + 1 = 1 y1 = y0 + h.x0 = 2 + 1.0 = 2 x2 = x1 + h = 1 + 1 = 2 y2 = y1 + h.x1 = 2 + 1.1 = 3

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

Soluo Numrica de Equaes Diferenciais Ordinrias

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

Clculo Numrico e Computacional

C.Y. Shigue

Soluo Numrica de Equaes Diferenciais Ordinrias

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.

Mtodo de Euler Estendido


Para reduzir o erro de truncamento do Mtodo de Euler, props-se a aproximao da soluo y(x) = y(x) por uma funo de 2a ordem, a partir da srie de Taylor, na forma: y i +1 h2 = y i + hf ( xi , yi ) + f ( xi , y i ) 2

Observar que, alm do clculo da derivada da funo y = y(x), este mtodo requer o clculo da sua derivada segunda tambm.

Mtodo de Euler Modificado ou Aperfeioado


Para evitar o clculo da derivada segunda, props-se o Mtodo de Euler Modificado, que consiste na correo do valor estimado y i+1 , tomando-se a derivada da funo y = y(x) em xi+1 e calculando-se a inclinao da reta de aproximao em xi como a mdia entre as inclinaes das retas tangentes em xi e xi+1. y i +1 = yi + h [ f ( xi , yi ) + f ( xi + h, yi +1 ] 2

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

Soluo Numrica de Equaes Diferenciais Ordinrias

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

h = 0.2 yi+1 = yi + h.f(xi,yi) = yi + h.(yi xi + 1)

Os resultados dos clculos esto apresentados na Tabela seguinte.


i 0 1 2 3 4 xi 1.0 1.2 1.4 1.6 1.8 yi -2.00 -2.40 -2.92 -3.58 -4.42 yexato -2.00 -2.46 -3.08 -3.87 -4.88 erro = |yi - yexato| 0.00 0.06 0.16 0.28 0.46 f(x i,yi) -2.00 -2.60 -3.32 -4.18 -5.22 xi+1 1.2 1.4 1.6 1.8 2.0 yi+1 -2.40 -2.92 -3.58 -4.42 -5.46

Clculo Numrico e Computacional

C.Y. Shigue

Soluo Numrica de Equaes Diferenciais Ordinrias

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

2. Mtodo de Euler Modificado y'(xi) = f(xi,yi)

h = 0.2 y'm = [y'(xi) + y'(xi+1)] / 2

y'(xi+1) = f(xi+1,y*i+1) yi+1 = yi + h.ym

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

Clculo Numrico e Computacional

C.Y. Shigue

Soluo Numrica de Equaes Diferenciais Ordinrias

7-9

3. Mtodo de Runge-Kutta de 2a ordem k1 = f(xi,yi)

h = 0.2 k2 = f(xi + h,yi + hk1)

yi+1 = yi + h/2.(k1 + k2)


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 yexato -2.00 -2.00 -2.46 -2.46 -3.07 -3.08 -3.85 -3.87 -4.85 -4.88 -6.11 -6.15 -7.69 -7.76 -9.67 -9.77 -12.12 -12.26 -15.16 -15.35 -18.91 -19.17 -23.53 -23.88 -29.22 -29.67 -36.19 -36.79 -44.75 -45.53 -55.23 -56.26 -68.06 -69.40 -83.75 -85.49 -102.95 -105.19 -126.41 -129.30 -155.07 -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 k1 -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 k2 -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 xi+1 1.20 1.40 1.60 1.80 2.00 2.20 2.40 2.60 2.80 3.00 3.20 3.40 3.60 3.80 4.00 4.20 4.40 4.60 4.80 5.00 5.20 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

4. Mtodo de Runge-Kutta de 4a ordem k1 = f(xi,yi) k3 = f(xi + h/2,yi + hk2/2)

h = 0.2 k2 = f(xi + h/2,yi + hk1/2) k4 = f(xi + h,yi + hk3)

yi+1 = yi + h/6.(k1 + 2k2 + 2k3 + k4)


i 0 1 2 3 4 5 6 7 8 9 xi 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 yi -2.00 -2.46 -3.08 -3.87 -4.88 -6.15 -7.76 -9.77 -12.26 -15.35 yexato -2.00 -2.46 -3.08 -3.87 -4.88 -6.15 -7.76 -9.77 -12.26 -15.35 erro 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 k1 -2.00 -2.66 -3.48 -4.47 -5.68 -7.15 -8.96 -11.17 -13.86 -17.15 k2 -2.30 -3.03 -3.92 -5.01 -6.34 -7.97 -9.96 -12.38 -15.34 -18.96 k3 -2.33 -3.07 -3.97 -5.07 -6.41 -8.05 -10.06 -12.50 -15.49 -19.14 k4 -2.67 -3.48 -4.47 -5.68 -7.16 -8.97 -11.17 -13.87 -17.16 -21.18 xi+1 1.20 1.40 1.60 1.80 2.00 2.20 2.40 2.60 2.80 3.00 yi+1 -2.46 -3.08 -3.87 -4.88 -6.15 -7.76 -9.77 -12.26 -15.35 -19.17

Clculo Numrico e Computacional

C.Y. Shigue

Soluo Numrica de Equaes Diferenciais Ordinrias

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

Clculo Numrico e Computacional

C.Y. Shigue

Soluo Numrica de Equaes Diferenciais Ordinrias

7 - 11

0 -20 -40 -60 y(x) -80


Euler Euler Mod. Runge-Kutta Exato

-100 -120 -140 -160 0.0 1.0

2.0 x

3.0

4.0

5.0

Fig. 1 Grfico com as solues numricas e exata da E.D.O. y y = x 1.

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

Clculo Numrico e Computacional

C.Y. Shigue

Você também pode gostar