Prévia do material em texto
Cálculo Numérico M A R I N A V A R G A S M ARINA VARGAS Cálculo N um érico Código Logístico 59850 ISBN 978-65-5821-174-7 9 786558 211747 Cálculo Numérico Marina Vargas IESDE BRASIL 2022 © 2022 – IESDE BRASIL S/A. É proibida a reprodução, mesmo parcial, por qualquer processo, sem autorização por escrito da autora e do detentor dos direitos autorais. Projeto de capa: IESDE BRASIL S/A. Imagem da capa: Todos os direitos reservados. IESDE BRASIL S/A. Al. Dr. Carlos de Carvalho, 1.482. CEP: 80730-200 Batel – Curitiba – PR 0800 708 88 88 – www.iesde.com.br Marina Vargas Doutora e mestre em Métodos Numéricos em Engenharia pela Universidade Federal do Paraná (UFPR). Especialista em Educação Matemática pela Universidade Paranaense (Unipar). Licenciada em Matemática pela Unipar. Atua na área de Programação Matemática e Mecânica Computacional. Professora no Ensino Superior nas modalidades presencial e a distância, ministra as disciplinas: Cálculo de funções de uma e mais variáveis, Álgebra Linear, Geometria Analítica, Métodos Numéricos, Teoria dos Números, Pesquisa Operacional, Matemática, Estatística Aplicada e Métodos Quantitativos. Atua, também, como professora conteudista em diversas instituições e empresas. Atualmente, desenvolve pesquisa na área de educação matemática e educação em engenharias. SUMÁRIO 1 Erros numéricos 9 1.1 Sistemas de numeração 9 1.2 Representação numérica e mudança de base 13 1.3 Tipos de erros 19 2 Sistemas de equações lineares 26 2.1 Eliminação gaussiana 27 2.2 Sistemas triangulares 34 2.3 Métodos de fatoração 37 2.4 Condicionamento de sistemas lineares 47 2.5 Métodos iterativos para sistemas lineares 52 3 Zeros de funções reais 63 3.1 Existência e unicidade 63 3.2 Método da bissecção 65 3.3 Iteração de ponto fixo 68 3.4 Newton-Raphson 74 3.5 Método das secantes 80 4 Interpolação e ajuste de curvas 84 4.1 Interpolação polinomial 84 4.2 Interpolação de Lagrange 86 4.3 Interpolação de Newton 94 4.4 Aproximação por mínimos quadrados 100 5 Integração numérica 110 5.1 Integração numérica 110 5.2 Regras de Newton-Cotes 113 5.3 Regra do trapézio 113 5.4 Regra de Simpson 119 5.5 Caso geral 122 5.6 Regras de quadratura gaussiana 125 6 Solução numérica para equações diferenciais ordinárias 131 6.1 Métodos de passos simples 132 6.2 Métodos lineares de passos múltiplos 154 6.3 Métodos do tipo preditor-corretor 164 6.4 Sistemas de equações diferenciais 166 Resolução das atividades 173 Agora é possível acessar os vídeos do livro por meio de QR codes (códigos de barras) presentes no início de cada seção de capítulo. Acesse os vídeos automaticamente, direcionando a câmera fotográ�ca de seu smartphone ou tablet para o QR code. Em alguns dispositivos é necessário ter instalado um leitor de QR code, que pode ser adquirido gratuitamente em lojas de aplicativos. Vídeos em QR code! APRESENTAÇÃOVídeo Este livro discute o desenvolvimento e a aplicação de métodos numéricos para a obtenção de soluções de problemas que envolvem matrizes, equações diferenciais, sistemas de equações, ajuste de curvas, integração, zeros de função, entre outros aspectos. Ao falarmos em cálculo numérico ou métodos numéricos, estamos avaliando espaços discretizados, divididos em partes menores, para uma determinada função, um determinado problema ou um modelo. A escolha de uma abordagem numérica é feita apoiando-se na análise do modelo matemático a ser resolvido. O cálculo numérico objetiva encontrar soluções aproximadas para um modelo matemático, de modo que os erros associados a essas aproximações sejam aceitáveis. Com base nessa proposta, no primeiro capítulo, estudaremos os sistemas de numeração e a conversão entre eles, permitindo que os cálculos matemáticos na base decimal possam ser avaliados a partir da utilização de computadores que realizam seus cálculos em base binária. Inclusive, é no primeiro capítulo que diferenciaremos os tipos de erros numéricos e as suas formas de propagação. No segundo capítulo, trataremos dos sistemas de equações descritos e resolvidos por meio de métodos diretos e iterativos. Nesse contexto, desenvolveremos técnicas as quais nos permitem obter as soluções para esses sistemas. Além disso, apresentaremos diferentes abordagens para a decomposição (fatoração) de um sistema de equações e as respectivas maneiras de como resolvê-lo. Também explicitaremos o conceito de condicionamento de um sistema linear que nos possibilita analisar a estabilidade da solução. Por fim, discutiremos sobre as técnicas iterativas, sobretudo, os métodos de Jacobi e de Gauss-Seidel. Explicitaremos, no terceiro capítulo, alguns dos métodos mais conhecidos na área de solução numérica para obtenção de zeros de funções, entre eles, o método da bissecção e de Newton-Raphson. Em geral, métodos numéricos aplicados para encontrar zeros de funções são necessários quando a solução analítica não pode ser determinada, e isso é adequado para o desenvolvimento de um método numérico, permitindo, com isso, a aproximação para essa solução. No quarto capítulo, proporemos a aplicação do cálculo numérico para interpolação de pontos e aproximação de funções. As técnicas de aproximação de curvas e de interpolação nos permitem traçar estimativas para problemas em que não conhecemos a função (ou lei) que os rege. No quinto capítulo, trataremos dos métodos de integração numérica para casos em que o domínio foi igualmente espaçado, a partir dos métodos de Newton-Cotes, e para casos nos quais o domínio pode ser discretizado em pontos com espaçamento variável, chamados de quadraturas gaussianas. A 8 Cálculo Numérico escolha por um ou pelo outro dependerá das condições e restrições do modelo matemático e físico a ser resolvido. Por fim, no último capítulo, abordaremos as equações diferenciais resolvidas a partir de estratégias numéricas. Entre as técnicas que apresentaremos, há os métodos de passo simples, como o de Euler e o de Runge-Kutta. Já entre os métodos de passos múltiplos, destacaremos os métodos de Adams. Além disso, traremos o acoplamento de métodos em uma proposta conhecida como métodos de predição e correção. Finalizaremos este livro com o estudo de equações diferenciais de alta ordem, sendo elas tratadas como sistemas de equações de ordem um. Dessa maneira, os métodos numéricos apresentados nas primeiras seções do capítulo também são aplicados nesse contexto. Esperamos que, após essa teoria, você tenha motivação para pesquisar cada vez mais e avançar com os estudos referentes ao cálculo numérico e, com isso, expandir, também, as possibilidades de aplicações computacionais de métodos matemáticos que permitem modelar fenômenos físicos que nos rodeiam. Bons estudos! Erros numéricos 9 1 Erros numéricos Ao trabalharmos com cálculo numérico ou métodos numéricos, estamos avaliando espaços discretizados, divididos em partes menores, para uma determinada função (problema ou modelo) e, ao discretizarmos domínios contínuos, automaticamente car- regamos erros. Não são somente esses erros que precisam ser avaliados. Como os modelos nu- méricos são resolvidos por ferramentas computacionais, também é necessário ava- liarmos os erros de arredondamento e de truncamento, quando eles existirem. Além desses, também podemos citar erros de simplificação do modelo, erros de modela- gem matemática, entre outros. Toda essa avaliação faz parte de um bom modelo numérico, mas antes de entrar- mos nos tipos de erros, precisamos entender qual é nosso espaço de cálculo e, para isso, é fundamental conhecermos os sistemas de numeração e a conversão entre eles, pois a ferramenta computacional não faz cálculos na mesma base decimal que esta- mos acostumados a formular os nossos problemas. Dessa forma, neste capítulo estudaremos essas conversões com o objetivo de avaliar qual é o processo de cálculo computacional e comopodemos estruturar os métodos numéricos visando a uma menor propagação de erros. Com o estudo deste capítulo, você será capaz de: • familiarizar-se com os sistemas de numeração e mudança de base entre eles; • explorar o conceito de arredondamento numérico; • reconhecer os diferentes tipos de erros numéricos; • distinguir e calcular erros numéricos em operações elementares; • identificar erros numéricos ditos catastróficos que levam a erros na interpreta- ção de resultados. Objetivos de aprendizagem 1.1 Sistemas de numeração Vídeo Um dos sistemas de numeração mais antigos foi encontrado na antiga Tchecos- lováquia, em pesquisas arqueológicas no ano de 1937, e datam de aproximada- mente entre 35.000 a.C. e 20.000 a.C. Basicamente, os pesquisadores encontraram um osso (tíbia) de lobo jovem com marcações unitárias por meio de traços (cortes transversais), no seguinte formato: I II III IIII. Ao todo eram 57 traços, sendo os 25 primeiros agrupados de 5 em 5. Essa des- coberta mostra-nos a necessidade da contagem e possibilita-nos discutir sobre os sistemas de numeração. A categoria de contagem que observarmos nesse estudo 10 Cálculo Numérico é dita aditiva, em que, para termos o próximo número, basta acrescentarmos uma marcação: (|). Além disso, o sistema de numeração foi composto por apenas um símbolo, sendo chamado de sistema de numeração de base 1. Em Alice através do espelho, segundo volume da obra Aventuras de Alice no país das maravilhas e através do espelho e o que Alice encontrou por lá, escrita pelo ma- temático Lewis Carroll (1865) e traduzida para muitos idiomas – inclusive para o português –, traz um diálogo entre a Rainha Branca e Alice, que demonstra a dificul- dade que teríamos se o sistema de numeração de base 1 fosse adotado atualmen- te. Alice fala à rainha que aulas servem para nos ensinar a fazer contas e a rainha lhe pergunta: “E sabe Adição? Quanto é um mais um mais um mais um mais um mais um mais um mais um mais um mais um?” e Alice lhe responde “Não sei. Perdi a conta” (CARROLL, 2013, p. 186). Na história da matemática, identificamos diversas civilizações que adotaram sis- temas ditos aditivos, mas como exatamente e algebricamente podemos definir um sistema aditivo? Vamos assumir que b é um número natural, tal que determinado sistema aditivo está escrito na base b. Assim, temos duas condições que precisam ser respeitadas: 1. O sistema deverá ter b símbolos para sua representação numérica, ou seja, teremos a1, a2, ..., ab símbolos para representar os números de um até b. Esses números deverão ser representados em ordem crescente. 2. Deve-se obedecer à regra do sucessor, que implica assumir que se um número termina em ai, com i ≠ b, então a representação de seu sucessor será obtida por meio da substituição de ai por ai+1. Caso a representação de um número termine em ab, seu sucessor será obtido acrescentando a1 à representação dada. Entre alguns dos sistemas aditivos mais importantes na história, encontramos o sistema hieroglífico (Figura 1), desenvolvido pelos egípcios por volta de 3.400 a.C., e o sistema de numeração da Antiga Grécia, por volta do século IV a.C. Figura 1 Sistema numeral egípcio Sistema numeral de hieróglifos egípcios Sistema numeral hierático egípcio 1000000 9 90 900 9000 7 70 700 7000 5 50 500 5000 3 30 300 3000 8 80 800 8000 6 60 600 6000 4 40 400 4000 2 20 200 2000 1 10 100 1000 1000010 100000100 10001 Si dh e/ Sh ut te rs to ck Caso tenha se interessado pelas obras de Carroll e queira saber um pouco mais sobre esse assunto, sugerimos o texto Lewis Carroll e a matemática do País das Maravilhas, publicado pelo Instituto de Matemática Pura e Aplicada (IMPA) . Disponível em: https://impa. br/noticias/lewis-carroll-e- a-matematica-do-pais-das- maravilhas/. Acesso em: 18 jul. 2022. Leitura https://impa.br/noticias/lewis-carroll-e-a-matematica-do-pais-das-maravilhas/ https://impa.br/noticias/lewis-carroll-e-a-matematica-do-pais-das-maravilhas/ https://impa.br/noticias/lewis-carroll-e-a-matematica-do-pais-das-maravilhas/ https://impa.br/noticias/lewis-carroll-e-a-matematica-do-pais-das-maravilhas/ Erros numéricos 11 Foi com o sistema chamado posicional que a matemática começou a se desen- volver com maior rapidez. Não existe um consenso de qual civilização idealizou por primeiro o que cha- mamos de sistema de numeração posicional, no qual se encontra o nosso sistema posicional de base decimal e sistema binário computacional, mas o que sabemos é que para esse tipo de construção foi necessário o desenvolvimento lógico da ideia de agrupamentos entre os números. Nesse contexto histórico, foi identificado que os hindus praticaram o sistema posicional decimal e tiveram a preocupação em construir uma representação visual desse sistema que pudesse ser transferida de maneira escrita. No entanto, foram os árabes que divulgaram pelo Ocidente esse sistema de numeração, por isso ele é denominado de sistema indo-arábico. Figura 2 Evolução do sistema posicional decimal Hindu (300 a.C) Hindu (500 d.C) Árabe (900 d.C) Árabe Ocidental (1000 d.C) Italiano (1400 d.C) Atual Fonte: Elaborada pela autora. Um sistema de numeração posicional é aquele em que a posição na qual o alga- rismo se encontra modifica o seu valor, ou seja, no caso do sistema posicional de base decimal (o sistema que usamos), se o algarismo 1 estiver na posição (casa) da unidade, ele vale 1 unidade. Se esse mesmo algarismo estiver na posição (casa) da dezena, ele vale 10 unidades. Se estiver na posição (casa) da centena, ele vale 100 unidades e assim sucessivamente. A Tabela 1 apresenta alguns exemplos com diferentes posicionamentos para o algarismo 1, usando o sistema numérico posicional decimal. Tabela 1 Posição do algarismo 1 em relação ao valor numérico obtido Classes Milhões Milhares Unidades Simples Ordens c d u c d u c d u 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 Fonte: Elaborada pela autora. 12 Cálculo Numérico Um sistema de numeração posicional pode ser definido algebricamente, assim como fazemos para os sistemas aditivos. Vamos assumir que b é um número na- tural, tal que determinado sistema aditivo está escrito na base b. Assim, temos três condições que precisam ser respeitadas: 1. Se o número a ser representado tem como unidade um dos algarismos que representam 0, 1, ..., (b – 2), então ele terá um sucessor substituindo-se esse algarismo por seu sucessor, apresentado na ordem crescente, que será (b – 1). 2. Se o número a ser representado tem como unidade o algarismo que representa (b – 1), então ele já é o último algarismo dessa base. Nesse caso a representação do sucessor será obtida substituindo-se esse algarismo por zero e, em seguida, aplicando-se recorrentemente os itens 1 e 2 dessa regra à casa seguinte. 3. Se a casa seguinte for vazia, considera-se como se ela tivesse o valor zero. Hoje em dia, o sistema de numeração posicional de base dez (sistema indo-arábico), em que a posição do algarismo indica a potência de 10 que o dígito representa, é usado em todo o mundo e utilizado de maneira tão intuitiva – como uma criança pequena que usa os dedos para contar – que é difícil imaginarmos qualquer tipo de construção numérica sem essa formatação. O Exemplo 1 apresenta como decompomos um número no sistema posicional decimal, a partir da representação geral enunciada. Exemplo 1 x = (1957)10 = 1 · 10 3 + 9 · 10 2 + 5 · 101 + 7 · 100 Notemos que, com esse formato, fica evidente o uso da chamada base decimal. Essa formatação será adotada para a escrita das próximas bases que estudaremos nesta obra. Não queremos somente conceituar e identificar as características para o siste- ma posicional decimal, mas para outros sistemas posicionais que são usados na matemática e na computação, permitindo, assim, uma visão do cálculo numérico envolvido nesse processo de escrita de números em diferentes bases. Definição 1 Dado um número natural com b > 1 e o conjuntode símbolos {±, 0, 1, 2, ..., b – 1}, temos a sequência de símbolos: (dndn–1 ... d1d0, d–1 d–2 ...)b Essa sequência representa o número positivo: dn · b n + dn–1 ·b n–1 + ... + d0 · b 0 + d–1 · b –1 + d–2 · b –2 + … Para representarmos números negativos usamos o sinal de menos à esquerda do numeral. Conforme exemplificamos a seguir. Exemplo 2 x = (1957,897)10 x = 1 · 103 + 9 · 102 + 5 · 101 + 7 · 100 + 8 · 10–1 + 9 · 10–2 + 7 · 10–3 x = 1000 + 900 + 50 + 7 + 0,8 + 0,09 + 0,007 Erros numéricos 13 Portanto, percebemos que além da escolha do sistema de numeração (aditivo ou posicional), há muitas representações distintas com relação à quantidade de algarismos envolvidos em cada um desses modelos (bases adotadas). O nosso próximo foco está nos sistemas posicionais mais utilizados pela mate- mática moderna e pela matemática computacional. 1.2 Representação numérica e mudança de base Vídeo Entender a representação numérica do sistema escolhido não só possibilita a nossa compreensão quanto a ela, mas viabiliza realizarmos operações com o tipo de numeração escolhido, além de permitir-nos verificar possíveis erros cometidos nos cálculos. Como nosso foco é trabalhar com a matemática para a computação, dedicare- mos essa seção à representação numérica implícita às máquinas digitais eletrôni- cas, ou seja, aos computadores. Assim, o primeiro sistema que discutiremos é aquele chamado de sistema de numeração posicional de base dois ou base binária. 1.2.1 Sistemas binário, quaternário e hexadecimal Quando pensamos em um sistema de numeração que nos permite realizar ope- rações no computador, a base utilizada é a base dois. Seu uso está diretamente vinculado ao desenvolvimento das máquinas digitais. Durante muitos séculos creditou-se a Gottfried Wilhelm Leibniz (1646–1716) a idealização da base binária. Contudo, pesquisas recentes demonstram que em uma pequena ilha da Poliné- sia, séculos antes da idealização de Leibniz, o povoado de Mangareva já utilizava a base binária para realizar cálculos que permitiam a comercialização de seus produtos. Javier Sampedro, autor do texto Um sistema binário inventado na Polinésia séculos antes de Leibniz, publicado no Jornal El País, em 2013, analisa a pesquisa dos cien- tistas noruegueses, Andrea Bender e Sieghard Beller, do departamento de Ciência Psicossocial da Universidade de Bergen, na Noruega. Sampedro (2013) descreve que os pesquisadores: mostram agora como os habitantes da Mangareva não só inventaram o sistema para contar peixes, frutas, cocos, polvos e outros bens de dife- rente valor em suas transações comerciais, como também que isso con- duziu a uma aritmética binária que teria merecido a aprovação do Leibniz por sua simplicidade e naturalidade. Para saber mais sobre Leibniz e a relação desse matemático com a base da computação, sugeri- mos a leitura de Leibniz e nosso mundo digital, texto publicado pela Revista do Professor de Matemática (RPM). Disponível em: https://www.rpm.org. br/cdrpm/84/1.html. Acesso em: 20 maio 2021. Leitura Figura 3 Gottfried Wilhelm Leibniz Leibniz foi um notório filósofo alemão, sendo uma figura renomada na história tanto da matemática quanto da filosofia. Seu reconhecimento é dado, principalmente, pelas suas contribuições com o cálculo diferencial e integral. Ni ck u/ Sh ut te rs to ck https://www.rpm.org.br/cdrpm/84/1.html https://www.rpm.org.br/cdrpm/84/1.html 14 Cálculo Numérico Dos fatos históricos, sabemos que a base binária foi deixada de lado até mesmo por Leibniz, e somente séculos após sua morte ela foi redescoberta pelo mate- mático George Boole (1841a, 1841b, 1842), que desenvolveu a chamada álgebra booleana e permitiu o desenvolvimento do computador digital eletrônico, impres- cindível para o desenvolvimento em praticamente todas as áreas do conhecimento na atualidade. O computador lida com grandezas representadas como sequências de bits (de base 2). Quando precisamos transcrever um método matemático para um método nu- mérico, ou seja, para a matemática computacional, em primeiro lugar precisamos compreender como um computador manipula as informações; no nosso caso, elas são numéricas e simbólicas. Toda informação manipulada por um computador é representada como uma sequência de bits (binary digits). Ao agruparmos 8 bits temos 1 byte, os quais agrupados (Figura 5) darão origem aos kilobytes, megabytes, gigaby- tes, terabytes, entre outros, nomes comumente usados na computação e no nosso cotidiano. Figura 5 Unidades de medida de informação eletrônica 1 byte = 8 bits 1 KB = 8192 bits 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB 1 TB = 1024 GB Célula de memória de 8 bits 0 1 0 1 1 0 1 0 KB – kilobyte MB – megabyte GB – gigabyte TB – terabyte Sistema binário Um bit aceita duas respostas possíveis: 0 – não, falso, desligado; 1 – sim, verdadeiro, ligado. Na área eletrônica, interpretamos isso como passagem de energia (Sim) ou sem pas- sagem de energia (Não). Essa leitura do código binário é feita milhares de vezes. Esse tipo de representação, também cha- mado de representação binária, matematica- mente pode ser traduzido como um sistema de numeração na base dois. Figura 4 George Boole George Boole, além de matemático, também foi filósofo, com contribuições indispensáveis para o desenvolvimento da computação moderna. Ser ge ipr ive t/W iki m ed ia C om m on s Sugerimos a leitura integral do texto Um sistema binário inventado na Polinésia sécu- los antes de Leibniz, do autor Javier Sampedro, veiculado no jornal El País. Disponível em: https://brasil. elpais.com/brasil/2013/12/16/ sociedad/1387215405_275511.html. Acesso em: 16 ago. 2021. Leitura fli gh t o f i m ag in at io n/ Sh ut te rs to ck Figura 6 Representação 0 ou 1 em um interruptor Para conhecer mais sobre a relação entre bits e bytes e a sucessão de agrupa- mentos, sugerimos a leitura da matéria Qual a diferença entre kilobyte, megabyte, gi- gabyte e terabyte?, publicada no site da Copel Telecom. Disponível em: https://www. copeltelecom.com/site/blog/kilobyte- megabyte-gigabyte-terabyte/. Acesso em: 20 maio 2021. Leitura https://brasil.elpais.com/brasil/2013/12/16/sociedad/1387215405_275511.html https://brasil.elpais.com/brasil/2013/12/16/sociedad/1387215405_275511.html https://brasil.elpais.com/brasil/2013/12/16/sociedad/1387215405_275511.html https://www.copeltelecom.com/site/blog/kilobyte-megabyte-gigabyte-terabyte/ https://www.copeltelecom.com/site/blog/kilobyte-megabyte-gigabyte-terabyte/ https://www.copeltelecom.com/site/blog/kilobyte-megabyte-gigabyte-terabyte/ Erros numéricos 15 Exemplo 3 Para a codificação de um número natural entre 0 e 255, por exemplo, seriam suficientes 8 bits, pois 28 = 256. Para representá-los, resta-nos apenas atribuir valores 0 ou 1. O número natural 255 será representado em uma sequência de bits por (sequência binária) 11111111. Conforme apresentamos, o sistema de numeração na base dois, também cha- mado de binário na área da computação, tem seus algarismos reconhecidos e re- presentados por meio dos bits. Além disso, identificamos que um bit pode assumir dois valores distintos: 0 ou 1. Com base nos conhecimentos adquiridos até o momento sobre base binária, trabalhemos a partir daqui com as mudanças de base. Com essa finalidade, o Exemplo 4 apresenta uma mudança da base binária para a base decimal, tendo como ideia principal o tipo de conversão adotada pelo computador. Exemplo 4 Seja x = 1001,101 Então, 1 · 23 + 0 · 22 + 0 · 21 + 1 · 20 + 1 · 2-1 + 0 · 2-2 + 1 · 2-3 = 8 + 0 + 0 + 1 + 0,5 + 0 + 0,125 = 9,625 Portanto, (1001,101)2 = (9,625)10 Notemos que no Exemplo 4 respeitamos a posição de cada um dos elementos e fizemos a conversão, em primeiro plano, assumindo o valor de cada posição e, na sequência, somando esses resultados. Esse é o processo que também será usado para as próximas bases estudadas. Sistema quaternário No sistema quaternário, a base b é igual a 4 e, portanto,temos o conjunto de algarismos: {0, 1, 2, 3}. Exemplo 5 Seja x = (301,2)4 Então, 3 · 42 + 0 · 41 + 1 · 40 + 2 · 4-1 = 48 + 0 + 1 + 0,5 = 49,5 Portanto, (301,2)4 = (49,5)10 16 Cálculo Numérico A conversão de base decimal para uma outra base qualquer é algo possível. Além dessa base, temos a base hexadecimal, ou seja, formada por 16 algarismos. Sistema hexadecimal O estudo do sistema hexadecimal auxilia no processo de representação de se- quências maiores de bits, por exemplo, aqueles com 16 ou 32 bits. Se b > 10, usamos as letras A, B, C, … para denotarmos A = 10, B = 11, C = 12, …. Exemplo 6 Se temos b = 16, ou seja, o conjunto de algarismos {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}, e queremos converter o número x = (E2AC)16 para a base decimal, fazemos o seguinte: (E2AC)16 = 14 · 16 3 + 2 ·162 + 10 ·161 + 12 · 160 (E2AC)16 = 57344 + 512 + 160 + 12 = 58028 A base hexadecimal também é amplamente usada na computação. Além dela, o tripleto hexadecimal, conhecido como Web Color (Figura 7), também é muito conhecido. Figura 7 Web Color R. A . N on en m ac he r/ W ik im ed ia C om m on s O tripleto hexadecimal recebe esse nome por ele ser uma combinação de três by- tes, porque cada cor formada possui três duplas escritas em formato hexadecimal. Cada dupla representa uma cor, sendo elas: vermelho, verde e azul (RGB). Erros numéricos 17 A variação da combinação hexadecimal no tripleto dá origem às demais cores. Exemplo 7 A cor azul marinho é escrita como 12 0A 8F no sistema tripleto hexadecimal. Portanto, cada dupla terá 16 possibilidades para a primeira posição e mais 16 para a segunda, formando um byte de 256 possibilidades. Como temos três duplas, as possibilidades de combinação serão: 256 · 256 · 256 = 16777216. Essa estrutura de cores é usada para documentos HTML, CSS, entre outros. É possível observarmos os códigos hexadecimais de uma quantidade conside- rável de cores e a conversão deles para outros sistemas de cores que podem ser adotados computacionalmente. A seguir, veremos o processo da transformação inversa, ou seja, conhecendo um número na base 10, converteremos este para a base b desejada. 1.2.2 Processo inverso Nesta seção, trabalhamos com a conversão de números na base decimal (x)10 que serão convertidos para uma base b qualquer. Ou seja, nosso objetivo é trabalhar com a seguinte representação algébrica: (x)10 = (dndn–1 ... d0, d–1 ...)b (x)10 = dn · b n + dn–1 · b n–1 + … + d0 · b 0 + d–1 · b –1 + … Inicialmente, para conseguirmos realizar a conversão, separamos a parte inteira de (x)10 da sua parte fracionária, também chamada de mantissa, obtendo (x)10 = xi + xf. Desse modo, temos: • xi = dn · b n + dn–1 · b n–1 + … + d0 · b 0 • x d b d b f � � ��� �1 1 2 2 Portanto, precisamos determinar os valores para o conjunto {dn, dn–1, ...}, que é composto tanto por elementos da parte inteira como por elementos da parte fracionária. Parte inteira (xi = dn · b n + dn–1 · b n–1 + … + d0 · b 0) ÷ (b) = x b d b d b d d b i n n n n� � � � ��� �� � �1 1 2 1 0 Temos que observar que d0 é o resto da divisão de x i por b, pois d1 + d2 · b 1 + … + dn–1 · b n–2 + dn · b n–1 é inteiro e d b 0 é uma fração com d0 < b. Da mesma forma, o resto da divisão de d1 + d2 · b 1 + … + dn–1 · b n–2 + dn · b n–1 por b é d1. Ou seja, repetindo este processo, encontramos os algarismos d0, d1, d2, …, dn. Para a análise da parte inteira, temos uma ferramenta extremamente simples que pode ser usada nela: a divisão. Uma tabela bem extensa de combinações de cores pode ser encontrada no site Nas artes gráficas. Disponível em: http://nasartesgraficas. blogspot.com/2014/08/lista-de- cores.html. Acesso em: 20 maio 2021. Site http://nasartesgraficas.blogspot.com/2014/08/lista-de-cores.html http://nasartesgraficas.blogspot.com/2014/08/lista-de-cores.html http://nasartesgraficas.blogspot.com/2014/08/lista-de-cores.html 18 Cálculo Numérico Por meio de sucessivas divisões, podemos rapidamente converter um número da base decimal para base binária. Exemplo 8 Para a conversão de (3)10 para a base binária, fazemos: 3 : 2 = 1 – Resto 1 1 : 2 = 0 – Resto 1 O resultado será olhado, justamente, por meio dos restos. Portanto, (3)10 = (11)2 Vejamos mais um exemplo desse tema. Exemplo 9 Para converter o número (142)10 para a base binária, isso pode ser resolvido da seguinte forma: (142)10 = (10001110)2 142 71 35 17 8 4 2 1 2 2 2 2 2 2 2 2 01 1 1 1 0 0 0 0 (142)10 = (10001110)2 142 71 35 17 8 4 2 1 0 0 1 1 1 0 0 0 1 0 Vejamos na sequência o Exemplo 10, no qual convertemos um número escrito na base dez para base dois. Exemplo 10 Para convertermos o número 3,625 para a base binária (b = 2), primeiramente, decom- pomos 3,625 na soma de suas partes inteira e fracionária. x = 3 + 0,625 Logo, xi = 3 e xf = 0,625 No Exemplo 10, resolvemos a parte inteira dessa conversão. Assim, precisamos fazer sucessivas divisões por b = 2, então xi = 3 = 1 · 2 + 1 = 1 · 21 + 1 · 20 Portanto, xi = 1 · 21 + 1 · 20 = (11)2 Parte fracionária x d b d b b b x d d b f f� � �� � � �� � � ���� �� � � � ��� � � �11 22 1 2 Erros numéricos 19 Podemos observar, no Exemplo 10, que a parte inteira desse produto é d–1 e d b � ��2 é a parte fracionária. Quando multiplicamos d b � ��2 por b novamente, en- contramos d–2. Repetindo esse processo, encontramos os demais algarismos. Vejamos o Exemplo 11, que complementa o Exemplo 10. Exemplo 11 Agora, precisamos fazer sucessivas multiplicações por b = 2 para obtermos a parte fracio- nária do número 3,625. xf = 0,625 2 · xf = 1,25 · 2–1 = 1 · 2–1 + 0,25 · 2–1 = 1 · 2–1 + (0,5 · 2–1) · 2–1 = 1 · 2–1 + 0,5 · 2–2 = 1 · 2–1 + (1 · 2–1) · 2–2 = 1 · 2–1 + 1 · 2–3 Portanto, xf = 1 · 2–1 + 0 · 2–2 + 1 · 2–3 = (101)2 Logo, (3,625)10 = (11,101)2 Outras ferramentas computacionais podem ser usadas, entre elas são encon- tradas algumas linguagens de programação, como Sclilab e PythonTM. Relembramos que o processo aplicado pelo computador é o de converter de binário para decimal, mas as conversões são importantes para garantirmos a vera- cidade dos nossos cálculos e a viabilidade de possíveis aplicações. O Wolfram Alpha® é uma ferramenta computacional com diversas funcionalida- des, sendo uma delas (e talvez a mais importante) voltada para o cálculo ma- temático. Entre as opções que podemos encontrar no site principal, existe um conversor de números de- cimais para binários. Nele, o Wolfram Alpha® converte (3,625)10 em (11,101)2. Disponível em: https:// www.wolframalpha.com/ input/?i=3.625+to+binary. Acesso em: 4 abr. 2022. Site 1.3 Tipos de erros Vídeo Quando falamos em erros, estamos tratando da diferença entre o valor real e o valor obtido. É comum que sejam necessárias diversas simplificações do problema real para que tenhamos um modelo matemático com solução possível. Vamos observar a Figura 8, a qual apresenta a comparação entre um modelo físico (Geoide) e um modelo matemático (Elipsoide) da superfície da Terra. Figura 8 Comparação entre modelos físico e matemático Geoide (Físico) Elipsoide (Matemático) jd rv _a rt/ Sh ut te rs to ck Al ex an de rZ am /S hu tte rs to ck Fonte: Elaborada pela autora. https://www.wolframalpha.com/input/?i=3.625+to+binary https://www.wolframalpha.com/input/?i=3.625+to+binary https://www.wolframalpha.com/input/?i=3.625+to+binary 20 Cálculo Numérico O processo de propagação de erros começa quando transformamos um pro- blema real em um modelo físico e este em um modelo matemático. Esse modelo pode ser resolvido de maneira que tenhamos uma solução analítica ou uma solu- ção numérica. Figura 9 Esquematização para identificação de soluções matemáticas Problema real Modelo físico Modelo matemático Solução analítica Solução numérica Implementação computacional Resultado numérico Fonte: Elaborada pela autora. Neste ponto temos um grande questionamento: por que usar um método nu- mérico? A respostaé mais simples do que imaginamos. Os modelos que possuem solução analítica precisam ser extremamente simplificados, enquanto os modelos que podem ser resolvidos numericamente podem conter mais variáveis, equações e, assim, um requinte maior nas equações que o contemplam. Como o modelo usado para a obtenção numérica é mais refinado, o erro ine- rente ao método e à máquina podem ser muito menores se comparado ao erro obtido com a solução analítica, que foi encontrada partindo de um modelo muito mais grosseiro. Com isso, concluímos que nem sempre usamos o mesmo modelo matemático para as duas abordagens. Em geral, modelos matemáticos computacionais podem abranger um número maior de situações quando comparados ao problema real. Por meio do arredondamento e do truncamento conseguimos perceber a pro- pagação de erros a que a resolução de um problema pode estar exposta. Como vimos, os números não são representados computacionalmente de ma- neira exata. Essa perda depende da capacidade da máquina. A precisão (denotada por p) de um computador é o número de dígitos signifi- cativos usados para representar um número. Os dígitos significativos são todos os dígitos certos adicionados do primeiro algarismo duvidoso. Dessa forma, os números infinitos (ou mesmo muito grandes) acabam sendo arredondados ou truncados, ocasionando erros. Esses mesmos números, quando em operações, ocasionam o que chamamos de propagação de erros. Erros numéricos 21 Além desses erros, ainda temos o que chamamos de incerteza dos dados e aqui- lo que denominamos de erros de modelagem matemática. Nesse caso, ao invés de pensarmos na transformação de um número para sua forma finita, levamos em consideração a construção do modelo matemático e, com isso, a acurácia dos ins- trumentos de medição que estão envolvidos na construção desse modelo e as fer- ramentas matemáticas disponíveis para solucionarmos o problema. Vamos entender qual tipo de ajuste é necessário quando arredondamos ou truncamos um número e o que isso acarreta para o cálculo. 1.3.1 Erro de arredondamento O arredondamento de um número é feito por meio da análise do primeiro alga- rismo após o dígito duvidoso. • Caso o dígito duvidoso seja maior do que 5, aumentamos em uma unidade o algarismo duvidoso e desprezamos os demais. • Caso o dígito duvidoso seja menor do que 5, mantemos o valor do algarismo duvidoso e desprezamos os demais. • Caso o dígito duvidoso seja igual a 5, temos dois caminhos: 1. Se o algarismo duvidoso imediatamente anterior à parte desprezada for um número ímpar, devemos aumentar esse em uma unidade. 2. Se o algarismo duvidoso imediatamente anterior à parte desprezada for um número par, devemos deixá-lo como está, ou seja, inalterado. Acompanhemos um exemplo de arredondamento (Exemplo 12). Exemplo 12 Avaliemos o arredondamento em cada um dos itens a seguir: • 1 3 0 333 0 33� ��, , • π = 3,1415926 ... ≈ 3,141693 • 1,55500 … ≈ 1,56 • 0,805 … ≈ 0,80 Adotamos o arredondamento numérico pois computacionalmente não é possí- vel representarmos números infinitos, ou seja, esse tipo de ajuste ocorre devido às limitações existentes na representação numérica em máquinas digitais. No entan- to, existem outros tipos de erros que podem se propagar quando transformamos um problema. 1.3.2 Erro de truncamento O que chamamos de truncamento é o corte aplicado aos dígitos não significati- vos de um número infinito (ou muito grande), de acordo com a precisão possível da máquina. O truncamento também ocorre quando é aplicado um método numérico na solução de um problema e esse método leva a uma sucessão de termos infinitos. 22 Cálculo Numérico Computacionalmente, essa abordagem não é possível e, nesses casos, a série de termos é truncada em determinado ponto no qual o erro seja aceitável. Em geral, é necessário definirmos o que é considerado um erro aceitável em cada problema. Assim, o resultado encontrado, após o truncamento, será analisa- do ante a obtenção desse erro. Resumidamente, um erro de truncamento ocorre quando transformamos uma representação de um processo infinito em uma representação finita. É comum, por exemplo, truncarmos séries de funções, como no Exemplo 13. Exemplo 13 Seja a função sen x escrita por meio de uma série de potências na forma: senx x x x x � � � � �� 3 5 7 3 5 7! ! ! Sabemos que o valor de sen π 6 é igual a 1 2 . Contudo, se calcularmos esse valor por meio de uma série de potências trigonométrica truncada, teremos: sen � � � � � 6 6 6 3 2 1 6 5 4 3 2 1 6 7 6 5 3 5 7 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �44 3 2 1� � � Nesse caso, sen � 6 0 49999999187 � � � � � � � , Notemos que para esse cálculo, além do erro de truncamento, ainda temos um erro de arredondamento e, portanto, começamos a perceber a intrínseca propaga- ção de erros em diversos métodos computacionais. 1.3.3 Erro absoluto e erro relativo Com os ajustes numéricos necessários para a representação computacional (ar- redondamento, truncamento, entre outros), além dos ajustes nos modelos e de- mais aproximações aplicadas, surge a questão referente à quantificação dos erros envolvidos nesses processos. Para entendermos se o resultado atingido foi bom, é necessário compará-lo ao resultado exato. Nesse ponto, surgem algumas métricas que nos permitem quantificar os erros. As medidas de erro mais utilizadas são: o erro absoluto e o erro relativo (JUSTO et al., 2020). Erro absoluto Seja x um número real e E x x A � � , sua aproximação. O erro absoluto da aproximação E x x A � � é definido como: E x x A � � Erros numéricos 23 Vejamos o Exemplo 14. Exemplo 14 A área da circunferência é dada por A = πr2. Se r = 3, então, a área exata será dada por A = 9π, mas, e se π for arredondado? Seja π1 = 3,14 e π2 = 3,141593. Então, A1 = 9 · 3,14 = 28,26 A2 = 9 · 3,141593 = 28,274337 Erro absoluto: E x x A � � → EA = |28,274337 – 28,26| = 0,014337 Passemos agora para o erro relativo. Erro relativo Seja x um número real e E x x A � � a sua aproximação. O erro relativo da aproximação E x x A � � é definido como: E x x x R � � �,x 0 O erro relativo é adimensional e, muitas vezes, expresso em porcentagens. Exemplo 15 Utilizando os mesmos dados do Exemplo 14, vamos calcular o erro relativo. Seja π1 = 3,14 e π2 = 3,141593. Então, A1 = 9 · 3,14 = 28,26 A2 = 9 · 3,141593 = 28,274337 Erro relativo: E x x x R � � E % % R � � � � � 28 274337 28 26 28 274337 0 0005070675927 100 0 0507 , , , , , Uma forma de minimizarmos o alastramento de erros em um modelo numérico é reduzindo o número de operações conforme o Exemplo 16 demonstra. Exemplo 16 Primeira Representação pn(x) = anx n + an-1x n-1 + … + a1x 1 + a0 Segunda Representação pn(x) = ((…(anx + an-1)x + an-2)x + …a1)x + a0 Notemos que a primeira representação do polinômio contém mais operações do que a segunda representação. Sendo assim, o erro geral no segundo caso é menor, pois são necessários menos ajustes numéricos e, com isso, menor alastramento de erros. Alguns relatos de acidentes atribuídos a erros de cálculo numérico podem ser encontrado na leitura do artigo, Some disasters attributable to bad numerical computing, apesar de estar com língua estrangeira, ele pode ser traduzido facilmente por qualquer tradutor on-line. Disponível em: http://www-users. math.umn.edu/~arnold//disasters/. Acesso em: 20 maio 2021. Leitura http://www-users.math.umn.edu/~arnold//disasters/ http://www-users.math.umn.edu/~arnold//disasters/ 24 Cálculo Numérico Esse tipo de manipulação precisa ser trabalhado com suas especificidades, den- tro de cada método numérico e de cada situação que permita a implementação computacional. 1.3.4 Erros nas operações elementares ou de cancelamento Voltando à análise de que existe um erro envolvido no processo de cálculo quan- do ele é resolvido com o uso de ferramentas computacionais, dizemos que o erro presente nas operações elementares de adição,de subtração, de multiplicação e de divisão está diretamente relacionado à capacidade, em bits, da máquina. Por exemplo, se o computador que será utilizado para calcular um modelo numérico for de 64 bits, o erro será da ordem de 2–52. Avaliando esse número, que denotamos por ϵ = 2–52, percebemos que ele é bem pequeno quando comparado à necessidade da maior parte das aplicações resolvidas. De acordo com Justo et al. (2020, p. 28), “assumindo que x e y são representados com todos os dígitos corretos, temos aproximadamente 15 dígitos significativos corretos quando fazemos uma das operações x+y, x−y, x×y ou x/y”. Quando avaliamos se existe uma operação que acarrete erros maiores do que a outra, podemos pensar em um simples cálculo de subtração entre valores muito próximos. Nesse caso, dizemos que o erro se propaga de maneira catastrófica. Portanto, o chamado erro de cancelamento se dá quando há um aumento impor- tante do erro relativo. Esse também é um caso de erro nas operações elementares e novamente podemos citar o caso da subtração de valores muito próximos. CONSIDERAÇÕES FINAIS Com este capítulo, percorremos trechos da história da matemática que permitiram a compreensão do desenvolvimento da história da computação, desenvolvimento dos sistemas e cálculos numéricos. Ao longo do capítulo identificamos alguns matemáticos que estiveram diretamente relacionados à construção não só das linguagens de programação, mas também da própria máquina digital eletrônica (computador moderno) e da forma que ela opera. Além disso, percebemos a importância das estruturas lógicas matemáticas envol- vidas no processo por trás da lógica computacional e, com isso, repensamos algumas das estruturas matemáticas clássicas que, quando convertidas para serem interpreta- das pelo computador, ainda mantêm suas caraterísticas principais, ou seja, elas man- têm sua estrutura matemática. Portanto, todo esse enfoque é dado para que possamos entender quais são os erros envolvidos nos processos de cálculo e como avaliá-los, seja para evitarmos a propagação ou, até mesmo, analisarmos a sua viabilidade. Erros numéricos 25 ATIVIDADES Atividade 1 Podemos considerar o sistema de numeração romano um sistema aditivo ou um sistema posicional? Explique. Atividade 2 É possível converter um número na base 10 para um número na base hexa- decimal através de divisões sucessivas? Explique essa conversão e converta o número (9)10 para essa base. Atividade 3 Ao escrevermos o número de Euler da forma e = 2,718 … e e n n � � � � � �� � � 0 1 1 0 1 1 1 2 1 3 � ! ! ! ! ! No primeiro caso devemos usar qual tipo de ajuste numérico para obter um número finito? E no segundo caso? Quais são os erros envolvidos em cada um dos casos? REFERÊNCIAS BOOLE, G. Researches on the theory of analytical transformations, with a special application to the reduction of the general equation of the second order. Cambridge Mathematical Journal, v. 2, p. 65–73, 1841a. BOOLE, G. Exposition of a general theory of linear transformations. Cambridge Mathematical Journal, v. 3, p. 1–20, 1841b. (Parte 1) BOOLE, G. Exposition of a general theory of linear transformations. Cambridge Mathematical Journal, v. 3, p. 106–119, 1842. (Parte 2) CARROLL, L. Aventuras de Alice no país das maravilhas e através do espelho e o que Alice encontrou por lá. São Paulo: Zahar, 2013. GOUVEIA, R. Sistema de numeração decimal. TodaMatéria, 2022. Disponível em: https://www.todamateria. com.br/sistema-de-numeracao-decimal/. Acesso em: 8 jul. 2022. JUSTO, D. A. R. et al. (org.). Cálculo numérico: um livro colaborativo. Porto Alegre: UFRGS, 2020. Disponível em: https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf. Acesso em: 24 maio 2021. (On-line) SAMPEDRO, J. Um sistema binário inventado na Polinésia séculos antes de Leibniz. El País, dez. 2013. Disponível em: https://brasil.elpais.com/brasil/2013/12/16/sociedad/1387215405_275511.html. Acesso em: 7 jul. 2022. 26 Cálculo Numérico 2 Sistemas de equações lineares Os sistemas de equações são encontrados em uma gama de aplicações nas mais diversas áreas. Das exatas às ciências biológicas, passando pelas áreas tec- nológicas e pelas ciências sociais, resolver um sistema de equações pode nos levar a resultados de balanceamentos químicos, a respostas de sistemas elétricos, ao equilíbrio de forças, a distribuições de alimentos, entre tantas outras aplicações. De maneira mais conceitual, mas ainda aplicada, os sistemas de equações nos per- mitem encontrar o que se relaciona nas diferentes estruturas que os compõem, ou seja, os pontos de intersecção, as retas comuns ao sistema e os planos que se interceptam. Por todos esses motivos, aprendermos a resolver os mais diversos tipos de sis- temas de equações, aplicando técnicas diferentes que nos permitam aproximar- mos da solução exata (quando a encontrar diretamente não for possível), é uma tarefa de grande necessidade dentro das ciências. Existem diversos métodos para resolvermos um sistema de equações, sejam eles diretos e iterativos, exatos ou com solução aproximada, mas em todos os ca- sos, caso queiramos expandir o conjunto de aplicações, precisamos levar essas for- mas de resolução para uma visão computacional. Para tanto, desenvolvemos técnicas que nos permitem obter as soluções para esses sistemas. Além disso, apresentamos diferentes abordagens para a decompo- sição (fatoração) de um sistema de equação e as respectivas maneiras de como re- solvê-lo. Assim como, explicitamos o conceito de condicionamento de um sistema linear o qual possibilita analisar a estabilidade da solução. Por último, discutimos sobre as técnicas iterativas, sobretudo, os métodos de Jacobi e Gauss-Seidel. Com o estudo deste capítulo, você será capaz de: • relembrar processos de eliminação gaussiana; • usar o método de eliminação gaussiana para desenvolver métodos de fatoração da matriz dos coeficientes; • aplicar a triangularização em sistemas de equações lineares; • resolver um sistema de equações lineares (Ax = b), substituindo a matriz A e obtendo um sistema mais simples; • analisar o condicionamento de matrizes que formam diferentes sistemas de equações lineares; • desenvolver e aplicar métodos iterativos de solução para sistemas de equações lineares. Objetivos de aprendizagem Sistemas de equações lineares 27 2.1 Eliminação gaussiana Vídeo Aprender a resolver os mais diversos tipos de sistemas de equações, de manei- ra exata ou aproximada, é uma tarefa de grande necessidade dentro das ciências. Os métodos diretos para a solução de sistemas de equações, em sua maior parte, baseiam-se na decomposição (fatoração) de matrizes e na manipulação, por meio de operações elementares, de linhas e de colunas dessas matrizes. 2.1.1 Decomposição gaussiana A decomposição gaussiana consiste em transformar um sistema de equações qualquer em um sistema equivalente triangular superior. Com isso, é possível resol- vermos o sistema triangular aplicando operações elementares que nos permitem encontrar, de maneira regressiva, as coordenadas do vetor solução, se ele existir. Dessa forma, seja uma matriz Amxn dada por: A a a a a a a a a k m n k 1 1 1 11 1 12 1 1 1 1 1 1 1 21 1 22 2 � � � � � � � � � � � � � � � � � � � � � � � � aa a a a a a a m n k kk km kn 2 2 1 1 2 1 1 1 1 1 1 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � k �� � � � � � � �a a a a a m mk mm mnm1 1 2 1 1 1 1� � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � E seja A(k) uma matriz semelhante a A(1). Então, A a a a a a a a a k k m n k m � � � � � � � � � � � � � � � � � � 11 1 22 2 12 1 1 1 1 1 1 1 2 2 2 2 0 � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � a a a a a n km k kn k mk k kk k 2 2 0 0 0 0 aa a mm k mn k� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � Notemosque a matriz A(k) ainda não está triangularizada, mas ela já apresenta nas suas primeiras colunas termos nulos abaixo da diagonal principal. Assim, o nosso interesse está em encontrar uma matriz A(m) triangularizada, para que pos- samos aplicar operações regressivas e calcularmos o vetor solução. Vamos entender esse processo de maneira que seja possível transcrevê-lo em formato de algoritmo. Notemos que: A M A A M Am m m ( ) ( ) ( ) ( ) · · 2 1 1 1 1 � � � � � � � � � 28 Cálculo Numérico Portanto, precisamos de m – 1 passos para concluirmos a decomposição. Escre- vendo esse processo em etapas, teremos: 1. Se a 11 1 0 � � � , então: A A a a a a a a a a k m n k � �� � � � � � � � � � � � � � � � � 1 1 1 11 1 12 1 1 1 1 1 1 1 21 1 22 2 � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � a a a a a a a m n k kk km kn 2 2 2 1 1 2 1 1 1 1 1 k �� � � � � � � � � �a a a a a m mk mm mnm1 1 2 1 1 1 1� � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � Assim, existe uma matriz M1 (mxm): M a a a a m 1 21 1 11 1 1 1 11 1 1 1 1 1 1 1 � � � � � � � � � � � � � � � � � � � �� � � � � � � � .. .. .. �� � � � � � � � � � � Com m a a 21 21 1 11 1 � � � � � � , m a a 31 31 1 11 1 � � � � � � , ..., m a a m m 1 1 1 11 1 � � � � � � , tal que A M A 2 1 1� � � �� · Logo, A a a a a a a a a k m n k m 2 11 1 12 1 1 1 1 1 1 1 22 2 2 2 2 2 0 � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � a a a a a a n k kk km kn m 2 2 2 2 2 2 2 2 2 0 0 �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �a a a mk mm mn 2 2 2 Notemos que M1 multiplica todas as colunas de A, mas ele só zera a coluna 1, abaixo da posição (1,1) ou ocasionalmente alguma outra coluna. Sistemas de equações lineares 29 2. a 22 2 0 � � � Existe uma matriz M2 (mxm), tal que A(3) = M2 ⋅ A (2) = M2M1A (1) M2 32 2 22 2 42 2 22 2 2 2 22 2 1 1 1 1 1 1 � � � � � � � � � � � � � � � � � � � � � � - - - a a a a a a m �� � � � � � � � � � � � � � � � � � � � � � � Com m a a 32 32 2 22 2 � � � � � � , m a a 42 42 2 22 2 � � � � � � , ..., m a a m m 2 2 2 22 2 � � � � � � . Logo, A a a a a a a a a k m n k m 3 11 1 12 1 1 1 1 1 1 1 22 2 2 2 2 2 0 � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � a a a a a n kk km kn mk 2 2 3 3 3 3 0 0 0 0 aa a mm mn 3 3� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � K. a kk k� � �0 . Então, A(k+1) = MkA (k) A a a a a a a a ak k n k n �� � � � � � � � � � � � � � � � � � � 1 11 1 12 1 1 1 1 1 22 2 2 2 2 2 0 � � � � � kkk k kn k k k k k n k m k a a a a � � � � � � �� � � �� � � � � � � � � � 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 , , , 11 1 1k m n k a �� � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � , O processo deve ser seguido até o passo r em que k = min{m – 1, n} Notemos que as matrizes Mk são matrizes ditas elementares triangulares inferiores. 30 Cálculo Numérico Definição 1 Uma matriz elementar triangular inferior de ordem n e índice k pode ser escrita como: M I me k n k T� � onde e m i T � �0 , para i = 1, …, k e m m m m n � � � � � � � � � � � � � � � � � � � 1 2 ... é ortogonal a todos os vetores canônicos e1, e2, ..., ek. Então, a partir da Definição 1, 1 0 0 0 0 1 2 1 ... ... � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � m m m m n 0 1 0 0 0 1 2 2 ... ... � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � m m m m n 0 1 0 0 0 1 2 ... ... posição k n k m m m m � � � � � � � � � � � � � � � � � � � � � � � � � � � � � Dessa maneira, temos: M m m k k n � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1 1 1 0 0 0 0 1 ... ... .... ... ... ... 1 0 1 1 1 0 posição k � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 00 0 0 0 0 0 0 0 0 0 0 0 0 1 ... ...m m k n coluna k � � � � � � � � � � � � � � � � � � � � � � � Logo, M m m k k n � � � � � � � � � � � � � � � � � � � � 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 ... ... Sistemas de equações lineares 31 é a matriz elementar triangular inferior de ordem n e índice k. Com a matriz ele- mentar, podemos extrair alguns resultados. Resultado 1 Se M I m en k T� � � , então M I m en k T� � � �1 Resultado 2 Dado x, com xk ≠ 0, existe uma única matriz elementar triangular M, de índice k, que anula todos os elementos de x abaixo da posição k (e mantém todos os demais elementos). Pela fatoração gaussiana, temos que, se A é uma matriz com m linhas e n colu- nas, então temos m – 1 passos para obter a matriz A(m), tal que: A(1) → A(2) = M1 ·A (1) → ... → A(m) = Mm–1 · A (m–1) Assim, generalizando esse processo e escrevendo por meio de matrizes elemen- tares, temos: A(k+1) = Mk · A (k) = Mk · Mk–1 ... · M1 · A (1) Onde: M I m ek n k T� � � Logo, A I m e A k n k k T k�� � � �� �� ��1 � ��� ��� M k Matricialmente, essa expressão é escrita como: A A m m a k k k k m k kk �� � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � 1 1 0 0 0 0 , , ... kk kn k a � � � �� � � � � � � � � � � � � Portanto, A A m a m k k k k k k kk k �� � � � � � �� � � � � � � � � � � � � � � � 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 , , kk k kn k m k kk k m k kk k kn k a x m a m a a � � � � � � � � � � � � � � � � � � � � � � 1 0 0 0 0 , , , �� � � � � � � � � � � � � � � � � � � � que apresenta o processo de atualização de A(k). 32 Cálculo Numérico A matriz A(k+1) pode ser obtida por intermédio da matriz A(k) apenas alterando o canto inferior direito, isto é: a a ij k ij k�� � � ��1 ; i = 1, ..., k; j = 1, ..., n a a ij k ij k�� � � �� �1 0 ; i = k + 1, ..., m; j = 1, ..., k Logo, a a m a i k m j k n ij k ij k ik kj k�� � � � � �� � � � � � � 1 1 1 , ,..., ,..., Esse processo nos permite escrever o Algoritmo 1 que explicita a decomposição de Gauss da matriz A. Algoritmo 1 Seja A m n� � , m > 1, k = min{m – 1, n}, akk k� � �0 A a a a a a a a a a k m n k m � � � � � � � � � � � � � � � � � 11 1 12 1 1 1 1 1 1 1 22 2 2 2 2 2 � � � � � � � 22 2 1 2 n kk k km k kn k k mm m a a a m m m a � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 11 1� � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � a mn m onde m k são as posições abaixo da diagonal que são zeradas. Assim, para k = 1, 2, ..., r podemos escrever: a m a a i k m ik ik ik kk � � � �, , ...,1 a a m a i k m j k n ij ij ik kj� � � � � � � , , ..., ,..., 1 1 Quando trabalhamos com esse processo de maneira computacional, precisa- mos nos lembrar de que o computador resolve processos numéricos discretos, por etapas, e que eles podem carregar muitos erros: de arredondamento, de trun- camento e de cancelamento. Dessa forma, para implementarmos uma matriz e aplicarmos as operações sobre ela, é necessário que tenhamos um passo a passo do processo numérico. Portanto, transformar um problema matemático em um al- goritmo nos dá justamente esse passo a passo necessário para que o computador possa resolvê-lo. Os elementos a kk k� � são chamados de elementos pivôs. Lembrete Cada algoritmo precisa ser adaptado para uma linguagem de programação específica. Se por acaso trabalharmos com uma linguagem de alto nível, possivelmente a própria linguagem já traga intrin- secamente questões comoarmazenamento dos dados de uma matriz na memória, módulos de inversão e cálculo do determinante, entre outros. No entanto, caso seja uma linguagem de baixo nível, todas essas questões serão declaradas pelo programador. Para mais detalhes, sugerimos a leitura dos artigos sobre matriz do Departamento de Ciência da Computação da USP e do Curso de C da UFMG, disponibilizados no site da UFSC. Disponível em: https://panda.ime.usp. br/aulasPython/static/aulasPython/ aula11.html. Disponível em: http://mtm.ufsc. br/~azeredo/cursoC/aulas/c530.html Acessos em: 12 jul. 2022. Leitura https://panda.ime.usp.br/aulasPython/static/aulasPython/aula11.html https://panda.ime.usp.br/aulasPython/static/aulasPython/aula11.html https://panda.ime.usp.br/aulasPython/static/aulasPython/aula11.html http://mtm.ufsc.br/~azeredo/cursoC/aulas/c530.html http://mtm.ufsc.br/~azeredo/cursoC/aulas/c530.html Sistemas de equações lineares 33 Vejamos o Exemplo 1: Exemplo 1 Seja A � � � � � � � � � � � � � � 2 4 2 1 1 5 4 1 2 . A decomposição de Gauss ocorre em r = min{2,3} = 2 passos, que são: 1. a11 ≠ 0 M1 1 0 0 1 2 1 0 4 2 0 1 � � � � � � � � � � � � � � � � � � � � � A M A 2 1 1 1 0 0 1 2 1 0 4 2 0 1 2 4 2 1 1 5 4 1 2 � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � . �� � � � � � � � � � � � � � � � � � � � � � 2 4 2 0 3 6 0 7 2 2. a22 ≠ 0 M2 1 0 0 0 1 0 0 7 3 1 � � � � � � � � � � � � � � � � A M A 3 2 2 1 0 0 0 1 0 0 7 3 1 2 4 2 0 3 6 0 7 2 � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � � � � � 2 4 2 0 3 6 0 0 12 O Exemplo 2 apresenta uma outra situação: Exemplo 2 Seja um sistema de equações dado por: 2 4 2 6 5 0 4 2 2 1 2 3 1 2 3 1 2 3 x x x x x x x x x � � � � � � � � � � � � � � Portanto, pela fatoração matricial, escrevemos: A A A multiplicando por M � � � � � � � � � � � � � � � �1 1 2 4 2 1 1 5 4 1 2 � ���� ���� 22 3 2 2 4 2 0 3 6 0 7 2 � � � � � � � � � � � � � � � � multiplicando por M A � ���� ���� 22 4 2 0 3 6 0 0 12 � � � � � � � � � � � � � Desse modo, A(3) = M2 · M1 · A (1), onde M1 zera todos os elementos abaixo da posição (1,1) e M2 zera todos os elementos abaixo da posição (2,2). 34 Cálculo Numérico Vejamos o que a Definição 2 apresenta. Definição 2 A matriz M é definida como uma matriz elementar triangular inferior de ordem m (no caso do Exemplo 2, de ordem 3). A matriz M permite-nos zerar todos os elementos abaixo de uma determinada posição k < m, mantendo os demais elementos. Agora, passemos para a Definição 3. Definição 3 Uma matriz A é equivalente por linhas a uma matriz A(k+1) caso exista uma sequência finita de matrizes elementares M1, M2, ..., Mk , tal que: A(k+1) = MkMk–1 ... M2M1 O processo que acabamos de ver nas Definições 2 e 3 também pode ser cha- mado de escalonamento e, como vimos, ele nos permite escrever um sistema de equações lineares na sua forma equivalente triangular superior. Com a eliminação gaussiana bem compreendida, falaremos sobre a estru- tura de um sistema de equações lineares a partir de matrizes triangulares ou triangularizadas. 2.2 Sistemas triangulares Vídeo Por meio de um sistema de equações lineares na forma triangularizada (inferior ou superior) é possível encontrarmos a solução desse sistema utilizando substitui- ções progressivas (triangular inferior) ou regressivas (triangular superior). Definição 4 “Dois sistemas de equações lineares envolvendo as mesmas variáveis são equivalentes se, e somente se, tiverem o mesmo conjunto solução” (LEON, 2019, p. 4). Dessa maneira, vamos supor um primeiro sistema AX1 = B e um segundo sis- tema QX2 = C, caso X1 = X2, logo, os dois sistemas serão equivalentes (Exemplo 3). Exemplo 3 O sistema 3 4 2 8 2 1 1 2 3 1 2 3 2 3 x x x x x x x x � � � � � � � � � � � � � � � é equivalente ao sistema 3 4 2 4 3 1 3 26 3 3 2 12 1 2 3 2 3 3 x x x x x x � � � � � � � � � � � � � � � � , pois ambos apresentam como solução o vetor X � � � � � � � � � � � � � � � � � � � � � 23 2 9 2 8 Caso tenha alguma dúvida sobre escalonamento, sugerimos que assista ao vídeo Escalonamento, dis- ponível no canal Portal da Matemática OBMEP. Com ele, além de recapitular a decomposição gaussiana, é possível começar a aplicá-la no contexto dos sistemas de equações lineares. Disponível em: https://www.youtube. com/watch?v=QmmYqR-7zm4. Acesso em: 12 jul. 2022. Vídeo O vídeo Exemplo prático: sistemas equivalentes de equações, da plataforma Khan Academy, é um con- teúdo interessante sobre o tema: sistemas de equa- ções. Além de assistirmos ao vídeo, também podemos resolver exercícios usando a plataforma, que é gratui- ta, gamificada e adaptativa. Essa prática auxilia-nos a fixar o conteúdo estudado. Disponível em: https:// pt.khanacademy.org/math/algebra/ systems-of-linear-equations/ equivalent-systems-of-equations/v/ identifying-equivalent-systems-of- equations. Acesso em: 14 maio 2022. Vídeo https://www.youtube.com/watch?v=QmmYqR-7zm4 https://www.youtube.com/watch?v=QmmYqR-7zm4 https://pt.khanacademy.org/math/algebra/systems-of-linear-equations/equivalent-systems-of-equations/v/identifying-equivalent-systems-of-equations https://pt.khanacademy.org/math/algebra/systems-of-linear-equations/equivalent-systems-of-equations/v/identifying-equivalent-systems-of-equations https://pt.khanacademy.org/math/algebra/systems-of-linear-equations/equivalent-systems-of-equations/v/identifying-equivalent-systems-of-equations https://pt.khanacademy.org/math/algebra/systems-of-linear-equations/equivalent-systems-of-equations/v/identifying-equivalent-systems-of-equations https://pt.khanacademy.org/math/algebra/systems-of-linear-equations/equivalent-systems-of-equations/v/identifying-equivalent-systems-of-equations https://pt.khanacademy.org/math/algebra/systems-of-linear-equations/equivalent-systems-of-equations/v/identifying-equivalent-systems-of-equations Sistemas de equações lineares 35 Agora, vejamos o que Leon (2019) apresenta na Definição 5. Definição 5 “Desde que os sistemas possuam matizes ampliadas equivalentes, estes podem ser deno- minados Sistemas Equivalentes.” (LEON, 2019, p. 4) Assim, podemos aplicar a eliminação gaussiana para triangularizar um sistema de equações e, com isso, obtermos a solução do sistema triangularizado equivalen- te. Observe esse processo no Exemplo 4. Exemplo 4 Seja o sistema de equações dado por: 2 4 2 6 5 0 4 2 2 1 2 3 1 2 3 1 2 3 x x x x x x x x x � � � � � � � � � � � � � � Portanto, pela decomposição matricial, escrevemos: A A multiplicando por M � � � � � � � � � � � � � � � 1 1 2 4 2 6 1 1 5 0 4 1 2 2 � ������ ������� � � � � � � � � � � � � � � � � � A multiplicando por M 2 2 2 4 2 6 0 3 6 3 0 7 2 10 �� ������ ������ � � � � � � � � � � � � � � � � � A3 2 4 2 6 0 3 6 3 0 0 12 3 Com isso, ao invés de resolvermos A1 · x = b, resolvemos A3 · x = c, onde: • A2 = M1 · A1 • A3 = M2 · A2 = M2 · M1 · A1 M2 · M1 · A1 · x = M2 · M1 · b = c Portanto, A3 · x = c é reescrito como: 2 4 2 0 3 6 0 0 12 6 3 3 1 2 3 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � x x x O que nos permite escrever: • � � � � �12 3 1 4 3 3x x • � � � � �� � � � � � � � � � � �3 6 3 3 6 1 4 3 3 2 2 3 2 2x x x x • 2 4 2 6 2 4 3 2 2 1 4 6 1 4 1 2 3 1 1x x x x x� � � � � � � � � � � � � � � � � � � � � Logo, a solução para 2 4 2 6 5 0 4 2 2 1 2 3 1 2 3 1 2 3 x x x x x x x x x � � � � � � � � � � � � � � é: 1 4 3 2 1 4 , , � � � � � � 36 Cálculo Numérico A Figura 1 apresenta o resultado gráfico desse sistema. Figura 1 Intersecção entre planos B = (0.25, 1.5, 0.25)B = (0.25, 1.5, 0.25) Fonte: Elaborada pela autora. Podemos observar o método de eliminação de Gauss medianteo que chama- mos de pivoteamento completo ou de pivoteamento parcial, conceitos os quais abor- daremos a seguir. 2.2.1 Pivoteamento completo Seja a matriz A(k) da forma: A a a k kk k lk ck k � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � , Caso o pivô a kk k� � �0 e os demais a ak k k m k k � � � � � 1, ,, ..., sejam diferentes de zero, então podemos realizar o que chamamos de pivoteamento completo. Nesse caso, trocamos a kk k� � por a lk ck k , � � . Para isso, fazemos a troca entre as linhas kk e lk, e as colunas kk e ck. A troca de linhas equivale a realizar uma pré-multiplicação da matriz, como no caso a seguir: I A A k lk k k , · � � � �� Já a troca entre as colunas kk, por ck pode ser calculada por meio de uma pós- multiplicação calculada por: A I k k ck � � � ��· , A k Portanto, A(k+1) = Mk · (Pk · A (k) · Qk) (1) Vejamos o Exemplo 5 para compreendermos melhor o assunto. Sistemas de equações lineares 37 Exemplo 5 Seja A � � � � � � � � � � � 1 2 3 4 5 6 7 8 9 , então: P23 1 0 0 0 0 1 0 1 0 � � � � � � � � � � � . Assim, P A23 1 0 0 0 0 1 0 1 0 1 2 3 4 5 6 7 8 9 1 2 3 7 8 9 4 5 6 � � � � � � � � � � � � � � � � � � � � � � � � � �. �� � � � � � Considerando Q23 1 0 0 0 0 1 0 1 0 � � � � � � � � � � � , escrevemos: AQ23 1 2 3 4 5 6 7 8 9 1 0 0 0 0 1 0 1 0 1 3 2 4 6 5 7 9 8 � � � � � � � � � � � � � � � � � � � � � � � � � �. �� � � � � � O processo para realizar o pivoteamento parcial é muito semelhante. A grande diferença está no fato de que podemos realizar apenas a troca de linha (ou coluna) se isso já for suficiente para obter o pivô desejado. 2.3 Métodos de fatoração Vídeo Nessa seção, falaremos da fatoração LU e sua ramificação para fatoração LDU, que transforma esse segundo em um método com matrizes unicamente definidas. 2.3.1 Fatoração LU Seja uma matriz A de ordem m, sua decomposição resulta em outras duas ma- trizes: a primeira, uma matriz triangular inferior L (lower); e a segunda, uma matriz triangular superior U (upper) que chamamos de decomposição LU. A a a a a l l l um m mm m mm � � � � � � � � � � � � � � � � � � � � � � 11 1 1 11 1 110� � � � � � � � � � �� � � � � u u L U m mm 1 0 � � � � � � � � � � � � Esse tipo de decomposição não é única, ou seja, podem existir diferentes ma- trizes triangulares inferiores e superiores que, quando multiplicadas, originam a matriz A. Para encontrarmos essas matrizes, usamos o processo de eliminação de Gauss, que nos auxilia a escrevermos a matriz A na forma fatorada em matrizes mais simples. Como vimos, o processo de Gauss gera matrizes M1, M2, ..., Mr, com r = min {m – 1,n}, tal que: A(r+1) = Mr Mr–1 ... M1 · A 38 Cálculo Numérico As matrizes M não são singulares, portanto, podemos calcular suas inversas. Assim, A M M M A r r� �� � � �� � 1 1 2 1 1 1 Portanto, L M M M r � � � � 1 1 2 1 1 e U = A(r+1), com: Triangular inferior Triangular superior L M M M m m m r r � � � � � � � � � � � � � � � � � � � � � 1 1 2 1 1 1 2 1 1 1 .... U a a a mm m � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 11 1 22 2 .... Exemplo 6 Seja A � � � � � � � � � � � 3 2 4 1 1 2 4 3 2 . Determinar a decomposição LU da matriz A. Usando a decomposição de Gauss, temos como primeiro pivô o elemento na posição a 11 1 3 � � � Assim, os multiplicadores são: m a a 21 21 1 11 1 1 3 � � � � � � e m a a 31 31 1 11 1 4 3 � � � � � � A A m m � � � � � � � � � � � � � � � � � � 1 2 21 1 3 31 1 3 2 4 1 1 2 4 3 2 3 2 4 0 1 3 2 3 0 1 3 22 3 L L L L �� � � � � � � � � � � � � � � � � � O próximo pivô é a 22 2 1 3 � � � . Agora, os multiplicadores são m a a 32 32 2 22 2 1 3 1 3 1� � � � � � � : A L m L 2 3 32 2 3 2 4 0 1 3 2 3 0 1 3 22 3 3 2 4 0 1 3 2 3 0 0 � � � � � � � � � � � � � � � � � � � � � � � � �88 � � � � � � � � � � � � Portanto, L carrega os multiplicadores (triangular inferior), enquanto U é a última matriz após a triangularização (triangular superior). L U� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1 0 0 1 3 1 0 4 3 1 1 3 2 4 0 1 3 2 3 0 0 4 Sistemas de equações lineares 39 Decomposição LU Na linguagem MATLAB, é possível usarmos as funções intrínsecas da linguagem para calcularmos a decomposição LU. Assim, tendo a matriz A, basta fazermos: >[L,U]=lu(A) >[L,U,P]=lu(A) Na linguagem Python, é possível implementarmos o Código-fonte 1 (JUSTO et al., 2020). import numpy as np def fatoraLU(A): U = np.copy(A) n = np.shape(U) [0] L = np.eye(n) for j in np.arange(n-1): for i in np.arange(j+1,n): L[i,j] = U[i,j]/U[j,j] for k in np.arange(j+1,n): U[i,k] = U[i,k] - L[i,j]*U[j,k] U[i,j] = 0 return L, U Código-fonte 1 – Decomposição LU Após a implementação, basta chamarmos a função fatoraLU na forma: fatoraLU([[3.,2.,4.],[1.,1.,2.],[4.,3.,2.]]) Portanto, fica evidente a possibilidade de encontrarmos a solução por meio uso de substituições progressivas ou regressivas a partir de sistemas de equações li- neares triangularizadas, sejam eles inferior ou superior. Seja um sistema de equa- ções lineares da forma LX = B, com os seguintes aspectos: 40 Cálculo Numérico • L l l ln nn � � � � � � � � � � � 11 1 0� � � � � • X x xn � � � � � � � � � � � 1 • B b bn � � � � � � � � � � � 1 Assim, esse é um sistema triangular inferior no qual a matriz dos coeficientes (L) tem seus elementos na forma lij = 0 para i < j. Logo, l x b l x l x b l x l x l x bn n nn n n 11 1 1 21 1 22 2 2 1 1 2 2 � � � � � � � � � � � � � � � � � � � Podemos montar algoritmos para calcularmos a solução de sistemas lineares com essa característica e eles podem ser reescritos na linguagem de programação desejada. Para estruturarmos esse algoritmo, usamos uma linha genérica li: Li1 · x1 + li2 · x2 + ... + lii · xi = bi e, dessa maneira, isolando xi, obtemos: x b l l x l x l i i i i ii i ii � � � � � � �( )1 2 2 1 1 Portanto, podemos denotar esse raciocínio conforme consta no Algoritmo 2. Algoritmo 2 x b l 1 1 11 = Para i = 2, ..., n façamos: x b l x l i i j i ij j ii � �� ���� 11 Para compreendermos melhor, vejamos o Exemplo 7. Sistemas de equações lineares 41 Exemplo 7 Seja um sistema de equações lineares triangular inferior: 1 0 0 2 3 0 1 2 1 2 2 1 1 2 3 � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � x x x Resolveremos esse sistema usando o Algoritmo 2. Desse modo, x b l 1 1 11 2 1 2� � � � � x b l x l 2 2 21 1 22 2 2 2 3 2 4 3 2� � � � �� � � � � � � � x b l x l x l 3 3 31 1 32 2 33 1 1 2 2 2 1 1 2 4 1 5� � � � � �� � �� �� �� � �� � � � � � � Portanto, S = {–2, –2, –5}. O mesmo princípio é adotado para um sistema de equações lineares triangular superior (forma padrão obtida com a aplicação do escalonamento). Nesse caso, usamos como modelo um sistema de equações lineares UX = B, com os seguintes aspectos: • U u u u n nn � � � � � � � � � � � 11 1 0 � � � � � • X x xn � � � � � � � � � � � 1 • B b bn � � � � � � � � � � � 1 Portanto, esse é um sistema triangular superior onde a matriz dos coeficientes (U) tem seus elementos na forma uij = 0 para i > j. Denotamos u x u x u x b u x u x b u x b n n n n nn n n 11 1 12 2 1 1 22 2 2 2 � � � � � � � � � � � � � � � � � � � � � � Também podemos montar um algoritmo para a solução dos sistemas no forma- to UX = B e, para isso, usamos a i-ésima linha da forma: uii · xi + uii+1 · xi+1 + uii+2 · xi+2 ... + uin · xn = bi Isolando xi , obtemos: xi = bi – ui(i+1)· ui+1 – ui(i+2) · xi+2 – ... – uin · xn Portanto, podemos escrever esse raciocínio por meio do Algoritmo 3. 42 Cálculo Numérico Algoritmo 3 x b u n n nn = Para i = (n – 1), (n – 2), ..., 1 façamos: x b u x u i i j i n ij j ii � �� � � � � �� �� �� 1 Vejamos o Exemplo 8. Exemplo 8 Seja um sistema de equações lineares triangular superior: 1 2 1 0 3 0 0 0 1 2 2 1 1 2 3 � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � x x x Resolveremos esse sistema usando o Algoritmo 2. Assim, x b u 3 3 33 1 1 1= = = x b u x u 2 2 23 3 22 2 0 1 3 2 3 � � � �� � � � � x b u x u x u 1 1 12 2 13 3 11 2 2 2 3 1 1 1 13 3 � � � � � � �� � �� � � � � � � � � � � Logo, a solução para esse sistema de equações é: S � � ��� � � � � 13 3 2 3 1, , Notemos que os algoritmos não dependem de linguagem de programação pre- viamente escolhida, pelo contrário, eles precisam ser adaptados à linguagem na qual se queira programar. 2.3.2 Resolução de sistemas por decomposição LU Seja A uma matriz quadrada de ordem n que pode ser decomposta em duas matrizes, uma delas sendo triangular inferior (L), e a outra sendo triangular su- perior (U). Nesse caso, caso tenhamos um sistema de equações escrito na forma: AX = B. Então, podemos escrever: (LU)X = B (2) Portanto, podemos fazer: L BUX Y = Sistemas de equações lineares 43 E, assim, resolvemos a equação (2) em duas etapas: 1. Resolver LY = B, que é um sistema triangular inferior. Para isso, podemos usar o Algoritmo 2: y b l y l i n i i j i ij j ii � �� � � � � � � � � � � 1 1 1 2, , , , 2. Resolver UX = Y, que é um sistema triangular superior. Para isso, podemos usar o Algoritmo 3: x y u x u i n ni i j i n ij j ii � �� � � � � � �� 1 1 1, , , , Esse tipo de abordagem é muito útil quando precisamos resolver diversos siste- mas de equações nos quais mantemos a matriz de coeficientes A, mas precisamos mudar a matriz (vetor) de termos independentes B. Exemplo 9 Seja um sistema de equações na forma: AX B x x x � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 3 2 4 1 1 2 4 3 2 1 1 2 1 2 3 Para resolvermos esse sistema usando a fatoração LU, precisamos escrever: A = LU. Desse modo, 3 2 4 1 1 2 4 3 2 1 0 0 1 3 1 0 4 3 1 1 3� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ��� ��� L 22 4 0 1 3 2 3 0 0 4� � � � � � � � � � � � � � ��� ��� U Agora, vamos aplicar as duas etapas apresentadas previamente a fim de obtermos a so- lução para X. 1. Resolver LY = B, que é um sistema triangular inferior. Então, 1 0 0 1 3 1 0 4 3 1 1 1 1 2 1 2 3 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � y y y �� � y b l 1 1 11 1 1 1= = = y b l y l 2 2 21 1 22 1 1 3 1 1 4 3 � � � � � � � � � y b l y l y l 3 3 31 1 32 2 33 2 4 3 1 1 4 3 1 2� � � � � � � � � � �� ��� � �� � � � � � � y y y 1 2 3 1 4 3 2, , , ,� � � �� � � � � � (Continua) 44 Cálculo Numérico 2. Resolver UX = Y, que é um sistema triangular superior. Então, 3 2 4 0 1 3 2 3 0 0 4 1 4 3 2 1 2 3� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � x x x x y u 3 3 33 2 4 1 2 � � � � � x y u x u 2 2 23 3 22 4 3 2 3 1 2 1 3 3� � � � � � � � � � � � � � � � � � � � � � � � � � x y u x u x u 1 1 12 2 13 3 11 1 2 3 4 1 4 3 3� � � � �� � �� �� �� � � � � � � Logo, a solução para esse sistema de equações é: S � � � � � � � � � 3 3 1 2 ; ; Para verificarmos a solução dos exemplos desse material é possível usarmos a calculadora online do site Matrixcalc; ele ainda conta com outras calculadoras pensadas para a resolução de matrizes. Disponível em: https://matrixcalc.org/ pt/slu.html. Acesso em: 12 jul. 2022. Vídeo Além da fatoração LU, temos o que chamamos de fatoração LDU, a qual expli- citaremos a seguir. 2.3.3 Fatoração LDU A decomposição LDU, ao contrário da decomposição LU, é única desde que os pivôs sejam diferentes de zero. Como o próprio nome nos leva a perceber, A será fatorada (decomposta) em uma matriz triangular inferior (L), uma matriz diagonal (D) e uma matriz triangular superior (U): L � � � � � � � � � � � � � � � � � � � 1 1 1 1 D d d dnn � � � � � � � � � � � � � 11 22 ... U � � � � � � � � � � � � � � � � � � � 1 1 1 1 Gauss pode ser aplicado sem troca de linhas ou colunas. Dessa forma, A(n) = Mn–1 ... M1A (1) Assim, A(n) = L–1 A(1) = L–1 A Portanto, A = L · A(n) onde A(n) tem todos os pivôs a kk k� � �0 Definindo: D a a ann n � � � � � � � � � � � � � � � � � � � � � � � 11 1 22 2 .... https://matrixcalc.org/pt/slu.html https://matrixcalc.org/pt/slu.html Sistemas de equações lineares 45 Então, D-1 existe, logo, D a a ann n � � � � � � � � � � � � � � � � � � � � � � � � 1 11 1 22 2 1 1 1 / / .... / Definindo U = D–1 A(n), temos: U a a a a a a n n� � � � � � � � � � � � � � � � � � � � � � � 1 1 1 12 1 11 1 1 1 11 1 2 2 22 2 / / / .... �� � � � � � � E devido a L m m mr � � � � � � � � � � � � � � � � � 1 1 11 2 .... Então, A = L · A(n) = L · D (D–1 A(n)) = LDU Assim, A pode ser decomposta da maneira que descrevemos conforme Exem- plo 10. Exemplo 10 Decomponhamos a matriz A � � � � � � � � � � � � � � 1 1 2 1 5 3 4 9 1 usando LDU. Para decompormos a matriz A em LDU usaremos a decomposição de Gauss. Desse modo, calcularemos M1 usando inicialmente o pivô a11 1 1 � � � e encontraremos m a a 21 21 1 11 1 1 1 1� � � � � � � � � e m a a 31 31 1 11 1 4 1 4� � � � � � � . Portanto, a matriz M1 1 0 0 1 1 0 4 0 1 � � � � � � � � � � � � Dessa forma, obteremos nessa etapa a matriz A m m 2 2 21 1 3 31 1 1 1 2 0 4 5 0 5 7 � � � � � � � � � � � � � � � � � � L L L L Agora precisamos calcular M2 usando como pivô a22 2 4 � � � e m a a 32 32 2 22 2 5 4 � � � � � � � e, portanto, M2 1 0 0 0 1 0 0 5 4 1 � � � � � � � � � � � � � � � � Assim, A L m L 3 3 32 2 1 1 2 0 5 3 0 0 3 4 � � � � � � � � � � � � � � � � � � � � � (Continua) 46 Cálculo Numérico Neste momento, temos: A � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �1 1 2 1 5 3 4 9 1 1 0 0 1 1 0 4 5 4 1 1 1 2 0 5 �� � � � � � � � � � � � � � � � � �3 0 0 3 4 L U Agora, basta organizar U na forma: U DU*� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1 0 0 0 5 0 0 0 3 4 1 1 2 0 1 3 5 0 0 1 Portanto, A � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1 1 2 1 5 3 4 9 1 1 0 0 1 1 0 4 5 4 1 1 0 0 0 5 0 00 0 3 4 1 1 2 0 1 3 5 0 0 1� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �L D U Dependendo de como D é tratado, temos 3 tipos de decomposições. 1. Decomposição de Doolittle (direto de Gauss) A = L· (D · U) = L · U’ , onde lii = 1, ∀i A � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1 1 1 ..... . 2. Decomposição de Crout A = ( L · D) · U = L’ · U , onde uii = 1, ∀i A � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � . ... 1 1 1 3. Decomposição de Cholesky A = Q · QT , onde lii = uii, ∀i A x x x x x x x x � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � A = LDLT Se D > 0 . Então, A decomposição de Cholesky pode ser encontra- da a partir de Gauss, pois se A é simétrica, então A = LDU e U = LT. Contudo, a decom- posição de Cholesky só é possível quando A for uma matriz positiva definida. Atenção Sistemas de equações lineares 47 D a ann 1 2 11 / ... .... � �� � � � � � � � � � � � � Portanto, A = (L · D1/2) · (D1/2 · LT) = Q · QT Com isso, uma matriz é dita positiva definida se os determinantes das n subma- trizes principais de A são positivos, ou seja, |Akk| > 0 para todo 1 ≤ k ≤ n. Uma matriz identidade é um exemplo de matriz positiva definida. Lembremo-nos de que, se é possível optarmos pela decomposição LU, então é possível decompomo-las em matrizes LDU. Para usarmos o método de Cholesky, é necessário que a matriz seja simétrica positiva definida. Esses três casos de decom- posição partem da decomposição de Gauss (eliminação gaussiana). A decomposição gaussia- na pode ser aplicada em matrizes de ordem mxn. Já as decomposições LU, LDU e Cholesky são aplica- das apenas em matrizes quadradas. Atenção 2.4 Condicionamento de sistemas lineares Vídeo Antes de falarmos em condicionamento de sistemas de equações lineares, te- mos que nos relembrar sobre os conceitos de norma de vetores e matrizes. 2.4.1 Norma de vetores e matrizes Há vários conceitos de norma de vetores e matrizes que devemos ter conheci- mento. Descrevemos alguns deles a seguir. Definição 6 A norma de vetor é uma função ‖·‖:Rn → R,x ↦ ‖x‖ satisfazendo: • ‖x‖ ≥ 0, ∀x ∈ Rn • ‖x‖ = 0 ⇔ x = 0 • ‖α · x‖ = |α| · ‖x‖, α ∈ R • ‖x + y‖ ≤ ‖x‖ + ‖y‖ Algumas das normas de vetores mais utilizadas são (CAMPOS FILHO, 2018): • Norma 1 (ou norma da soma de magnitudes): x x i n i1 1 � �� • Norma 2 (ou norma euclidiana): x x i n i2 1 2� �� • Norma do máximo (ou norma infinita): x max x i n i� � � � � �1 Definição 7 A distância entre dois pontos é dada pela expressão: d(x,y) = ‖x – y‖ para qualquer norma. 48 Cálculo Numérico A Definição 8 apresenta a relação de aproximação, ou tendência, para uma so- lução a partir do conceito de distância visto na Definição 7. Definição 8 {x(k)} → x em relação à norma ‖·‖ se ∀ε > ∃N(ε) / ‖x(k) – x‖ < ε, ∀k ≥ N(ε) Com isso, é possível definirmos a aproximação de uma sequência de termos para uma solução específica também usando a ideia de limites, como vemos na Definição 9. Definição 9 {x(k)} → x em relação à norma ‖·‖∞ ⇔ lim x xk i k i� � � � � , i = 1, 2, … n Portanto, todas as normas vetoriais no ℝn são equivalentes em respeito à con- vergência, ou seja, se {x(k)} → x em relação a uma norma ‖·‖, então {x(k)} → x em relação a qualquer outra norma ‖·‖ Para matrizes, as relações são semelhantes. Desse modo, vejamos a Definição 10. Definição 10 A norma de matriz An é uma função ‖·‖:ℝ nxn → R, A ↦ ‖A‖ que satisfaz: • ‖A‖ ≥ 0, ∀A ∈ ℝnxn • ‖A‖ = 0 ⇔ A = 0 (matriz nula) • ‖α · A‖ = |α| · ‖A‖, α ∈ ℝ • ‖A + B‖ ≤ ‖A‖ + ‖B‖ Podemos definir a distância entre matrizes, mesmo parecendo um conceito bastante estranho, da seguinte forma: d(A,B) = ‖A – B‖ Definição 11 Se ‖·‖ é uma norma vetorial. Então, A max A x x = =1 . é uma norma matricial, chamada de norma natural ou induzida. Normas induzidas (naturais) têm várias vantagens. Algumas delas são: • ‖1‖ = 1 • Seja x ≠ 0, e ‖·‖ uma norma natural ou induzida pela norma vetorial então ‖Ax‖ ≤ ‖A‖ · ‖x‖ • Raio espectral ρ(A) = max|λ| onde λ é um autovalor de A. Sistemas de equações lineares 49 A seguir, dispomos as normas matriciais mais usadas. • Norma 1: A max A x max a x j n i n ij1 1 1 1 1 1 � � � � � � �� • Norma euclidiana: A max A x Á A A x T 2 2 1 2 � � � �� � � • Norma do máximo ou norma infinita: A max A x max a x i n j n ij máximo da soma das linhas � � � � � � � � � ��1 1 1� ����� ������ Com as normas de matrizes definidas, podemos passar para o conceito de con- dicionamento de matrizes. 2.4.2 Número de condicionamento Sejam os dois sistemas (Exemplo 11 e 12) a seguir. Exemplo 11 1 1 1 2 10 5 1 2� � � � � � � � � � � � � � � � � � � � �. x x cuja solução exata é xexato � � � � � � � 5 5 Dizemos que estamos fazendo uma pequena perturbação no sistema quando alteramos os elementos da matriz dos coeficientes (ou do vetor independente) de maneira muito suave, ou seja, com uma pequena alteração. Para o Exemplo 11, perturbaremos o vetor de termos independentes b� � � � � � � � 10 5 para b1 10 01 5 � � � � � � � � , O sistema passa a ser 1 1 1 2 10 01 5 1 2� � � � � � � � � � � � � � � � � � � � �. ,x x cuja solução é x � � � � � � � 5 007 5 003 , , , sendo que x ≈ xexato e o resíduo (r = Ax – b) é pequeno, pois 1 1 1 2 5 007 5 003 10 5� � � � � � � � � � � � � � � � � � � � �. , , Agora, vejamos o Exemplo 12. Exemplo 12 Seja o sistema de equações representado por 1 1 1 001 1 10 10 005 1 2, . , � � � � � � � � � � � � � � � � � � � x x cuja solução exata também é xexato � � � � � � � 5 5 Ao perturbarmos o vetor de termos independentes b, transformando-o em b1 10 10 1 � � � � � � � , , encontraremos 1 1 1 001 1 10 10 1 1 2, . , � � � � � � � � � � � � � � � � � � � x x cuja solução é x � � � � � � � � 100 90 Caso olharmos apenas para o resíduo, ou seja, para r = Ax – b, teremos: 1 1 1 001 1 100 90 10 10 1, . , � � � � � � � � � � � � � � � � � � � � � b 50 Cálculo Numérico Contudo, percebemos que a solução deu um resultado muito diferente do en- contrado no exemplo anterior. Com isso, surge o seguinte questionamento: por que uma perturbação de mes- ma ordem de grandeza interferiu tanto em uma resposta e não na outra? A res- posta para esse problema está justamente no condicionamento da matriz, ou mais especificamente, no número que ele representa. Vamos supor que x resolve exatamente A ⋅ x = b, já x x cond A r b x � � � �. resolve aproximadamente A ⋅ x = b, isto é, A · x b≈ e o resíduo r b A x� � · . Então, x x x cond A r b � � � �. Queremos analisar se ‖r‖ ≈ 0 implica x x� �0 . Para isso, assumiremos r b A x� � . . Desse modo, r Ax A x A x x� � � � �� � x x A r�� � � �1 mas x x A r A r� � �� �1 1 · pois estamos considerando uma norma induzida. Portanto, x x x A r x � � �1 · Como 1 x A b ≤ tem-se: x x x A r A b � � � ��1 Definindo: cond(A) = ‖A–1‖ · ‖A‖ tem-se: x x x cond A r b � � � �� ou ER cond A ERx Erro relativo em x b Erro relativo em b ��� �� � �� �� � � �· O erro relativo em b é considerado, pois r b Ax b b� � � � Com isso, mesmo que ‖r‖ ≈ 0, isso não implica que x x� �0, a menos que cond(A) também seja pequeno (CHAPRA; CANALE, 2016). Com isso, concluímos que quanto maior é a cond(A) é mais provável que o sistema seja sensível às mudanças em dados iniciais. Sistemas de equações lineares 51 Com isso, realizemos o seguinte Desafio. Desafio O número de condicionamento de uma matriz não-singular A é: condp(A) = ‖A‖p · ‖A –1‖p Onde p é a norma adotada. Podemos observar que o número de condiciona- mento depende da norma escolhida. Propriedades (considerando apenas normas induzidas): I. cond(A) ≥ 1 cond(A) = ‖A‖ · ‖A–1‖ ≥ ‖A · A–1‖ = ‖I‖ = 1 II. D diagonal: cond D d d ii ii � � � max min , independente da norma escolhida. Por exemplo, na norma infinita: D d d d nn � � � � � � � � � � � � � � � � � � � 11 22 .... , D d d d nn � � � � � � � � � � � � � � � � � � � � � � � � 1 11 22 1 1 1 .... ‖D‖∞ = max|dii|; D d d ii ii � � �1 1 1 � max min cond D d d ii ii � � � max min cond(αA) = cond(A), ∀ α ∈ ℝ, α ≠ 0. Isso significa que se uma matriz for mul- tiplicada por um escalar (um número real qualquer), seu número de condição não muda. III. cond A A A ± A A cond A� � � � � � � � � � � � � � � �� � 1 11 1 IV. cond(A) = cond(A–1) Agora, vejamos o Exemplo 13. Exemplo 13 Seja um sistema de equações A · x = b, onde A � � � � � � � � � 0 992 0 873 0 481 0 421 , , , , Portanto, ‖A‖∞ = 1,865 Precisamos calcular ‖A–1‖∞. Para isso, fazemos: A� � � � � � � � � � 1 1000 2 281 0 421 0 873 0 481 0 992, , , , , Logo, ‖A–1‖∞ = 645,77 Com isso, o condicionamento de A será: cond(A) = ‖A–1‖ · ‖A‖ = 1,865 ·645,77 = 1204,36 52 Cálculo Numérico Programando em Python Se tivermos interesse por programação (mesmo que estejamos iniciando na área), podemos usar o Python. Nesse caso, sugerimos o Código-fonte 2 para o Exemplo 13, que calcula o con- dicionamento da matriz A seja para a norma 1, para a norma euclidiana ou para a norma infinita. import numpy as np A = np.array([[0.992,-0.873],[0.481,-0.421]],dtype=’double’) print(np.linalg.cond(A,p=1)) print(np.linalg.cond(A,p=2)) print(np.linalg.cond(A,p=np.inf)) Código-fonte 2 – Cálculo do condicionamento da matriz A para norma 1 Portanto, a avaliação do condicionamento de uma matriz pode ser determinan- te na escolha do método numérico a ser utilizado ou mesmo na eficácia do método escolhido. 2.5 Métodos iterativos para sistemas lineares Vídeo Um método iterativo é aquele usa informações de, no mínimo, um passo an- terior para resolver o seguinte. No caso dos sistemas de equações, os sistemas iterativos são de grande importância para solução de problemas que envolvem matrizes esparsas de grande porte. Uma matriz esparsa tem como característica um grande número de elemen- tos que se repetem. Em geral, esse elemento repetido é o elemento neutro. São também consideradas matrizes esparsas aquelas com elementos faltantes. Isso é comum quando essa matriz foi alimentada, por exemplo, por uma pesquisa com dados incompletos de seus participantes. As matrizes esparsas também são co- muns no estudo da teoria dos grafos e na resolução de equações diferenciais. Vejamos a Definição 12. Definição 12 Seja A ∈ ℝnxn esparsa e de grande porte, tal que Ax = b. Os métodos iterativos têm o seguinte formato geral: A = N – P (3) Desse modo, N · x – P · x = b N x P x b b� � � � � tal que N x b� � seja mais fácil de ser resolvido do que A · x = b Lembremo-nos de que é possível usarmos diversas ferramentas computacio- nais para facilitar os cálcu- los. Acerca disso, sugerimos a página Matrixcalc para o cálculo da matriz inversa de A. Disponível em: https://matrixcalc.org/ pt/. Acesso em: 12 jul. 2022. Site https://matrixcalc.org/pt/ https://matrixcalc.org/pt/ Sistemas de equações lineares 53 O processo iterativo é definido por: N · x(k+1) = P · x(k) + b, k = 0,1 (4) com x(0) dado. Portanto, x(k+1) = N–1 P · x(k) + N–1 b (5) Caso a sequência gerada {x(k)} convirja para x* quando k�� , então N · x* = P · x* + b converge para Ax* = b, isto é, x* é a solução do sistema. Partindo desse processo principal, temos uma questão importante que diferen- cia os métodos iterativos: a escolha da matriz N. Desse modo, os métodos de Gauss-Jacobi e Gauss-Seidel, que aprofundaremos a seguir, se diferenciam justamente por conta dessa matriz. 2.5.1 Método de Gauss-Jacobi O primeiro método que estudaremos é conhecido como método de Gauss-Jacobi ou, simplesmente, método de Jacobi. Escolha de N No método de Jacobi, a matriz N é uma matriz diagonal, ou seja: N a a ann � � � � � � � � � � � � � 11 22 0 0 0 0 0 0 ... ... ... ... ... ... ... Pela equação (3) teremos: P N A a a a a a a n n n n � � � � � � � � � � � � � 0 0 0 12 1 21 2 1 2 ... ... ... ... ... ... ... �� � � � � � � � Portanto, fazendo N · x = P · x + b temos: a a a x x xnn n 11 22 1 2 0 0 0 0 0 0 ... ... ... ... ... ... ... ... � � � � � � � � � � � � � �� � � � � � � � � � � � � � � � � � 0 0 12 1 21 2 1 2 a a a a a a n n n n ... ... ... ... ... ... .... . ... ... 0 1 2 1 2 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � x x x b b bn n �� � Se aii ≠ 0 para todo i, então, x N P x N b T � � �� �1 1 ��� �� ��� �� c , o que nos leva à seguinte equação: X = T x + c (6) que tem como representação matricial: O matemático alemão Carl Gustav Jacob Jacobi (1804–1851) deixou importantes contribuições nas mais diversas áreas da matemática, dentre estas encontra-se a matriz Jacobiana, importante na resolução de problemas do cálculo avançado. A ele também referenciamos quando trabalhamos com o método para solução de sistemas de equações iterativo que assume a matriz N como uma matriz diagonal. Para saber mais sobre Jacobi e suas contribuições sugerimos a leitura da ma- téria do site Só Matemática. Disponível em: https://www. somatematica.com.br/biograf/jacobi. php. Acesso em: 12 jul. 2022. Leitura https://www.somatematica.com.br/biograf/jacobi.php https://www.somatematica.com.br/biograf/jacobi.php https://www.somatematica.com.br/biograf/jacobi.php 54 Cálculo Numérico x x x a a a a a a a a n n n 1 2 12 11 1 11 21 22 2 22 0 0 ... ... ... � � � � � � � � � � � � � � � � � .... ... ... ... ... . � � � � � � � � � � � � � � � � � � � � � � � � a a a a x x n nn n nn 1 2 1 2 0 .... ... x b a b a b a n n nn � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1 11 2 22 �� As equações de iteração são obtidas isolando uma variável de cada vez em cada equação do sistema. Assim, x a b a x a x x a b a k k n n k k 1 1 11 1 12 2 1 2 1 22 2 21 1 1 �� � � � � � �� � � � �� � � � ...... xx a x x a b a x a k n n k n k nn n n k n n 1 2 1 1 1 1 � � � � �� � � � �� � � � � ...... ...... , �� � � �� �1 1xnk Interpretação gráfica do método Para apresentarmos a interpretação gráfica, assumiremos que o sistema de equações é composto por duas equações e duas incógnitas. Para essa seção, assumiremos alguns valores específicos para o sistema de equa- ções de maneira que possamos garantir uma representação gráfica consistente. Assim, seja Ax = b dado por duas retas r1 e r2, tais que r x y r x y 1 2 5 2 8 : : � � � � � � � . Assumire- mos que x 0 1 2 1 2 � � � � � � � � �, O gráfico com a intersecção entre essas duas retas, também compreendida como a solução do sistema de equações, está representado na Figura 2. Figura 2 Gráfico da intersecção entre as retas r1 e r2 Fonte: Elaborada pela autora. Sistemas de equações lineares 55 Assim, x x x x k k k k 1 1 2 2 1 1 5 4 1 2 �� � � � �� � � � � � � � � � � � � x 0 1 2 1 2 � � � � � � � � � � � � � � � x x* 1 9 2 15 4 2 3 � � � � � � � � � � � � � � � � � � � � � � � Portanto, o método converge para a solução do sistema. Convergência do método Quando falamos em métodos numéricos iterativos, sempre acabamos falando também em convergência do método. Para o método de Jacobi, seja qualquer x(0), ele inicia a sequência {x(k)} definida por x(k+1) = T · x(k) + c que converge para uma única solução x, tal que x = T · x + c ⇔ ρ(T) < 1 ou ‖T‖ < 1 ⇒ {x(k)} → x Onde Ax = b para qualquer x(0). De acordo com Dornelles Filho (2016, p. 67), que valida o trabalho de Burden e Faires (2015), temos que: "O primeiro critério é necessário e suficiente, porém é com- putacionalmente trabalhoso de ser verificado. O segundo critério é suficiente mas não necessário, porém é mais facilmente verificável". Usando norma infinita temos: T a a a a a a a a a a a a n n n nn n nn � � � � � � � � � � � � � � � � � � 0 0 0 12 11 1 11 21 22 2 22 1 2 �� � � � � � � � � � � � � � � � � � � � T 1 (máx. da soma das linhas) 56 Cálculo Numérico Portanto, a a ij iij j i n � � � � 1 1 para todo i, tal que a a iii ij� � � � � , j j i n 1 o que equivale a dizer que A é diagonalmente dominante. Algoritmo 4 Passo 1: Entrada – A, b, ε, N, x(0) Passo 2: k = 0 Passo 3: Para i = 1, 2, … n x a b a x a x i k ii i j i ij j k j i n ij j k�� � � � � � � � � �� � �� � � � � �� � 1 1 1 1 1 . . Passo 4: Se x x i ni k i k�� � � �� � �1 1� , ,... , ou k > N Então, x = x(k+1) Se não, k = k + 1 e voltar para passo 3. Observemos o Exemplo 14. Exemplo 14 Organizemos a primeira iteração que nos permite resolver pelo métodode Jacobi o sistema de equações Ax = b, com A x x x x e b� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 10 2 1 0 5 2 1 2 20 20 20 20 1 2 3 , �� � � � � Solução: Calculando as matrizes P, N–1 e T, temos: N� � � � � � � � � � � � � � 1 1 10 0 0 0 1 5 0 0 0 1 20 / / / T � � �� � � � � � � � � � 0 1 5 1 10 0 0 2 5 1 20 1 10 0 / / / / / P � � � � � � � � � � � � � � � � 0 2 1 0 0 2 1 2 0 (Continua) Sistemas de equações lineares 57 Notemos que matriz A � � � � � � � � � � � � � 10 2 1 0 5 2 1 2 20 é diagonalmente dominante, pois ‖T‖ < 1. Consideraremos x 0 0 0 0 � � � � � � � � � � � � � . Dessa forma, x b x x x b x x x k k k k k k 1 1 1 2 3 2 1 2 1 3 1 10 2 1 5 0 2 �� � � � � � �� � � � � � � � �� � � � � �� � 33 1 3 1 2 1 20 2 k k k b x x �� � � � � �� � � �� � A ordem de convergência e a taxa de convergência também podem ser avaliadas. Lembrando que esses valores são descritos por meio da análise da aproximação da solução numérica em relação à solução exata a partir da expressão: lim x x C k k x k x Ordem de convergência Taxa de onvergên � �� � � � � � � � 1 p c ccia Teremos p = 1, portanto, convergência linear e lim x x x x T k k k p� �� � � � � � � � 1 , pois: ‖x(k+1) – x‖ ≤ ‖T‖ · ‖(x(k)) – x)‖ E, portanto, lim x x x x T k k k � �� � � � � � � � 1 1 Com isso, além de conseguirmos resolver um sistema de equações por métodos chamados iterativos, ainda é possível avaliarmos a convergência do método, fato esse que é imprescindível para uma boa análise numérica a respeito da aplicação de qualquer tipo de método numérico. 2.5.2 Método de Gauss-Seidel Assim como no método de Jacobi, a escolha da matriz N define os passos apre- sentados a seguir. Portanto, para definirmos o método de Gauss-Seidel, em primei- ro lugar falaremos da matriz N. Escolha de N No método iterativo de Gauss-Seidel, a escolha da matriz N se dá por uma ma- triz triangular inferior, na forma: N a a a a a an n nn � � � � � � � � � � � � � 11 21 22 1 2 0 0 0 ... ... ... ... ... ... ... 58 Cálculo Numérico Com isso, teremos: P N A a a a n n� � � � � � � � � � � � � � � � � � 0 0 0 0 0 0 12 1 2 ... ... ... ... ... ... ... Portanto, assumindo N · x = P · x + b, temos: a a a a a a x x n n nn 11 21 22 1 2 1 2 0 0 0 ... ... ... ... ... ... ... � � � � � � � � � � � � .... ... ... ... ... ... ... ...x a a a n n n � � � � � � � � � � � � � � � � 0 0 0 0 0 0 12 1 2 �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � . ... ... x x x b b bn n 1 2 1 2 Com isso, podemos escrever: x a b a x a x x a b a k k n n k k 1 1 11 1 12 2 1 2 1 22 2 21 1 1 �� � � � � � �� � � � �� � � � ...... xx a x x a b a x k n n k n k nn n n k 1 1 2 1 1 1 11 �� � � � �� � �� � �� � � � ...... ...... ��� �� ��� �a xn n nk, 1 11 Note que somente x k 1 1�� � é calculado apenas com termos no passo x(k). Os de- mais valores para xi, i = 2, ..., n além de utilizarem valores no passo k, também usam valores no passo k + 1 para os xi elementos, com xi = 1, ..., n – 1 Interpretação gráfica do método Para apresentarmos a interpretação gráfica, adotamos o mesmo princípio usa- do no método de Gauss-Jacobi e o mesmo sistema de equações lineares. Assim, seja Ax = b dado por duas retas r1 e r2, tais que r x y r x y 1 2 5 2 8 : : � � � � � � � . Assumire- mos que x 0 1 2 1 2 � � � � � � � � �, O gráfico com a intersecção entre essas duas retas, também compreendida como a solução do sistema de equações está apresentado na Figura 3. Figura 3 Gráfico do sistema de equações formado pelas retas r1 e r2 Fonte: Elaborada pela autora. Sistemas de equações lineares 59 Assim, x x x x k k k k 1 1 2 2 1 1 1 5 4 1 2 �� � � � �� � �� � � � � � � � � � � x 0 1 2 1 2 � � � � � � � � � � � � � � � � � x x* 1 9 2 7 4 2 3 � � � � � � � � � � � � � � � � � � � � � � � � � Portanto, o método converge para a solução do sistema. Convergência do método Com base em Chapra e Canale (2016), temos que as condições para a convergên- cia do método coincidem com as condições já vistas no método de Jacobi, ou seja, ρ(T) ≤ 1 onde T = N–1P. Além da verificação a partir do raio espectral, podemos usar uma condição su- ficiente conhecida como critério de Sassenfeld, o qual diz (VALLE, 2015; RUGGIERO; LOPES, 1988): Calcular βj, j = 1, 2, …, n , onde: � 1 12 13 1 11 1� � � � � a a a a n .... � � � j j j j j j j jn jj a a a a a j n� � � � � � � � � �� � �1 1 1 1 1 1 2 ... .... , ,... , , Se β = max1≤j≤nβj < 1, então, o método de Gauss-Seidel converge independente de x (0), isso é, {x(k)} → x. A ordem de convergência, assim como no método de Jacobi, é linear, e a taxa de convergência será igual a β, sendo que quanto menor seu valor, mais rápida será a convergência. Vejamos o Exemplo 15. 60 Cálculo Numérico Exemplo 15 Seja A � � � � � � � � � � � 8 2 1 5 4 1 4 3 4 uma matriz não diagonalmente dominante. Notemos que ρ(T) ≤ 1, pois os autovalores de T são λ1 = 0, λ2 = 0,2983 e λ3 = 0,2095. Portanto, podemos usar o critério de Sassenfeld. Assim, obtemos: �1 2 1 8 1� � � � � 2 1 5 1 4 23 32 1� � � � � � � � 3 1 24 3 4 117 128 1� � � � � No Exemplo 15, como βi < 1 para i = 1, 2, 3, podemos aplicar qualquer um dos métodos iterativos vistos anteriormente: Gauss-Jacobi ou Gauss-Seidel. O que podemos afirmar sobre a relação entre os critérios de linha e de Sassenfeld? • Se o critério de linhas for satisfeito, então o critério de Sassenfeld também será. • Se o critério de Sassenfeld não for satisfeito, o critério de linhas também não será. CL ⇒ CS e não CS ⇒ não CL A partir da análise do critério de Sassenfeld para o método de Gauss-Seidel, notamos que o método gera uma sequência convergente. Assim, se ‖x(k+1) – x‖ ≤ β‖x(k) – x‖,∀k Então, lim k k k Ordem de convergência Taxa de converg x x x x � �� � � � � � � � � � 1 1� � êência � Devemos observar um aspecto importante: a taxa de convergência é menor que a taxa do método de Gauss-Jacobi, pois: a a a a a a a a k k k k k k kn kk k k k1 1 1 1 1 1 1 � � � � � � � � � � �� � � �� �... .... ..., , , kk k kn kk a a k , .... , � � � �1 a a a a a max a a k k k k k k kn kk k k k k1 1 1 1 1 1 . ... . .... ... , , , � �� � � � � � � �� � � �� �� � �� � � �� � � � �� � �1 1 a a a T k k k kn kk , .... , βk < ‖T‖, ∀k Então, max βk < ‖T‖ Logo, � Taxa de Gauss Seidel Taxa de Gauss Jacobi T � � � || || Sistemas de equações lineares 61 Vejamos o Algoritmo 5. Algoritmo 5 Passo 1: Entrada: A, b, ε, N, x(0) Passo 2: k = 0 Passo 3: Para i = 1, 2, …, n x a b a x a x i k ii i j i ij j k j i n ij j k�� � � � �� � � � � �� � �� � � � � �� � 1 1 1 1 1 1 . . Passo 4: Se x x para i n i k i k�� � � �� � � �1 1�, , , ou k > N Então, x = x(k+1) Senão, k = k + 1 voltar para passo 3. Vejamos o Exemplo 16 que representa essa aplicação. Exemplo 16 Seja a matriz A dada por: A � � � � � � � � � � � � � 10 2 1 0 5 2 1 2 20 Resolvamos, utilizando o método de Gauss-Seidel, o sistema de equações dado por Ax � � � � � � � � � � � 20 20 20 , considerando que: x 0 0 0 0 � � � � � � � � � � � � � Para isso, fazemos: x x x x x x k k k k k k 1 1 2 3 2 1 1 1 3 1 10 20 2 1 5 20 0 2 �� � � � � � �� � �� � � � � � �� � � � � �� �� � � � �� ��� � �� � �� �x x xk k k3 1 1 1 2 11 20 20 2 Notemos que cada método se adequa melhor a um tipo de sistema ou situação aplicada. Os métodos podem ser comparados, tendo, com isso, uma análise mais profunda dos resultados obtidos. 62 Cálculo Numérico CONSIDERAÇÕES FINAIS Neste capítulo, trabalhamos com ossistemas de equações lineares. Nesse contex- to, vimos que os métodos numéricos permitem-nos resolver esses sistemas de manei- ra direta e iterativa. Portanto, a escolha do método depende das matrizes que formam esse sistema. Além disso, como a ideia de um método numérico é poder implementá-lo compu- tacionalmente, é importante termos um breve conhecimento da máquina utilizada e dos erros que podem ser propagados em cada uma das situações. Por fim, trabalhamos com o conceito de convergência e taxa de convergência, o qual nos permite analisar se o método escolhido é adequado ou não para o modelo que precisamos resolver. ATIVIDADES Atividade 1 Explique de maneira breve e simplificada o que faz a matriz elementar M1 e a matriz elementar M2 ao multiplicarmos uma matriz de coeficientes A por cada uma delas, respectivamente. Atividade 2 Explique com suas palavras a importância de um algoritmo na implementação de um método numérico direto, como no caso da fatoração LU. Atividade 3 Explique com suas palavras o que significa a análise de convergência de um méto- do e qual a sua importância para garantir o resultado encontrado. REFERÊNCIAS BURDEN, R. L.; FAIRES, J. D. Análise numérica. São Paulo: Cengage Learning, 2015. CAMPOS FILHO, F. F. Algoritmos numéricos: uma abordagem moderna de cálculo numérico. Rio de Janeiro: LTC, 2018. CHAPRA, S. C.; CANALE, R. P. Métodos numéricos para engenharia. 7. ed. Porto Alegre: AMGH, 2016. DORNELLES FILHO, A. A. Fundamentos de Cálculo Numérico. São Paulo: Bookman, 2016. JUSTO, D. A. R. et al. (org.). Cálculo Numérico: um livro colaborativo. Porto Alegre: UFRGS, 2020. Disponível em: https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf. Acesso em: 24 maio 2021. LEON, S. J. Álgebra linear com aplicações. 9. ed. Rio de Janeiro: Livros Técnicos e Científicos, 2019. RUGGIERO, M. A. G.; LOPES, V. L. R. Cálculo Numérico: aspectos teóricos e computacionais. São Paulo: Pearson, 1988. VALLE, M. E. Aula 9: métodos de Jacobi e Gauss-Seidel. Material de aula. Campinas: Unicamp, 2015. Disponível em: https://www.ime.unicamp.br/~valle/Teaching/2015/MS211/Aula9.pdf. Acesso em: 4 maio 2022. Zeros de funções reais 63 3 Zeros de funções reais Em todas as áreas da ciência, os modelos matemáticos são transcritos como equa- ções, e encontrar a solução delas é fundamental para respondermos as situações- -problema. Em alguns casos, essas soluções, que também são chamadas de raízes da função ou zeros da função, são fáceis de serem encontradas e podem ser determinadas por processos analíticos. No entanto, em grande parte dos casos, a solução analítica não pode ser determi- nada, sendo necessário o desenvolvimento de métodos numéricos que permitam a aproximação a essa solução. Com isso, é importante ressaltarmos que a solução nu- mérica, por ser uma resposta aproximada, carrega um erro que precisa ser avaliado. À vista disso, neste capítulo, veremos alguns dos métodos mais conhecidos na área de solução numérica para obtenção de zeros de funções, como o método da bissec- ção e Newton-Raphson. Com o estudo deste capítulo, você será capaz de: • relembrar o conceito de existência e unicidade para funções reais; • encontrar os zeros de uma função por meio dos métodos da bissecção, do ponto fixo, de Newton-Raphson e das secantes; • analisar as condições de convergência dos métodos da bissecção, do ponto fixo, de Newton-Raphson e das secantes; • compreender as diferentes abordagens para se encontrar os zeros de uma fun- ção pelo método de Newton-Raphson; • comparar a taxa de convergência, a acurácia e a estabilidade dos diferentes métodos estudados. Objetivos de aprendizagem 3.1 Existência e unicidade Vídeo Antes de falarmos de zeros de uma função, precisamos enunciar dois teoremas que permitem com que façamos todas as análises. Esses teoremas são conhecidos como: teorema de Bolzano – ou teorema do valor intermediário (TVI) –, e o teorema do valor médio (TVM). Com essas duas ferramentas teóricas, teremos as condições necessárias para garantirmos a existência do zero de uma função real de uma variável e de um de- terminado intervalo conhecido. Além disso, esses teoremas embasam a maior par- te dos métodos numéricos aplicados na obtenção de zeros de funções. Desse modo, o teorema do valor intermediário (ou de Bolzano) é enunciado por Justo et al. (2020), conforme apresentamos no Teorema 1. 64 Cálculo Numérico Teorema 1 Se f:[a,b] → ℝ, y = f(x), ele é uma função contínua tal que f(a) ⋅ f(b) < 0. Então, existe x* ∈ (a,b) tal que f(x*) = 0, onde x* é chamada de solução exata. Assim, o teorema traz que, se temos uma função de uma variável contínua em um intervalo conhecido, onde essa função troca de sinal nesse intervalo, logo teremos pelo menos um zero para essa função no intervalo avaliado. Figura 1 Teorema de Bolzano f(a) f(b) a bx* Fonte: Elaborada pela autora. Os métodos que estudaremos estão embasados no teorema de Bolzano, pois usam a existência de solução apresentada por ele. Além dele, também usaremos o teorema do valor médio (TVM) que nos permite a comprovação de uma solução única em um intervalo predeterminado que cum- pra algumas condições, conforme apresentado no Teorema 2. Pensando na interpretação física desses teoremas, sugerimos o material Teoremas: do valor interme- diário (TVI), sobre máximos e mínimos, de Rolle, do valor médio (TVM), do valor médio generalizado (Cauchy) e regras de L’Hospital, do pro- fessor Oswaldo Rio Branco de Oliveira, disponibilizado pela Universidade de São Paulo (USP). Nele, além do professor enunciar e provar esses teoremas (e muitos outros), ele ainda traz uma interpretação física para o TVM, tornando-o uma óti- ma sugestão para revermos conceitos do cálculo para funções de uma variável. Disponível em: https:// www.ime.usp.br/~oliveira/ MAT144IOTVMLHOSPITAL.pdf. Acesso em: 15 jul. 2022. Leitura Teorema 2 Seja f:[a,b] → ℝ contínua e derivável no intervalo aberto (a,b), então existe um valor x* ∈ (a,b) tal que: f x f b f a b a *´� � � � �� � �� Prova Para demonstrar esse teorema, assumiremos a equação para uma determinada reta secan- te r(t) que intercepta a função f nos pontos: (a,f(a)) e (b,f(b)). Portanto, r t f a f b f a b a t a t� � � � �� � �� � � � �� � �, Seja s uma função contínua em [a,b] e derivável em (a,b), escrita como a diferença entre f e r, ou seja, s(t) = f(t) – r(t), t ∈ ℝ Notemos que s(a) = f(a) – r(a) = 0 e s(b) = f(b) – r(b) = 0. Assim, aplicando o teorema de Rolle sobre s, concluímos que existe x* no intervalo aberto (a,b) tal que: s(x*) = 0 Entretanto, como � �� � � � �� � �� � � � � � � � � �s t f t f b f a b a , teremos: � �� � � � �� � �� � �� � � � � � �s x f x f b f a b a * * (Continua) https://www.ime.usp.br/~oliveira/MAT144IOTVMLHOSPITAL.pdf https://www.ime.usp.br/~oliveira/MAT144IOTVMLHOSPITAL.pdf https://www.ime.usp.br/~oliveira/MAT144IOTVMLHOSPITAL.pdf Zeros de funções reais 65 Logo, �� � � � �� � �� � � � � � � �f x f b f a b a * 0 Desse modo, �� � � � �� � �� � � � � � �f x f b f a b a * Na sequência veremos os métodos da bissecção, de ponto fixo, de Newton-Rap- son e das secantes, que são métodos chamados de iterativos, isto é, dependem da solução do passo anterior para a obtenção da solução no passo seguinte. Simbolicamente podemos escrever: {xk} → x* Portanto, x x x x x x xk k * 0 1 2 1, , , , , , , ,� � ��� Onde x* é a solução exata e , ,… x é a solução aproximada. Os métodos iterativos dependem de uma estimativa inicial x0, de atualização, ou seja, a análise das condições de convergência (ordem e taxa), de um critério de parada e de uma tolerância (ε) ou estimativa para o erro associada ao critério de parada. O primeiro método que analisaremos entre eles é aquele denominado de mé- todo da bissecção. Para revermos o teorema de Rolle, sugerimos a lei- tura do material O teorema de Rolle, disponível no site E-cálculo, da Universidade de São Paulo.Disponível em: http://ecalculo.if.usp. br/derivadas/estudo_var_fun/ teorema_vm/teoremas/teo_rolle. htm. Acesso em: 15 jul. 2022. Leitura 3.2 Método da bissecção Vídeo No método da bissecção, a aproximação inicial adotada, x0 , é descrita pelo pon- to médio da função f(x), a qual desejamos encontrar o zero (ou raiz da função) em um intervalo predeterminado [a,b]. Ou seja, x a b 0 2 � �� � Figura 2 Método da bissecção f(a) f(b) a b x y f(x0) x0 Fonte: Elaborada pela autora. http://ecalculo.if.usp.br/derivadas/estudo_var_fun/teorema_vm/teoremas/teo_rolle.htm http://ecalculo.if.usp.br/derivadas/estudo_var_fun/teorema_vm/teoremas/teo_rolle.htm http://ecalculo.if.usp.br/derivadas/estudo_var_fun/teorema_vm/teoremas/teo_rolle.htm http://ecalculo.if.usp.br/derivadas/estudo_var_fun/teorema_vm/teoremas/teo_rolle.htm 66 Cálculo Numérico Em alguns casos, já encontramos a raiz da função na primeira iteração, isto é, f(x0) = 0. Portanto, o zero de f(x) é x* = x0. Porém, esse caso costuma ser bastante incomum e, geralmente, precisamos fazer algumas iterações para nos aproximar- mos de x*. Assim, se f(a) ⋅ f(x0) < 0, então a solução pertence a outro intervalo, que será escrito como x* ∈ (a, x0). Se isso ocorre, assumimos uma nova aproximação para o zero de f(x), quer dizer, um passo seguinte a ser realizado no método, sendo essa o ponto médio do intervalo [a,x0]. Portanto, x1 = ((a + x0)) ⁄ 2 Caso f(x0) ⋅ f(b) < 0, o valor de x* estará no intervalo x* ∈ (x0, b). Dessa forma, tomamos: x1 = (x0 + b) ∕ 2 Seguimos com esse procedimento até atingirmos a aproximação desejada. Esse processo é conhecido como iterativo, porque usa o resultado da iteração anterior para obter o passo seguinte. Por conseguinte, teremos uma convergência para o zero da função: x0, x1, x2, …, xk, xk+1, …→ x* Logo, podemos escrever que o método trabalha da seguinte forma: a b x a b 0 0 0 0 0 2 ,� �� � � a b x b x a b 1 1 0 0 1 1 1 2 , ,� � � � �� � � E assim por diante, sendo que cada intervalo passa a ter metade do tamanho do anterior. x x x x x x xk k * 0 1 2 1, , , , , , , ,� � ��� Vejamos o Exemplo 1, elaborado com base em Justo et al. (2020). Exemplo 1 Calcular uma solução de ex = x + 2 no intervalo [–2,0] com precisão ε = 10–1. Resolver a equação dada é equivalente a calcularmos o zero de f(x) = ex – x – 2. Além dis- so, temos f(–2) ⋅ f(0) < 0. Dessa maneira, podemos iniciar o método de bisseção tomando o intervalo inicial [a0, b0] = [–2, 0] e: x a b 0 0 0 2 1� � � � Observamos que a precisão ε = 10–1 foi obtida aproximando o zero de f(x) por x4 = –1,8125. (Continua) Zeros de funções reais 67 Tabela 1 Verificação dos intervalos para ex = x + 2 n an bn xn f(an) ⋅ f(xn) b a n n − 2 0 –2 0 –1 <0 1 1 –2 –1 –1,5 <0 0,5 2 –2 –1,5 –1,75 <0 0,25 3 –2 –1,75 –1,875 >0 0,125 4 –1,875 –1,75 –1,8125 <0 0,0625 Fonte: Elaborada pela autora. Observemos que, dependendo do problema, precisaremos de um critério de parada, para que o algoritmo possa ter uma quantidade finita de iterações. De acordo com Gilat e Subramaniam (2008, p. 78), “o processo da bissecção dever ser interrompido com a obtenção da solução exata”. No entanto, como vimos, a solução exata nem sempre é obtida computacional- mente. Assim, é necessário que seja estipulado um critério de parada que possa estar associado a uma tolerância admissível em relação ao erro máximo permitido para a solução, entre outros critérios. 3.2.1 Condições de convergência É impossível falarmos de um método numérico de aproximação sem estipular- mos a condição de convergência e o critério de parada. Por isso, vamos falar do primeiro caso. A condição de convergência é justamente o fator que garante que estejamos nos aproximando da solução real. Todo método numérico precisa ser analisado de acordo com a sua convergência para que tenhamos a garantia de que a solução seja encontrada. A condição de convergência para o método da bissecção é calculada para f con- tínua em um intervalo fechado [a,b] → ℝ, tal que f(a)f(b) < 0 e x* é único nesse intervalo. Dessa forma, x x a b k k k k k� � � � ��0 2 para k = 0, 1, … Satisfazendo a equação: x x b a k * k � � � �2 1 , onde k ≥ 0 para a0 = a e b = b0, e, portanto, xk → x* quando k → ∞. Já a chamada ordem de convergência que está relacionada à rapidez de cada mé- todo, no método da bissecção, é igual a p = 1, conforme o Teorema 3. Teorema 3 Se |xk – x*| ≤ rk · |x1 – x*| vale para alguma constante r > 1, então xk → x* é linear com taxa de convergência r e k = 1. Para o método da bissec- ção, podemos trabalhar computacionalmente com um código feito com base em duas abordagens: via linguagem Scilab e via Python. A primeira é com o uso da linguagem Scilab, para isso, sugerimos que leia a seção 3.2.1, Código Scilab: método da bisseção, por Justo et al. (2020), do livro Cálculo Numérico: um livro colaborativo, na sua versão para a linguagem Scilab, da Universidade Federal do Rio Grande do Sul (UFRGS). Disponível em: https://www.ufrgs.br/ reamat/CalculoNumerico/livro-sci/ sdeduv-metodo_da_bissecao.html. Já a segunda abordagem, indicamos a seção 3.2.1, Código Python: método da bisseção, também por Justo et al. (2020), do mesmo livro, mas na sua versão com ênfase na linguagem Python. Disponível em: https://www.ufrgs. br/reamat/CalculoNumerico/livro-py/ sdeduv-metodo_da_bissecao.html. Acessos em: 15 jul. 2022. Leitura https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/sdeduv-metodo_da_bissecao.html https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/sdeduv-metodo_da_bissecao.html https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/sdeduv-metodo_da_bissecao.html https://www.ufrgs.br/reamat/CalculoNumerico/livro-py/sdeduv-metodo_da_bissecao.html https://www.ufrgs.br/reamat/CalculoNumerico/livro-py/sdeduv-metodo_da_bissecao.html https://www.ufrgs.br/reamat/CalculoNumerico/livro-py/sdeduv-metodo_da_bissecao.html 68 Cálculo Numérico O método da bissecção é considerado um dos métodos mais simples para cal- cularmos a convergência para uma solução (o zero de uma função). Contudo, a velocidade para essa convergência pode ser melhorada. Vejamos outros métodos e suas características quanto à garantia de convergên- cia e à velocidade para a obtenção de soluções dentro de tolerâncias permitidas para diferentes problemas. 3.3 Iteração de ponto fixo Vídeo O método numérico conhecido como iteração de ponto fixo ou, simplesmente, método do ponto fixo consiste em substituirmos o problema original de encontrar- mos a raiz de uma função f(x) = 0 por outro equivalente escrito na forma g(x) = x + A(x)f(x), com A(x) ≠ 0. Assim, quando f(p) = 0, teremos g(p) = p para A(x) ≠ 0. Nesse caso, o ponto p é chamado ponto fixo de g e, portanto, achar o zero de f fica representado por achar o ponto fixo de g. Podemos avaliar esse método graficamente a partir da Figura 3. Vejamos que um ponto fixo de uma função é um ponto de interseção entre a reta y = x com o gráfico da função g(x). Vamos entendê-lo geometricamente conforme a Figura 3. Figura 3 Método do ponto fixo y b g (x1) g (x2) g (x0) g (x*) b a a x1 x2x* x0 x Fonte: Elaborada pela autora. Assumindo uma aproximação inicial x0 para x*, fazemos sucessivas iterações da função g sobre x0. Dessa forma, podemos escrever: xk+1 = gk+1 (x0) = gk (g(x0)) = g(xk), com k ≥ 0 Sendo cada xk uma nova aproximação do ponto fixo x*. Zeros de funções reais 69 Vejamos o Exemplo 2. Exemplo 2 Seja a função f(x) = x2 + x - 4 e g x x� � � �4 , calculemos as oito primeiras iterações assumindo: x0 = 1. Sendo g x x� � � �4 , então para x1 teremos: x g x x1 0 4 1 73205� � � � � � , Continuando as iterações, fazemos: x g x x2 1 14 1 50597� � � � � � , x g x x3 2 24 1 57925� � � � � � , Assim sucessivamente, até encontrarmos: x g x x8 7 74 1 56174� � � � � � , Vejamos a representação conforme a Figura 4. Figura 4 Funções f e g Fonte: Elaborada pela autora. Notemos que a função f(x) tem duas raízes e o métododo ponto fixo se aproximou de uma delas. Isso ocorreu pela escolha do ponto inicial x0 = 1. Ainda para o Exemplo 2, trazemos a sugestão do Código-fonte 1 para a resolu- ção do problema. 70 Cálculo Numérico import numpy as np import scipy as sci from scipy import optimize #funcao do pto. fixo def g(x): return np.sqrt(4-x) #est. da solucao xe = sci.optimize.fixed_point(g, 1) #aprox. inicial x0 = 1 eps = np.fabs(x0-xe) print(“x1 = %.5f, eps =~ %.1e” % (x0, eps)) for i in np.arange(7): x = g(x0); eps = np.fabs(x-xe); print(“%s =~ %.5f, eps =~ %.1e” % ((‘x’+str(i+2)), x, eps)) x0 = x Código-fonte 1 – Código aplicado para o Exemplo 2 Percebamos que a linguagem de programação usada, ou mesmo a maneira que escrevemos um código, é bastante particular e pode conter várias diferenças quan- do comparada a outros códigos. Entretanto, todos eles, descartando as diferenças de máquina (seja processamento ou memória), devem chegar na mesma solução. Tabela 2 Dados extraídos a partir do Código-fonte 1 k xk+1 |x* – xk| 1 x2 = 1,73205 1,7 · 10 –1 2 x3 = 1,50597 5,6 · 10 –2 3 x4 = 1,57925 1,8 · 10 –2 4 x5 = 1,55588 5,7 · 10 –3 5 x6 = 1,56337 1,8 · 10 –3 6 x7 = 1,56097 5,8 · 10 –4 7 x8 = 1,56174 1,9 · 10 –4 Fonte: Elaborada pela autora. Como todo método numérico, precisamos garantir as condições de convergên- cia para que a solução do método convirja para a solução exata. Essa necessidade fica evidente em alguns casos. Por exemplo, algumas funções não têm ponto fixo, por exemplo, g(x) = x – 1, e outras podem ter mais de um ponto fixo, como g(x) = x2 – 2. Zeros de funções reais 71 Dessa maneira, devemos assumir algumas definições com base nos Teoremas 4 e 5 para garantir a convergência para uma solução factível. Teorema 4 Se g ∈ C[a,b] e g(x) ∈ [a,b], então g tem ponto fixo em [a, b] tal que |g(x) – g(y)| ≤ β|x – y| Para 0 ≤ β < 1. Nesse caso, dizemos que g é uma contração. Prova Se g(a) = a ou g(b) = b, então existe um ponto fixo. Caso contrário, g(a) > a e g(b) < b. Seja h(x) = g(x) – x. Então, h(a) > 0 e h(b) < 0 Como h é continua pelo TVI, logo existe p ∈ (a,b) tal que h(p) = 0. Portanto, existe p tal que g(p) = p. Vejamos a definição apresentada no Teorema 5. Teorema 5 Se g ∈ C[a,b] e g(x) ∈ [a,b], e se |g’(x) ≤ k < 1| para todo x ∈ (a,b), então g tem um único ponto fixo em [a,b]. Prova Suponhamos que |g’(x)| ≤ k < 1, para x ∈ (a,b) e que existam dois pontos fixos p1 e p2 com p1 ≠ p2. Pelo TVM, existe c em (p1, p2) tal que g(p1) – g(p2) = g’(c) · (p1 – p2) p1 – p2 = g’(c) · (p1 – p2) Logo, |p1 – p2| = |g’ (c)(p1 – p2)| < |p1 – p2| Que é uma contradição. Portanto, a ideia do método do ponto fixo é a de construir uma sequência x0, …, xk por meio de iterações com a forma: xk+1 = g(xk) Caso a sequência seja convergente, então ela convergirá para o ponto fixo de g, pois, se {xk} → p, então g(p) = p. Prova lim x p lim g x g lim x g p k k k k k k � � � � �� � � � � � �� � � � �� � �1 1 Consequentemente, dado o problema: f(x) = 0 em [a,b], devemos escolher uma função de iteração da forma g(x) = x + A(x) · f(x), com A(x) ≠ 0, tal que |g’(x)| ≤ k < 1, ∀ x ∈(a,b) e g[a,b] ⊂ [a,b]. 3.3.1 Condições de convergência Da mesma forma que identificamos no método da bissecção, temos condições específicas de convergência para o método do ponto fixo. 72 Cálculo Numérico Assim, vamos enunciar essas condições conforme os teoremas a seguir. Teorema 6 Seja g ∈ C1 [a,b], g[a,b] ⊂ [a,b] e |g’(x)| ≤ k < 1 para todo x ∈ [a,b], então, para qualquer x0 ∈ [a,b], a sequência definida por xn = g(xn–1) com n ≥ 1 converge para o único ponto fixo p de g em [a,b]. Prova Temos que provar que a sequência converge para p, já que temos a garantia que existe um único ponto fixo p. Portanto, {xn} converge desde que: |xn – p| = |g(xn–1) – g(p)| = |g’(c)| · |xn–1 – p| ≤ k|xn–1 – p| Então, |xn – p| ≤ k|xn–1 – p| ≤ k 2 |xn–2 – p| ≤ ...... ≤ k n |x0 – p| Portanto, lim x p lim k x p n n n n � � � � � � � � 0 0 Assim, provamos a convergência {xn} → p. Verificar a ordem de convergência nos ajuda a compreender a velocidade por meio da qual nos aproximaremos da solução. Sendo assim, para o método do pon- to fixo, temos a ordem de convergência, conforme o Teorema 7. Teorema 7 Se g´(p) ≠ 0, então, para qualquer x0 ∈ [a,b] a sequência xn = g(xn-1), com n ≥ 1, conver- ge linearmente para p ∈ [a,b]. Prova Para essa prova, usamos o TVM para a função g no intervalo [xn,p]. Assim, existe cn em (xn,p), tal que g(xn) – g(p) = g’ (cn)(xn – p) Portanto, xn+1 – p = g’(cn) · (xn – p) Isso nos permite escrever: � � � � � � � � � �n n n n n x p x p g' c 1 1 Assim, lim x p x p lim g c g lim c g p C n n n n n n n � � � � � � � � � � � � � � � � �� �� � �1 0´ Notemos que: • |g’(p)| é a taxa de convergência do método. Quanto menor esse valor, mais rapidamente teremos a convergência para a solução; • quando |g´(p)| = 0, temos o método de Newton-Raphson; • de acordo com Justo et al. (2020), quando g’(p) < 0, o esquema é dito alter- nante, ou seja, o sinal do erro se alterna a cada passo; • quando 0 < g’(p) < 1, esquema é dito monótono e 1 1 1 � � � � �g p . Zeros de funções reais 73 Vejamos o Exemplo 3. Exemplo 3 Dado f(x) = x2 – x, vamos achar o seu zero no intervalo �� �� � �� 1 2 1 2 , . a) Achar uma função de iteração g(x) = x + A(x) · f(x), A(x) ≠ 0 Podemos escrever: A(x) = 1 e g(x) = x2 ou isolar x na equação f(x) = 0 b) Verificar se g é contração e |g’(x)| < 1 para todo x� �� � � � � � 1 2 1 2 , Fazemos: �� � � � � � �� � � � � �g x x x2 1 1 2 1 2 , , ou ainda g � � �� � �� � � �� � �� 1 2 1 2 0 1 4 , , c) Cálculos: xn = g(xn-1) onde g(x) = x 2 Portanto, Tabela 3 Aproximação para a solução x g(x) 1 4 1 16 1 16 1 256 1 256 1 65536 → 0 Fonte: Elaborada pela autora. Vejamos a representação gráfica por meio da Figura 5. Figura 5 Função g(x) = x2 Fonte: Elaborada pela autora. 74 Cálculo Numérico Observemos que no gráfico da Figura 5, em que o arredondamento é feito assu- mindo 4 casas decimais, temos um erro envolvido nesse tipo de ajuste numérico. De acordo com Lobão (2017, p. 27), podemos tirar algumas conclusões rápidas a respeito desse método • a maior dificuldade encontrada está em iniciar com uma função de iteração que satisfaça a condição de convergência; • o teste de |g’(x)| < 1 pode levar a um engano se x0 não estiver suficientemen- te próximo à raiz. Na sequência apresentamos mais um método que nos permite encontrar os zeros de uma função. Podemos, inclusive, comparar características do método da bissecção a ele. 3.4 Newton-Raphson Vídeo O próximo método é conhecido como método de Newton-Raphson ou, apenas, método de Newton. Joseph Raphson publicou sua versão do método em 1960 na obra Analysis Ae- quationum Universalis. Contudo, a famosa obra de Isaac Newton, Method of Fluxions, escrita em 1671, mas publicada apenas em 1736, mostra que Newton já trabalhava em um método semelhante para o cálculo de raízes de funções. Por esse motivo, o método carrega o nome dos dois cientistas, sendo a versão de Raphson a qual usamos atualmente. O método de Newton-Raphson pode ser entendido segundo três abordagens: • polinômios de Taylor: f(x) = P1 (x) + E(x); • análise por meio do método do ponto fixo g x x f x f x� � � � � � � �� 1 · para |g´(p)| = 0; • e a gráfica. A seguir, explicitaremos cada uma delas. 3.4.1 Abordagem por polinômios de Taylor A partir daqui discorremos sobre a abordagem por meio da expansão de Taylor. Assim, seja a expansão de f em trono de xk: f x f x x x f x x x f ck k k k� � � � �� �� � � �� �� � � �� �� 2 2! Com c ∈ (x,xk) ou (xk,x). Truncando essa expansão na derivada de primeira ordem, teremos: f(x) = P1 (x) + E(x) Onde P1(x) = f(xk) + (x – xk) f ’(xk) e E x x x f c k� � � �� � � ��� 2 2! é o erro assumido, sendo E(p) ≈ 0. Logo, escreveremos: 0 = f(p) ≈ P1 (p) = f(xk) + (p – xk) f ’(xk) Zeros de funções reais 75 Então,p x f x f x xk k k k� � � � � � � � �� � � �� �� �1 que é um valor aproximado do zero p. Essa expressão nos permite escrever a função de iteração para o método de Newton-Raphson: x x f x f x kk k k k � � � � � � � � � �� � � �� ��1 0, A seguir, detalhamos a abordagem pelo método do ponto fixo. 3.4.2 Abordagem pelo método do ponto fixo Olhando como método do ponto fixo, teríamos que resolver a equação f(x) = 0 por meio do problema equivalente g(x) = x + A(x) . f(x), A(x) ≠ 0 onde a solução p é tal que f(p) = 0 e g(p) = p. Nesse caso, a função escolhida A(x) é A x f x � � � � � � � � 1 0 e g x x f x f x � � � � � �� �� A sequência gerada por xk+1 = g(xk) fica da seguinte forma. x x x f x f x x x f x f x p0 1 0 0 0 2 1 1 1 ; ; ; ,� � � � � � � � � � � � � � � � Como a metodologia usa o conceito já abordado para o método do ponto fixo, precisamos analisar a função de iteração de g que deve ser escolhida e que satisfa- ça as condições de convergência para g de modo que essa seja uma contração, ou seja, |g’(x)| < 1, para todo x ∈ I. 1. Primeiro passo Verificar |g’(x)| ≤ k < 1 para todo x ∈ I, onde I é o intervalo que contém o zero p: g x x f x f x � � � � � �� �� � � � �� �� �� � � � � � � �� � � � � � � � � � � � � � �g x f x f x f x f x f' x f x f x f' x 1 2 2[ ] [ ] gg p� � �0 Agora, supondo que f ’(p) ≠ 0, teremos f ∈ C2[a,b], então, g ∈ C1[a,b]. Assim, g’ é contínua no intervalo que contém p, portanto, g’ é contínua em p. • ∀ε > 0, ∃ ∂ > 0 tal que, se |x – p| < ∂, então |g’(x) – g’(p)| < ε • ∀ε > 0, ∃ ∂ > 0 tal que, se |x – p| < ∂, então |g’(x)| < ε • Ε = k < 1, então existe ∂ > 0 tal que, se x ∈ (p – ∂, p + ∂) = Ip , logo |g’(x)| < 1 Então, existe Ip, sendo esse um intervalo em torno de p, onde |g’(x)| < 1. 2. Segundo passo A função g é contração, isto é, g(I) ⊂ I. Assim, seja x ∈ I e p em I, então, pelo teorema do valor médio, existe c entre x e p tal que: g(p) – g(x) = g’(c) · (p – x) 76 Cálculo Numérico Assim, |g(p) – g(x)| = |g’(c)| |p – x| Pela primeira parte, existe Ip com |g’(x)| < 1. Com isso, fazendo I = Ip, então, |g(p) – g(x)| < |p – x| Portanto, |p – g(x)| < |p – x|, ∀ x ∈ I Logo, g é contração. Desse modo, a abordagem pelo método do ponto fixo carrega as condições de convergência desse ponto. Agora, vejamos a próxima abordagem: a gráfica. 3.4.3 Abordagem gráfica Por meio da análise gráfica, dado f ∈ C2 [a,b], queremos encontrar p tal que f(p) = 0. Assim, teremos uma situação similar àquela trabalhada no método do ponto fixo. Para a construção dessa abordagem, supomos uma aproximação inicial x0 e calculamos: x x f x f x 1 0 0 0 � � � � � �� Com isso, obtemos x1 que será a intersecção da reta tangente ao gráfico da fun- ção f(x) no ponto x = x0 e o eixo das abscissas. A equação dessa reta tangente é escrita como: f ’(x0)(x – x0) + f(x0) = y (2) Dessa forma, temos que a intersecção da reta escrita pela Equação 2 com o eixo Ox acontece quando: f ’(x1)(x – x1) + f(x1) = 0 Portanto, x x f x f x � � � � � ��1 1 1 Vejamos a representação gráfica a partir da Figura 6. Figura 6 Aproximação por Newton-Raphson y f (xk) xk+1 xxkp Fonte: Elaborada pela autora. Zeros de funções reais 77 Agora, observemos o Exemplo 4. Exemplo 4 Seja a função f(x) = sinx. Usando o método de Newton-Raphson, queremos encontrar a raiz dessa função no intervalo 0 2 , �� � � � � � . Assumiremos que x0 = 1, assim, x1 1 1 1 0 5574� � � � � � � � sin cos , x2 0 5574 0 5574 0 5574 0 0659� � � �� � �� � �, sin , cos , , x3 50 0659 0 0659 0 0659 9 5722 10� � � � � � � � �, sin , cos , , . Prosseguindo com esse processo e colocando como critério de parada f(xk) > 10 –12 ou f(xk) < –10 –12, encontraremos x4 = 2,923566.10 –13. Podemos usar uma linguagem de programação para obtermos tal resultado. Para o Exemplo 4, sugerimos a linguagem Python e indicamos o uso do Código-fonte 2. import numpy as np def f(x): return np.sin(x) def df(x): return np.cos(x) def nr(a): c = a n = 0 X = [] Y = [] while (f(c) > 10**-12) or (f(c) < -(10**-12)): c = a - (f(a)/df(a)) n += 1 X.append(n) Y.append(c) if a==c: return c, n, X, Y a = c return c, n, X, Y a,n,x,y = nr(1) print(a,n) #matplotlib inline import matplotlib.pyplot as plt plt.figure(figsize=(10, 10)) plt.style.use(‘fivethirtyeight’) plt.plot(x,y, ‘-b’, color=’green’) plt.show() Código-fonte 2 – Código aplicado para o Exemplo 4 78 Cálculo Numérico Vejamos a representação gráfica na Figura 7. Figura 7 Imagem obtida pela programação sugerida 0.0 –0.1 –0.2 –0.3 –0.4 –0.5 1.0 2.0 2.5 3.0 3.5 4.01.5 Fonte: Elaborada pela autora. Também é possível usarmos o GeoGebra para analisarmos o resultado do Exemplo 4. Nesse caso, é a Figura 8 que obteremos. Figura 8 Aproximação da raiz da função f(x) = sinx Fonte: Elaborada pela autora. A abordagem gráfica pode não ser muito precisa com relação à obtenção de valores, todavia ela permite que o intervalo de convergência possa ser avaliado e auxilia no processo de entendimento do método. Zeros de funções reais 79 3.4.4 Condições de convergência Seja f ∈ C2[a,b]. Se p ∈ [a,b] tal que f(p) = 0 e f´(p) ≠ 0, então ∃δ > 0 tal que a sequência gerada {xk} definida pela Equação 3 converge para p, independente da aproximação inicial x0 ∈ [p – δ, p + δ]. x x f x f x k k k k � � � � � � ��1 (3) Notemos que a ordem de convergência é quadrática, visto que avaliamos o erro por meio da expressão x p M x pn n� � � �1 2 2 . , com |g’’(x)| < M para x ∈ I e g ∈ C2 (I). Vejamos o Exemplo 5. Exemplo 5 Encontre a raiz da função f(x) = x2 – x no intervalo �� �� � �� 1 4 1 4 , , assumindo x0 1 4 = Desse modo, como f ’(x) = 2x – 1, fazemos: x x f x f x 1 0 0 0 � � � � � �� E assim sucessivamente. Usando o Código-fonte 2 como base, temos os trechos a seguir. def f(x): return x**2-x def df(x): return 2x-1 Código-fonte 3 – Primeiro trecho de aplicação Junto ao seguinte trecho. a,n,x,y=nr(0.25) Código-fonte 4 – Segundo trecho de aplicação Obteremos os valores dispostos na Tabela 4. Tabela 4 Valores para xn e xn+1 n xn x x f x f xn n n n� � � � � �� �1 0 0,25 –0,125 1 –0,125 –0,0125 2 –0,0125 –0,000152 3 –0,000152 –2,323.10–8 4 –2,323.10–8 –5,3966.10–16 Fonte: Elaborada pela autora. 80 Cálculo Numérico A Figura 9 apresenta o gráfico para análise da convergência da solução de f(x). Figura 9 Aproximação da raiz de f(x) = x2 – x 0.00 –0.02 –0.04 –0.06 –0.08 –0.10 –0.12 1.0 1.5 2.0 3.0 4.0 5.02.5 3.5 4.5 Fonte: Elaborada pela autora. Além dos métodos da bissecção, ponto fixo e Newton-Raphson, ainda podemos citar um método bastante utilizado para a obtenção de raízes numéricas de fun- ções denominado método das secantes. Vejamos a seguir. 3.5 Método das secantes Vídeo O método da secante é similar ao método de Newton-Raphson. Ele pode ser considerado uma variação do anterior, mas no método das secantes não há a ne- cessidade do cálculo da derivada da função de maneira analítica. Para isso, fazemos uma substituição da forma (4): f x f x f x x x x xk k k k k k´ ,� � � � �� � � � �� � 1 1 (4) Sabemos que o método de Newton-Raphson é uma iteração de ponto fixo dada por (5): xk+1 = xk – A(xk)f(xk), k ≥ 1 (5) Com x1 uma aproximação inicial e A x f xk k � � � � �� 1 . Assim, no método das secantes, fazemos uma aproximação da derivada que nos permite escrever (6): A x f x x x f x f x k k k k k k � � � � � � �� � � �� � �� � � 1 1 1 (6) Zeros de funções reais 81 Desse modo, chegamos ao que chamamos de método das secantes, que é escrito substituindo (6) em (5): x x x x f x f x f x kk k k k k k k� � � � � �� � � �� � � � � �1 1 1 2, (7) Observe a Figura 10 com as primeiras iterações pelo método das secantes. Figura 10 Representação gráfica das iterações do método aplicado f (x) x2 x1x0x3 Atentemos que no método das secantes dependemos de dois valores iniciais: xk–1 e xk. 3.5.1 Condições de convergênciaAs condições de convergência para o método das secantes são análogas ao mé- todo de Newton-Raphson e derivam do método do ponto fixo. Já a ordem de con- vergência não é quadrática e nem linear. A sequência produzida pelo método das secantes {xk} converge para x* (a solu- ção aproximada) com: lim k k * k * p x x x x c � � � � � � 1 Onde c > 0 e p � � � 1 5 2 1 1618, Ela é dita superlinear, pois está no intervalo 1 < p < 2. Ji ts e Ni es en /W ik im ed ia C om m on s 82 Cálculo Numérico Quadro 1 Comparação dos métodos Método Aproximações iniciais Taxa de convergência Estabilidade Acurácia Amplitude da aplicação Comentários Direto Limitada Gráfico Ruim Raízes reais Pode levar mais tempo que os mé- todos numéricos Bissecção 2 Lenta Sempre Boa Raízes reais Ponto fixo 1 Lenta Possível divergência Boa Geral Newton-Raphson 1 Rápida Possível divergência Boa Geral Exige cálculo de f’(x) Secante 2 Média a rápida Possível divergência Boa Geral As aproximações iniciais não preci- sam cercar a raiz Fonte: Chapra; Canale, 2016. Portanto, a comparação entre métodos permite-nos a possibilidade de fazer escolhas mais acertadas quanto à velocidade de convergência e às necessidades específicas de cada método com foco nas informações disponíveis em cada caso ou situação-problema. CONSIDERAÇÕES FINAIS Os métodos trabalhados neste capítulo permitem que encontremos os zeros (ou raízes) de funções não lineares e que avaliemos os erros inerentes a cada um dos métodos apresentados. Como pudemos perceber, alguns dos métodos apresentam a garantia de existên- cia de solução, como é o caso do método da bissecção. Outros já possuem condições bem específicas para que a haja convergência para a solução, como é o caso do mé- todo do ponto fixo. Desse modo, para entendermos todos esses conceitos, relembramos os teoremas do cálculo para funções de uma variável, que possibilitaram a construção dos métodos numéricos tratados no capítulo. Portanto, reforçamos que esses não são os únicos métodos existentes. A partir de uma rápida leitura nas referências bibliográficas que embasam nosso material, já podemos nos deparar com outras possibilidades. ATIVIDADES Atividade 1 O teorema 1 expressa que, se f:[a,b] → ℝ, y = f(x) é uma função contínua tal que f(a) ⋅ f(b) < 0, então existe x* ∈ (a,b) tal que f(x*) = 0, onde x* é chamada de solução exata. Explique por que precisamos garantir que f(a)f(b) < 0. Zeros de funções reais 83 Atividade 2 De acordo com Gilat e Subramaniam (2008, p. 76), “a tolerância é a máxima quanti- dade na qual a solução exata pode desviar de uma solução numérica aproximada”. Partindo dos conceitos vistos no capítulo e dessa afirmação, quais fatores podem determinar a tolerância de um método numérico? Use como referência o método do ponto fixo. Atividade 3 Assumindo que: x x f x f x kk k k k � � � � � � � � � �� � � �� ��1 0, é a equação que rege o método de Newton-Raphson, identifique uma das dificul- dades para a utilização desse método numérico. REFERÊNCIAS CHAPRA, S. C.; CANALE, R. P. Métodos numéricos para engenharia. 7. ed. Porto Alegre: AMGH, 2016. GILAT, A.; SUBRAMANIAM, V. Métodos numéricos para engenheiros e cientistas: uma introdução com aplicações usando o MATLAB. Porto Alegre: Bookman, 2008. JUSTO, D. A. R. et al. (org.). Cálculo Numérico: um livro colaborativo. Porto Alegre: UFRGS, 2020. Disponível em: https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf. Acesso em: 24 maio 2021. LOBÃO, D. C. Introdução aos métodos numéricos. Rio de Janeiro: UFF, 2017. Disponível em: https://www. professores.uff.br/diomarcesarlobao/wp-content/uploads/sites/85/2017/09/note6.pdf. Acesso em: 6 de maio 2022. https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf https://www.professores.uff.br/diomarcesarlobao/wp-content/uploads/sites/85/2017/09/note6.pdf https://www.professores.uff.br/diomarcesarlobao/wp-content/uploads/sites/85/2017/09/note6.pdf 84 Cálculo Numérico 4 Interpolação e ajuste de curvas As técnicas de aproximação de curvas e interpolação permitem-nos que possamos traçar estimativas para os problemas os quais não conhecemos a função (ou lei) que os rege. Por esse, e outros motivos, no decorrer do texto, aprenderemos a resolver os mais diversos tipos de ajustes de curvas, sendo essa uma tarefa de grande necessidade dentro das ciências. Já a interpolação de pontos, além de ser um estudo representativo na área das exatas e engenharias, também está muito presente nas ciências sociais e em demais áreas, por ser facilmente adotada em esquemas de dispersão de pontos, muitas vezes obtidos por meio de pesquisas e de coletas de dados. Imagine as seguintes situações: na primeira, você recebeu uma lista de pontos e precisa encontrar a função que melhor se ajusta a todos eles. Já na segunda, você tem uma função f, onde essa só é conhecida para alguns valores de x. Ou ainda, a função f que modela um determinado problema é complicada para se trabalhar, e substituir f por uma função g permite simplificarmos o problema com uma quantidade controlada de erros. Diante disso, surgem os seguintes questionamentos: em todos esses casos, qual será a melhor curva para esse tipo de ajuste? Uma curva linear, quadrática, exponen- cial ou mesmo uma curva polinomial? Logo, ao longo do capítulo, veremos como responder essas situações. Com o estudo deste capítulo, você será capaz de: • identificar e compreender os processos de interpolação polinomial; • compreender o conceito de aproximação de funções e os métodos de interpola- ção: de Lagrange e de Newton; • resolver situações problema que possibilitem o uso: dos polinômios de Lagran- ge, das diferenças de Newton e seu método interpolador; • comparar métodos de interpolação com métodos de aproximação; • aplicar o método dos mínimos quadrados discreto e contínuo. Objetivos de aprendizagem 4.1 Interpolação polinomial Vídeo Ao falarmos em interpolação, pensamos em qual o tipo de curva (função) que melhor se ajusta a diferentes problemas. Além disso, caso necessário, a função escolhida precisa ser matematicamente fácil de ser manipulada. Entre essas mani- pulações, estão incluídas a necessidade de derivá-la e/ou integrá-la. Interpolação e ajuste de curvas 85 A ideia é de aproximar f(x) por uma função g(x). Notemos que, quando temos poucas informações a respeito do modelo, o mais comum é interpolarmos usando funções polinomiais. A razão por trás disso é rela- cionada ao fato de os polinômios serem fáceis de manipular, por exemplo, mostrar a continuidade, as derivadas, as integrais, entre outros. Ademais, existem diversos teoremas do cálculo já consolidados que provam todos esses conceitos. Citamos aqui o teorema de Weierstrass (GUIDORIZZI, 2001) que diz: Teorema 1 Seja f contínua em [a,b]. Dado ε > 0, existe um polinômio pn (x), com n = n(ε), tal que |f(x) – pn(x)| < ε para todo x ∈ [a,b]. Vejamos a representação por meio da Figura 1. Figura 1 Erro dos métodos de interpolação f (x) p (x) y ε x Fonte: Elaborada pela autora. Portanto, precisamos escolher uma função g(x) = a0g0(x) + ... + angn(x) tal que a classe dessa função dependa de informações conhecidas sobre f. Assim, podemos elencar critérios para ajustar pn(x) = a0 + a1 · x+...+ an · x n, com pn (xi) = f(xi) para i = 0,1, ....n, ou seja: • a interpolação gera uma função que passa exatamente pelos pontos dados; • e o grau do polinômio está associado ao número de pontos escolhidos. Existem muitos métodos de interpolação polinomial que podem ser adotados: de Lagrange, de Newton, de Hermite, a interpolação por partes pelo método de Splines, entre outros. Entre eles, neste capítulo, estudamos os métodos de Lagran- ge e de Newton devido a sua aplicabilidade em diversas situações físicas e a sua facilidade de implementação computacional. Além do teorema de Weierstrass que demonstra a existência de um polinômio pn tal que |f(x) – pn (x)| < ε, sabemos que o valorpara pn(x), sendo x ∈ ℝ para um polinômio de grau n, pode ser calculado por meio de n + 1 operações de multipli- cação e n + 1 operações de adição. Contudo, qual será o valor de n para cada situação? Ou, até mesmo, como obte- mos esse polinômio e garantimos que ele seja único? Para respondermos a essas questões, acompanhemos o seguinte raciocínio. 86 Cálculo Numérico Seja pm(x) = am · x m + ⋯ + a1 · x 1 + a0 tal que pm(xi) = yi, com i = 0,1, …n. Assim, a x a x a y a x a x a y a x m m m m m n m 0 1 0 0 0 1 1 1 0 1 � � � � � � � � � ..... ..... ...... ......� � � � � � � � � � a x a yn n1 0 é um sistema de equações com n + 1 equações e m + 1 incógnitas que pode ser escrito em notação matricial da forma: X · A = Y. Em que: X x x x x x x x x x A a a m m n m n n m � � � � � � � � � � � � � � � � 0 0 1 0 0 1 1 1 1 0 1 0 1 � � � � � � � � , aa e Y y y yn0 0 1 � � � � � � � � � � � � � � � � � � � � � � � � � � Desse modo, A é o vetor das incógnitas. A solução do sistema é única se m = n e det(X) não for nulo. Notemos que a matriz X possui os termos de todas as suas linhas descritos por meio de progressões geométricas 1 . Essa característica da matriz recebe o nome de matriz de Vandermonde, e seu determinante é descrito como: X x x i j n j i� �� � � � � � 1 sendo sempre um determinante não nulo e, portanto, fazendo com que o sistema de equações XA = Y tenha solução única. É importante lembrarmo-nos de que o sistema XA = Y pode ser resolvido por A = X-1 · Y, porém, normalmente, a matriz X é mal condicionada quando o número de pontos ou a variação nas abscissas é muito grande. Nesses casos, é comum adotarmos polinômios que formem uma base que permita escrever uma matriz bem condicionada. Na sequência, estudaremos dois métodos de interpolação (de Lagrange e de Newton) que usam essa premissa como fundamento principal. 4.2 Interpolação de Lagrange Vídeo Um dos métodos usados para resolvermos o problema da interpolação de pon- tos a partir de um polinômio é chamado de método de Lagrange ou interpolação de Lagrange. O método de Lagrange, desenvolvido pelo matemático, astrônomo e físico, Giu- seppe Ludovico Lagrangia (1736-1813), considera (xi, yi), i = 0, 1, 2, ..., n pontos a serem interpolados. Alexandre-Theóphile Vandermonde foi um ma- temático francês que viveu em Paris durante toda sua vida (1735-1796), sendo o responsável por desenvol- ver a matriz que recebeu o seu nome. Para sabermos um pouco mais sobre o uso desse tipo de matriz e os cálculos envolvidos para encontrar o determinante da matriz de Vandermonde, sugerimos o vídeo Matriz de Vandermonde, disponível na página E-Aulas da Universi- dade de São Paulo. Disponível em: https://eaulas.usp.br/ portal/video.action?idItem=13416. Acesso em: 10 ago. 2022. Vídeo Uma progressão geométrica é uma sequência numérica (ou de funções) na qual cada termo é igual ao pro- duto do seu antecessor por uma constante, chamada de razão da progressão geométrica. 1 https://eaulas.usp.br/portal/video.action?idItem=13416 https://eaulas.usp.br/portal/video.action?idItem=13416 Interpolação e ajuste de curvas 87 De acordo com diversos autores, como Justo et al. (2020), Chapra e Canale (2016), o método de Lagrange parte do princípio de encontrarmos Lk(xi) para (xk, yk), tal que L xk i� � � � � � � � 1 0 , , se i k se i k Se Lk(x) = a(x – x0)..... (x – xk–1)(x – xk+1).......(x – xn), então: L x x x x x k i k i � � � �� � �� �� � � i i k n 0 (1) Com essa etapa verificada, é necessário escrevermos o polinômio interpolador Pn, tal que: P x y L x y L x y L x y L xn i n i i n n� � � � � � � �� � �� � � � � � 0 0 0 1 1. . ... . (2) Exemplo 1 Sejam os pontos (0,1), (–1,2) e (1,3). Devemos achar o polinômio de Lagrange que interpola esses pontos. Para resolvermos o Exemplo 1, inicialmente, notemos que os pontos não estão alinhados e visualmente é difícil pensarmos em um polinômio que se encaixe ade- quadamente a eles (Figura 3). Figura 3 Pontos a serem interpolados Fonte: Elaborada pela autora. Para isso, usaremos o método de Lagrange com o intuito de resolvermos esse problema. Portanto, por L x x x x x k i k i � � � �� � �� �� � � i i k n 0 teremos: L x x x0 2 1 1 0 1 0 1 1� � �� �� � �� � � �� �� � �� � � � �� � L x x x x1 20 1 1 1 1 1 1 2 � �� � �� � � �� � � �� � � �� � L x x x x2 2 0 1 1 0 1 1 1 2 � �� � � �� �� � �� � � �� �� � � �� � Figura 2 Retrato de Lagrange Apesar de ser conhecido formalmente como Joseph-Louis Lagrange, o seu nome de batismo é Giuseppe Ludovico Lagrangia, por ter nascido em Turim, na Itália, no entanto, todos os seus trabalhos renomados recebem Lagrange em seu nome, e não o seu nome de nascimento. Ser ge ipr ive t/W iki m ed ia C om m on s 88 Cálculo Numérico Agora, usando P x y L x y L x y L x y L xn i n i i n n� � � � � � � �� � ���� � � � � 0 0 0 1 1. . . obteremos: P x x x x x x2 2 2 21 1 2 1 2 3 1 2 � � � � �� �� �� �� �� � � � � � � �� �� � � � � �. . . P x x x2 23 2 1 2 1� � � � � Vejamos a representação na Figura 4. Figura 4 Gráfico do polinômio P2(x) Fonte: Elaborada pela autora. Sobre a unicidade, suponhamos que exista outro Qn(x) tal que Qn(xi) = yi, para i = 0,1, …, n. Nesse caso, podemos escrever: seja f(x) = Pn(x) – Qn(x) e observe que f(xi) = 0, para todo i = 0,1, ...n. Logo, Pn(x) é único. Portanto, os métodos numéricos exigem avaliação do erro (LOBÃO, 2017). Os erros, como sabemos, podem vir da modelagem matemática, da simplificação do modelo e, posteriormente, dos ajustes de cálculo, como arredondamentos e trun- camentos. Na sequência, veremos como avaliar o erro para o método de interpo- lação de Lagrange. 4.2.1 Análise do erro Consideremos um intervalo fechado I, com I = [a, b], xi ∈ I, t ∈ I, f ∈ Cn+1(I). Existe c pertencente ao intervalo (a, b), tal que se E(t) = f(t) – Pn(t). Então, E t t x t x n f c t I n n� � � �� �� �� � �� � � � � � ��� �0 1 1 ! , Para saber mais sobre esse assunto e acompanhar vários exemplos resolvidos com o uso do método de Lagrange, sugerimos o material intitulado Interpo- lação – Lagrange, disponível no site da Universidade Federal do Rio Grande do Norte (UFRN) no endereço eletrônico. Disponível em: https://cn.ect.ufrn.br/ index.php?r=conteudo%2Finterp- lagrange. Acesso em: 10 ago. 2022. Leitura https://cn.ect.ufrn.br/index.php?r=conteudo%2Finterp-lagrange https://cn.ect.ufrn.br/index.php?r=conteudo%2Finterp-lagrange https://cn.ect.ufrn.br/index.php?r=conteudo%2Finterp-lagrange Interpolação e ajuste de curvas 89 Vejamos o Exemplo 2 dessa análise. Exemplo 2 Suponha que tenhamos as informações de um paraquedista em queda livre. A partir dessas informações concentradas na Tabela 1, em que para cada tempo de queda, temos a velo- cidade desse paraquedista. Tabela 1 Tempo e velocidade do paraquedista Tempo (s) Velocidade v (cm/s) 1 800 3 2310 5 3090 7 3940 13 4755 Fonte: Elaborada pela autora. A partir disso, queremos fazer uma estimativa da velocidade no instante t = 6. Para isso, construiremos alguns polinômios interpoladores, Pn(t), para os pontos conhecidos, de maneira que possamos calcular a velocidade em Pn(6), além disso, comparar o erro em todos os casos. Para conseguirmos fazer a comparação do erro do Exemplo 2, assumiremos que f(6) = 3540 cm/s. Assim, nosso primeiro polinômio será calculado para (5,3090) e (7,3940), ou seja: L x x 0 7 5 7 7 2 � �� � �� � � �� � � L x x 1 5 7 5 5 2 � �� � �� � � �� � Portanto, P x x x1 3090 7 2 3940 5 2 � � � � � � � � � � � � �� � � � � � Vejamos a representação disso na Figura 5. Figura 5 Representação da reta do polinômio P1(x) Fonte: Elaborada pela autora. 90 Cálculo Numérico Notemos que 3540 = f(6) ≈ P1 (6) = 3515. Agora, aumentamos a ordem do polinômio, na tentativa de minimizarmos o erro. Com isso, adotaremos os pontos: (3,2310), (5,3090) e (7,3940).Desse modo, L x x x x x 0 25 7 3 5 3 7 12 35 8 � � � �� � �� � �� � �� � � � � L x x x x x 1 23 7 5 3 5 7 10 21 4 � � � �� � �� � �� � �� � � � � � L x x x x x 2 23 5 7 3 7 5 8 15 8 � � � �� � �� � �� � �� � � � � Portanto, P2(x) = 2310(L0(x)) + 3090(L1(x)) + 3940(L2(x)) Conforme a representação na Figura 6. Figura 6 P2(x) = 2310(L0(x)) + 3090(L1(x)) + 3940(L2(x)) Fonte: Elaborada pela autora. Notemos que 3540 = f(6) ≈ P2(6) = 3506,25. Antes de compararmos os erros, calculamos mais quatro polinômios (um de ordem 2, dois de ordem 3 e um de ordem 4). Montamos mais um polinômio de ordem 2, usando os pontos: (5,3090), (7,3940) e (13, 4755). Além disso, calcula- mos dois polinômios de ordem 3 usando os pontos: (3,2310), (5,3090), (7,3940) e (13, 4755). Por fim, calculamos um polinômio de ordem 4 assumindo todos os pontos da tabela. Sejam (5,3090), (7,3940) e (13, 4755). Assim, L x x x 0 7 13 5 7 5 13 � � � �� � �� � �� � �� � L x x x 1 5 13 7 5 7 13 � � � �� � �� � �� � �� � L x x x 2 5 7 13 5 13 7 � � � �� � �� � �� � �� � Interpolação e ajuste de curvas 91 Portanto, P x L x L x L x2 0 1 23090 3940 4755� � � � �� �� � �� �� � �� � Agora, vejamos como ficou a representação na Figura 7. Figura 7 Representação da curva do polinômio P x2 � � Fonte: Elaborada pela autora. Notemos que 3540 6 6 3551 14582� � � � � � �f P , . Com os dois polinômios de ordem 2 montados, percebemos que apenas conhe- cer o número de pontos da interpolação não é suficiente para a análise do erro. Dessa forma, calcularemos P3(x) usando (3,2310), (5,3090), (7,3940) e (13, 4755). Com isso, L x x x x 0 5 7 13 3 5 3 7 3 13 � � � �� � �� � �� � �� � �� � �� � L x x x x 1 3 7 13 5 3 5 7 5 13 � � � �� � �� � �� � �� � �� � �� � L x x x x 2 3 5 13 7 3 7 5 7 13 � � � �� � �� � �� � �� � �� � �� � L x x x x 3 3 5 7 13 3 13 5 13 7 � � � �� � �� � �� � �� � �� � �� � Portanto, P3(x) = 2310L0(x) + 3090L1(x) + 3940L2(x) + 4755L3(x) 92 Cálculo Numérico Vejamos a representação na Figura 8. Figura 8 Representação gráfica do polinômio P3(x) Fonte: Elaborada pela autora. Notemos que 3540 6 6 3551 14582� � � � � � �f P , E notemos que 3540 = f(6) ≈ P3(6) = 3519,71875 Ou seja, o polinômio de grau menor apresenta um ajuste melhor quando com- parado ao polinômio de grau 3. A partir disso, calcularemos P4(x) usando (1,800), (3,2310), (5,3090), (7,3940) e (13, 4755). Com isso, L x x x x x 0 3 5 7 13 1 3 1 5 1 7 1 13 � � � �� � �� � �� � �� � �� � �� � �� � �� � L x x x x x 1 1 5 7 13 3 1 3 5 3 7 3 13 � � � �� � �� � �� � �� � �� � �� � �� � �� � L x x x x x 2 1 3 7 13 5 1 5 3 5 7 5 13 � � � �� � �� � �� � �� � �� � �� � �� � �� � L x x x x x 3 1 3 5 13 7 1 7 3 7 5 7 13 � � � �� � �� � �� � �� � �� � �� � �� � �� � L x x x x x 4 1 3 5 7 13 1 13 3 13 5 13 7 � � � �� � �� � �� � �� � �� � �� � �� � �� � Portanto, P4(x) = 800L0(x) + 2310L1(x) + 3090L2(x) + 3940L3(x) + 4755L4(x) Interpolação e ajuste de curvas 93 Figura 9 Representação gráfica do polinômio P4(x) Fonte: Elaborada pela autora. Notemos que 3540 = f(6) ≈ P4(6) = 3482,6953125. Assim, as precisões obtidas foram: |P1(6) – f(6)| ≈ |3515 – 3540| ≈ 25 |P2(6) – f(6)| ≈ |3506,25 – 3540| ≈ 33,75 | | , ,P f2 6 6 3551 1458 3540 11 1458� �� � � � � � |P3(6) – f(6)| ≈ |3519,71875 – 3540| ≈ 20,28125 |P4(6) – f(6)| ≈ |3482,6953125 – 3540| ≈ 57,3046875 Com essa avaliação, percebemos que a melhor aproximação foi encontrada por um dos polinômios interpoladores de grau 2, sendo que esse resultado é contrain- tuitivo quando pensamos em métodos numéricos, pois, em geral, quanto mais va- lores adotados para se obter uma aproximação, melhor é o resultado numérico. Essa é uma das dificuldades apresentadas com o método. É difícil sabermos qual será o melhor polinômio que interpola os pontos existentes. Dessa forma, o que costumamos fazer é uma grande verificação usando os pontos fornecidos e calculando os diversos polinômios de Lagrange de ordens diferentes, escolhendo, ao final, aquele que melhor se adequa ao modelo (com o menor erro obtido). Outro problema inerente ao método é o de não conseguirmos aproveitar os cál- culos anteriores quando desejamos acrescentar ou retirar um ponto. Essa situação pode ser resolvida com o desenvolvimento do método que explicitaremos a seguir. 94 Cálculo Numérico 4.3 Interpolação de Newton Vídeo A interpolação de Lagrange é um método simples de ser implementado, contu- do, não permite que, caso se adicione um ponto a mais, o novo polinômio seja ob- tido a partir do antigo. Como vimos anteriormente, cada ponto acrescentado exige que façamos os cálculos desde o início, o que não é prático e muito menos ágil no sentido da otimização computacional. A partir disso, Newton descobriu uma forma de corrigir o polinômio de grau n para obter o polinômio de grau n + 1. Observemos a Figura 10. Figura 10 Correção pensada por Newton y L1 x P1(x) = y0 · L0(x) + y1 · L1(x) Então, P1(x) y L2 x P2(x) = y0 · L0(x) + y1 · L1(x) + y2 · L2(x) Então, P2(x) = P1(x) + C(x), Onde C(x) é o termo de correção. Fonte: Elaborada pela autora. Portanto, a ideia do método é aproveitarmos o polinômio já calculado de ordem n – 1 para encontrarmos um polinômio de ordem n a partir da soma de um polinô- mio corretor C(x) (Equação 3). Pn(x) = Pn–1(x) + C(x) (3) A pergunta para esse método, dessa maneira, gira em torno de como calcula- mos C(x). Sabemos que C(x) deve ser um polinômio de ordem n, tal que: C(x) = Pn(x) – Pn–1(x) (4) Onde C(xi) = 0, se i = 0,1, ...n – 1. Assim, Pn(x) = a0 + a1(x – x0) + a2(x – x0)(x – x1) + ⋯ + an(x – x0)(x – x1) ….(x – xn–1) (5) Onde an é o coeficiente de x n e ai são os coeficientes a serem calculados. Interpolação e ajuste de curvas 95 Para dois pontos, ou seja, dois termos, teremos uma reta. Se adicionarmos um ponto para melhorarmos a aproximação, também precisaremos adicionar um ter- mo (polinômio) C(x) de segundo grau, obtendo, com isso, uma parábola. Adotando a equação Pn(x) = a0 + a1(x – x0) + a2(x – x0)(x – x1) + ⋯ + an(x – x0) (x – x1) ….(x – xn-1), precisamos garantir que: Pn(xi) = yi para i = 0,1,…, n. Isso nos leva a seguinte observação: • Se x = x0, todos os termos serão anulados, exceto a0 e, portanto, P0(x) = y0 = b0. • Se x = x1, todos os termos serão anulados, exceto os dois primeiros, p0 (x) + a1(x – x0). Logo, y1 = y0 + a1(x – x0) a y y x x 1 1 0 1 0 � � � Newton percebeu essa relação e generalizou o seu processo. Supondo que an = f[x0, x1, …, xn] é um número real que precisa ser determinado, então, P0(x) = f(x0) P1(x) = P0(x) + a1(x – x0) = P0(x) + f[x0, x1](x – x0) P2(x) = P1(x) + a2(x – x0)(x – x1) = P1(x) + f[x0, x1, x2](x – x0)(x – x1) ⋮ Pn(x) = Pn–1(x) + f[x0,x1, …,xn] · (x – x0)(x – x1) …. (x – xn–1) Ou, ainda: Pn(x) = f(x0) + (x – x0)f[x0, x1] + (x – x0)(x – x1)f[x0, x1, x2] + ⋯ + (x – x0)(x – x1)….(x – xn–1)f[x0, x1, …, xn] (6) O coeficiente f[x0, x1, …, xn] é chamado de diferença dividida de ordem n (Tabela 2). Tabela 2 Diferenças divididas de ordem n Valores de x Valores de y (diferença dividida de ordem zero) 1ª diferença dividida 2ª diferença dividida ⋯ Enésima diferença dividida x0 y0 = f[x0] f[x0, x1] f[x0, x1, x2] f[x0, x1, …, xn] x1 y1 = f[x1] f[x1, x2] f[x1, x2, x3] x2 y2 = f[x2] f[x2, x3] f[x2, x3, x4] ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ f[xn–2, xn–1, xn] ⋮ ⋮ f[xn–1, xn] xn yn = f[xn] Fonte: Elaborada pela autora. A ordem dos nós não altera o resultado, por exemplo: f[x0, x1 ..., xn] = f[x1 ..., xn, x0]. Atenção 96 Cálculo Numérico Observemos o Exemplo 3 no qual aplicamos o método de interpolação de Newton. Exemplo 3 No Exemplo 2, obtivemos o polinômio P2(x) = 2310(L0(x)) + 3090(L1(x)) + 3940(L2(x)) para os pontos (3,2310), (5,3090) e (7,3940), onde, ao comparamos o valor exato para x = 6, obtivemos 3540 = f(6) ≈ P2(6) = 3506,25, portanto, com um erro de E(x) = 33,75. Agora, faremos essa interpolação usando o método de Newton para os mesmos pontos,obtendo, com isso, um polinômio de grau 2. Na sequência, calculamos o polinômio de grau 3 para os pontos: (3,2310), (5,3090), (7,3940) e (13, 4755), onde, no Exemplo 2 obti- vemos: P3(x) = 2310L0(x) + 3090L1(x) + 3940L2(x) + 4755L3(x), com 3540 = f(6) ≈ P3(6) = 3519,71875. Logo, E(x) = 20,28125 (menor do que o erro encontrado com o polinômio de grau 2). Contudo, o processo de cálculo para a obtenção do polinômio de Lagrange de grau 3 precisou ser totalmente refeito, enquanto no método de Newton aprovei- tamos o polinômio já identificado para os três primeiros pontos. Dessa maneira, a fim de resolver o Exemplo 3, para (3,2310), (5,3090) e (7,3940), faremos: Tabela 3 Diferenças divididas para (3,2310), (5,3090) e (7,3940) Valores de x Valores de y diferença dividida de ordem zero 1a diferença dividida 2a diferença dividida x0 = 3 y0 = f[x0] = 2310 f[x0, x1] f[x0, x1, x2] x1 = 5 y1 = f[x1] = 3090 f[x1, x2] x2 = 7 y2 = f[x2] = 3940 Fonte: Elaborada pela autora. Em que, para: • [x0, x1], temos: f x x y y x x 0 1 1 0 1 0 3090 2310 5 3 390,� � � � � � � � � • [x1, x2], temos: f x x y y x x 1 2 2 1 2 1 3940 3090 7 5 425,� � � � � � � � � • [x0, x1, x2], temos: f x x x f x x f x x x x 0 1 2 1 2 0 1 2 0 425 390 7 3 8 75, , , , ,� � � � �� � � � � � � � Portanto, P2(x) = f(x0) + (x – x0)f[x0, x1] + (x – x0)(x – x1)f[x0, x1, x2] P2(x) = 2310 + (x – 3)(390) + (x – 3)(x – 5)(8,75) Notemos que obtivemos exatamente o mesmo polinômio encontrado com o método de Lagrange, portanto, P2(6) = 3506,25. Agora, para (3,2310), (5,3090), (7,3940) e (13, 4755), faremos: Interpolação e ajuste de curvas 97 Tabela 4 Diferenças divididas para (3,2310), (5,3090), (7,3940) e (13, 4755) Valores de x Valores de y diferença dividida de ordem zero 1a diferen- ça dividida 2a diferença dividida 3a diferença dividida x0 = 3 y0 = f[x0] = 2310 f[x0, x1] f[x0, x1, x2] f[x0, x1, x2, x3] x1 = 5 y1 = f[x1] = 3090 f[x1, x2] f[x1, x2, x3] x2 = 7 y2 = f[x2] = 3940 f[x2, x3] x3 = 13 y3 = f[x3] = 4755 Fonte: Elaborada pela autora. Portanto, ainda precisamos calcular: • [x2, x3], obtendo: f x x y y x x 2 3 3 2 3 2 4755 3940 13 7 135 5 6 ,� � � � � � � � � • [x1, x2, x3], obtendo: f x x x f x x f x x x x 1 2 3 2 3 1 2 3 1 135 5 6 425 13 5 36 7 48 , , , ,� � � � �� � � � � � � � � • [x0, x1, x2, x3], obtendo: f x x x x f x x x f x x x x x 0 1 2 3 1 2 3 0 1 2 3 0 36 7 48 8 75 13 , , , , , , , ,� � � � �� � � � � � � �33 4 47 96 4 49� � � � , Com isso, P3(x) = f(x0) + (x – x0)f[x0, x1] + (x – x0)(x – x1)f[x0, x1, x2] + (x – x0)(x – x1)(x – x2)f[x0, x1, x2, x3] P3(x) = 2310 + (x – 3)(390) + (x – 3)(x – 5)(8,75) + (x – 3)(x – 5)(x – 7)(–4,49) Vejamos a representação por meio da Figura 11. Figura 11 Interpolação por Newton com 4 pontos Fonte: Elaborada pela autora. 98 Cálculo Numérico Com isso, encontramos P3(6) = 3519,71875, exatamente o mesmo valor obtido com a interpolação de Lagrange e, portanto, com erro calculado E(x) = 20,28125. Podemos idealizar um algoritmo para o cálculo do polinômio interpolador de Newton (CAMPOS FILHO, 2018). Nesse caso, como fazemos o uso das diferenças divididas, podemos separar esse algoritmo em duas partes (Algoritmo 1 e 2), sendo a primeira destinada ao cálculo das diferenças divididas. Algoritmo 1 Dados iniciais: x , d onde d = [f(xi)] = [di] e x = [xi], i = 0,1, ...n. Para i = 1, ...,n Para j = n, ...,i dj = (dj - dj-1) / (xj – xj-i) Saída: {x, d = [di]} com di = f[x0, x1, ...,xi] Após essa análise, é possível usarmos uma função específica para o cálculo das diferenças divididas dentro da proposta de algoritmo para o polinômio interpola- dor pelo método de Newton (Algoritmo 2). Algoritmo 2 Dados iniciais: x = [xi], d = [di] = [f[x0, x1, ..., xi] ], n, t, p. p = dn i = n – 1, ..., 0 p = di + (t – xi) · p Saída: {p = pn(t)} Portanto, assim como no método de Lagrange, o método de Newton também exige análise do erro, que veremos a seguir. 4.3.1 Análise do erro Para avaliarmos o erro do método de Newton, consideremos um intervalo fe- chado I, tal que I = [a, b], xi ∈ I, t ∈ I, f ∈ Cn+1(I). A partir disso, usando o mesmo princípio adotado no método de Lagrange, exis- te c pertencente ao intervalo (a, b), tal que se E(t) = f(t) – Pn(t). Então, E t t x t x n f c t I n n� � � �� � �� � �� � � � � ��� �0 1 1 ... ! . , Interpolação e ajuste de curvas 99 Dessa forma, E t t x t x n f c t x f cn n i n i n � � � �� � �� � �� � � � � � �� �� � ��� � � �� � �0 1 0 1 1 ... ! nn t I �� � � � 1 ! , (7) No método de Newton, também é possível expressarmos o erro por meio da análise das diferenças divididas. Para isso, usamos como artifício a necessidade de encontrarmos um polinômio que interpola os nós x0, x1, x2, ..., xn e t, ou seja: pn+1(x) = f(x0) + (x – x0)f[x0, x1] + (x – x0)(x – x1)f[x0, x1, x2] + ..... + (x – x0)...(x – xn) · f[x0, ..., xn, t] Porém, nos casos: • x = x0, x1, x2, ..., xn temos que f(x) = pn(x) = pn+1(x) • x = x0, x1, x2, ..., xn, t temos que f(x) = pn+1(x) com pn+1(x) = pn(x) + C(x) Portanto, pn+1(x) = pn(x) + (x – x0)...(x – xn) · f[x0, ..., xn, t] Então, E(t) = f(t) – pn(t) = pn+1(t) – pn(t) = (t – x0)...(t – xn) · f[x0, ..., xn, t] No entanto, o erro em t depende do conhecimento de f(t), o qual não é conheci- do. Assim, o erro em um ponto t, usando pn(x), pode ser escrito como: E(t) = (t – x0)...(t – xn) · f[x0, ..., xn, t], ∀t ∈ I (8) Comparando as equações (7) e (8), teremos que existe c em um intervalo I, tal que: f c n f x x t n n �� � � � �� � � � � 1 0 1 ! ,..., , (9) Isso nos permite escrever que a diferença dividida de ordem n resulta em uma avaliação da derivada enésima de f em algum ponto c de I, dividido por n! Observe a Tabela 5 que apresenta uma análise desse resultado. Tabela 5 Diferenças divididas a partir das derivadas Valores de x Valores de y 1a diferença dividida 2a diferença dividida ⋯ na diferença dividida x0 y0 = f[x0] f[x0, x1] f[x0, x1, x2] ⋯ f[x0, x1, ..., xn] x1 y1 = f[x1] f[x1, x2] f[x1, x2, x3] ⋯ x2 y2 = f[x2] f[x2, x3] f[x2, x3, x4] ⋯ ⋮ ⋮ ⋮ ⋯ ⋯ ⋮ ⋮ ⋮ f[xn–2, xn–1, xn] ⋮ ⋮ f[xn–1, xn] xn yn = f[xn] c f(c) f’(c) f c´´ ! � � 2 f c n n� � � � ! Fonte: Elaborada pela autora. 100 Cálculo Numérico Usando o teorema do valor médio (TVM), podemos avaliar uma cota superior para o erro: E t t x t x M n n� � � � � �� �0 1 .... · ! sendo M = max|f(n+1)(x)|, para x ∈ I. Com isso, estudamos dois métodos que nos possibilitam encontrar os polinô- mios interpoladores. Como falamos no início da seção, esse tipo de método costuma ser usado quan- do conhecemos alguns pontos do problema e desejamos encontrar uma curva que passe, exatamente, por esses pontos, dando-nos uma melhor aproximação para o problema. Ao usarmos o termo aproximação, entramos em outro tipo de análise possível: a de procurarmos uma curva que se aproxima, com o menor erro possível, de uma quantidade predeterminada de pontos (sem a necessidade de passar por esses pontos). Explicaremos esse tipo de método a seguir. 4.4 Aproximação por mínimos quadrados Vídeo Além dos métodos de interpolação, também podemos usar aqueles chamados de métodos de aproximação, ou ajuste de curva por aproximação. A grande diferença entre um método de interpolação e um de aproximação é que no segundo não precisamos passar pelos pontos originais do problema (pontos dados). Em geral, esse tipo de método é aplicado quando trabalhamos com dados expe- rimentais, ou mesmo quando não temos certeza quanto à relação aos dados que serão ajustados. Também é comum usarmos esse tipo de método quando dese- jamos ajustar uma função específica na qual o fenômeno modelado é conhecido. Acreditamos que o método de aproximação mais conhecido seja o método dos mínimos quadrados, em suas duas formas: discreta e contínua. No entanto, tam- bém podemos trabalhar com curvas aproximadas por meio de funções pondera- das. O foco é minimizarmos o máximo erroencontrado entre a função polinomial pn(x) e a função original f(x). Suponhamos que conhecemos alguns pontos dispostos em um plano cartesia- no bidimensional (Figura 12) e desejamos ajustar uma curva de forma na qual o erro de aproximação entre a curva e esses pontos seja o menor possível. Figura 12 Ajuste de curva Pm y x Fonte: Elaborada pela autora. Interpolação e ajuste de curvas 101 Para esse tipo de ajuste, trabalhamos com o método conhecido por mínimos quadrados (MMQ), o qual, como o próprio nome apresenta, tem como objetivo o cálculo de uma curva que se aproxima dos pontos conhecidos por meio da mi- nimização da soma dos quadrados dos resíduos de todos os pontos usados na aproximação. Matematicamente podemos definir da seguinte maneira. Desejamos encontrar f ∈ F, tal que F = {f:ℝ → ℝ; y = f(x)} é uma família de funções. Para isso, adotaremos que o resíduo Ri pode ser analisado para cada ponto (xi, yi) da forma: δi = (f(xi) – yi), sendo yi a ordenada do i-ésimo ponto. Assim, minimizar a soma dos quadrados dos resíduos é calcular: min f i M i M MR f x y f x y f x y � � � � � ��� � � � ��� � ��� � ��� �� 1 2 1 1 2 2 2 2 2 � com M a quantidade de pontos total do problema. Conforme pontuamos, o método dos mínimos quadrados pode ser trabalha- do na versão discreta ou contínua. Além disso, é possível ponderarmos o resíduo (erro) a partir de uma multiplicação por uma função peso w (ARENALES; DAREZZO, 2008). Conforme representamos no Quadro 1. Quadro 1 Comparativo entre versões discreta e contínua Discreto Contínuo δi = f(xi) – φ(xi) minR w x i M i i� � ���� 1 2� δ(x) = f(x) – φn(x) minR w x x dx a b � � �� � �� �2 w(xi): peso da informação xi w(x): função peso Fonte: Elaborado pela autora. Ajustar uma curva para uma tabela de pontos da forma (x1, f(x1)), (x2, f(x2)), ..., (xM, f(xM)) com x1, x2, ..., xM, pertencentes a um intervalo [a, b], significa analisarmos n funções φ1(x), φ2(x), ..., φn(x) contínuas em [a, b] e obtermos suas respectivas n constantes α1, α2, ..., αn tais que a função: g(x) = α1φ1(x) + α2φ2(x) + ...+ αnφn(x) se aproxime ao máximo de f(x). Notemos que o método dos mínimos quadrados pode ser linear ou não linear (nos parâmetros). Por exemplo, podemos aproximar f(x) por g(x) = α0 · φ0(x) + α1 · φ1(x) + ..... + αn · φn(x) onde φk(x) são funções preestabelecidas, ou g(x) = α1 · e(a2–x) + α3 · e (a4–x)2. Para esta obra, abordamos apenas o caso linear, isto é, dado f encontrar g da forma (10) que melhor se aproxime de f com os critérios informados anteriormente. g(x) = a0 · φ0(x) + a1 · φ1(x) + ..... + an · φn(x) (10) Entenderemos melhor esse processo com a explicação a seguir. 102 Cálculo Numérico 4.4.1 Aproximação: mínimos quadrados discreto Vimos que o critério para encontrarmos os coeficientes de g, α0, …, αn, é a mi- nimização da soma dos quadrados dos resíduos em todos os pontos usados na aproximação, ou seja: min f i m iR � � �� 0 2� = (f(x0) – φ0) 2 + (f(x1) – φ1) 2 + (f(x2) – φ2) 2 + ⋯ + (f(xm) – φm) 2 Com m a quantidade de pontos total do problema. Vejamos a representação na Figura 13. Figura 13 Resíduo MMQ discreto g(x) y x f(xi) xi Fonte: Elaborada pela autora. É comum adotarmos g como um polinômio. Assim, seja f conhecida em (m + 1) pontos, tais que {(xi, yi), i = 0, 1, 2, ....m}. A partir disso, precisamos escolher P x a xn k n k k� � � �� 0 . , com n < m – 1, tal que: Min R a a f x P x y P xn i m i n i i m i n i0 0 2 0 2,... ( ) ( )� � � � �� � � � � � �� �� � Escolher Pn significa acharmos os coeficientes α0, α1, …, αn, tal que ele seja mínimo. Portanto, R y P x i m i n i� � � ��� 0 2( ) Onde P x a xn i k n k i k� � � �� 0 . Devemos observar os seguintes aspectos. • O índice i usado para os pontos conhecidos, i = 0, 1, ...m. • O índice k usado para as potências e coeficientes do polinômio Pn, k = 0, 1... n. Interpolação e ajuste de curvas 103 Então, R y y P x P x i m i i m i n i i m n i� � � �� � �� � �� � �1 2 0 0 22 ( ) R y y a x a x i m i i m i k n k i k i m k n k i k� � � �� � �� � � � �� � � � �0 2 0 0 0 0 2 2 . R y a y x a a x i m i k n k i m i i k k n j n k j i m i k j� � � ��� � � � � � �� � � � � �0 2 0 0 0 0 0 2 . . �� � �� � � �� � � � � � � � � R y a y x a a x i m i k n k i m i i k k n k j n j i m i k j� � � �� �� � � � � � �� � � � � �0 2 0 0 0 0 0 2 . �� �� � � �� � � � � � � � � Logo, para acharmos o mínimo da função R, devemos achar seus pontos críticos. � � � � R a k k 0, � � �� � � � �� � � �� � �2 2 00 0 0im i ik jn j im ik jy x a x k. , j n j i m i k j i m i i ka x y x k � � � �� � �� � � �0 0 0 . , Desenvolvendo as equações, temos aquilo que chamamos de sistema de equa- ções normais (11). a x a x a x y x a x i i m i n i m i n i m i i i m i i m 0 0 0 1 1 0 0 0 0 0 1 0 � � � � � � � � � � � � � � � ... aa x a x y x a x a x i i m n i n i m i i i m i n i m i n i 1 2 0 1 0 1 0 0 0 1 1 � � � � � � � � � � � � � � ... �� � � � � � �� � � � � � � � � � � � � � 0 0 0 m n i n n i m i i n i m a x y x... (11) Notemos que o sistema contém n + 1 equações e n + 1 incógnitas. Portanto, ele só será um sistema compatível se a matriz dos coeficientes for não singular, ou seja, (det(X) ≠ 0). Como a matriz do sistema é simétrica e não singular, pois x0, x1, ...xm são pontos distintos, então o sistema (Equação 11) é possível e possui solução única. Para obtermos os coeficientes da matriz, podemos trabalhar com a Tabela 6. Tabela 6 Valores para a matriz do MMQ xi xi 2 ⋯ xi n2 yi yixi ⋯ y xi i n ⋮ ⋮ ⋮ ⋮ ⋮ ∑xi ∑xi 2 ⋯ ∑xi n2 ∑yi ∑y xi i ⋯ ∑y xi in Fonte: Elaborada pela autora. É possível usarmos plani- lhas eletrônicas para auxi- liar no processo de cálculo do método dos mínimos quadrados. Para saber mais sobre, sugerimos o vídeo Método dos mínimos quadrados – caso linear, do canal Quem sabe faz. Disponível em: https://www.youtube. com/watch?v=0o_wuKE-mm4. Acesso em: 10 ago. 2022. Vídeo https://www.youtube.com/watch?v=0o_wuKE-mm4 https://www.youtube.com/watch?v=0o_wuKE-mm4 104 Cálculo Numérico A respeito disso, vejamos o Exemplo 4. Exemplo 4 Ajustar por mínimos quadrados uma função do 2o grau aos pontos dados (Tabela 7). Tabela 7 Tabela de pontos x -2 -1 0 1 2 y 4 2 0 2 4 Fonte: Elaborada pela autora. P x a x a a x a x k k k 2 0 2 0 1 2 2� � � � � ��� . Tabela 8 Tabela de aplicação do método de mínimos quadrados Pontos x x2 x3 x4 y xy x2y x0 -2 4 -8 16 4 -8 16 x1 -1 1 -1 1 2 -2 2 x2 0 0 0 0 0 0 0 x3 1 1 1 1 2 2 2 x4 2 4 8 16 4 8 16 Total 0 10 0 34 12 0 36 Fonte: Elaborada pela autora. Tendo: A m x x x x x x x x i i i i i i i i � � � � � � � � � � � � � � � � � � � � � 2 2 3 2 3 4 x a a a � � � � � � � � � � � 0 1 2 b y y x y x i i i i i � � � � � � � � � � � � � �2 Portanto, A � � � � � � � � � � � 5 0 10 0 10 0 10 0 34 , x a a a � � � � � � � � � � � 0 1 2 b� � � � � � � � � � � 12 0 36 Resolvendo o sistema por decomposição gaussiana, encontramos: a0 24 35 = , a1 = 0 e a2 6 7 = . Logo, P x x2 224 35 6 7 � � � � Com isso, vejamos como isso fica representado (Figura 14). Interpolação e ajuste de curvas 105 Figura 14 Ajuste efetuado por P2(x) Fonte: Elaborada pela autora. Com base em Campos Filho (2018), apresentamos alguns algoritmos ao longo do capítulo. A seguir, podemos analisar o Algoritmo 3 para o método de mínimos quadrados discreto. Algoritmo 3 Entrada: xi, yi, i = 0, 1, ..., m, n (grau polinômio). Façamos os seguintes cálculos: • dos coeficientes de A: a x i n j nij k m k i j� � � � � � � �� 0 2 1 1 1 1, ,... , , ... • de b: b y x j nj k m k k j� � � � �� 0 1 1 1. , ,... Com isso, a resolução de A · x = b é: a a a a x n � � � � � � � � � � � � � � 0 1 ... Saída: a0, a1, ..... an. Vejamos na sequência quandodevemos aplicamos o método dos mínimos qua- drados contínuo. Para mais detalhes sobre o método dos quadrados mí- nimos, sugerimos a leitura do material: Ajuste de curvas pelo método dos quadrados mínimos, do professor Marcone J. F. Souza, do Instituto de Ciências Exatas e Biológicas, da Univer- sidade Federal de Ouro Preto (UFOP), pois nele é possível encontrarmos alguns exemplos de ajustes feitos por diferentes curvas: reta, exponencial, hipér- bole, entre outras. Além da construção teórica, o material também apresenta exemplos resolvidos de diferentes curvas a serem ajustadas. Disponível em: http://www.decom. ufop.br/prof/marcone/Disciplinas/ MetodosNumericoseEstatisticos/ QuadradosMinimos.pdf. Acesso em: 10 ago. 2022. Leitura http://www.decom.ufop.br/prof/marcone/Disciplinas/MetodosNumericoseEstatisticos/QuadradosMinimos.pdf http://www.decom.ufop.br/prof/marcone/Disciplinas/MetodosNumericoseEstatisticos/QuadradosMinimos.pdf http://www.decom.ufop.br/prof/marcone/Disciplinas/MetodosNumericoseEstatisticos/QuadradosMinimos.pdf http://www.decom.ufop.br/prof/marcone/Disciplinas/MetodosNumericoseEstatisticos/QuadradosMinimos.pdf 106 Cálculo Numérico 4.4.2 Aproximação: mínimos quadrados contínuo O processo de análise teórica para o caso contínuo é bastante similar ao do discreto. As mudanças que veremos ocorrem devido às operações empregadas, pois, no caso de funções contínuas, precisamos calcular a soma do quadrado dos resíduos por meio do uso de integrais, que nos permitem encontrar o valor da área formada pela região de intersecção entre duas funções. No caso contínuo, temos: δ(x) = f(x) – g(x). O critério para encontrarmos os coeficientes de g, a0, a1, ....an, é o de minimizar- mos a integral dos quadrados dos resíduos no intervalo considerado, isso é: min ( ) a b a b x dx f x g x dx� �� � � � �� � ��2 2 Vejamos a representação na Figura 15. Figura 15 Resíduo entre f e g g(x) y xba f(x) Fonte: Elaborada pela autora. Seja f ∈ C[a, b] e Pn(x) polinômio de grau n, tal que Pn(x) esteja próximo de f. Com isso, temos que a norma dois ou a norma euclidiana dada por f f x dx a b 2 2� � ( ) mede o tamanho de f e calcula a proximidade entre as funções no espaço de fun- ções contínuas. Assim, precisamos calcular os coeficientes de forma que R a a f x P xn n0 2 2,...� � � � �� � � R a a f x P xn n0 2 2,...� � � � �� � � seja o menor possível, isso é: min ,... ( )R a a f x P x dxn a b n0 2� � � � �� � �� Seja P x a xn i k n k i k� � � �� 0 . Então, R f x dx f x P x dx P x dx a b a b n a b n� � � � � � � � �� � �( ) . ( )2 22 R f x dx a f x x dx a x dx a b k n k a b k a b k n k k� � � � �� � � � �� �( ) . ( ) 2 0 0 22 R f x dx a f x x dx a a x x dx a b k n k a b k a b j n k n j k j k� � � � �� � � � � �� � �( ) . 2 0 0 0 2 R f x dx a f x x dx a a x dx a b k n k a b k j n k n j k a b j k� � � � �� � � � � �� � � �( ) .2 0 0 0 2 Interpolação e ajuste de curvas 107 Como � � � � E a k k 0, , temos: � � � � �� � � �� � �2 2 0 0 0a b k j n k n j a b j kf x x dx a x dx. j n j a b j k a b ka x dx f x x dx k n � �� � �� � � �0 0 1. , , ,.... Desse modo, obtemos um sistema de equações normais com n + 1 incógnitas e n + 1 equações da forma: a x a x a x f x x a x a a b a b n a b n a b a b 0 0 1 1 0 0 1 1 � � � � � � � � � � �� � dx dx dx dx dx ... aa b n a b n a b a b n a b n x a x f x x a x a x � � � � � � � � � �� � � � 2 1 1 0 1 1 dx dx dx dx d ... xx dx dx� � � � �� � � � � � � � � � � �... a x f x xn a b n a b n2 Os coeficientes da matriz do sistema são calculados sempre da mesma forma, ou seja, não dependem da função f, mas só do intervalo (a, b) onde f está sendo aproximado. Contudo, o termo independente depende de f, assim como o termo independente depende de yi no método discreto. Exemplo 5 Devemos ajustar um P2(x) = a0 + a1x + a2x 2 à função f(x) = sen(x) em [0, π] usando MMQ. Solução Temos o seguinte sistema de equações: a x a x a x sen x x a x a 0 0 0 1 0 1 2 0 2 0 0 0 0 1 1 0 � � � � � � � � � � � � � � � �� � dx dx dx dx dx �� � � � � � � � � �� � � x a x sen x x a x a x a x 2 2 0 3 0 1 0 0 2 1 0 3 2 0 4 dx dx dx dx dx � � � � � ddx dx� � �� � � � �� � � � � �0 2�sen x x Portanto, a a a a a a xsen x a a 0 1 2 2 3 0 2 1 3 2 4 0 0 3 1 4 2 3 2 2 3 4 3 4 � � � � � � � � � � � � � � � � � � � dx �� � � �� � � � � �� � � � � � �a x sen x2 5 0 2 5 � � dx Resolvendo esse sistema pelo método de Gauss, e tomando por base que 0 � �� � � �xsen x dx e 0 2 2 4 � �� � �� � �x sen x dx , obtemos: a0 2 3 12 120 � �� � , a1 2 4 60 720 � � �� � e a2 2 5 60 720 � �� � . Logo, P x x x2 2 3 2 4 2 5 212 120 60 720 60 720� � � � � � � � � �� � � �� � �� � �� � � �� � � � � � � 108 Cálculo Numérico Vejamos a representação do Exemplo 5 na Figura 16. Figura 16 Gráfico de P2(x) π Fonte: Elaborada pela autora. Sobre os mínimos quadrados ponderados, quando desejamos atribuir diferen- tes graus de importância aos pontos conhecidos de f, podemos usar o peso na aproximação, em diferentes situações: • no caso discreto: i m i iw x r x�� � � � �0 2. • no caso contínuo: a b w x r x dx� � � � �. 2 , onde w(x) é uma função contínua e w(x) > 0 em (a, b) Para exemplificarmos a função peso: • w x x x� � � � � �� �1 1 1 1 2 , , . Essa função atribui menos peso à região central do intervalo e dá mais ênfase aos pontos próximos aos extremos do intervalo. Outras funções peso: • w(x) = e–x, x ∈ (–∞,∞) • w(x) = e–x 2 , x ∈ (–∞,∞) Portanto, com os conceitos apresentados, conhecemos uma das principais fer- ramentas de aproximação de funções para pontos (ou entre outras funções). CONSIDERAÇÕES FINAIS Os métodos de interpolação e de aproximação apresentados neste capítulo talvez sejam os métodos mais aplicados nas mais diversas áreas do conhecimento, pois são métodos que exigem informações que, no geral, estão apresentadas de maneira ex- plícita no problema. Além disso, os conceitos matemáticos envolvidos no processo são amplamente conhecidos e eles podem ser manipulados com bastante versatilidade, Sugerimos dois vídeos do canal UNIVESP que auxi- liam no uso de planilhas eletrônicas para o ajuste de curvas sendo, respectiva- mente, a Aula 12: ajustes de curvas usando planilhas ele- trônicas I e a Aula 13: ajustes de curvas usando planilhas eletrônicas II. Disponível em: https://www.youtube. com/watch?v=RaCjngm5LTE. Disponível em: https://www.youtube. com/watch?v=kFZ3arLEt98. Acessos em: 10 ago. 2022. Vídeo https://www.youtube.com/watch?v=RaCjngm5LTE https://www.youtube.com/watch?v=RaCjngm5LTE https://www.youtube.com/watch?v=kFZ3arLEt98 https://www.youtube.com/watch?v=kFZ3arLEt98 Interpolação e ajuste de curvas 109 junto ao controle dos erros inerentes a esse processo. Logo, sim, os métodos numé- ricos sempre apresentam erros que precisam ser avaliados, para que estejam dentro de uma margem aceitável para cada aplicação. Por exemplo, na área socioeconômica, muitos modelos exigem o cálculo de fun- ções de regressão, que podem ser lineares, quadráticas, simples, múltiplas, entre outras. Elas permitem a avaliação futura de situações práticas da área. Métodos como regressão linear ou a regressão múltipla são analisados e resolvidos perante o método dos mínimos quadrados e comparados a análises estatísticas que vali- dam os resultados e permitem a aplicação das prospecções desejadas. Além dele, os métodos de interpolação também são bastante versáteis e encontrados dentro e fora das ciências exatas. Portanto, compreender cada um desses principais métodos permite-nos resolver uma extensa gama de problemas no âmbito do cálculo numérico das mais diversas áreas do conhecimento. ATIVIDADES Atividade 1 Explique com suas palavras o motivo da matriz de Vandermonde ter um deter- minantediferente de zero e, portanto, o sistema de equações a ela associado apresentar sempre solução. Atividade 2 O erro nos métodos de interpolação de Lagrange e de Newton estão associados ao grau do polinômio interpolador? Explique. Atividade 3 Descreva a necessidade do uso de derivadas parciais para o cálculo dos métodos dos mínimos quadrados. REFERÊNCIAS ARENALES, S. H. V.; DAREZZO, A. Cálculo numérico: aprendizagem com apoio de software. São Paulo: Thomson Learning, 2008. CAMPOS FILHO, F. F. Algoritmos numéricos: uma abordagem moderna de Cálculo Numérico. 3. ed. São Paulo: LTC, 2018. CHAPRA, S. C.; CANALE, R. P. Métodos numéricos para engenharia. 7. ed. Porto Alegre: AMGH, 2016. GUIDORIZZI, H. L. Um curso de cálculo. 5. ed. Rio de Janeiro: LTC, 2001. (Vol. 1) JUSTO, D. A. R. et al. (org.). Cálculo Numérico: um livro colaborativo. Porto Alegre: UFRGS, 2020. Disponível em: https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf. Acesso em: 18 ago 2021. LOBÃO, D. C. Introdução aos métodos numéricos. Rio de Janeiro: UFF, 2017. Disponível em: https://www. professores.uff.br/diomarcesarlobao/wp-content/uploads/sites/85/2017/09/note6.pdf. Acesso em: 18 ago. de 2022. https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf https://www.professores.uff.br/diomarcesarlobao/wp-content/uploads/sites/85/2017/09/note6.pdf https://www.professores.uff.br/diomarcesarlobao/wp-content/uploads/sites/85/2017/09/note6.pdf 110 Cálculo Numérico 5 Integração numérica Um método de integração numérica é um processo adotado quando, no geral, não se conhece a função em todos os seus pontos ou em um trecho especificado. Também podemos usar esse método quando não conseguimos integrar analiticamente uma determinada função. Integrar numericamente consiste em aproximarmos a integral de uma função f(x) às variáveis usando, para isso, um polinômio o qual é construído a partir da interpola- ção de pontos, que podem estar distribuídos ao longo do domínio com espaçamentos constantes. Cada uma dessas escolhas sobre qual polinômio usar nos leva a diferentes méto- dos, e a precisão de cada um deles depende das condições e restrições do modelo matemático e físico a ser resolvido. Logo, é sobre o estudo dessas escolhas que este capítulo está focado. Com o estudo deste capítulo, você será capaz de: • compreender os conceitos de discretização de um domínio e de propriedades de quadratura; • compreender e aplicar métodos de integração para domínios com discretização com diferentes espaçamentos; • calcular a área sob funções por meio de métodos com domínio discretizado; • aplicar a composição de regras de quadratura. Objetivos de aprendizagem 5.1 Integração numérica Vídeo É provável que a primeira integração numérica que tenhamos realizado, muitas vezes, sem mesmo darmos conta disso, tenha sido a integral de Riemann. Nesse processo de integração, particionamos o domínio da função em subin- tervalos (xi–1, xi) e calculamos a área entre a função e o eixo x em cada uma des- sas partições, somando todos esses resultados ao final, de tal forma que podemos escrever: i n i if c x � � � �� 1 A Figura 1 representa a discretização do domínio de uma função de maneira que é possível perceber a aproximação entre a área da função em relação ao eixo das abscissas e a área dos retângulos a partir desse processo de discretização. Integração numérica 111 Figura 1 Discretização da área da função f(x) em relação ao eixo das abscissas C1 C2 C3 C4 C5 C6 b x y f a Fonte: Elaborada pela autora. Essa discretização do domínio e cálculo discreto é um processo numérico. No caso específico da soma de Riemann aplicada ao cálculo de áreas de funções de uma variável, após a discretização assumimos que maxΔxi → 0, para i = 0, 1, …, n. Esse processo permite-nos dizer que a avaliação está sendo feita para um domínio contínuo da função (e não mais discreto) e, com isso, obtemos a integral de Rei- mann: a b ” xi i n i if x dx x f x� �� � � � � � �� �lim0 0 desde que o limite exista. Neste capítulo, estudaremos aproximações que são avaliadas quando não é possível ou desejado trabalhar com um domínio contínuo. Os métodos abordados a seguir são construídos a partir de partições do domínio, as quais chamamos de discretização. Portanto, assumiremos como ponto de partida que: a b i n i if x dx a f x� �� � � � ��0 ou seja, a integral é calculada aproximadamente por meio de uma soma pondera- da de valores da função em pontos escolhidos dentro do intervalo de integração [a, b], onde { }ai in=1 são os pesos assumidos. Alguns métodos que serão vistos neste capítulo, como os de Newton-Cotes, são muito similares a esse processo. Um método de integração numérica é um processo adotado quando, em geral, não se conhece a função em todos os seus pontos ou em um trecho especificado. Também podemos usar os métodos de integração numérica quando não consegui- mos integrar analiticamente uma determinada função. Alguns dos casos nos quais adotamos a integração numérica são: • se a função f é conhecida apenas em alguns pontos, e queremos ajustar uma função polinomial e integrar a função ajustada; • se a função f é conhecida a partir de sua lei, mas não conseguimos integrar por meios analíticos. O vídeo Integral definida como o limite de uma soma de Riemann, disponível no canal Khan Academy Brasil, complementa a ideia elaborada por Bernhard Riemann. Disponível em: https://youtu.be/Yzl- vpPBhw8. Acesso em: 12 ago. 2022. Vídeo https://youtu.be/Yzl-vpPBhw8 https://youtu.be/Yzl-vpPBhw8 112 Cálculo Numérico No caso do ajuste polinomial, inicialmente, precisamos selecionar alguns nós {x0, x1,..., xn} de [a, b]. Em seguida interpolamos um polinômio aos nós, para isso, por exemplo, podemos usar o método de Lagrange. Por fim, precisamos integrar o polinômio e avaliar o erro no cálculo. Vejamos a representação a partir da Figura 2. Figura 2 Integração numérica a = x0 b = xn Pn (x) x1 x y Fonte: Elaborada pela autora. Usaremos o método de Lagrange para interpolar o polinômio que é usado no cálculo da integral aproximada da função f(x). Assim, teremos que Pn(x) = y0L0(x) + … + ynLn(x). Sejam x0, x1,...,xn e Pn(x), a função interpolada, então, é: f(x) = Pn(x) + Erro(x) Integrando ambos os lados da igualdade, escrevemos: a b a b n a b i n i n x f x dx P x dx x x f c n dx� � � �� � � � � � �� � � � �� �� �� � 0 1 1 ! a b a b nf x dx P x dx E� �� � � � � � Supondo E ≈ 0, e como P x y L xn i n i i� � � � ��� 0 , então, a b a b i n i i i n i a b if x dx f x L x dx f x L x dx� � � � �� � � � � � � � � � � ���� � ��� �0 0 Logo, a b i n i if x dx a f x� �� � � � ��0 Onde a L x dxi a b i� � �� Dependendo do número de nós considerados e do espaçamento entre os nós, várias fórmulas podem ser construídas. Neste capítulo, veremos duas propostas: a primeira leva em consideração a discretização do domínio em espaços de mesmo tamanho; e a segunda tem em conta a discretização do domínio em partições que podem ser de tamanhos variados. O grau do polinômio de- pende da quantidade e dos nós selecionados. Atenção Integração numérica 113 5.2 Regras de Newton-Cotes Vídeo Quando adotamos a discretização do domínio em espaços de mesmo tamanho, ou seja, nós igualmente espaçados, estamos trabalhando com métodos de integra- ção numérica na formulação chamada Newton-Cotes. As regras chamadas de Newton-Cotes ou quadratura de Newton-Cotes são um grupo de regras de integração numérica desenvolvidas por Isaac Newton (1643– 1727) e Roger Cotes (1682–1716) conjuntamente, elas permitem o cálculo da área sob funções por meio da partição do domínio de pontos igualmente espaçados. Nesse sentido, ainda podemos dividir as regras de integração em dois casos: fórmulas fechadas e fórmulas abertas. De acordo com Chapra e Canale (2016, p. 549), “as formas fechadas são aquelas nas quais os dados nos extremos inicial e final de integração são conhecidos[...]. As fórmulas abertas têm extremos de integração que se estendem além do intervalo dos dados”. Anteriormente, ao escrevermos que: a b i n i if x dx a f x� �� � � � ��0 significa que estamos calculando uma integral numérica por uma fórmula de Newton-Cotes fechada. Sabemos disso, pois temos identificado os valores para a discretização do domí- nio que percorrerá i = 1, …, n para cada xi. No caso de uma fórmula dita aberta, os extremos não fazem parte do domínio da função, tendo, desse modo, a expressão para a integração numérica escrita na forma: a b i n i if x dx a f x� �� � � � �� � 1 1 onde xi terá i=1, …,n-1, portanto, um intervalo aberto para x0 e xn. Nesse caso, os pesos são calculados de maneira similar. A seguir, desenvolvemos algumas das regras (do trapézio e de Simpson) ou fór- mulas de Newton-Cotes mais utilizadas no cálculo numéricos. 5.3 Regra do trapézio Vídeo A regra do trapézio recebe esse nome, justamente, pelo formato observado no ajuste entre a função original e a integração numérica (Figuras 4 e 5). Figura 3 Isaac Newton Newton foi um renomado físico, astrônomo e matemático da Inglaterra. Suas contribuições foram inúmeras, principalmente por parte da Lei da Gravitação Universal e as chamadas Três Leis de Newton, até hoje usadas em estudos da área. Na ci Ya vu z/ Sh ut te rs to ck 114 Cálculo Numérico Figura 4 Regra do trapézio Fonte: Elaborada pela autora. a = x0 y0 y1 b = x1 f (x) P1(x) x y Figura 5 Regra do trapézio (rotação dos eixos) Fonte: Elaborada pela autora. b = x1 y0 y1 a = x0 f (x) P1(x) x y Assim, seja f ∈ C2 [a, b], com a = x0, b = x1. A área de um trapézio na geometria plana é calculada por: A base maior base menor altura � �� � 2 Portanto, observando as Figuras 4 e 5, teremos: a b a b f x dx P x dx h y y� �� � � � � � � �� �( )1 0 12 Usando a interpolação de Lagrange, teremos: P1 (x) = y0L0(x) + y1L1(x) Além disso, h = x1 – x0 = b – a Portanto, a b f x dx a y a y� � � � �0 0 1 1 onde a L x dx a b 0 0� � �� e a L x dx a b 1 1� � �� Calculando os valores de a0 e a1, temos: a x x x x dx h a b 0 1 0 1 2 � � � �� a x x x x dx h a b 1 0 1 0 2 � � � �� Com isso, podemos escrever: a b f x dx h y y E� � � � �� ��2 0 1 Onde, E x x x x f c dx a b x� �� � �� � � � �� � 0 1 2! O cálculo de E depende de uma função de cx que ainda não conhecemos. Integração numérica 115 Para analisarmos o erro, usamos o teorema do valor médio (TVM) para as inte- grais. Já para os casos gerais, o TVM nos permite escrever que assumindo f ∈ C [a, b], se existe w(x) que não muda de sinal no intervalo entre a e b, então, existe c ∈ (a, b), tal que: a b a b w x f x dx f c b a w x dx� �� � � � � � � �� � � �· Particularmente se w(x) ≡ 1, teremos: a b f x dx f c b a� � � � � � �� �· Considerando w(x) = (x – x0)(x – x1), então w não muda de sinal em [x0, x1]. Com isso, existe ξ ∈ (x0, x1) = (a, b) tal que: 1 2 1 2 12 0 1 0 1 3 a b x a b x x x x f c dx f x x x x dx h � ��� � �� � � � � � � �� � �� � � ��� �� � ���� �f � Onde h = x1 – x0. Logo, a fórmula para a integração numérica pela regra de trapézio é escrita da seguinte forma (1): a b f x dx h y y h f x x� � � � �� �� � � � �� ���2 120 1 3 0 1� �, , (1) Para minimizarmos o erro, precisamos fazer com que o domínio seja discreti- zado em espaços cada vez menores. Pormenorizamos essa discretização a seguir. 5.3.1 Regra do trapézio composta Em qualquer método numérico proposto, temos um erro implícito. Dessa forma, tentar minimizar o erro gera novos métodos ou ajustes nos métodos existentes. No caso da regra do trapézio, a proposta de melhoria acontece pela partição do intervalo (Figura 6) e pela análise de cada um desses subintervalos por meio da Equação 1. Figura 6 Partição do intervalo (ao meio) b = x2a = x0 h h h = (b – a)/2 P1 (2) (x) P1 (1) (x) x1 y1 y0 y2 y f (x) x Fonte: Elaborada pela autora. 116 Cálculo Numérico Particionando (ou discretizando) o intervalo em mais partes, teremos o que está representado nas Figuras 7 e 8. Figura 7 Partição do intervalo b = x3a = x0 h = (b – a)/3 x1 y0 y3 y f(x) x2 x Fonte: Elaborada pela autora. Figura 8 Partição do intervalo b = x4a = x0 h = (b – a)/4 x1 y4 y0 y f(x) x2 x3 x Fonte: Elaborada pela autora. Dessa forma, generalizando esse processo para n + 1 pontos com a = x0 e b = xn e assumindo f ∈ C2 [a, b], teremos h b a n x a jhj� � � �, , com j = 0, 1, ..., n. Então, existe ξ ∈ (a, b) tal que conforme (2). a b j n jf x dx h f a f x f b b a h f� �� �� � � � �� � � �� � �� �� �� �� � � �����2 2 121 1 2 � (2) Vejamos a seguir o Exemplo 1. Exemplo 1 Seja a função f(x) = x3, para x ∈ [0,1] e 0 1 3 1 4� �x dx Utilizemos a regra do trapézio para integrarmos numericamente essa função adotando 3, 4 e 5 pontos. Após esse processo, analisemos o erro comparado e o resultado numérico com a solução exata. Assumindo três pontos: (0,0), (1/2; 1/8) e (1,1), temos: I h f x f x f x� � �� � �� � ��� ��2 20 1 2 h b a � � � 2 1 2/ Logo, I� � � � � � � � � � � � � � � � � 1 4 0 2 1 8 1 5 16 0 3125, Vejamos a representação da função com 3 pontos na Figura 9. Integração numérica 117 Figura 9 Trapézio com três pontos Área aproximada = 0.31 Área verdadeira = 0.25 Erro = 0.31– 0.25 = 0.06 Fonte: Elaborada pela autora com o software GeoGebra. Agora, assumindo quatro pontos: (0,0), (1/3, 1/27), (2/3, 8/27) e (1,1), temos: I h f x f x f x f x� � �� � �� � �� � ��� ��2 2 20 1 2 3 Logo, I� � � � � � � � � � � � � � � � � � � � � � � � 1 6 0 2 1 27 2 8 27 1 5 18 0 2778, Agora, vejamos a representação da função com 4 pontos na Figura 10. Figura 10 Trapézio com quatro pontos Área aproximada = 0.28 Área verdadeira = 0.25 Erro = 0.28–0.25 =0.03 Fonte: Elaborada pela autora com o software GeoGebra. 118 Cálculo Numérico Assumindo cinco pontos: (0, 0), (1/4, 1/64), (2/4, 8/64), (3/4, 27/64) e (1,1), temos: I h f x f x f x f x f x� � �� � �� � �� � �� � ��� ��2 2 2 20 1 2 3 4 h b a � � � 4 1 4 Logo, I� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1 8 0 2 1 64 2 8 64 2 27 64 1 17 64 0 265, 6625 Por fim, vejamos a representação da função com 5 pontos na Figura 11. Figura 11 Trapézio com cinco pontos Área aproximada = 0.27 Área verdadeira = 0.25 Erro = 0.27–0.25 =0.02 Fonte: Elaborada pela autora com o software GeoGebra. Vejamos a Tabela 1 que resume o que fizemos até aqui. Tabela 1 Comparação entre a solução exata e a solução aproximada Solução I Erro absoluto Solução exata 1 4 0 Trapézio (3 pontos) 5 16 1 4 5 16 0 0625� � , Trapézio (4 pontos) 5 18 1 4 5 18 0 0278� � , Trapézio (5 pontos) 17 64 1 4 17 64 0 015625� � , Fonte: Elaborada pela autora. Integração numérica 119 Podemos perceber que, ao aumentarmos a quantidade de pontos, minimiza- mos o erro absoluto. Até o momento, estamos construindo a integração assumindo uma interpo- lação por dois pontos conhecidos. Contudo, podemos acrescentar um ponto (ou mais) e, dessa forma, a interpolação será calculada para um polinômio de grau dois (ou de maior grau). A tentativa é feita para minimizarmos o erro numérico. Uma outra possibilidade, a regra de Simpson, abordada na sequência, assume 3 pontos de integração em cada partição do intervalo. 5.4 Regra de Simpson Vídeo Para a construção da regra de Simpson, assumimos um intervalo de integração (a,b) tal que f ∈ C4 [a, b], a = x0 e b = x2. Figura 12 Regra de Simpson a = x0 x1 = m b = x2 P2(x) y1 y0 y2 y f (x) x h h Fonte: Elaborada pela autora. Nesse caso (Figura 11), o polinômio será interpolado usando três pontos, x0, x1 e x2. Como h b a� � 2 , então, m x x x a h� � � � �1 0 2 2 ( ) , onde m é chamado de ponto mé- dio do intervalo. Adotando a interpolação de Lagrange para um polinômio de grau 2 e assumin- do: x0 – x1 = –h; x1 – x0 = h; x0 – x2 = –2h; x2 – x0 = 2h; x1 – x2 =–h; e x2 – x1 = h, teremos: P2 (x) = y0L0 (x) + y1L1(x) + y2L2(x) Assim, L x x x x x h h 0 1 2 2 � � � �� � �� � �� � �� � L x x x x x h h 1 0 2� � � �� � �� �� � �� � L x x x x x h h 2 0 1 2 � � � �� � �� �� �� � 120 Cálculo Numérico Portanto, a b x x f x dx P x dx Erro� �� � � � � � 0 2 2 Onde: x x x x x x P x dx y h x x x x dx y h x x x x 0 2 2 0 2 0 2 1 2 1 2 0 2 0 2 2 � � �� � � �� � �� � � �� � �� �� � �� � �� ��dx y h x x x x dx x x 2 2 0 2 0 1 2 O erro estimado será a integral do erro polinômio de Lagrange assumindo 3 pontos de interpolação. Dessa maneira, podemos escrever: a b x x f x dx P x dx Erro� �� � � � � � 0 2 2 Logo, conforme (3). a b f x dx h y y y h f x x� � � � � � �� �� � � � �� �� �3 4 900 1 2 5 4 0 2· , ,� � (3) Dessa forma, temos uma expressão para calcular a integral de uma função de maneira numérica, usando para isso uma interpolação polinomial aplicando um polinômio de grau 2. A regra de Simpson como enunciada na Equação 3 é também chamada de Regra 1/3 de Simpson. Analisemos o Exemplo 2. Exemplo 2 Use a regra de Simpson para resolver 0 1 3 1 4� �x dx e compare os resultados com o uso da regra do trapézio. Solução Seja: a b a b f x dx P x dx h f x f x f x� �� � � � � � � �� � �� � �� �2 0 1 23 4 Se f(x) = x3 em [0,1] com pontos (0,0), (1/2,1/8) e (1,1) e h = 1 2 , então, I� � � � � � � � � � � � � � � � 1 2 3 0 4 1 8 1 1 4 Note que, conhecendo o resultado exato para 0 1 3 1 4� �x dx , temos, que pelo método de Simpson, com ajuste por P2, obtemos erro zero e, portanto, não precisamos continuar tes- tando o método com um número maior de pontos. Comparado ao método do trapézio, o ajuste polinomial se mostrou muito mais eficiente e adaptável às curvas da função original. É possível trabalharmos com a regra de Simpson de maneira que, em um inter- valo fechado [a,b], tenhamos conhecidos 4 pontos: x0, x1, x2 e x3 e, portanto, possa- mos usar um polinômio interpolador de Lagrange P3 (x) para aproximar f(x). O site Wolfram Alpha apresenta uma gama de ferramentas interativas, que permitem ao usuário a análise de resultados e a visualização geométrica de processos numéricos. Entre elas, está presente uma ferramenta que permi- te o cálculo e a visualização das regras de Newton- -Cotes usando diferentes funções e partições do domínio. Disponível em: https:// demonstrations.wolfram.com/ NewtonCotesQuadrature/. Acesso em: 12 ago. 2022. Site https://demonstrations.wolfram.com/NewtonCotesQuadrature/ https://demonstrations.wolfram.com/NewtonCotesQuadrature/ https://demonstrations.wolfram.com/NewtonCotesQuadrature/ Integração numérica 121 Nesse caso, obtemos: a b x x f x dx P x dx Erro� �� � � � � � 0 2 3 Logo, temos (4) que também é chamada de Regra 3/8 de Simpson. a b f x dx h y y y y h f x x� � � � � � � � �� �� � � � �� �� � 3 8 3 3 3 80 0 1 2 3 5 4 0 3� �, , (4) Da mesma forma que trabalhamos com a regra do trapézio, é possível desenvol- vermos a regra composta de Simpson. Analisaremos esse processo a seguir. 5.4.1 Regra de Simpson composta Aplicando a regra de Simpson repetidamente no intervalo [a, b] = [x0, xn], obte- mos a expressão da integral da seguinte maneira: seja f ∈ C4 [a, b], em que h b a n � � , com n “par”, xj = a + j · h, onde j = 0, 1, ..., n. Existe ξ ∈ (a,b) tal que: a b j n j j n jf x dx h f a f x f x� � �� � � � � �� � � �� � � ��� � � � � � �� � �3 2 4 1 2 1 2 1 2 2 1 ff b b a h f� � � � � � � � � � � �� �� � � �� � 4 4 180 � Ou seja, a b n n nf x dx h f f f f f f f� � � � � � � ��� � �� �� �3 4 2 4 2 40 1 2 3 2 1 A partir disso, sugerimos o Algoritmo 1 o qual chamamos de algoritmo de Simp- son que nos permite fazer a implementação da técnica na linguagem de programa- ção que desejarmos e que tivermos mais habilidade. Algoritmo 1 Entrada: f, a, b, n par Faça: h b a n � � Faça: • I0 = f(a) + f(b) • I1 = 0 • I2 = 0 Para i = 1, ..., n – 1 Faça: X = a + i · h Se i é par, então, faça: I2 = I2 + f(X) Se não, realizemos: I1 = I1 + f(X) Então, I h I I I� � � � � �� � 3 2 40 2 1 Saída (I): valor aproximado I da a b f x dx� � � 122 Cálculo Numérico Na próxima seção, generalizamos a regra do Trapézio e a regra de Simpson no que chamamos de caso geral. Dessa forma, continuamos assumindo intervalos fechados, contudo, a subdivisão entre dois pontos passa a ser escolhida de modo que o grau do polinômio interpolador não dependa do método, mas do melhor ajuste para cada problema. 5.5 Caso geral Vídeo O caso geral trata de quadraturas do tipo Newton-Cotes, onde para cada inter- valo xi+1–xi podemos assumir n pontos de interpolação. Seja um polinômio interpolador escrito pelo método de Lagrange adotando: xi = x0 + i · h, i = 0, 1, ... n x a x b h b a n n0 � � � � , , Conforme representado na Figura 13. Figura 13 Regra geral a = x0 x1 y1 yn x h yn–1 xn–1 xn= b Ln(x) y0 h y Fonte: Elaborada pela autora. Então, conforme Justo et al. (2020), a integral fica: a b i n i if x dx a f x� �� � � � ��0 · Onde: a l x dx x x x x dxi x xn i x xn j i j � � � � �� � �� �� � �� � 0 0 0j j i n Portanto, se n par, temos: a b i n i i n n n f x dx a f x h n f t n � � �� � � � � �� �� � � � �� � � � � � � �� � �� � 0 3 2 02 2! � �� � � �� �� �� �� �� � � � �t t t t n dt a b f C a bn1 2, , , ,� Se n ímpar, temos: a b i n i i n n n f x dx a f x h n f t t t� � �� �� � � � �� �� � � � �� � �� ��� � �� � 0 2 1 01 1 ! � ��� �� �� � � � ��n dt a b f C a bn, , , ,� 1 Nesse caso, o princípio continua sendo o mesmo adotado nos métodos do tra- pézio e de Simpson. A escolha de n dependerá do erro associado em cada caso. Integração numérica 123 Assumindo n o grau do polinômio que interpola a função f e adotando uma fór- mula de Newton-Cotes, o erro é descrito no Teorema 1. Teorema 1 Seja f uma função com derivada f(n+2) contínua em [a,b], e Pn o polinômio que interpola f em pontos igualmente espaçados xi, i = 0, …, n do intervalo fechado [a, b]. Nessas condições, o erro: R f x dx P x dxn a b x xn n� � � � � �� � 0 da fórmula de Newton-Cotes satisfaz: • se n par: R h f n t n t t t n dt a bn n n n � � � �� � �� � � � � � �� �� �� � �� � � �� � � 3 2 0 2 2 1 � � ! , , • se n ímpar: R h f n t t t n dt a bn n n n � � � �� � �� �� �� � �� � � �� � � 2 1 0 1 1 � � ! , , A escolha do método e da quantidade de nós está relacionada ao grau de exa- tidão de uma determinada quadratura. Para fazermos essa escolha, levamos em consideração os nós e os pesos x ai i i n ,� �� � �0 . O grau de exatidão será m quando: a b i n i if x dx f x a� �� � � � � �1 onde f(x) tem grau menor do que m. Formalmente, temos a Definição 1. Definição 1 Seja uma quadratura numérica discretizada em xi pontos e ai pesos, com i = 0, 1, …, n. O grau de exatidão m é avaliado para os valores de k tais que: a b k i n i k ix dx x a� �� �0 , para todo k ≤ m (5) Partindo dessa definição, sugerimos algumas formas de uso para as regras de Newton-Cotes: • 2 pontos x1 e x2 – precisão 1; • 3 pontos x1, x2 e x3 – precisão 2 (e 3); • 4 pontos x1, x2, x3 e x4 – precisão 3; • 5 pontos x1, x2, x3, x4 e x5 – precisão 4 (e 5). 124 Cálculo Numérico Vejamos o Exemplo 3. Exemplo 3 Calculemos o grau de exatidão para a Regra de Simpson. Para isso, avaliaremos para quais valores de k vale a expressão: a b k k x dx b a f a f a b f b� � �� � � �� �� � � � � � � � � � � � � � � 6 4 2 • para k = 0: a b a b x dx x b a� � � �0 b a a a b b b a �� � � �� � � � � � � � � � � � � � � � � 6 4 2 0 0 0 • para k = 1: a b a b x dx x b a � � � �1 2 2 2 2 2 2 b a a a b b b a�� � � �� � � � � � � � � � � � � � � � � 6 4 2 2 2 1 1 1 2 2 • para k = 2: a b a b x dx x b a � � � �2 3 3 3 3 3 3 b a a a b b b a�� � � �� � � � � � � � � � � � � � � � � 6 4 2 3 3 2 2 2 3 3 • parak = 3: a b a b x dx x b a � � � �3 4 4 4 4 4 4 b a a a b b b a�� � � �� � � � � � � � � � � � � � � � � 6 4 2 4 4 3 3 3 4 4 • para k = 4: a b a b x dx x b a � � � �4 5 5 5 5 5 5 b a a a b b b a a b a b a b b�� � � �� � � � � � � � � � � � � � � � � � � � � 6 4 2 5 5 2 24 4 4 5 5 4 3 2 2 3 44 5 5 24 5 5 a b a � � Portanto, o grau de exatidão será k = 3. Os métodos vistos até o momento são chamados de Newton-Cotes fechados. No entanto, o procedimento para os métodos abertos é similar e pode ser facilmente deduzido. Lembrando que um método dito aberto é aquele em que os extremos dos intervalos não são avaliados como nós da quadratura. Integração numérica 125 5.6 Regras de quadratura gaussiana Vídeo As regras de Newton-Cotes são definidas para espaçamentos de igual tama- nho, como vimos nas seções anteriores. Contudo, em alguns casos conseguimos minimizar o erro trabalhando com espaçamentos variáveis. Entre as quadraturas, os métodos que permitem espaçamentos variáveis entre os nós são chamados de quadraturas gaussianas ou quadraturas de Gauss. A ideia do matemático Carl Friedrich Gauss (1778–1855), foi a de liberar os nós de integração, deixando-os livres de forma a minimizar o erro de aproximação (6). a b i n i if x dx a f x� �� � � � � �0 (6) Para xi pertencente a um intervalo fechado de a até b, fazendo com que (6) seja exata para polinômios de grau igual ou menor que 2n + 1. Assim, sendo a b i n i i nf x dx a f x G f� �� � � � � � � ��0 · , devemos escolher os pontos (nós) de interpolação (espaçamento qualquer): x0, x1, x2,..., xn, e os coeficien- tes (pesos): a0, a1, a2,..., an, tal que a fórmula de integração nos dê valor exato se f for um polinômio de grau menor ou igual a 2n+1. Dessa forma, se a b i n i i nf x dx a f x R� �� � � � ��� �0 1· (7) então, o resto é Rn+1 = 0. Nesse contexto, estudamos um método chamado de Gauss-Legendre ou qua- dratura gaussiana (Figura 15), nele se faz uma substituição da função f(x) por um polinômio ortogonal que nos leva a uma aproximação satisfatória no intervalo determinado. Figura 15 Quadratura gaussiana 3 2 1 1 2 –1 w1 1.8 1.6 1.4 1.2 1.0 0.8 2 4 6 8 10 12 14 16 18 20x1 w2 x2 –1–2 Integrando Pesos e pontos de amostragem Quantidade de pontos Integral verdadeira Es tim at iv a i i ix w � � �� � � 1 2 2 1 1 33333. � �� ��� 2 2 2 1x dx = 1.3333333333333333333 Fonte: Maes; Antonov, 2011. O site Wolfram Alpha também oferece uma ferra- menta que permite o cálcu- lo e a visualização da classe de métodos chamada de quadratura Gaussiana, usando diferentes funções e partições do domínio. Disponível em: https:// demonstrations.wolfram.com/ GaussianQuadrature/. Acesso em: 12 ago. 2022. Site Figura 14 Carl Friedrich Gauss Johann Carl Friedrich Gauss foi um matemático que contribuiu enormemente para as mais diversas áreas da ciência, como a matemática, a astronomia e a física, com diferentes teorias que são usadas ainda nos dias de hoje. Ni ck u/ Sh ut te rs to ck https://demonstrations.wolfram.com/GaussianQuadrature/ https://demonstrations.wolfram.com/GaussianQuadrature/ https://demonstrations.wolfram.com/GaussianQuadrature/ 126 Cálculo Numérico Outros polinômios ortogonais podem ser aplicados com a mesma finalidade. Acerca disso, para ampliar o nosso repertório, podemos pesquisar a respeito dos métodos de Gauss-Laguerre, Gauss-Hermite e os polinômios de Chebyshev 1 . Na sequência, explicamos sobre o método de quadratura de Gauss-Legendre e resolvemos alguns exemplos sobre esse tema. 5.6.1 Resolução da integral usando o polinômio ortogonal de Legendre Anteriormente, vimos que uma aproximação por quadratura gaussiana é cons- truída em cima da escolha de polinômios ortogonais que permitirão uma aproxi- mação razoável para a substituição de f(x). Assim, seja um conjunto de polinômios {φi(x)}, em [a,b] de graus 0, 1, ... Se � � � � i j i j x x x x � � � � � � � � � � � � � � � �� , , , , 0 0 se i j se i j 2 (8) então o conjunto {φi (x)} é dito ortogonal. O método chamado de Gauss-Legendre é um dos métodos que compõem a clas- se chamada de quadratura gaussiana. Esse método leva em consideração o uso de polinômios ortogonais de Legendre, conforme a Definição 2 sobre essa estrutura. Definição 2 Seja um conjunto de polinômios ortogonais em relação a uma função peso w(x), denotado por {φi (x)}, em [a,b]. Então, a integral: a b i n i iw x f x dx a f x� �� � � � � � ��· ·1 , onde xi, com i = 1, ... n, são zeros de φn (x), e os ai precisam ser determinados. Um polinômio de Legendre de grau n, Pn (x), é da forma: P x n d dx xn n n n n � � � �� �� �� � �� 1 2 12 ! (9) Essa representação é chamada de fórmula de Rodrigues, nela, o polinômio de Legendre é escrito com relação aos termos de n diferenciações do binômio (x2 – 1)n (TEODORO, 2017). Tais polinômios, quando adotados para o processo de integração numérica, são acoplados a pesos definidos em (10). a a x P x i i n i ' � �� � � ��� �� 2 2 2 (10) onde P xn i ' � � é a derivada do polinômio de Legendre em (9) e P n P x xP x x n n n' � � �� � ��� �� � �1 21 Há diferentes grafias para o nome que, dependendo da transliteração de cirílico, pode aparecer como: Chebysheff, Chebychov, Chebyshov, Tchebychev, Tchebycheff, Tschebyschev. 1 A notação 〈⋅ ,⋅〉 repre- senta o produto interno entre vetores. Temos que � � � � ��f g f t gt dt a b , ) 2 Integração numérica 127 Assumindo um intervalo [–1,1] e peso w(x) = 1, obtemos os seguintes polinômios de Legendre: P x P x x P x x P x x x P x n n 0 1 2 2 3 3 1 3 2 1 2 1 2 5 3 2 � � � � � � � � � � � � � �� �� � � � � � � � � �� � �� � � � �� � 1 1 21 2 n x P x n n P x nn n· · · , Notemos que se os polinômios forem iguais, então �� � � � �1 1 2 2 2 1 P x dx n n (KREYSZIG, 2008). Assim, os polinômios de Legendre (Figura 16) são polinômios ortogonais e per- tencem a {φi(x)}. Figura 16 Alguns polinômios de Legendre Adotando um intervalo fechado [-1, 1], teremos que �� � � � � �1 1 0P x P x dxi j· para i ≠ j (11) Seja Pn (x) um polinômio de Legendre com zeros em x1,x2,...,xn em [-1,1]. Então, � �� �� � � � �1 1 1 P x dx a P x i n i i· , onde o grau(P) < 2n e a x x x x dxi n j i j � � �� � � � �1 1 1j i j . Assim, P x P x Q x R x grau n n grau n grau n grau n � � � � � � �� � � � � �2 ��� �� ��� �� � ��� ��� Integrando essa equação em [-1,1], temos: � � � � � � � � �� � � � � � � � � �1 1 1 1 1 1 0 11 P x dx P x Q x dx R x dxn por � ����� ����� Al es si o Da m at o/ W ik im ed ia C om m on s 128 Cálculo Numérico Dessa forma, quando usamos n nós para interpolarmos a função, o polinômio interpolador coincide com R(x). Isso nos permite escrever: R(x) = R(x1) · L1(x) + … + R(xn) · Ln (x), onde x1, …, xn , são os zeros do Polinômio de Legendre Pn (x). Assim, � �� �� � � � �1 1 1 R x dx R x a i n i i· onde a L x dxi i� � ��� 1 1 Logo: P(xi) = Pn(xi) · Q(xi) + R(xi) = R(xi) (12) Então, � � �� � �� � � � � � � �1 1 1 1 1 P x dx R x dx a P x i n i i (13) sendo a x x x x dxi n j i j � � �� � � � �1 1 1j j i e xi os zeros de Pn(x) e P qualquer polinômio de grau 3 ≤ 2n – 1. O que fazer quando a função f não for um polinômio de grau ≤ 2n – 1? Nesse caso, � �� �� � � � �1 1 1 P x dx a P x i n i i , onde os xi são os zeros de Pn(x) e a x x x x dxi j i j � � �� � � � �1 1 1j j i n . Usando apenas 3 pontos em [–1,1], fazemos uma avaliação das fórmulas, con- forme a Tabela 2. Tabela 2 Comparação entre métodos Função Trapézio composto Simpson Gauss-Legendre Nós –1, 0, 1 –1, 0, 1 − 3 5 0 3 5 , ,� � f(x) = x Exato Exato Exato f(x) = x2 Exato Exato f(x)=x3 Exato Exato f(x) = x4 Exato f(x) = x5 Exato Função qualquer Fonte: Elaborada pela autora. Vejamos o Exemplo 4. Exemplo 4 Usemos Gauss-Legendre para encontrarmos a solução da integralnumérica �� �1 1 5 0x dx Solução Para �� � � �� � �� � �1 1 5 1 1 2 2 3 3x dx a f x a f x a f x , onde x x x1 2 3 3 5 0 3 5 � � � �, , e a L x dx1 1 1 1 5 9 � � � � �� ; a L x dx2 1 1 2� � ��� ; a L x dx3 1 1 3 5 9 � � � � �� Portanto, �� � �� �� � �� �� � �1 1 5 2 5 9 0 00498830 0 5 9 0 00498830 0x dx a, , Para n + 1 nós, o grau do polinômio será ≤ 2n + 1. Já para n nós, temos o grau do polinômio ≤ 2n – 1. 3 No material de aula do pro- fessor Erivelton Nepomu- ceno, Integração Numérica, da Universidade Federal de São João del-Rei (UFSJ), é possível analisarmos por meio de uma outra técnica, diferente das que apre- sentamos neste capítulo, o mesmo resultado encontra- do para o uso do método de Gauss-Legendre. Além disso, Nepomuceno apre- senta alguns exercícios re- solvidos a partir do método de Gauss-Legendre. Disponível em: https://ufsj.edu.br/ portal-repositorio/File/nepomuceno/ mn/10MN_Integracao1.pdf. Acesso em: 12 ago. 2022. Leitura https://ufsj.edu.br/portal-repositorio/File/nepomuceno/mn/10MN_Integracao1.pdf https://ufsj.edu.br/portal-repositorio/File/nepomuceno/mn/10MN_Integracao1.pdf https://ufsj.edu.br/portal-repositorio/File/nepomuceno/mn/10MN_Integracao1.pdf Integração numérica 129 Vejamos também o Exemplo 5. Exemplo 5 Calculemos: 0 10 2 � � �e dtt ? Solução Primeiro, transformaremos [0,10] em [-1,1] por meio da fórmula t b a x b a� �� � � �� ��� �� 1 2 Portanto, t x x� �� � � �1 2 10 10 5 5 e dt = 5dx Assim, 0 10 2 1 1 5 5 2 5� �� � � ��e dt e dxt x( ) Isso quer dizer que f t e t� � � � �� 2 0 10, , assume os mesmos valores que f x e x� � � � �25 1 2( ) , [-1,1]. Portanto, 5 5 1 1 5 5 2 1 1 2 2� � �� � � �� � ��� ��e dx a f x a f xx( ) Notemos que sempre calculamos a integral no intervalo no qual as funções são ortogonais. Com isso, temos agora as ferramentas para pensamos em integrações numéricas que dependem de uma discretização do domínio, onde os nós não estão igualmente espaçados, mas o que é levado em consideração é a melhor aproxi- mação possível do resultado numérico obtido, quando comparado ao resultado alcançado por métodos analíticos. CONSIDERAÇÕES FINAIS Entre os métodos existentes, apresentamos a classe de métodos chamada de quadraturas de Newton-Cotes, que levam em consideração um espaçamento constante para a discretização do domínio. Também vimos que existem maneiras de calcular integrais numéricas com espa- çamentos variados no domínio. Na classe de métodos chamada de quadratura gaus- siana, que nos permite trabalhar com esse tipo de discretização, focamos no método conhecido como Gauss-Legendre, que considera os polinômios ortogonais de Legendre para resolver o método. Mesmo na seção de integração numérica, usamos, muitas vezes, as técnicas de interpolação, sendo a mais requisitada a interpolação de Lagrange, o que nos mostra a interligação de todas essas abordagens e as muitas possibilidades de trabalharmos e desenvolvermos novos métodos numéricos. Portanto, percebemos que a área de métodos numéricos está em crescimento, e o desenvolvimento de novos métodos nos leva a melhores resultados que, em muitos casos, são os únicos possíveis quando não é admissível modelar matematicamente um problema que possa ser resolvido por métodos analíticos. 130 Cálculo Numérico ATIVIDADES Atividade 1 Explique a razão pela qual a integração de Riemann não é considerada um méto- do numérico, mas sim um método analítico. Atividade 2 Descreva por qual motivo, na regra do trapézio simples (Figura 1), as medidas da base maior e base menor da figura geométrica do trapézio devem ser as imagens do polinômio interpolado para os pontos x0 e x1. Figura 1 Regra do trapézio simples Fonte: Elaborada pela autora. b = x1 y0 y1 a = x0 f (x) P1 (x) x y Atividade 3 Para que a regra de Simpson simples tenha valor exato, qual deve ser o grau do polinômio interpolado? Justifique sua resposta e compare esse resultado com a regra do trapézio. REFERÊNCIAS CHAPRA, S. C.; CANALE, R. P. Métodos numéricos para engenharia. 7. ed. Porto Alegre: AMGH, 2016. JUSTO, D. A. R. et al. (org.). Cálculo Numérico: um livro colaborativo. Porto Alegre: UFRGS, 2020. Disponível em: https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf. Acesso em: 18 ago. 2022. (On- line) TEODORO, W. L. Soluções por séries de funções especiais. 2017. Dissertação (Mestrado profissional em Rede Nacional) – Departamento de Matemática, Universidade Federal do Ceará, Fortaleza. Disponível em: https://repositorio.ufc.br/bitstream/riufc/22446/3/2017_dis_wlteodoro.pdf. Acesso em: 18 ago. 2022. KREYSZIG, E. Matemática superior para engenharia. 9. ed. LTC: Rio de Janeiro, 2008. v. 1. MAES, C; ANTONOV, A. Gaussian Quadrature. Wolfram Demonstrations Project, 2011. Disponível em: https://demonstrations.wolfram.com/GaussianQuadrature/. Acesso em: 18 ago. 2022. https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf https://repositorio.ufc.br/bitstream/riufc/22446/3/2017_dis_wlteodoro.pdf https://demonstrations.wolfram.com/GaussianQuadrature/ Solução numérica para equações diferenciais ordinárias 131 6 Solução numérica para equações diferenciais ordinárias As equações diferenciais têm um papel central na descrição matemática dos fenô- menos físicos ao nosso redor. Elas relacionam variáveis de interesse com suas taxas de variação através do conceito de derivação. Apesar de sua grande aplicabilidade para modelar fenômenos, possibilitando o seu estudo, a solução analítica de equações é, em certos casos, um desafio. Ele começa com o questionamento sobre a existência de soluções para o problema em estudo e qual seria a natureza dessa solução a ser buscada para, então, encontrarmos uma função que satisfaça o equacionamento. Uma alternativa para obtenção analítica de soluções para equações diferenciais é a solução numérica. Métodos numéricos de solução visam a aproximar uma resposta do problema, fazendo simplificações, como o relaxamento dos operadores diferenciais e a dis- cretização do domínio contínuo, aplicando as técnicas de projeção e as demais estratégias. Historicamente, o desenvolvimento de trabalhos na área de métodos numéricos para solução de equações diferenciais teve início com Isaac Newton (1643–1729), Gottfried Wilhelm Leibniz (1643–1716) e com o próprio desenvolvimento do cálculo diferencial e integral, mas só com Leonhard Euler (1707–1783), no século XVIII, que foi possível um maior avanço nessa área. Como veremos, Euler desenvolveu um processo iterativo que permite determinar, de maneira aproximada, a solução de um problema de valor inicial em um determina- do ponto. Entretanto, outros nomes importantes aparecem no crescimento da área de métodos numéricos: Augustine-Louis Cauchy (1789–1857), em 1824, demonstrou rigorosamente que, de fato, o processo iterativo apresentado por Euler solucionava um problema de valor inicial. Esse resultado de Cauchy foi, mais tarde, melhorado por Rudolf Lipschitz (1832–1908). Há muitos outros nomes que enriquecem o cálculo numérico aplicado a equações diferenciais. Com isso posto, veremos quais foram as descobertas e os desenvolvimentos com relação aos métodos numéricos. Com o estudo deste capítulo, você será capaz de: • desenvolver métodos de passos simples com base em expansão e em trunca- mento de séries de Taylor; • determinar a solução de problemas modelados por equações diferenciais por meio dos métodos: de passos simples e de Adams; • construir métodos de passos múltiplos; • relacionar os métodos de Adams para criar um método preditor-corretor; • comparar os diferentes métodos estudados; • resolver sistemas de equações diferenciais partindo dos métodos estudados. Objetivos de aprendizagem 132 Cálculo Numérico 6.1 Métodos de passos simples Vídeo Dentro do contexto de equações diferenciais, os problemas de valor inicial (PVI) são problemas nos quais conhecemos o estado inicial de um sistema (condição ini- cial), e a evoluçãoé dada em função da própria taxa de variação da função. Um PVI definido por uma equação diferencial ordinária de primeira ordem com condição inicial é chamado de problema de Cauchy (BURDEN; FAIRES, 2008) confor- me Definição 1. Definição 1 Um problema de valor inicial (ou de Cauchy) é um do seguinte tipo. du dt t t u � � �� � � � � � � � �� f t u u , 0 0 (1) com u: R→R, f:R×R, t > t0, t0, u0 constantes reais. Quando resolvemos um PVI como na expres- são em (1) desejamos encontrar o valor para u(t). Uma vez enunciado o problema, é natural o questionamento sobre a existência de uma solução para ele. Ainda, admitir uma solução não garante que ela seja úni- ca. A unicidade da solução é principalmente desejada em casos nos quais há linea- ridade do operador diferencial, pois a existência de uma segunda solução geraria infinitas soluções por meio de combinações lineares. Com isso, devemos questio- nar se a solução admitida para o problema é única. Por fim, é importante haver uma relação contínua entre os dados de entrada e a saída da função obtida como solução do PVI. Essa questão é traduzida como a regularidade ou suavidade da função e tem um papel essencial na busca pela própria solução. Os PVI que serão trabalhados neste capítulo são chamados de problemas bem- -postos. Um problema bem-posto é aquele que apresenta solução única e pouco sensível quando se faz pequenas perturbações nas condições iniciais. Vamos en- tendê-los na sequência a partir dos métodos de Euler, de Taylor e de Runge-Kutta. 6.1.1 Método de Euler Este é primeiro método numérico: o método de Euler com passo constante ou passo simples que é aplicado para resolver problemas de valor inicial como os apresentados na Definição 1. Vídeo Solução numérica para equações diferenciais ordinárias 133 Dizemos que a discretização do domínio foi feita com passo constante (ou sim- ples) quando os pontos da malha estão, todos, igualmente espaçados. Porém, o que é uma discretização do domínio? O que são os pontos ou o espaçamento de uma malha? Esses conceitos são necessários e repetidos em todas as seções deste capítulo, portanto, seu entendimento é fundamental para prosseguirmos. Discretização do domínio Quando falamos em malha, primeiramente precisamos pensar na dimensão do nosso domínio. Dessa forma, se t ∈ [a,b] em R1, a representação da nossa malha será unidimensional (Figura 1). Figura 1 Malha unidimensional para a variável tempo a = t0 ... ...ti–1 ti+1 b = tNti Δt = h Fonte: Elaborada pela autora. Observe pela Figura 1 que deixamos de trabalhar diretamente no domínio con- tínuo de t e passamos a avaliar as funções em pontos discretos do intervalo que definem uma malha de N + 1 pontos de coordenadas expressas em (2). ti = a + ih com i = 0, 1, 2, 3,...,N e h t b a N � � � � (2) Ou seja, o que temos é: a = t0 t1 = t0 + Δt1 t2 = t1 + Δt2 ⋮ ti = ti-1 + Δti ⋮ tN = t N–1 + ΔtN = b com Δt1 = Δt2= … =Δti = Δt = h É dessa forma que visualizamos nossos domínios. Essa divisão realizada no do- mínio em intervalos (nesse caso, igualmente espaçados) é chamada de discretiza- ção do domínio. 134 Cálculo Numérico Quando trabalhamos com um domínio em R2, nossa malha será bidimensional (Figura 2). Figura 2 Malha cartesiana bidimensional com espaçamento constante entre nós Δtitj ti, j j + 1 j – 1 i – 1 i + 1i j Δtj ti Fonte: Elaborada pela autora. Nesse caso, temos um espaço bidimensional discretizado em intervalos Δti e Δtj, para i, j = 0, 1, …, n. Como não definimos o fenômeno físico o qual o problema representa, podemos estar falando de espaço unidimensional e tempo, espaço bidimensional com coor- denadas x e y ou outras duas variáveis quaisquer. Solução aproximada para um intervalo discreto Observando a equação diferencial du dt f t u t� � �� �, em um desses intervalos da malha, podemos escrever conforme (3). du f t u t dt u(ti ) u( ti titi� � � �� � �� � 1 1) , (3) Isso resolveria o problema se solucionássemos a integral à direita da igualdade analiticamente, mas não temos informações suficientes sobre f(t, u(t)), pois envol- ve a própria resposta do PVI. É nesse ponto que entra a chamada aproximação do comportamento da função. A questão central aqui é escolhermos uma forma de aproximarmos a integral envolvendo f(t, u(t)). Uma primeira estratégia é supormos que, dentro do intervalo [ti, ti+1], o comportamento de f(t, u(t)) é aproximadamente constante. Intuitiva- mente, essa aproximação é mais factível à medida que se refina a malha, ou seja, se diminui h. Solução numérica para equações diferenciais ordinárias 135 Definição 2 O método de Euler considera a aproximação apresentada em (3) com a qual podemos escrever: du f t u t dt u t u t t t i i i i ( ) ( ) ( , ( )) � � � �� 1 1 Levando-nos ao que é posto em (4). u t u t f t u t dt f t u t t t hf ti i ti ti i i i i i� � �� �� � � � � �� � � � �� � �� � ��1 1 1, , ,,u ti� �� � (4) Dessa forma, podemos isolar o u(ti+1), obtendo, por fim, uma forma de calcular sucessivamente a função u(t). Assim, definimos o método de Euler por meio do exposto em (5). u(ti+1) = u(ti) + hf(ti, u(ti)) (5) Vejamos a representação por meio da Figura 3. Figura 3 Interpretação geométrica do método de Euler Erro t0 t0 u(t0) = u0 (t0, u0) (t1, u1) (t2, u2) (t1, u(t1)) (t2, u(t2)) (t3, u(t3)) (t3, u3) u(t1) u1 t1 t1 t2 t3 t1 – t0 = h = Δt du/dt = f(u, t(u)), u(t0) = u0 Fonte: Elaborada pela autora. Além disso, podemos fazer uma interpretação geométrica que será utilizada posteriormente nos métodos de Runge-Kutta. Desse modo, precisamos calcular a inclinação k = tanα, como observamos na Figura 4, de maneira que consigamos uma aproximação para u(t1) usando k e u(t0). 136 Cálculo Numérico Figura 4 Segunda representação geométrica do Método de Euler u(t1) t0 t1 u(t1) = u(t0) + kh u(t) u(t0) u1 ⍺ tan ⍺ = k h = t1 – t0 t Fonte: Elaborada pela autora. Quanto melhor for o método de passo único, melhor será a inclinação dessa reta, de modo que o valor estimado para u(t1) esteja o mais próximo possível do valor exato. A inclinação k pode ser facilmente calculada usando: u’(t) = f(t, u(t)). Assim, podemos escrever: k = f(t0, u(t0)). Portanto, u(t1) será u(t1) = u(t0) + f(t0, u(t0)) h, como já calculamos. A existência do valor de k será melhor compreendida nas seções seguintes, mas é importante que ele já apareça nas nossas equações para que possamos compreender os próximos métodos numéricos. Vejamos o Exemplo 1. Exemplo 1 Obtenhamos a solução para a equação diferencial: dy dx x y� �� ��3 1 , sujeita à condição inicial x = 1, quando y(1) = 4, para um intervalo x ∈ [1,2] e h = 0,5, aplicando o método de Euler. A solução analítica para esse problema é dada por: y(x) = 3x + e1–x, logo, y(2) = 6,36788. Temos que: dy dx y x y� � �� ��´ 3 1 Sabemos que quando x = 1 temos y = 4 (condição inicial 1 ). Dessa forma, podemos escrever: y0’ = 3(1 + 1) – 4 = 2 Aplicando o método de Euler: u(ti+1) = u(ti) + hf (ti, u(ti)) Com a nomenclatura aplicada neste exemplo, temos: y1 = y0 + hy0’ y1 = 4 + (0,5)(2) = 5 Fazendo x1 = x0 + h = 1 + 0,5 = 1,5 e y1 = 5, temos: y1’ = 3(1+x1) – y1 y1’ = 3(1 + 1,5) – 5 = 2,5 Então, y2 = y1 + hy1’ y2 = 5 +(0,5)(2,5) = 6,25 São as condições informa- das para cada problema ou no tempo zero, ou no espaço (ponto inicial), por exemplo, quando escreve- mos u(t0) = u0. 1 Solução numérica para equações diferenciais ordinárias 137 Vejamos a representação geométrica para o PVI por meio do método de Euler para h = 0,5 a partir da Figura 5. Figura 5 Comparação entre a solução analítica e a solução numérica Método de Euler explícito Solução exata 6.0 y x 5.5 5.0 4.5 4.0 1.0 1.2 1.4 1.6 1.8 2.0 Fonte: Elaborada pela autora. E se refinarmos a malha? Refinar a malha, nesse caso, significa diminuir o valor de h. Será que obteremos um resultado melhor? Analisaremos a Tabela 1 para verificarmos isso. Tabela 1 Aproximação para o PVI enunciado, comvalores de h cada vez menores h 0,5 0,2 0,1 0,01 0,001 yi 6,25 6,32768 6,34868 6,36603 6,36769 Fonte: Elaborada pela autora. Agora, vejamos a Figura 6 que compara diferentes valores de h. Figura 6 Comparação geométrica das soluções aproximadas para o PVI enunciado h=0,2 h=0,1 h=0,01 Método de Euler explícito Solução exata6.0 5.5 y x 5.0 4.5 4.0 1.0 1.2 1.4 1.6 1.8 2.0 Método de Euler explícito Solução exata6.0 5.5 y x 5.0 4.5 4.0 1.0 1.2 1.4 1.6 1.8 2.0 Método de Euler explícito Solução exata6.0 5.5 y x 5.0 4.5 4.0 1.0 1.2 1.4 1.6 1.8 2.0 Fonte: Elaborada pela autora. Com isso, dizemos que quanto menor forem as partições do domínio, ou seja, o tamanho de h (o refino da malha), melhor será a convergência para o método de Euler. Percebemos que, ao refinarmos a malha, ou quanto maior for o domínio, a pos- sibilidade de realizarmos os cálculos na mão vão se tornando muito complexos. Por esse motivo, quando falamos em métodos numéricos não podemos descartar o uso de ferramentas computacionais, seja por meio de uma linguagem de pro- gramação seja por softwares já existentes para auxiliar-nos nos cálculos, isto é, precisamos escolher algum desses caminhos para que consigamos trabalhar com boas aproximações. 138 Cálculo Numérico Lembrando que a proposta deste capítulo é trazer a teoria dos métodos nu- méricos que são aplicados em equações diferenciais, e não a sua implementa- ção, mas buscamos deixar uma visualização dessas possibilidades de resolução computacional. 6.1.2 Método de Taylor de ordem superior Assim como, anteriormente, aproximamos o comportamento de f(t,u(t)) por uma função constante dependendo linearmente do tamanho de h, para a qualida- de da aproximação podemos escolher aproximações de ordem superior: lineares, quadráticas, entre outras. Dessa forma, conseguimos uma melhor aproximação do modelo numérico comparado ao modelo analítico (BURDEN; FAIRES, 2016), confor- me o que apresenta a Definição 3. Definição 3 Podemos definir os métodos de Taylor de mais alta ordem apenas escolhendo o ponto de trunca- mento da série polinomial e calculando a relação entre as derivadas: e u e f(t,u(t)) analiticamen- te com auxílio da regra da cadeia. A ordem do erro cometido é proporcional à parcela descartada no truncamento da série. Assim, quanto maior a ordem escolhida melhor a aproximação. No entan- to, essa melhoria na aproximação ocorre ao custo de que são exigidas derivadas de ordem superior da função u(t). Entenderemos esse processo. A expansão de Taylor de um ponto da malha Seja o PVI dado por (6) u f t u t u ´ ,t a � � � � �� � � � � � � � �� � (6) com t ∈ [a,b] e t0 = a. Seja f, nesse contexto, uma função diferenciável nas variáveis t e u com n + 1 derivadas. Podemos aproximar u, em torno de ti , utilizando o polinômio de Taylor da for- ma (7) u t u t t t u t t t u t t t i i i i i i i i i � � � � � � � � �� �� � � �� �� � � ���� � � ��1 1 1 2 1 2! ii n n i n u � � �� � � � �� � �� � 1 1 1 ! � (7) onde εi ∈ (t i, ti+1). Para sistematizar esse procedimento, podemos escrever ti+1 – ti = h, para um ponto ti+1 de forma a obtermos o apresentado em (8) u t u t h u t h u t h k u t hi i i i k k i n � � � � � � � � �� � �� � ���� � ����� ��1 1 2 1 1 2! ! ! �� � �� � � �� �n f u n i i 1 ! ,� � (8) com εi ∈(t i,ti+1). Vídeo Solução numérica para equações diferenciais ordinárias 139 Utilizando a regra da cadeia, podemos calcular as derivadas de ordem u(n) em função das derivadas de f(t, u(t)). Por exemplo, u’ = f (t, u(t)) e �� �� � �� � � � �� � � � �� �u f t u t df t u t dt df t u t du u, , , Observe que, truncando esse polinômio no termo de ordem n, temos um erro de h n f u n n i i �� � �� � � �� � 1 1 ! ,� � Se f(n) for limitada por uma constante M, teremos um erro local para esse trun- camento que satisfaz: �i n h h n M� �� � � � � �� �1 1 1 ! Dessa forma, é possível notarmos que o método de Euler é uma particularidade do método de Taylor de primeira ordem, conforme explicaremos na sequência. O método de Euler explícito como um caso particular É possível observarmos que se utilizarmos a expansão de Taylor apenas até o termo de primeira derivada de u obtemos: u t u t h u t u t u t h f t u ti i i i i i i� �� � � � �� � � � � � � � �� � �� ��1 1 1 1 1 1! ! , (9) logo, u t u t hf t u ti i i i�� � � � �� � �� �1 , (10) que corresponde exatamente à fórmula do método de Euler. Assim, o método de Euler pode ser visto como um caso particular de primeira ordem de uma família de métodos de Taylor. Vejamos como o Exemplo 2 trata isso. Exemplo 2 Seja o PVI dado por u u u ´ t� � � � � � � � � � �� 2 0 1 , com solução exata dada por u(t) = e–2t. Determine o valor aproximado para u(1) utilizando o método de Taylor com k = 1, fazendo h = 1, h = 0,5 e h = 0,25. Temos que as soluções exatas para h = 1; h = 0,5 e h = 0,25 são as que regis- tramos na Tabela 2. 140 Cálculo Numérico Tabela 2 Soluções exatas para os valores de h h = 1 h = 0,5 h = 0,25 0,135335283 0,04978707 0,082084999 Fonte: Elaborada pela autora. Desenvolveremos a solução numérica para os três valores de h sugeridos. Assim: Tabela 3 Solução numérica para os valores de h h = 1 h = 0,5 h = 0,25 u(0) = u0 = 1 u(1) ≈ u1 = u0 + hf(u0) = 1 + 1(–2) = –1 Portanto, |u1–u(1)|=1,135335283 u(0) = u0 = 1 u(0,5) ≈ u1 = u0 + hf(u0) = 1 + 0,5 (–2) = 0 u(1) ≈ u2 = u1+ hf(u1) = 0 + 0,5(–2) = 0 Portanto, |u2 – u(1)| = 0,135335283 u(0) = u0 = 1 u(0,25) ≈ u1 = u0 + hf(u0) = 1 + 0,25(–2) = 0,5 u(0,50) ≈ u2 = u1 + hf(u1) = 0,5 + 0,25(–1) = 0,25 u(0,75) ≈ u3 = u2 + hf(u2) = 0,25 + 0,25(–0,5) = 0,125 u(1,00) ≈ u4 = u3 + hf(u3) = 0,125 + 0,25(–0,25) = 0,0625 Portanto, |u4-u(1)| = 0,072835283 Fonte: Elaborada pela autora. Como vimos anteriormente, quanto menor o valor de h, mais próxima a solução aproximada está da solução analítica, ou seja, menor o erro cometido. Agora, vejamos a situação trazida no Exemplo 3. Exemplo 3 Consideremos o PVI dado por u u ´ t u � � � � � � � � � � �� 1 1 0 1 2 , mas agora usemos o método de Taylor com k = 2 e determinemos o valor aproximado de u(1) quando h = 0,5. O método de Taylor para k = 2 é escrito da seguinte forma. u t u t hf t u t h df dt t u ti i i i i i�� � � � �� � �� �� � �� �1 2 2 , , Com isso, u t u t h u t h u t u t i i i i i �� � � � �� � � �� � � � � � � �� �� � � � � � 1 2 2 2 3 1 1 1 Assim, fazendo h = 0,5 obtemos: u(0) = u0 = 1 u(0,5) ≈ u1 = 1 + 1 + 0,5(0,5) – 0,25(0,125) = 1,21875 u u1 1 21875 0 5 1 2 485351563 0 25 1 21875 15 3519 2� � � � � � � � � � � �, , · , , · , , 44798 1 4 � � � � � � � , Dessa forma, encontramos a solução aproximada para u(1), com uma discreti- zação do domínio em três pontos para x. Solução numérica para equações diferenciais ordinárias 141 6.1.3 Métodos de Runge-Kutta Os métodos numéricos que sucederam o método de Euler, Cauchy e Lipschitz foram apresentados, em 1900, por Karl Heun; em 1895 e 1908, por Carl Runge (1856–1927); e, em 1901, por Martin Wilhelm Kutta (1867–1944), sendo que foram considerados como generalizações das regras de integração. A ideia para esses métodos é a de que, ao invés de contornarmos o problema de calcularmos ti ti f t u t dt � � � �� � 1 , aproximando f(t,u(t)) por meio de expansões po- linomiais, aproximamos f(t,u(t)) calculando uma integral utilizando métodos numéricos de integração. Dessa maneira, obtemos uma nova família de mé- todos, que foi chamada de métodos de Runge-Kutta, pois foram feitos com base nos trabalhos tanto de Runge (1895) quanto de Kutta (1901). O método de Runge-Kutta de quarta ordem (RK4) é considerado um dos mais precisos para obtermos soluções aproximadas de equações diferenciais. No entanto, quando estudamos a dedução matemática para os métodos des- sa classe Runge-Kutta (RK), damo-nos conta de que existem métodos de RK de diferentes ordens, e todos eles podem ser reestruturados de infinitas maneiras.Entenderemos esses métodos na sequência. O método de Euler modificado O método de Euler apresentado anteriormente pode ser repensado para ter uma aproximação melhor ao utilizarmos uma função constante não mais com o valor inicial do intervalo na integral ti ti f t u t dt � � � �� � 1 , , mas a média entre o valor da função no início e no final, ou seja, f f t u t f t u ti i i i � � �� �� � �� �� �, ,1 1 2 (11) dando origem ao método chamado Euler modificado (EM). Esse procedimen- to pode ser reconhecido como uma integração numérica utilizando a regra do trapézio. Esse método também é chamado de método de Heun e ele se enquadra nos métodos de Runge-Kutta de segunda ordem. Entenderemos esse método a partir de uma perspectiva geométrica. Seja um problema de valor inicial dado por (12). u f t u t u f ´ ,t a t � � � � �� � � � � � � � � � �� 0 (12) com t ∈ [a,b] e t0 = a. Seja f, nesse contexto, uma função diferenciável nas variáveis t e u com n + 1 derivadas. Vídeo Figura 7 Carl David Tolmé Runge Carl David Tolmé Runge, que iniciou sua carreira como professor em Hanôver, contribuindo para física da espectroscopia, obteve diferentes êxitos na ciência, principalmente ao lado de Martin Wilhelm Kutta. Voi t C olle cti on s/W iki m ed ia Co m m on s Figura 8 Martin Wilhelm Kutta Martin Wilhelm Kutta foi professor nas universidades Friedrich Schiller de Jena, Técnica de Aachen e de Stuttgart, obtendo renome na área a partir de um artigo de Runge, desenvolvendo o método Runge-Kutta, com a finalidade de resolver equações diferenciais ordinárias. SK rae me r/W iki m ed ia Co m m on s 142 Cálculo Numérico No método de Euler modificado, o cálculo da inclinação, utilizado para determi- nar u(t1), é feito a partir do cálculo de duas outras inclinações. A primeira inclinação é a de Euler, que já utilizamos anteriormente e pode ser vista na Figura 4 deste capítulo, ou seja, a inclinação da reta tangente à curva em (t0, u(t0)). Chamaremos essa primeira aproximação de u de Euler, expressada por: u u t k he1 0 1� � �� , que é a primeira estimativa para u(t1). Fonte: Elaborada pela autora. t0 t1 α t u1 u(t1) u(t0) u(t) k1 = f(t 0, u(t0)) u u t k he1 0 1� � �� t1 = t0 + h t0 t1 α β t u1 u(t1) u(t0) u(t) k1 = f(t 0, u(t0)) = tanα k f t u f t h u t k h tane2 1 1 0 0 1� � � � � � ��� � �, ; · � Figura 9 Representação geométrica de k1 e k2 Com esse par: t ue1 1,� � , calculamos uma nova inclinação (ao final do intervalo) que chamaremos de k2. Dessa forma, k f t u f t h u t k h e 2 1 1 0 0 1� � � � � � ��� �, ; . . Após esse processo precisamos determinar k, que é dada por k k k� �� � �1 2 1 2 tan � de forma que possamos traçar uma nova reta, a partir do ponto t0. Tendo a inclinação k podemos, então, determinar: u t u t k k1 0 1 2 1 2 � � � � �� �� � . Essa representação pode ser vista na Figura 10. Figura 10 Representação geométrica para o método de Euler modificado α γ β u(t1) u(t) u1 u(t0) t0 t1 t tan γ = k = 1/2 (k1 + k2) Fonte: Elaborada pela autora. Vejamos o Exemplo 4 que utiliza o método de Euler modificado para resolver um PVI. Solução numérica para equações diferenciais ordinárias 143 Exemplo 4 Seja o PVI dado por u t u t u � � � � � �� � � � � � � �� �� � ´ , , 1 2 7 0 3 0 3 e t , calculemos uma aproximação para u(t) = 2,5 usando h = 0,5 e o método de Euler modificado. Para a primeira iteração, precisamos determinar: k1 = f(t 0,u(t0)) = f(x0,y0) = f(0,3) Substituindo esses valores na EDO, temos: k1 = 3,4. Agora, precisamos de: k f t u f t h u t k h f fe2 1 1 0 0 1 0 5 3 3 4 0 5 0 5 4 7� � � � � � ��� � � �� � � �, ; . , ; , . , , ; , �� �0 385, Por fim, precisamos calcular: k k k� �� � � �� � �1 2 1 2 3 4 0 385 1 8921 2 , , , Após o cálculo dos k, determinaremos: u(t1) = u(t0) + k · h Assim, obtemos: u(t1) = 3 + 1,892 · 0,5 = 3,946 Para as próximas iterações, continuando com esse raciocínio para t = 1; 1, 5; 2 e 2,5, encontramos o que está disposto na Tabela 4. Tabela 4 Tabela de iterações do Exemplo 4 i ti ui e u(ti) 0 0,0 3 3 1 0,5 4,7 3,946239 2 1,0 4,8924779 4,1877461 3 1,5 4,5498549 4,0633147 4 2,0 4,0516405 3,7634826 5 2,5 3,5414969 3,3936295 Fonte: Elaborada pela autora. Vejamos a representação disso na Figura 11. Figura 11 Solução exata e soluções aproximadas calculadas pelos métodos de Euler e de Euler modificado 5 4.5 3.5 2.5 2.5 1.5 1.5 0.5 0.5–0.5 4 3 3 2 2 1 1 0 0 Fonte: Elaborada pela autora. A curva representa a solução de exata, os representam as soluções de Euler, e os x representam as soluções de Euler modificado. 144 Cálculo Numérico Notemos que o erro obtido entre a solução analítica e a solução aproximada obtida por meio do método de Euler modificado foi menor quando comparado ao erro entre a solução analítica e o método de Euler simples. Na sequência, trazemos outro ajuste que pode ser aplicado ao método de Euler. O método do ponto médio No método de Euler modificado, usamos apenas os pontos extremos como pontos de integração. Porém, e se pudermos usar, por exemplo, um ponto inter- mediário adicional? Escreveremos o desenvolvimento geométrico para essa ideia. Seja nosso problema de valor inicial, já apresentado em (12). Podemos encontrar uma aproximação para u1 por meio do uso de uma reta com inclinação α tal que k1 = tanα = f(t0,u (t0)), como enunciado anteriormente para o método de Euler modificado. A diferença entre o método de Euler modificado e o método do ponto médio está no fato de que ao invés de calcularmos k2 ao final do intervalo, ou seja, em t 1, nós calculamos uma inclinação na metade do intervalo. Assim, k2 é calculado em t h0 2 + . Vejamos a representação na Figura 12. Figura 12 Representação geométrica de k1 e k2 t0 h/2 t1 α β t u1 u(t1) u(t0) u(t) k1 = f(t 0, u(t0)) = tanα k f t h u t k h tan2 � � � ��� � � � � � � 0 0 1 2 2 , ) · � Fonte: Elaborada pela autora. Com isso, a fim de calcularmos o u1 do ponto médio, usamos a inclinação k2. Para isso, transpomos a reta com inclinação k2 fazendo com que essa passe por (t 0, u(t0)), conforme representado na Figura 13. Figura 13 Representação geométrica do método do ponto médio t0 h/2 t1 α β t u1 u(t1) u(t0) u(t) u(t1) = u(t0) + k2 · h k = k2 Fonte: Elaborada pela autora. Solução numérica para equações diferenciais ordinárias 145 O Exemplo 5 compara a solução de um PVI obtida por diferentes métodos nu- méricos, entre eles, o método do ponto médio. Exemplo 5 Usaremos o mesmo PVI do Exemplo 4, mas, agora, queremos calcular a aproximação para u(t) = 2,5 usando h = 0,5 por meio do método do ponto médio (PM). Para a primeira iteração, organizamos da mesma maneira já realizada no mé- todo de Euler modificado. Assim, precisamos determinar: k1 = f(t 0, u(t0)) = f(x0,y0) = f(0,3) Substituindo esses valores na EDO, temos: k1 = 3,4 Agora, precisamos calcular: k f2 0 25 3 3 4 0 5 2 1 874� � �� � � � � � � � � � � � �, ; , , , Com esse valor, precisamos calcular: u(t1) = u(t0 + k2 · h) = 3,937. Dessa forma, terminamos nossa primeira iteração. Prosseguindo com as iterações seguintes e comparando-as com os resultados obtidos no Exemplo 4 temos o que consta na Tabela 5. Tabela 5 Tabela de iterações do comparativa entre os exemplos i ti ui e = Euler u(t i) = EM u(ti ) = PM 0 0,0 3 3 3 1 0,5 4,7 3,946239 3,9371022 2 1,0 4,8924779 4,1877461 4,1745827 3 1,5 4,5498549 4,0633147 4,0489113 4 2,0 4,0516405 3,7634826 3,7493028 5 2,5 3,5414969 3,3936295 3,3803909 Fonte: Elaborada pela autora. Vejamos como isso é representado na Figura 14. Figura 14 Solução exata e soluções aproximadas calculadas pelos métodos de Euler, de Euler modificado e de ponto médio 5 4.5 3.5 2.5 2.5 1.5 1.5 0.5 0.5–0.5 4 3 3 2 2 1 1 0 0 Fonte: Elaborada pela autora. A curva representa a solução exata, os ∘ representam as soluções de Euler, os x representam as de Euler modificado,e os + em vermelho representam as do método de ponto médio. 146 Cálculo Numérico Notemos que os métodos, de Euler modificado e de ponto médio, apresentam um erro menor em relação à solução analítica quando comparados ao método de Euler simples. Outros esquemas de integração Nesta seção, entramos definitivamente nos métodos de Runge-Kutta (RK). Po- demos notar que existem infinitos esquemas de RK que podem ser usados depen- dendo do PVI que precisa ser resolvido. Com isso, vejamos a Definição 4, que trata sobre método Runge-Kutta de ordem R. Definição 4 O método geral de Runge-Kutta de ordem R é dado por: u(ti+1) – u(ti) = hF(t,u, h) Onde: F t u h c k r R r r, ,� � � � � 1 k1 = f(t, u(t)) k f t u t h b k rr i i s r rs s� � ��� � �� � � �� � � � � �, , , , 1 1 2 3 a b r Rr s r rs� � � � � � 1 1 2 3, , , , As constantes ar, brs e cr devem ser determinadas por meio da comparação da expansão de F(t, u, h) em série de potências com o método de Taylor. A estruturação dos métodos de RK gera esquemas implícitos ou explícitos, a diferença entre eles depende diretamente das constantes brs. Para que o esquema seja explícito, a matriz formada pelos brs deve ser triangular inferior com todos os elementos da diagonal principal iguais a zero. Se isso não ocorrer, temos um esquema implícito. Em outras palavras, podemos dizer que os brs são pesos da qua- dratura numérica que aproxima a integral da solução exata. Como no método de Euler e Euler modificado (EM), precisamos calcular as in- clinações k. A quantidade de inclinações depende da ordem do método de Runge- -Kutta escolhido. Escreveremos, de maneira geral, o desenvolvimento do método para depois especificá-lo. Assim, temos que as funções de inclinação, ou seja, as funções kr, com r = 2, …, R, são dadas por (12). k1 = f(t 0, u(t0 )) k2 = f(t i + ha2, u(t i) + h(b21 · k1)), com a2 = b21 k3 = f(t i + ha3, u(t i) + h(b31 · k1 + b32 · k2)), com a3 = b31 + b32 k4 = f(t i+ ha4, u(t i) + h(b41 · k1 + b42 · k2 + b43 · k3)), com a4 = b41 + b42 + b43 ⋮ kR = f(t i + haR,u(t i) + h(bR1 · k1 + … + bR, R–1 · kR–1)), com ar = bR1 + … + bR, R–1 (13) Solução numérica para equações diferenciais ordinárias 147 A partir dessa organização, notamos que um método de Runge-Kutta de primei- ra ordem (RK1), ou seja, apenas com análise de uma inclinação (k1), coincide com o método de Euler. Analisamos nas próximas seções os métodos de Runge-Kutta de segunda e terceira ordem (RK2 e RK3) respectivamente. Por fim, falaremos do método de quarta ordem (RK4), sendo esse último um dos mais utilizados entre os métodos de passo simples. O método de Runge-Kutta de segunda ordem Ao escolher R = 2, temos um método de Runge-Kutta de segunda ordem. Vimos que as constantes ar, brs e cr devem ser determinadas por meio da com- paração da expansão de F(t, u, h) em uma série de potências com o método de Taylor. Dessa forma, para encontrarmos os valores para c1, c2 e a2, precisamos desen- volver a função k2 pelo polinômio de Taylor em torno do ponto (t i, u(ti)) até segun- da ordem, com isso, podemos escrever: u t u t h u t h u t O hi i i i�� � � � �� � �� � �� � �� ��1 1 2 3 1 2! ! e, então, comparar os coeficientes de h e h2 com os coeficientes deles no Método de Taylor de segunda ordem. Encontramos, com esse processo, um sistema de equações não-linear dado por (14). c c c a a b 1 2 2 2 2 21 1 1 2 � � � � � � �� � � � (14) Este sistema (14) possui infinitas soluções, sendo que cada uma delas gera um Método de RK2 diferente. Uma forma de determinarmos as famílias de soluções para esse sistema (14) é escolhermos uma variável genérica a2 = θ ∈ (01] e escrevermos as relações entre as variáveis em função de θ (15), de modo que as variáveis c1, c2, a2 e b21 possam ser unicamente determinadas (JUSTO et al., 2020). c c a b1 1 2 1 2 1 21 11 1 2 1 2 � � � � � � � � �, , ; (15) Podemos escrever um esquema genérico para essa notação de forma bem visí- vel e tabular (Tabelas 6, 7 e 8). Assim, teremos: Tabela 6 Notação de Butcher – Passo 1 a B c Fonte: Elaborada pela autora. 148 Cálculo Numérico Então, Tabela 7 Notação de Butcher – Passo 2 a2 b21 c1 c2 Fonte: Elaborada pela autora. Para θ1 ∈ (0,1], escrevemos: Tabela 8 Notação de Butcher – Passo 3 θ1 θ1 1 1 2 1 � � 1 2 1θ Fonte: Elaborada pela autora. Uma das escolhas das constantes mais consagradas para esse método é dada pela Tabela 9. Tabela 9 Notação de Butcher para o método do Ponto Médio 1 2 1 2 0 1 Fonte: Elaborada pela autora. Ou seja, c1 = 0, c2 = 1 e a2 1 2 = , resultando em: u(ti+1) = u(ti) + hk2, com: k1 = f(t i, u(ti )) k f t h u t h ki i2 1 2 2 � � � ��� � � � � �, Isso coincide com o método do ponto médio apresentado anteriormente. Agora, se adotarmos c1 1 2 = , c2 1 2 = e a2 = 1, temos o disposto na Tabela 10. Tabela 10 Notação de Butcher para o método de Heun 1 1 1 2 1 2 Fonte: Elaborada pela autora. Com isso, obtemos: u t u t h k ki i�� � � � �� �� � � � � � 1 1 2 1 2 1 2 Com: k1 = f(t i,u(ti)) k2 = f(t i + h; u(t1) + k1 · h) Solução numérica para equações diferenciais ordinárias 149 Isso coincide com o método de Euler modificado ou método de Heun. Na se- quência, abordamos o método RK3. Três pontos de integração e o método de Runge-Kutta de terceira ordem Dando prosseguimento a apresentação dos métodos de Runge-Kutta, temos os métodos de terceira ordem. Assim como fizemos nos métodos de segunda ordem, desta vez, escolhemos R = 3 e, dessa forma, podemos encontrar uma família de métodos de terceira ordem que dependem do valor das constantes ar, brs e cr que devem ser determina- das por meio da comparação da expansão de F(t,u, h) em série de potências com o método de Taylor. Também podemos escrever os métodos de RK3 ordem de maneira tabular. Nesse caso, fazemos conforme Tabela 11. Tabela 11 Notação de Butcher para o método de RK3 a2 b21 a3 b31 b32 c1 c2 c3 Fonte: Elaborada pela autora. Com isso, obtemos um sistema de equações com seis equações e oito incógni- tas da forma (16). c c c c a c a c a c a c b a b a b b 1 2 3 2 2 3 3 2 2 2 3 3 2 3 32 2 21 2 31 3 1 1 2 1 3 1 6 � � � � � � � � � � 22 3� � � � � � � �� � � � � � � � a (16) Nesse caso, precisamos fixar duas variáveis: θ2 = a2 e θ3 = a3, de maneira que montemos o sistema de equações (17) com as variáveis a2, a3, c1, c2, c3, b21, b31 e b32 unicamente determinadas. c c c b 1 2 3 2 3 2 3 2 3 2 3 2 3 3 2 1 1 2 1 2 1 3 3 2 6 2 3 6 � � � � � � �� � � � �� � � � � � � � � � � � � � 221 2 31 3 3 2 32 3 2 1 6 1 6 � � � � � � � � � � � � �� � � � � � � � � � � � � � b c b c (17) 150 Cálculo Numérico Alguns métodos de terceira ordem são mais conhecidos, um deles é chamado de método clássico de Runge-Kutta de terceira ordem. Para esse método clássico usamos o disposto na Tabela 12. Tabela 12 Método clássico de RK3 1 2/ 1 2/ 1 –1 2 1 6/ 4 6/ 1 6/ Fonte: Elaborada pela autora, Obtendo: u t u t h k k ki i�� � � � �� � �� �1 1 2 3 6 4 Com: k1 = f(t i, u(ti)) k f t h u t h ki i2 1 2 2 � � � ��� � � � � �, k3 = f(t i + h, u(ti) + 2hk2 – hk1) Com isso, temos mais um método numérico que pode ser adotado para encon- trarmos uma solução aproximada para um determinado PVI: o método de RK4, sen- do um dos mais utilizados nesse contexto. Vejamos mais sobre ele na sequência. Definição do método de Runge-Kutta de quarta ordem O método de Runge-Kutta de quarta ordem (RK4) é um dos métodos mais uti- lizados dessa categoria por apresentar um erro por passo na ordem de quinta po- tência (h5). Para ele, usamos R = 4 e podemos montar a Tabela 13 para as variáveis. Tabela 13 Runge-Kutta de quarta ordem a2 b21 a3 b31 b32 a4 b41 b42 b43 c1 c2 c3 c4 Fonte: Elaborada pela autora. O sistema de equações obtido é não linear e composto por 8 equações e 13 variáveis. Dessa forma, temos novamente um sistema com infinitassoluções. Fa- zendo b21 = a2; b31 = a3 – b32 e b41 = a4 – b42 – b43, escrevemos conforme (18). Solução numérica para equações diferenciais ordinárias 151 c c c c c c c c c c c c + 41 2 2 2 2 2 2 2 3 3 3 4 4 2 3 3 2 4 4 2 3 3 1 1 2 1 3 � � � � � � � � � � a a a a a a a aa a b b b a c a b 3 3 4 4 3 3 32 2 2 42 3 43 4 2 3 32 3 4 2 42 1 4 1 6 � � � � � � � c c a a a c a b a ( ) ( aa c a b a a c b b 3 43 4 32 3 4 2 32 43 4 2 2 2 2 42 3 2 43 1 8 1 12 1 24 b c a c b b ) ( ) � � � � � � � �� � � � � � � � �� � � � � � � � � � � � (18) Alguns métodos de quarta ordem são mais conhecidos do que outros. Por sua vez, o método de Runge-Kutta clássico de quarta ordem segue a Tabela 14. Tabela 14 Runge-Kutta de quarta ordem clássico 1 2 1 2 1 2 0 1 2 1 0 0 1 1 6 1 3 1 3 1 6 Fonte: Elaborada pela autora. Podemos escrever seu procedimento iterativo como: u t u t h k k k ki i�� � � � �� � � �� �1 1 2 3 4 6 2 2 Onde: k1 = f(t i, u(ti )) k f t h u t h ki i2 1 2 2 � � � ��� � � � � �, k f t h u t h ki i3 2 2 2 � � � ��� � � � � �, k4 = f(t i + h, u(ti) + hk3) Assim, o método de RK4 apresenta um erro de truncamento local na ordem da quinta potência, ou seja O(h5), e outro erro de truncamento global na ordem de quarta potência O(h4) (GILAT; SUBRAMANIAM, 2008). Interpretação geométrica Vamos novamente supor nosso PVI dado como (19) u f t u t u f ´ ,t a t � � � � �� � � � � � � � � � �� 0 (19) 152 Cálculo Numérico com t ∈ [a,b] e t0 = a. Seja f, nesse contexto, uma função diferenciável nas variáveis t e y com n + 1 derivadas. Como vimos, em um método de Runge-Kutta de quarta ordem é necessário que calculemos quatro inclinações (k1, k2, k3 e k4), para, então, encontrarmos uma média ponderada entre essas outras quatro inclinações. A primeira das inclinações é dada por k1 = f(t 0, u(t0)), da mesma forma que já mostramos nos métodos de Euler, de ponto médio e de Runge-Kutta de menor ordem. A segunda inclinação (k2) também já é conhecida e pode ser escrita como k f t h u t k h 2 0 0 1 2 2 � � �� � � � � � � � � � � �, . Calculamos k3 a partir da inclinação de k2, como pode ser visto Figura 15. Figura 15 Representação geométrica de k3 t0 h/2 t1 t u1 u(t0) u(t) k1 = f(t 0, u(t0)) k f t h u t k h 2 0 0 1 2 2 � � � ��� � � � � �, · k f t h u t k h 3 0 0 2 2 2 � � � ��� � � � � �, · (t0 + h/2, u(t0) + k2 · h/2) Fonte: Elaborada pela autora. Para calcularmos a quarta inclinação, k4, trazemos a reta de inclinação k3 para o ponto (t0, u(t0)), conforme Figura 16. Agora, precisamos calcular um novo valor para u(t) ao final do intervalo e denotar esse valor por u t t h u t k he1 0 0 3� � � � � ��� �, · e k4 = f(t 0 + h, u(t0) + k3 · h). Figura 16 Representação geométrica de k4 t0 h/2 t1 t u1 u(t0) u(t) u t t h u t k h e 1 0 0 3� � � � � ��� �, · k f t h u t k h 3 0 0 2 2 2 � � � ��� � � � � �, · k4 = f(t 0 + h, u(t0) + k3 · h) Fonte: Elaborada pela autora. Solução numérica para equações diferenciais ordinárias 153 Ao obtermos as quatro inclinações, precisamos calcular uma inclinação k, que será a média ponderada entre k1, k2, k3 e k4, para podermos escrever o valor de u(t 1) ao final do intervalo. Usamos para essa interpretação geométrica os valores da Tabe- la 14 (RK4). Assim, a ponderação que realizamos para k é k k k k k� � � �� �1 6 2 21 2 3 4 . Com k determinado, conseguimos calcular com facilidade o valor para u(t1) = u(t0) + k · h. Esse resultado pode ser observado na Figura 17. Figura 17 Representação geométrica do Método de Runge-Kutta de quarta ordem u1 t0 h/2 t1 t u(t1) u(t0) u(t) Fonte: Elaborada pela autora. Chegamos, portanto, em uma interpretação geométrica (Figura 15) para o mé- todo de RK4. Exemplo 6 Usaremos o mesmo PVI do Exemplo 5, mas, agora, queremos calcular a aproximação para u(t) = 2,5 usando h = 0,5 por meio do método RK4. Usando o mesmo PVI, temos a oportunidade de comparar os resultados obtidos a partir de outros métodos. Faremos uma tabela comparativa (Tabela 14) ao final deste exemplo. Seja o PVI dado por: u t u t u � � � � � �� � � � � � � �� �� � ´ , , 1 2 7 0 3 0 3 e t Para a primeira iteração, temos: k1 = f(t 0, u(t0)) = f(0, 3) = 3,4 k f x h u t k h f2 0 0 1 2 2 0 25 3 3 4 0 25 1 874� � � ��� � � � � � � �� � �, . , ; , . , , k f x h u t k h f3 0 0 2 2 2 0 25 3 1 874 0 25 2 332� � � ��� � � � � � � �� � �, . , ; , . , , k4 = f(x0 + h, u(t 0) + k3 · h) = f(0,5; 3 + 2,332 · 0,5) = 1,026 Agora determinamos k k k k k� � � �� � �1 6 2 2 2 1401 2 3 4 , u(t1) = u(t0) + k · h = 3 + 2,140 · 0,5 = 4,070 As próximas iterações seguem o mesmo raciocínio e seus resultados podem ser observados na Tabela 15. O site Wolfram Alpha demonstra soluções exatas e numéricas usando os métodos explícito e implí- cito de Euler, o de Heun, e o clássico de Runge-Kutta. Todos eles são métodos numéricos simples para equações diferenciais ordi- nárias. A partir da animação disponível, é possível usarmos os controles des- lizantes para variar o valor inicial, ou para alterarmos o número de etapas ou o método aplicado. Disponível em: https:// demonstrations. wolfram.com/NumericalMethodsFor DifferentialEquations/. Acesso em: 18 ago. 2022. Site https://demonstrations.wolfram.com/NumericalMethodsForDifferentialEquations/ https://demonstrations.wolfram.com/NumericalMethodsForDifferentialEquations/ https://demonstrations.wolfram.com/NumericalMethodsForDifferentialEquations/ https://demonstrations.wolfram.com/NumericalMethodsForDifferentialEquations/ 154 Cálculo Numérico Tabela 15 Tabela de iterações do Exemplo 6 i ti u(ti) = EM u(ti ) = PM u(ti) = RK4 0 0,0 3 3 3 1 0,5 3,946239 3,9371022 4.070 2 1,0 4,1877461 4,1745827 4.3202955 3 1,5 4,0633147 4,0489113 4.1675657 4 2,0 3,7634826 3,7493028 3.8337667 5 2,5 3,3936295 3,3803909 3.4352959 Fonte: Elaborada pela autora. Vejamos como a Figura 18 representa as soluções disso. Figura 18 Solução exata e soluções aproximadas calculadas pelos métodos de Euler modificado, de ponto médio e de RK4 A curva representa a solução exata, as soluções aproximadas são obtidas pelos métodos numéricos EM e RK4, assim, os representam as soluções de RK4, os x representam as soluções de Euler modificado, e os + representam as soluções do método de ponto médio. 4.5 3.5 2.5 2.5 1.5 1.5 0.5 0.5–0.5 4 3 3 2 2 1 1 0 0 Fonte: Elaborada pela autora. Portanto, vemos que o método de Runge-Kutta de quarta ordem obteve a me- lhor aproximação se compararmos com a solução analítica em relação aos demais métodos. 6.2 Métodos lineares de passos múltiplos Vídeo Anteriormente, apresentamos métodos com base na expansão de Taylor (Euler e Taylor de alta ordem) e outros em integração numérica (Runge-Kutta) para apro- ximações numéricas de problemas de valor inicial (PVI). Esses métodos são chama- dos de métodos de passo simples, pois só exigem a informação do ponto anterior para o cálculo de um determinando ponto da malha. Acreditamos que a maior vantagem de um método de passo simples seja a possibilidade de poder usarmos a condição inicial dada (auto iniciável) para sua inicialização, e, como são métodos que dependem apenas do passo anterior, seu algoritmo é de fácil implementação. Contudo, se pensarmos na estrutura básica de um método com base em inte- gração numérica, teremos expressões como: u t u t f t u t dti i ti ti � � � � � � �� � �� ��1 1 , EM – Euler modificado PM – Ponto médio RK4 – Runge-Kutta de quarta ordem Solução numérica para equações diferenciais ordinárias 155 No método de Heun, temos uma estrutura de ordem 2 que para aproximarmos a integral de ti até ti+1 utilizamos dois pontos (inicial e final). Isso é equivalente a utilizarmos a regra do trapézio para integração numérica, ou seja, estamos aproxi- mando a integral por meio de uma reta. Entretanto, podemos realizar aproximaçõespara a integral por meio de uma função polinomial, e, como sabemos, dependendo da ordem desse polinômio, são necessários mais do que dois pontos. O que faremos, diferentemente dos métodos de Runge-Kutta, onde a posição desses pontos está entre ti e ti+1, é utilizarmos pontos anteriores a ti e ti+1. Quando trabalhamos dessa maneira, dizemos que adotamos uma estratégia de múltiplos passos, ou seja, para encontrarmos f(ti+1), além de utilizarmos o passo anterior f(ti), também adotamos os resultados dos passos (pontos) que são ante- riores a eles. Entre esses métodos, apresentamos os métodos de Adams com base em interpolação de múltiplos passos. Por enquanto, consideramos apenas os mé- todos lineares de passo s que podem ser expressos conforme (20). αs · u(t i+s ) + αs–1 · u(t i+s–1) + … + α0 · u(t i) = h[βs · f(t i+s, u(ti+s)) + βs–1f(t i+s–1, u(ti+s–1)) + … + β0 · f(t i,u(ti))] (20) Por simplicidade, podemos escrever de acordo com (21). � � � � �s i s s i s i s i s s i su t u t u t h f f· · · · ·� � � � � � � �� �� � ���� � � � � �1 1 0 1 1 ����� ���0· )f i (21) Assim, com f(ti,u(ti)) = fi, α e β dependentes de um método particular, sendo que αs ≠ 0 e |α0| + |β0| ≠ 0. Além disso, se βs = 0 teremos um método explícito (Adams-Bashforth), caso contrário, teremos um método implícito (Adams- -Moulton). Explicamos esses dois métodos a seguir com seus respectivos exemplos. 6.2.1 Método de Adams-Bashforth Os métodos de Adams foram os primeiros e, provavelmente, são um dos mais conhecidos métodos de passos múltiplos para a resolução de equações diferenciais. John Couch Adams (1819–1892), astrônomo britânico, baseou-se nos métodos teóricos propostos por Cauchy para apresentar um método novo que usou na integração da equação de Bashforth. Aliás, foi em um trabalho de Francis Bashforth (1819–1912), de 1883, que o método proposto por Adams foi apresentado, sendo, também por isso, conhecido por método de Adams-Bashforth. Relembraremos a formulação do PVI enunciada anteriormente e que utilizamos no desenvolvimento dos métodos de passo simples, para que possamos desenvol- ver os métodos de Adams. Figura 19 John Couch Adams John Couch Adams contribuiu com teorias para o campo da astronomia e estudos sobre o magnetismo terrestre e a gravitação. Além disso, também ocupou cargos relevantes, como a presidência da Royal Astronomical Society e a direção do Observatório de Cambridge. GD K/ Wi kim ed ia Co m m on s 156 Cálculo Numérico Temos que encontrar u(t) dado em (22). du dt t t u � � �� � � � � � � � �� f t u u , 0 0 (22) Para isso, podemos integrar a equação diferencial no intervalo onde procura- mos a solução, [ti+s; ti+s+1] e, dessa forma, obtemos um esquema recursivos para passos múltiplos (s passos) conforme (23). u t u t f t u t dti s i s ti s ti s � � � � � � � � � � �� � �� ��1 1 , (23) Nos métodos de Adams, o integrando f(t,u(t)) é aproximado na forma polino- mial p(t). Para o método de Adam-Bashforth, escolhemos um polinômio interpola- dor de Lagrange p(t) de grau s – 1. Ou seja, p t f t u t t t t tj s i i k k j s i k i j i k � � � � �� � � � � � � � � � � �� � � � � � � �� � 0 1 0 1 , , (24) Logo, a integral passa a ser escrita como em (25). ti s ti s j s j i j i jp t dt h f t u t � � � � � � �� �� � � � �� � 1 0 1 � , (25) Onde: �j ti s ti s k k j s i k i j i kh t t t t dt� � �� � � � � � � � �� � 1 1 0 1 , (26) Com base na interpolação adotada, podemos escrevemos o procedimento ite- rativo como em (27): u t u t h f t u ti s i s j s j i j i j� � � � � � �� � � � �� � �� ��1 0 1 � , (27) com os coeficientes definidos anteriormente em (20) e (21). É importante observarmos que o método exige s – 1 pontos anteriores, portan- to, não é possível iniciarmos o processo de cálculo diretamente com um método de múltiplos passos (CHAPRA; CANALE, 2016). Para contornarmos essa situação, iniciamos o problema com um método de passo simples, como Euler, por exemplo, depois, continuamos o estudo do PVI com múltiplos passos. Para s = 2, a fórmula de recorrência é escrita conforme (28). u t u t h f t u ti i j j i j i j� � � � �� � � � �� � �� ��2 1 0 1 � , (28) Portanto, podemos escrever: u(ti+2) = u(ti+1) + h(β1f i+1 + β0f i) Solução numérica para equações diferenciais ordinárias 157 Nesse caso, temos um método de Adams-Bashforth (MAB) de dois passos, onde vemos claramente que para calcular u(ti+2) precisamos conhecer o comportamen- to da função em dois pontos anteriores a ti+2, sendo eles ti+1 e ti. Entretanto, ainda precisamos calcular os valores para β1 e β0. Para isso, precisa- mos fazer uma mudança de variável e substituir em (26) dada por: �j ti s ti s k k j s i k i j i kh t t t t dt� � �� � � � � � � � �� � 1 1 0 1 , Dessa forma, fazendo t = ti+s–1 + hρ, podemos escrever: � � �j k k j s s j k k s k j k d j s j � � � � � � �� � � �� �� � �� � � � � � � 0 1 0 1 1 0 1 0 1 1 1, ,! ! ss j s k d � � � � �� � 1 1 � � Logo, � � �j s j k k s j s j s j k d� �� � � �� � �� � � � � � � � � � � 1 1 1 0 1 0 1 1 ! ! , (29) Assim, usando a equação (29), podemos calcular β0 e β1: � � �0 0 1 2 1 1 1 2 � � � � �� � � �� d � � �1 0 1 2 0 1 3 2 � � � �� � �� d Portanto, podemos escrever uma fórmula de recorrência, para o método de Adams-Bashforth, com s = 2: u t u t h f t u t f t u ti i i i i i� � � �� � � � �� � �� �� � �� ��2 1 1 12 3[ , , Vejamos a representação com base na Figura 20. Figura 20 Região de estabilidade absoluta Nome do método Método Adams-Bashforth (Passo 2) Recursividade/Relação u u h f fj j j j� � �� � � �� �2 1 11 2 3 Região de absoluta estabilidade do método 0.5 –0.5 –1.0 –0.8 –0.6 –0.4 –0.2 Fonte: Elaborada pela autora. 158 Cálculo Numérico Assim como no método de Runge-Kutta, quando aumentamos o número de passos para os métodos de Adams, passamos a ter uma melhor precisão. Claro que a quantidade de passos influencia diretamente o tempo computacional. Dessa forma, é necessário ponderarmos o custo computacional e o erro obtido em cada uma das classes s (passos). Apresentaremos as relações recursivas para o método de Adams-Bashforth para s = 3 e s = 4, pois são as escolhas mais comuns quando adotamos esse tipo de método para a solução de um PVI. Assim, para s = 3 escrevemos: u t u t h f t u ti i ti ti � � � � � � � � �� � �� ��3 2 2 3 , u t u t h f t u ti i j j i j i j� � � � �� � � � �� � �� ��3 2 0 2 � , Dessa forma, temos: u(ti+3) = u(ti+2) + h[β2f(t i+2), u(ti+2)) + β1f(t i+1, u(ti+1)) + β0f(t i,u(ti))] Para calcularmos os βj, faremos uma analogia à obtenção de coeficientes por um método de integração. Vamos supor que: ti+3 – ti+2 = ti+2 – ti+1 = ti+1 – ti = h, ou seja, igualmente espa- çados. Como o intervalo de integração é: [ti+3 ,ti+2 ], podemos transladar ti+2 até a origem de modo que [ti, ti+1, ti+2, ti+3] = [–2h, –h, 0, h] Considerando uma base [1, t, t2] e substituindo f(t) por cada um dos elementos dessa base, obtemos o disposto em (30). 0 1 0 1 21 1 1 1� � � � �� � �� � ��� ��dt h h � � � 0 1 2 0 1 2 2 0 2� � � � �� �� �� �� ��� ��tdt h h h h� � � 0 1 2 3 0 2 1 2 2 2 3 0 2� � � � � � �� � � �� ���� ���t dt h h h h� � � (30) Podemos escrever a expressão (30) em forma matricial. 1 1 1 0 1 2 0 1 4 1 1 2 1 3 0 1 2 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � �� �� Resolvendo esse sistema, encontramos: �0 5 12 � , �1 4 3 � � e �2 23 12 � . Sendo u(ti+3) = u(ti+2) + h[β2f(t i+2, u(ti+2)) + β1f(t i+1, u(ti+1)) + β0f(t i,u(ti))] e conhecendo os valores para βj, podemos escrever conforme (29). Solução numérica para equações diferenciais ordinárias 159 u t u t h f t u t f t u t f ti i i i i i� � � � � �� � � � �� � �� �� � �� ��3 2 2 2 1 1 12 23 16 5, , ii iu t, � �� ���� ��� (31) Assim, obtendo uma equação de recorrênciapara o método de Adams-Bash- forth para s = 3. Fazendo o mesmo procedimento, é possível escrevermos facilmente a equação (32) de recorrência para s = 4. u t u t h f t u t f t u t fi i i i i i� � � � � �� � � � �� � �� �� � �� ��4 3 3 3 2 2 24 55 59 37, , tt u t f t u ti i i i� �� �� �� � �� ���� ���1 1 9, , (32) Exemplificaremos e compararemos os resultados com alguns métodos de pas- so simples. Como ainda não resolvemos um PVI utilizando o método de Adams- -Bashforth de quarta ordem, é por ele que começamos com o Exemplo 7. Exemplo 7 O método de Adams-Bashfort com s = 4 (quatro estágios) pode ser escrito como: u t u t f t u t dti i ti ti � � � � � � � � �� � �� ��4 3 3 4 , u t u t h f t u ti i j j i j i j� � � � �� � � � �� � �� ��4 3 0 3 � , u(ti+4 ) = u(ti+3) + h[β3f i+3 + β2f i+2 + β1f i+1 + β0f i] Vejamos a Figura 21 e como o método é representado nela. Figura 21 Representação geométrica do método de Adams-Bashforth para s = 4 –3h –2h –h 0 h t(i) t(i+1) t(i+2) t(i+4) f(t, u(t)) u(t) tt(i–3) Fonte: Elaborada pela autora. Seja uma base [1, t, t2, t3], ao substituirmos f(t) por cada um dos elementos dessa base, obtemos o disposto em (33). Pensando na abordagem computacional, sugerimos o material interativo, Métodos lineares de várias etapas para primeira ordem EDO, que apresenta demonstra- ções de alguns métodos distribuídos em cinco passos, com diferentes alcances e graus de impli- citude, disponível no site Wolfram Alpha. O material traz, de maneira iterativa, as regiões de estabilidade absoluta do método de maneira gráfica e permite um melhor entendimento sobre suas aplicações. Disponível em: https:// demonstrations.wolfram.com/ LinearMultistepMethodsFor FirstOrderODEs/. Acesso em: 18 ago. 2022. Site https://demonstrations.wolfram.com/LinearMultistepMethodsForFirstOrderODEs/ https://demonstrations.wolfram.com/LinearMultistepMethodsForFirstOrderODEs/ https://demonstrations.wolfram.com/LinearMultistepMethodsForFirstOrderODEs/ https://demonstrations.wolfram.com/LinearMultistepMethodsForFirstOrderODEs/ 160 Cálculo Numérico 0 1 0 1 2 31 1 1 1 1� � � � �� � �� � �� � ��� ��dt h h � � � � 0 1 2 0 1 2 3 2 0 2 3� � � � �� �� �� �� �� �� ��� ��tdt h h h h h� � � � 0 1 2 3 0 2 1 2 2 2 3 2 3 0 2 3� � � � � � �� � � �� � � �� ���� ���t dt h h h h h� � � � 0 1 3 4 0 3 1 3 2 3 3 3 4 0 2 3� � � � � � �� � � �� � � �� ���� ���t dt h h h h h� � � � (33) Podemos escrever a expressão (33) em forma matricial. Ficando: 1 1 1 1 0 1 2 3 0 1 4 9 0 1 8 27 0 1 2 3 � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � �� � � � � � 11 1 2 1 3 1 4 / / / � � � � � � � � � � � � Resolvendo esse sistema, encontramos: �0 55 24 � , �1 59 24 � � , �2 37 24 � e �3 3 8 � � Logo, podemos escrever: u t u t h f f f fi i i i i i� � � � �� � � � �� � � ��� ��4 3 3 2 124 55 59 37 9 Observemos como a Figura 22 representa graficamente isso. Figura 22 Região de estabilidade do método de Adams-Bashforth de quarta ordem Nome do método Método Adams-Bashforth (Passo 4) Recursividade/Relação u u h f f fj j j j j j� � � � �� � � � � �� �4 3 1 2 31 24 9 37 59 55 Região de absoluta estabilidade do método 0.5 1.0 –0.5 –0.2–0.1 0.1 0.2 0.3 0.4 –1.0 –0.3 Fonte: Elaborada pela autora. Solução numérica para equações diferenciais ordinárias 161 Portanto, notemos que o método de Adams-Bashforth de quarta ordem é mais preciso que os métodos de Adams-Bashforth com menos passos, contudo, ele é computacionalmente mais pesado por realizar mais cálculos, sendo necessária uma avaliação prévia com relação à capacidade de máquina para tal aplicação. 6.2.2 Método de Adams-Moulton Acreditamos que tenha sido a Primeira Grande Guerra que deu um forte im- pulso ao crescimento dos métodos numéricos. A grande quantidade de cálculos e a complexidade dos problemas que a balística exige não poderiam ser efetuadas facilmente sem a ajuda desses processos alternativos. A primeira contribuição para a melhoria dos métodos existentes foi dada pelo matemático americano Forest Ray Moulton (1872-1952), em 1925, propondo uma classe de métodos conhecida por Adams-Moulton (MAM). O método de Adams-Moulton diferencia-se do Adams-Bashforth apenas pela inclusão de valores de interpolação no polinômio que dizem respeito ao próprio instante o qual desejamos calcular. Com isso, conforme pontuamos, o método de Adams-Moulton é um método implícito, enquanto o método de Adams-Bashforth é um método explícito. Para o método de Adam-Moulton escolhemos um polinômio interpolador de Lagrange p(t) de grau s. Ou seja, p t f t u t t t t tj s i i k k j s i k i j i k � � � � �� � � � � � � � � � � �� � � � � �� � 0 0 , , Logo, a integral passa a ser escrita como: ti s ti s j s j i j i jp t dt h f t u t � � � � � �� �� � � � �� � 1 0 � , Onde: �j ti s ti s k k j s i k i j i kh t t t t dt� � �� � � � � � � �� � 1 1 0, Com base na interpolação adotada, podemos escrever o procedimento iterativo como: u t u t h f t u ti s i s j s j i j i j� � � � � �� � � � �� � �� ��1 0 � , com os coeficientes definidos em (20) e (21). Da mesma forma como acontece com Adams-Bashforth, esse método exige pontos anteriores. Logo, não é possível iniciarmos o processo de cálculo direta- mente com um método de múltiplos passos. Para contornarmos essa situação, ini- ciamos o problema com um método de passo simples, como o de Euler, e depois continuamos o estudo do PVI com múltiplos passos. 162 Cálculo Numérico Entenderemos o método de Adams-Moulton para s = 2, 3 e 4, assim como pro- posto para o método de Adams-Bashforth. Iniciamos o desenvolvimento do méto- do para s = 2. Assim, queremos encontrar u(t) dado que: du dt t t u � � �� � � � � � � � �� f t u u , 0 0 Para isso, podemos integrar a equação diferencial no intervalo onde procura- mos a solução: [ti+s–1; ti+s] e, dessa forma, obtemos um esquema recursivos para passos múltiplos (s passos) da forma (34). u t u t f t u t dti s i s ti s ti s � � � � � � � � � � �� � �� ��1 1 , (34) e temos que f(t, u(t)) pode ser aproximado por um polinômio interpolador: f(tk, u(tk )), com k = i, i + 1, i + 2, …, i + s. Dessa forma, escrevemos conforme (35). u t u t f t u t dt u ti s i s ti s ti s i s ti s t � � � � � � � � � � � � � � �� � �� � � � ���1 1 1 1 , ii s p t dt � � � � (35) Com isso, ti s i s j s j i j i jp t dt h f t u t � � � � � �� �� � � � �� � 1 0 � , Dessa forma, para s = 2 escrevemos: p t f t u t t t t tj i i k k j i k i j i k � � � � �� � � � � � � � � � � �� � � � � �� � 0 2 0 2 , , Em outras palavras, trabalhamos com polinômios de Lagrange de grau 2. Fazendo uma mudança de variável semelhante a que foi feita no método de Adams-Bashforth, escrevemos conforme (36). � � �j s j k k s j s j s j k d� �� � �� � � �� � � � � � � � � 1 1 0 1 0 1! ! , (36) Portanto, para s = 2, temos: u t u t f t u t dti i i i � � � � � � � � �� � �� ��2 1 1 2 , u t u t h f t u ti i j j i j i j� � � � �� � � � �� � �� �� � � � � � � � �2 1 0 2 � , Dessa forma: u(ti+2) = u(ti+1) + h[β2 f(t i+2, u(ti+2)) + β1f(t i+1, u(ti+1)) + β0f(t i,u(ti))] Nesse ponto, precisamos encontrar [β2, β1, β0], tal que o método seja exato para polinômios até ordem 2. Podemos obter esses coeficientes de maneira análoga à Solução numérica para equações diferenciais ordinárias 163 resolvida no método de Adams-Bashforth que é baseada na obtenção dos coefi- cientes de um método para integração. Assim, novamente, precisamos supor que os nós estão igualmente espaçados entre os tk, com distância h entre eles. Além disso, para o intervalo de integração dado por [ti+1, ti+2], transladamos ti+1 para a origem. Essa ideia pode ser observada na Figura 23. Figura 23 Representação geométrica para o método de Adams-Moulton com s = 2 t –h h0 t(i) tt(i+1)(i+1) t(i+2) f (t, u(t))u(t) Fonte: Elaborada pela autora. Considerando a base [1, t, t2] e substituindo f(t) por cada um dos elementos da base, obtemos o que está descrito em (37). 0 1 0 1 21 1 1 1� � � � �� � �� � ��� ��dt h h � � � 0 1 2 0 1 2 2 0� � � �� �� � �� � ��� ��tdt h h h h� � � 0 1 2 3 0 2 1 2 2 2 3 0� � � �� � � � � � � ���� ���t dt h h h h� � � (37) Também podemos escrever a expressão (37) em forma matricial: 1 1 1 1 0 1 1 0 1 1 1 2 1 3 0 1 2 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � ��� . Resolvendo esse sistema encontramos �0 1 12 � � , �1 2 3 � e �2 5 12 � 164 Cálculo Numérico Sendo u(ti+2) = u(ti+1) + h[β2f(t i+2, u(ti+2)) + β1f(t i+1, u(ti+1)) + β0f(t i,u(ti ))] e conhecendo os valores para βj, podemos escrever conforme (38). u t u t h f t u t f t u t f t ui i i i i i i� � � � � �� � � � �� � �� �� � �� ��2 1 2 2 1 1 12 5 8, , , tt i� �� ���� ��� (38) Desse modo, obtendo uma equação de recorrência para o método de Adams- -Moulton para s = 2. Para s = 3 e s = 4, apenas escreveremos as equações de recorrência, pois o procedimento matemático é igual ao que acabamos de realizar. Assim, para s = 3, temos o exposto em (39). u t u t h f t u t f t u t f ti i i i i i i� � � � � �� � � � �� � �� �� � �� ��3 2 3 3 2 2 24 9 19 5, , �� �� �� �� � �� ���� ���1 1, ,u t f t u ti i i (39) Já para s = 4, temos a equação (40). u t u t h f t u t f t u ti i i i i i( ) ( ) / [ ( , ( )) ( , ( )� � � � � �� � �4 3 4 4 3 3720 251 646 )) ( , ( )) ( , ( )) ( , ( ))]� � �� � � �264 106 192 2 1 1f t u t f t u t f t u ti i i i i i (40) 6.3 Métodos do tipo preditor-corretor Vídeo Apesar de esquemas implícitos, como o de Adams-Moulton, gerarem respostas mais acuradas, há uma dificuldade adicional associada à necessidade de serem utilizados os valores presentes em f(ti+1,u(ti+1)) para calcularmos o próprio u(ti+1). Nesse contexto, surgem os métodos chamados de preditor-corretor. A estratégia de predição-correção consiste basicamente em contornarmos o problema de formulações implícitas por meio de uma etapa de predição, utilizando um método explícito, em que se aproxima o valor presente u ti�� �1 , e uma etapa de correção em que, com o uso de uma formulação implícita, é recalculado o valor presente aproximado u ti�� �1 . Para sabermos mais sobre a comparação entre os métodos numéricos de passo simples e métodos de previsão-correção, recomendamos o artigo Comparação entre métodos numéricos: Runge-Kutta de quarta ordem e previsor-corretor, dos autores Rafael de Lima Sterza e Analice Costacurta Brandi, publicado na Revista Eletrônica Paulista de Matemática, em 2016. Acesso em: 22 jul. 2022. https://www.fc.unesp.br/Home/Departamentos/Matematica/revistacqd2228/v07a02-comparacao-entre-metodos-numericos.pdf Artigo Essa etapa de predição por meio de um método explícito pode ser realizada por diversos métodos vistos anteriormente, como o de Euler, de Runge-Kutta ou mes- mo o de Adams-Bashforth. Cada uma dessas variações gera novos métodos com novos resultados. Inclusive, na etapa de correção, também existe a possibilidade de utilizarmos diferentes métodos implícitos. https://www.fc.unesp.br/Home/Departamentos/Matematica/revistacqd2228/v07a02-comparacao-entre-metodos-numericos.pdf Solução numérica para equações diferenciais ordinárias 165 6.3.1 Método de Euler para predição-correção Consideraremos o PVI dado por: du dt t t � � �� � � � � � � � �� f t u u a , 0 Para ilustrarmos a estratégia de preditor-corretor, formulamos o método implí- cito de Euler a partir da equação: u(ti+1) = u(ti) + hf(ti+1, u(ti+1)) Uma predição da resposta pode ser calculada utilizando o método de Euler ex- plícito, conforme: ũ(ti+1) = u(ti) + hf(ti, u(ti)) Então, utilizamos u ti�� �1 no esquema implícito, resultando em: u(t(i+1)) = u(ti) + hf(ti+1, ũ(ti+1)) Usando novamente o PVI enunciado no início, outra estratégia de predição pode ser formulada utilizando o método explícito de Euler a partir da equação: ũ(ti+1) = u(ti) + hf(ti, u(ti)) Contudo, agora usaremos como estratégia de correção o método trapezoidal dado por: u t u t h f t u t f t u ti i i i i i� � �� � � � �� � �� �� � �� ���� ���1 1 12 , , Com isso, temos dois exemplos de métodos compostos para predição-correção. Essa composição também pode ser realizada adotando métodos de passos múl- tiplos. Ao combinarmos os métodos de Adams teremos um método de predição- -correção (ou preditor-corretor). Tendo como base que f(t, y) é uma função contínua que satisfaz uma condição de Lipschits para a variável y e assumindo um PVI dado por: y f t y y ´ , , � � � � � � � � � � � � �� a t a t b 0 � com isso, temos: PREDITOR CORRETOR : : p y h f f f f y k k k k k k k � � � �� � � � � �� �1 3 2 1 24 9 37 59 55 �� � � � �� � � � � � �� � � � �� � � � 1 2 1 1 124 5 19 9y h f f f t pk k k k k k, Portanto, quando adotamos um par de fórmulas para previsão-correção com- posto por Adams-Bashforth e Adams-Moulton de mesma ordem, e se h for escolhi- do convenientemente, em geral, são necessárias poucas iterações para atingirmos a convergência desejada. 166 Cálculo Numérico 6.4 Sistemas de equações diferenciais Apesar da extensão dos conceitos ser poderosa no sentido de aplicabilidade, a estratégia numérica de solução herda vários aspectos já discutidos para o caso de primeira ordem. Isso se deve ao fato de que procuramos traduzir a equação diferencial de ordem superior em um sistema de equações diferenciais de primeira ordem por meio de substituições de variáveis simples. 6.4.1 Substituição de variáveis para geração do sistema de EDO Inicialmente, estenderemos a notação do problema de valor inicial apresentado anteriormente como: du dt f t u t� � �� �, para contemplarmos derivadas de ordem n. Assim, escrevemos conforme (41). D u dt f t u du dt d u dt d u dt n n n n � � � � �� � � �� � �, , , , , 2 2 1 1 (41) Assim, definindo uma equação diferencial de ordem superior de maneira análoga. Para essa situação, é necessário estipularmos condições iniciais para cada uma das derivadas até ordem n – 1. Ou seja, u t0 00� � �� , du dt t0 0 1� � �� , d u dt t 2 2 0 0 2� � �� , d u dt t 3 3 0 0 3� � �� , ..., d u dt t n n n � � �� � � 1 1 0 0 1� . Com isso, podemos transformar a equação diferencial em um sistema de equa- ções diferenciais associando cada derivada de ordem j, com j de 0 a n – 1, a uma variável v d u dt j j j = . Desse modo, a EDO fica conforme (42) com as respectivas condi- ções iniciais. d u dt f t v v v v n n n � �� ��, , , , ,0 1 2 1 (42) É importante notarmos que, ao escolhermos v d u dt j j j = , construímos um sistema de equações diferenciais lineares (43). du dt f t v v v d u dt f t v v v d u dt f n n n n n � �� � � �� � � � � 1 0 1 1 2 2 2 0 1 1 , , , , , , , , tt v v vn, , , ,0 1 1�� � � � � � � � � � � � � � (43) Esse sistema pode ser resolvido pelos diferentes métodos vistos anteriormente. Trazemos algumas dessas possibilidades nas próximas seções. Vídeo Solução numérica para equações diferenciais ordinárias 167 6.4.2 Solução usando os métodos de Euler Os métodos de passo simples apresentados para solução numérica de um PVI podem ser facilmente estendidos para solução de sistemas de equações diferen- ciais sujeita à imposição de um valor inicial. Esse procedimento consiste simplesmente em dar um passo no tempo utilizan- do o método escolhido para cada equação do sistema. Vejamos dois métodos a seguir. Método explícito de Euler Para o caso do método explícito de Euler, escrevemos o processo iterativo para cada uma das n equações diferenciais provenientes da EDO de ordem n. Ou seja, para cada uma das equações, temos: dv dt f t v v v v j n� �� ��, , , , ,0 1 2 1 Portanto, vj(t i+1) = vj(t i ) + hf(t, v0, v1, v2, …, vn–1) (44) Vejamos como proceder a partir do Exemplo 8. Exemplo 8 Queremosusar o método de Euler para obtermos a solução de um sistema de equações diferenciais do tipo: du dt dw dt et � � � � � �� � � � w u com u(0) = 1, w(0) = 0, t ∈ [0;0,2] e h = 0,1. Pela regra de Euler, escrevemos: u w u w h w u e i i i i i i ti � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1 1 Fazendo i = 0, temos: u w u w h w u et 1 1 0 0 0 0 0 � � � � � � � � � � � � � � � � � � � � � � � � � � � Assim, u w 1 1 1 0 0 1 0 1 1 1 0 2 � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �, , Vídeo 168 Cálculo Numérico Agora, fazendo i = 1, temos: u w u w h w u et 2 2 1 1 1 1 1 � � � � � � � � � � � � � � � � � � � � � � � � � � � Assim, u w e 2 2 0 2 1 0 2 0 1 0 2 1 1 02 0 4221 � � � � � � � � � � � � � � � � � � � � � � � � � � � � �, , , , ,, �� Com esses resultados podemos escrever as aproximações: u(0,2) ≈ 1,02 e w(0,2) ≈ 0,4221. Método de Heun Vimos que o método de Euler pode ser repensado de modo que possamos utili- zar uma média entre o valor final e inicial, dando origem ao método de Euler modi- ficado (método de Heun). Assim, para termos uma aproximação melhor, utilizamos uma função que é a média entre o valor inicial e final (45). f f t v v v v f t v v v vi n i n� �� �� �� �� � �1 0 1 2 1 0 1 2 1 2 , , , , , , , , , , (45) Onde, em (45), fi denota a função f calculada no passo de tempo i. Precisamos calcular as inclinações k1 e k2 de modo que: v t v t h k kj i j i�� � � � �� �� �1 1 2 2 (46) Onde: • k1 = f(t i,v0, v1, v2,…,vn–1) • k2 = f(t i + h,v0 (t i) + hk1, v1(t i) + hk1, v2(t i) + hk1, …, vn–1(t i) + hk1) Vejamos como proceder com base no Exemplo 9. Exemplo 9 Seja um sistema de equações diferenciais do tipo: du dt dw dt et � � � � � �� � � � w u com u(0) = 1, w(0) = 0, t ∈ [0;0,2] e h = 0,1. A partir dele, queremos aproximar a solução utilizando o método de Heun. Com isso, escrevemos: u w u w h k k i i i i � � � � � � � � � � � � � � � � � � � � �� � 1 1 1 22 Com: • k f t u w w u e t1 0 0 0 0 0 0 � � � � � � � � � �� � � �� � � � � � � � � � � , Solução numérica para equações diferenciais ordinárias 169 • k f t h u w hk2 0 0 0 1� � � � � � � � � � � �� � � ��, Fazendo i = 0, temos: • k w u e e t1 0 0 0 0 0 1 0 2 � � � � � � � � � � � � � � � � � � � � � � � � � • k f t h u w hk f h h2 0 0 0 1 0 1 0 0 2 � � � � � � � � � � � �� � � �� � � � � � � � � � � � � � � � � � �, , �� � � � � � � � � � � � � � � � � � � � � � �f 0 1 1 0 2 0 2 2 1052 , ; , , , • u w u w h k k 1 1 0 0 1 22 � � � � � � � � � � � � � � � � � � �� � Assim, u w 1 1 1 0 0 1 2 0 2 0 2 2 1052 1� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � , , , ,, , 01 0 20526 � � � � � � Agora, fazendo i = 1, temos: • k w u e e t1 1 1 1 0 1 0 20526 1 01 0 20526 2 1152 � � � � � � � � � � � � � � � � � � � � � , , , ,, �� � � � • k f t h u w hk f h h2 1 1 1 1 0 1 1 01 0 20526 � � � � � � � � � � � �� � � �� � � � � � � � � �, , , , , 00 20526 2 1152 0 2 1 03053 0 41678 , , , ; , , � � � � � � � � � � � � � � � � � � � � � � � � �f �� � � � � � � 0 41678 2 2519 , , • u w u w h k k 2 2 1 1 1 22 � � � � � � � � � � � � � � � � � � �� � Logo, u w 2 2 1 01 0 20526 0 1 2 0 20526 2 1152 0 4� � � � � � � � � � � � � � � � � � � � � � � , , , , , , 11678 2 2519 1 0411 0 42362, , , � � � � � � � � � � � � � � � � � � � Com esses resultados podemos escrever as aproximações: u(0,2) ≈ 1,0411 e w(0,2) ≈ 0,42362. 6.4.3 Solução usando o método de Runge- Kutta de quarta ordem Analogamente ao que foi desenvolvido para o método de Euler, podemos es- tender a aplicação do método de Runge-Kutta de quarta ordem para o sistema de equações diferenciais decorrente da EDO da ordem superior. As constantes de taxa de variação instantânea No método de Runge-Kutta de quarta ordem, a aproximação é feita de maneira iterativa com base em uma inclinação da predição calculada a partir de quatro ta- xas de variação auxiliares: k1, k2, k3, k4. Primeiramente, calculamos k1 em relação ao ponto inicial do intervalo de inte- gração no tempo (i). Com base em k1, calculamos a inclinação no ponto médio do Vídeo 170 Cálculo Numérico intervalo (ti + h / 2), k2. Com essas duas constantes, retornamos ao ponto inicial do intervalo para novamente estimarmos a taxa de variação no ponto médio, k3. Por fim, com k1, k2 e k3 definidos, calculamos k4 referente ao ponto final do intervalo de integração no tempo (ti+1). Dessa forma, as constantes k são calculadas para o caso de múltiplas EDO como: • k1 = f(t i, u(ti )) = f(ti, v0, v1, v2, …, vn–1) • k f t h v t h k v t h k v t h k v t hi i i i n i 2 0 1 1 1 2 1 1 2 2 2 2 � � � �� � �� � �� � � ���, , , , , 22 1k � � � � � � • k f t h v t h k v t h k v t h k v t hi i i i n i 3 0 2 1 2 2 2 1 2 2 2 2 � � � �� � �� � �� � � ���, , , , , 22 2k � � � � � � • k4 = f(t i+1, v0(t i) + k3, v1(t i) + k3, v2(t i) + k3, …, vn–1(t i) + k3) Estando em posse das constantes k, o procedimento iterativo é facilmente descrito por meio de uma taxa média ponderada de variação no intervalo a partir de (47). v t v t h k k k kj i j i�� � � � �� � � �� �1 1 2 3 4 6 2 2 (47) Vejamos como proceder com base no Exemplo 10. Exemplo 10 Seja um sistema de equações diferenciais do tipo: du dt dw dt et � � � � � �� � � � w u com u(0) = 1, w(0) = 0, t ∈ [0;0,2] e h = 0,1. A partir disso, queremos aproximar a solução utilizando o método de RK4. Com isso, escrevemos: u w u w h k k k k i i i i � � � � � � � � � � � � � � � � � � � � � � �� � 1 1 1 2 3 46 2 2 Fazendo i = 0, temos: • k f t u w 1 0 0 0 0 2 � � � � � � � � � �� � � �� � � � � � � �, • k f t h u w h k2 0 0 0 1 2 2 0 1 2 0513 � � � � � � � � � � � �� � � �� � � � � � � �, , , • k f t h u w h k3 0 0 0 2 2 2 0 1026 2 0563 � � � � � � � � � � � �� � � �� � � � � � � �, , , • k f t h, u w hk4 0 0 0 3 0 2056 2 1154 � � � � � � � � � � � �� � � �� � � � � � � � , , • u w u w h k k k k 1 1 0 0 1 2 3 46 2 2 � � � � � � � � � � � � � � � � � � � � �� � Solução numérica para equações diferenciais ordinárias 171 Assim, u w 1 1 1 0 0 1 6 0 2 2 0 1 2 0513 2 0 102� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � , , , , 66 2 0563 0 2056 2 1154 1 0102 0 2055, , , , , � � � � � � � � � � � � � � � � � � � � � � � � � � Agora, fazendo i = 1, temos: • k f t u w 1 1 1 1 0 2055 2 1154 � � � � � � � � � �� � � �� � � � � � � �, , , • k f t h u w h k2 1 1 1 1 2 2 0 3113 2 1823 � � � � � � � � � � � �� � � �� � � � � � � �, , , • k f t h u w h k3 1 1 1 2 2 2 0 3146 2 1876 � � � � � � � � � � � �� � � �� � � � � � � �, , , • k f t h u w hk4 1 1 1 3 0 4243 2 2630 � � � � � � � � � � � �� � � �� � � � � � � �, , , • u w u w h k k k k 2 2 1 1 1 2 3 46 2 2 � � � � � � � � � � � � � � � � � � � � �� � Logo, u w 2 2 1 0102 0 2055 0 1 6 0 2055 2 1154 2 0� � � � � � � � � � � � � � � � � � � � � � � , , , , , ,33113 2 1823 2 0 3146 2 1876 0 4243 2 2630, , , , , � � � � � � � � � � � � � � � � � � � � � � �� � � � � � � � � � � 1 0415 0 4241 , , Com esses resultados, podemos escrever as aproximações: u(0,2) ≈ 1,0415 e w(0,2) ≈ 0,4241. CONSIDERAÇÕES FINAIS Neste capítulo, apresentamos métodos com base em estratégias chamadas de passo simples emúltiplos passos. Descrevemos os métodos com base na expansão de Taylor (Euler e Taylor de alta ordem) e aqueles em integração numérica (Runge-Kutta). Ao tratarmos dos métodos de passos múltiplos, apresentamos os métodos de Adams: explícitos, como na formulação de Adams-Bashforth; e implícitos, como na formulação de Adams-Moulton, ambos com base na interpolação de múltiplos passos. Os métodos de predição foram apresentados como estratégia para contornarmos as desvantagens de métodos implícitos, acoplando-os a métodos explícitos como preditores. Portanto, vimos ao longo das seções abordadas que é possível resolvermos sis- temas de equações diferenciais usando os métodos estudados ao longo do capítulo. Também é viável transformarmos equações de alta ordem em sistemas de ordem reduzida, tendo os métodos já avaliados como ferramentas numéricas de solução. Desse modo, esperamos que, após a leitura, a motivação de pesquisar aumente e avance junto aos estudos referentes ao cálculo numérico e, com isso, também sejam expandidas as possibilidades de aplicações computacionais de métodos matemáticos que permitem modelar fenômenos físicos que nos rodeiam. 172 Cálculo Numérico ATIVIDADES Atividade 1 Identifique ao menos uma das facilidades na aplicação de métodos de passo simples. Atividade 2 Dentre os métodos RK, podemos escolher diferentes valores para h e, desse modo, obtemos diferentes valores para x0 = a; xj+1 = xj+k, com j = 0, 1, 2, ... e y0 = y(a). Com isso, podemos escrever o seguinte Algoritmo: k f x y k f x h y hk k f x h y hk j j j j j j 1 2 1 3 2 1 2 1 2 1 2 1 2 � � � � � �� � � � � � � � �� � � , , , �� � � � � �� �k f x h y hkj j4 3, y y h k k k kj j� � � � � �� �1 1 2 3 4 6 2 2 Se f(x, y) não depende de y, então, o algoritmo se reduz à fórmula de Simpson. Considerando o trecho apresentado e os métodos de Runge-Kutta, descreva a ordem do método de RK aplicada nesse caso. Atividade 3 Descreva a ordem do erro de truncamento local para o método de Adams-Bash- forth de 4 passos. REFERÊNCIAS BURDEN, R. L.; FAIRES, J. D. Análise numérica. 3. ed. São Paulo: Cengage Learning, 2016. BUTCHER, J. C.; GOODWIN, N. Numerical methods for ordinary differential equations. 2. ed. Nova York: Wiley, 2008. CHAPRA, S. C.; CANALE, R. P. Métodos numéricos para engenharia. 7. ed. Porto Alegre: AMGH, 2016. GILAT, A.; SUBRAMANIAM, V. Métodos numéricos para engenheiros e cientistas: uma introdução com aplicações usando o MATLAB. Porto Alegre: Bookman, 2008. JUSTO, D. A. R. et al. (org.). Cálculo Numérico: um livro colaborativo. Porto Alegre: UFRGS, 2020. Disponível em: https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf. Acesso em: 18 ago 2022. KUTTA, M. Beitrag zur näherungsweisen Integration totaler Differentialgleichungen. Zeitschrift für Mathematik und Physik, v. 46, p. 435-453. Disponível em: https://www.worldcat.org/title/beitrag-zur- naherungsweisen-integration-totaler-differentialgleichungen/oclc/493965375. Acesso em: 18 ago. 2022. RUNGE, C. Ueber die numerische Auflösung von Differentialgleichungen. Mathematische Annalen, v. 46, p. 167-178, 1895. Disponível em: http://eudml.org/doc/157756. Acesso em: 18 ago. 2022. https://www.ufrgs.br/reamat/CalculoNumerico/livro-sci/livro-sci.pdf https://www.worldcat.org/title/beitrag-zur-naherungsweisen-integration-totaler-differentialgleichungen/oclc/493965375 https://www.worldcat.org/title/beitrag-zur-naherungsweisen-integration-totaler-differentialgleichungen/oclc/493965375 http://eudml.org/doc/157756 Resolução das atividades 173 Resolução das atividades 1 Erros numéricos 1. Podemos considerar o sistema de numeração romano um sistema aditivo ou um sistema posicional? Explique. O sistema de numeração romano, usado em algumas representações até hoje, como em relógios e para marcar itens, é um sistema dito aditivo e podemos perceber essa dinâmica, por exemplo, quando precisamos escrever números como 20 (XX) e 30 (XXX) dentre muitos outros exemplos. Ele é um típico sistema de numeração aditivo, mas que teve alguns avanços quando comparado a outros sistemas aditivos que não permitiam a escrita rápida de números muito grandes. Im ag es to ck de si gn /S hu tte rs to ck Numerais romanos 1 = I 10 = X 100 = C 1000 = M 2 = II 20 = XX 200 = CC 2000 = MM 3 = III 30 = XXX 300 = CCC 3000 = MMM 4 = IV 40 = XL 400 = CD 5 = V 50 = L 500 = D 6 = VI 60 = LX 600 = DC 7 = VII 70 = LXX 700 = DCC 8 = VIII 80 = LXXX 800 = DCCC 9= IX 90 = XC 900 = CM 2. É possível converter um número na base 10 para um número na base hexadecimal através de divisões sucessivas? Explique essa conversão e converta o número (9)10 para essa base. Como a base hexadecimal é composta por um número de algarismos maior do que a base 10, qualquer número menor do que 10 não precisa ser convertido, sendo diretamente escrito na sua forma decimal, apenas corrigindo a sua base. Assim, para o número (9)10, teremos: (9)10 = (9)16 Contudo, caso esse número seja maior do que 9, por exemplo, se tivéssemos (10)10 teríamos como conversão: (10)10 = (A)16 Por meio da divisão, precisamos fazer: 10 : 16 = 0 – Resto 10. Nesse caso, precisamos compreender quem é o representante para 10 na base hexadecimal, e esse elemento é a letra A. Portanto, (A)16 = (10)10 3. Ao escrevermos o número de Euler da forma e = 2,718 … e e n n � � � � � �� � � � 0 1 1 0 1 1 1 2 1 3! ! ! ! ! No primeiro caso devemos usar qual tipo de ajuste numérico para obter um número finito? E no segundo caso? Quais são os erros envolvidos em cada um dos casos? 174 Cálculo Numérico Ao escrevermos o número de Euler da forma e = 2,718 …, precisamos fazer um arredondamento para que obtenhamos um número finito. Nesse caso, teríamos o valor: e ≈ 2,72, que acarretará um erro de arredondamento. Já no segundo caso, e n n � � � � � �� � � 0 1 1 0 1 1 1 2 1 3 � ! ! ! ! ! , como temos uma série numérica, podemos transformar e para uma forma finita por meio de um truncamento nos termos da série. Portanto, teremos um típico erro de truncamento. 2 Sistemas de equações lineares 1. Explique de maneira breve e simplificada o que faz a matriz elementar M1 e a matriz elementar M2 ao multiplicarmos uma matriz de coeficientes A por cada uma delas, respectivamente. As matrizes elementares M1 e M2 zeram, respectivamente, todos os elementos abaixo das posições (1, 1) e (2, 2). 2. Explique com suas palavras a importância de um algoritmo na implementação de um método numérico direto, como no caso da fatoração LU. O algoritmo permitirá que entendamos o passo a passo para a implementação do método. Com ele, também é possível identificarmos os erros numéricos que são propagados em cada etapa de cálculo e, com isso, é possível avaliarmos se o método adotado é eficiente, ou não, para a obtenção da solução para o problema abordado. 3. Explique com suas palavras o que significa a análise de convergência de um método e qual a sua importância para garantir o resultado encontrado. Basicamente, a análise de convergência é o que permite decidirmos se o método nos leva a uma solução que se aproxima da solução exata ou não. Os métodos ditos numéricos, em geral, são descritos por processos iterativos que, por sua vez, só são válidos se a solução aproximada convergir para a solução exata. Quando analisamos a ordem de convergência e taxa de convergência, já estamos considerando que o método converge (primeira análise a ser verificada). A ordem de convergência e a taxa de convergência nos mostra como essa solução aproximada converge para a solução real e em qual velocidade. 3 Zeros de funções reais 1. O teorema 1 expressa que, se f:[a,b] → ℝ, y = f(x) é uma função contínua tal que f(a) ⋅ f(b) < 0, então existe x* ∈ (a,b) tal que f(x*) = 0, onde x* é chamada de solução exata. Explique por que precisamos garantir que f(a)f(b) < 0. Ao garantirmos que f(a)f(b) < 0, estamos dizendo que a função intercepta o eixo x em algum ponto do intervalo]a,b[ e, portanto, se f(a)f(b) < 0, podemos garantir a existência de raiz da função. Resolução das atividades 175 2. De acordo com Gilat e Subramaniam (2008, p. 76), “a tolerância é a máxima quantidade na qual a solução exata pode desviar de uma solução numérica aproximada”. Partindo dos conceitos vistos no capítulo e dessa afirmação, quais fatores podem determinar a tolerância de um método numérico? Use como referência o método do ponto fixo. Nos casos em que é possível encontrar a solução analítica, teremos que f(xk) = 0 e, portanto, |xk - xk-1| = 0. Contudo, quando optamos por um método numérico e precisamos avaliar a tolerância como um critério de parada, é necessário avaliar duas situações: 1. |f(xk)| ≤ tolerância 2. |xk - xk-1| ≤ tolerância 3. Assumindo que: x x f x f x kk k k k � � � � � � � � � �� � � �� ��1 0, é a equação que rege o método de Newton-Raphson, identifique umas das dificuldades para a utilização desse método numérico. O método de Newton-Raphson depende de um bom palpite inicial, por exemplo, x0. Esse mesmo conceito foi visto para o método do ponto fixo, ao afirmarmos: quando |g (́p)| = 0, temos o método de Método de Newton; e, no método do ponto fixo, se x0 não estiver próximo da raiz, ele pode divergir. Além disso, uma das dificuldades em sua implementação é dependermos da existência da derivada no ponto xk, avaliado a cada iteração. 4 Interpolação e ajuste de curvas 1. Explique com suas palavras o motivo da matriz de Vandermonde ter um determinante diferente de zero e, portanto, o sistema de equações a ela associado apresentar sempre solução. Como a matriz de Vandermonde é formada por colunas que são progressões geométricas, podemos dizer que essa matriz é formada por vetores linearmente independentes. Logo, o determinante será sempre não nulo. Todo sistema de equações lineares pode ser transcrito com notação matricial. Nesse sentido, caso a matriz dos coeficientes possuir um determinante diferente de zero, portanto, ela é formada por vetores linearmente independentes, permitindo-nos afirmar que o sistema possui solução e ela é única. 2. O erro nos métodos de interpolação de Lagrange e de Newton estão associados ao grau do polinômio interpolador? Explique. Sim, mas não é apenas o grau do polinômio interpolador que determina o erro do método. Inclusive, mesmo que associado ao grau do polinômio interpolador, isso não quer dizer que quanto maior o grau do polinômio teremos um erro menor. Além do grau do polinômio, ainda é necessário compreendermos o tamanho do domínio em relação aos pontos avaliados e a posição desses pontos em relação à avaliação que se deseja calcular. 176 Cálculo Numérico 3. Descreva a necessidade do uso de derivadas parciais para o cálculo dos métodos dos mínimos quadrados. Quando calculamos as derivadas parciais para cada uma das variáveis do problema em um ponto específico, também estamos calculando o que chamamos de gradiente da função. Ao compararmos cada uma dessas derivadas a zero, estamos calculando o ponto crítico dessa função, que, nesse caso, é um ponto de mínimo. Portanto, como a ideia do método é minimizarmos a função (a soma dos erros quadráticos), ao usarmos uma ferramenta do cálculo para funções de múltiplas variáveis que permite a análise de pontos críticos, também estamos encontrando o ponto que minimiza a função do erro quadrático. 5 Integração numérica 1. Explique a razão pela qual a integração de Riemann não é considerada um método numérico, mas sim um método analítico. Na integração de Riemann, quando aplicamos o limite, para um intervalo Δx tendendo a zero, ao somatório das áreas dos retângulos formados por f(xi) Δxi, para todo i = 0, ..., n, estamos dizendo que a integral está sendo calculada no domínio contínuo. Sendo assim, a solução para esse método é exata e não aproximada, além disso não depende da discretização do domínio. 2. Descreva por qual motivo, na regra do trapézio simples, as medidas da base maior e base menor da figura geométrica do trapézio, devem ser as imagens do polinômio interpolado para os pontos x0 e x1. Isso acontece pois precisamos considerar a altura h como a diferença entre x1 = x0. Logo, as bases (maior e menor) devem estar em relação às medidas obtidas no eixo y, e não no eixo x. 3. Para que a regra de Simpson simples tenha valor exato, qual deve ser o grau do polinômio interpolado? Justifique sua resposta e compare esse resultado com a regra do trapézio. Se f(x) = p3(x), então, f(4)(x) = 0 e, portanto, o erro será igual a zero. Dessa forma, podemos afirmar que a regra de Simpson tem valor exato se f for um polinômio de até grau 3. A mesma verificação pode ser pensada para a regra do trapézio. Nesse segundo caso, se f(x) = p2(x), então, f(3) = 0. Com isso, para a regra do trapézio, temos o valor exato se f for um polinômio de até grau 2. 6 Solução numérica para equações diferenciais ordinárias 1. Identifique ao menos uma das facilidades na aplicação de métodos de passo simples. Uma vantagem dos métodos de passo simples é a facilidade na mudança do incremento h. No método de Euler, por exemplo, a redução do tamanho de h permite uma melhora na resposta encontrada (ou seja, a solução aproximada) quando comparada à solução analítica. Resolução das atividades 177 2. Dentre os métodos RK, podemos escolher diferentes valores para h e, desse modo, obtemos diferentes valores para x0 = a; xj+1 = xj+k, com j = 0, 1, 2, ... e y0 = y(a). Com isso, podemos escrever o seguinte Algoritmo: k f x y k f x h y hk k f x h y hk j j j j j j 1 2 1 3 2 1 2 1 2 1 2 1 2 � � � � � �� � � � � � � � �� � � , , , �� � � � � �� �k f x h y hkj j4 3, y y h k k k kj j� � � � � �� �1 1 2 3 4 6 2 2 Se f(x, y) não depende de y, então, o algoritmo se reduz à fórmula de Simpson. Considerando o trecho apresentado e os métodos de Runge-Kutta, descreva a ordem do método de RK aplicada nesse caso. O algoritmo apresentado é representativo do método de Runge-Kutta de quarta ordem (método de passo simples). Pois tal padrão é identificado pelos valores de k calculados. 3. Descreva a ordem do erro de truncamento global para o método de Adams-Bashforth de 4 passos. No método de Adams-Bashforth (MAB), como o polinômio interpolador em s pontos é de ordem s + 1, temos que o erro de truncamento para o MAB de s passos será de s + 1, fazendo com que o erro global seja de ordem s, e o erro local de ordem s + 1, portanto, para s = 4, temos erro de global de ordem 4. Cálculo Numérico M A R I N A V A R G A S M ARINA VARGAS Cálculo N um érico Código Logístico 59850 ISBN 978-65-5821-174-7 9 786558 211747 Página em branco Página em branco