Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

<p>Cálculo Numérico com Octave</p><p>Notas de Aula</p><p>Jonathan Tejeda Quartuccio</p><p>IMPORTANTE: Essas notas de aulas foram construídas com base no curso ministrado pelo pro-</p><p>fessor Ricardo Biloti, do IMEEC – Unicamp, no segundo semestre de 2018. Muitos exemplos e</p><p>figuras, inclusive a presente nessa capa, foram retiradas do material de autoria do professor</p><p>Biloti. O primeiro capítulo, de introdução ao Octave, foi feito de acordo com o arquivo “Introdu-</p><p>ção ao Octave”, de Fernando Lourenço de Souza.</p><p>P</p><p>ág</p><p>in</p><p>a2</p><p>Introdução ao Octave</p><p>Ao executar o Octave (GUI) você verá essa tela surgir:</p><p>Aqui, os dois >> mostram que você pode digitar os comandos. Não vamos nos fixar nos erros</p><p>que podem surgir (você saberá muito bem quando um erro for cometido). Ao invés disso, vamos</p><p>nos focar no que nos interessa (uma vez que esse não é um curso intensivo de Octave).</p><p>Operadores aritméticos</p><p>No Octave, a ordem de precedência de operações é:</p><p>Potenciação (^)</p><p>Multiplicação/Divisão (* /)</p><p>Adição/Subtração (+ -)</p><p>onde os caracteres entre parêntesis são os usados para as respectivas operações. Assim, por</p><p>exemplo, a operação 5 + 17 fica:</p><p>Outro exemplo é o cálculo 2 + 35:</p><p>note que primeiro foi feito o cálculo 35 = 243 e depois foi somado 2. Os resultados são atribuídos</p><p>a uma variável “ans”. Vamos mudar isso criando uma variável “resposta”. Fazemos isso atribu-</p><p>indo, primeiro, resposta = ans. Assim:</p><p>Podemos guardar valores em variáveis e fazer uma operação só com essas variáveis. Ve-</p><p>jamos um exemplo:</p><p>P</p><p>ág</p><p>in</p><p>a3</p><p>em que a variável “um” foi atribuída ao número 1 e a variável “dois” foi atribuída ao número 2.</p><p>Variáveis</p><p>Octave é uma linguagem de programação, e por conta disso ele possui certas regras para</p><p>nomes de variáveis. As variáveis só podem ser iniciadas por letras e não podem conter espaços</p><p>e nem caracteres de pontuação. Assim como ocorre em outras linguagens, como C e Python, o</p><p>Octave faz acepção entre letras minúsculas e maiúsculas. Por exemplo, uma variável “nome” é</p><p>diferente de uma variável “Nome”.</p><p>As seguintes variáveis já possuem um significado pré-determinado e, por isso, não podem</p><p>ser usados como nomes de novas variáveis:</p><p>• ans – variável usada para resultados</p><p>• pi – variável que fornece o valor do número “pi”</p><p>• eps – menor número que, quando somado a 1, gera um número maior que 1 no com-</p><p>putador</p><p>• flops – armazena um número de operações em ponto flutuante</p><p>• inf – infinito</p><p>• NaN ou nan – significa um número indefinido</p><p>• i e j – unidade imaginária de um complexo</p><p>• nargin – número de argumentos de entrada de uma função</p><p>• nargout – número de argumentos de saída de uma função</p><p>• realmin – menor número que o computador pode armazenar em valor absoluto</p><p>• realmax – maior número que o computador pode armazenar em valor absoluto</p><p>• who – mostra as variáveis declaradas pelo usuário</p><p>• clear palavra – apaga a variável “palavra”</p><p>• clear – apaga todas as variáveis declaradas pelo usuário</p><p>Representação numérica no Octave</p><p>Se escrevemos 2/3 obteremos</p><p>Se quisermos representar o resultado com apenas 2 algarismos significativos, fazemos:</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>Se quisermos expressar o resultado com mais algarismos, usamos:</p><p>note que o resultado veio acompanhado do expoente -1.</p><p>Matrizes e Vetores</p><p>Elementos de grande importância são as matrizes e os vetores. Vamos criar a seguinte</p><p>matriz:</p><p>𝐴 = [</p><p>2 1 6</p><p>5 10 −3</p><p>1 5 8</p><p>]</p><p>Para isso, faremos:</p><p>ou seja, os elementos entram dentro dos colchetes. Os elementos de uma mesma linha são se-</p><p>parados por vírgulas, enquanto que o ponto e vírgula pula para a próxima linha da matriz. Se</p><p>preferir, os elementos de uma mesma linha podem ser separados por espaços ao invés de vír-</p><p>gulas:</p><p>Caso você queria criar uma matriz e não fazer ela ser impressa na tela, você pode usar o ponto</p><p>e vírgula no final do comando (na verdade isso serve para qualquer operação que você fizer e</p><p>não quiser ver o resultado sendo mostrado):</p><p>Podemos gerar uma matriz-linha com números entre 2 e 20, iniciando no 2, de modo que</p><p>seus valores sejam espaçados por 4 (por exemplo). Nesse caso, escrevemos:</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>Ou seja, temos a sintaxe início : passo : fim</p><p>Podemos criar uma matriz identidade usando o comando “eye( )” onde o número entre</p><p>parêntesis indica a ordem da matriz. Por exemplo, uma matriz identidade de ordem 4:</p><p>A matriz cujo todos os elementos são unitários é gerado pelo comando “ones( )”. Por</p><p>exemplo, para ones(5):</p><p>Uma matriz de zeros é obtida com o comando “zeros( )”. Por exemplo, zeros(3):</p><p>Uma matriz com valores aleatórias é construída com o comando “rand( )”. Por exemplo,</p><p>rand(5):</p><p>Digamos que você deseja excluir a terceira linha da matriz A criada anteriormente. Para</p><p>isso usamos o comando A(3, : ) = [ ]</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>Para deletar uma coluna, por exemplo a segunda, fazemos A( :, 2) = [ ]</p><p>Podemos acessar um elementos específico da matriz A pelo comando A(i,j). Nesse caso, o</p><p>programa mostrará o elemento da linha i e coluna j:</p><p>Se quisermos acessar uma linha inteira, por exemplo a terceira, usamos A(3, : )</p><p>Se quisermos a primeira coluna inteira, o comando fica A(: ,1)</p><p>Podemos acrescentar novos elementos à nossa matriz A. Podemos fazer isso com o co-</p><p>mando:</p><p>Nesse caso criamos uma matriz B a partir de A. Para isso, inserimos na linha 1 de A o elemento</p><p>14, na linha 2 o elemento 20 e na linha 3 o elemento -3. Ou seja, criamos uma nova coluna em</p><p>A. O seguinte código cria uma nova matriz J a partir de A:</p><p>P</p><p>ág</p><p>in</p><p>a7</p><p>Nesse caso, a matriz J é a matriz A com uma linha a mais, cujos elementos são [5,5,5].</p><p>Operações entre matrizes</p><p>Vamos criar duas matrizes A e B:</p><p>Uma vez criada as matrizes, podemos fazer operações entre elas. A soma será:</p><p>Podemos multiplicar uma matriz por um número real:</p><p>Ou multiplicar matrizes:</p><p>ou</p><p>P</p><p>ág</p><p>in</p><p>a8</p><p>Atente que as operações devem seguir as regras da álgebra matricial. A operação A^2 é o mesmo</p><p>que A*A:</p><p>Já a operação A.^2 toma cada elemento de A e eleva ao quadrado:</p><p>O comando [v,x] = eig(A) retorna para v os autovetores de A e para x os autovalores de A.</p><p>Por exemplo:</p><p>Algumas funções elementares</p><p>Algumas funções pré-definidas em Octave são:</p><p>• abs(x) – valor absoluto de x</p><p>• acos(x) – arco-cosseno de x</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>• asin(x) – arco-seno de x</p><p>• atan(x) – arco-tangente de x</p><p>• cos(x) – cosseno de x</p><p>• sin(x) – seno de x</p><p>• tan(x) – tangente de x</p><p>• exp(x) – exponencial de x</p><p>• gcd(x,y) – máximo divisor comum de x e y</p><p>• lcm(x,y) – mínimo múltiplo comum de x e y</p><p>• log(x) – logaritmo de x na base 𝑒</p><p>• log10(x) – logaritmo de x na base 10</p><p>• rem(x,y) – resto da divisão de x por y</p><p>• sqrt(x) – raiz quadrada de x</p><p>Sistema Lineares</p><p>Vamos criar um sistema 3 × 3 de modo aleatório e um vetor, também aleatório, de modo</p><p>a obtermos a construção do tipo 𝐴𝑥 = 𝑏:</p><p>A solução desse sistema é dada por 𝑥 = 𝑏/𝐴, ou no comando em Octave: 𝑥 = 𝐴\𝑏:</p><p>O comando 𝑥 = 𝐴\𝑏 é equivalente a calcular 𝑥 = (𝐴)−1𝑏.</p><p>Sistemas não lineares</p><p>Vamos resolver o seguinte sistema não linear:</p><p>𝑦1 = −2𝑥1</p><p>2 + 3𝑥1𝑥2 + 4 sin(𝑥2) − 6</p><p>𝑦2 = 3𝑥1</p><p>2 − 2𝑥1𝑥2</p><p>2 + 3cos(𝑥1) + 4</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>partindo das condições iniciais 𝑦1 = 1 e 𝑦2 = 2. O comando em Octave para solucionar esse</p><p>sistema é:</p><p>Integral definida</p><p>O cálculo da integral definida é feita com o comando quad:</p><p>[v, ier, nfum, err] = quad("f", a, b, tol, sing)</p><p>No comando acima temos que f é a função a ser chamada para calcular o valor do integrando.</p><p>Já a e b são os limites de integração. O argumento tol é um vetor que se especifica a precisão do</p><p>resultado. O comando sing é um vetor de valores em que o integrando é conhecido como sin-</p><p>gular. Do lado esquerdo do comando temos que v é o resultado da integração. O argumento ier</p><p>é um código</p><p>é o protótipo para métodos iterativos para sistemas lineares. Se 𝐵 e 𝐶 não dependerem dos</p><p>passos 𝑘, então o método é dito ser estacionário. Em outras palavras, 𝐵 e 𝐶 não mudam. Um</p><p>algoritmo geral seria:</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>2</p><p>Precisamos, agora, determinar se há convergência nos métodos usados. Em outras pala-</p><p>vras: será que 𝑥(𝑘) → 𝑥∗?</p><p>Um método de determinar a convergência é analisar o erro. Definimos, então, 𝑒(𝑘) =</p><p>𝑥(𝑘) − 𝑥∗. O método vai convergir se ||𝑒(𝑘)|| → 0.</p><p>Lembre-se que, para um vetor 𝑥 = (𝑥1, 𝑥2, … , 𝑥𝑛), a norma euclidiana é dada por:</p><p>||𝑥||</p><p>2</p><p>= √𝑥1</p><p>2 + 𝑥2</p><p>2 +⋯+ 𝑥𝑛</p><p>2</p><p>A norma é uma representação do comprimento de um vetor. Um outro modo de medir o com-</p><p>primento é usando a norma 1:</p><p>||𝑥||</p><p>1</p><p>= |𝑥1| + |𝑥2| + ⋯+ |𝑥𝑛|</p><p>e a norma infinita:</p><p>||𝑥||</p><p>∞</p><p>= max{|𝑥𝑗|}</p><p>Então, queremos ver se 𝑒(𝑘) está diminuindo quando tende para 𝑒(𝑘+1). Assim</p><p>𝑒(𝑘+1) = 𝑥(𝑘+1) − 𝑥∗</p><p>= Φ(𝑥𝑘) − Φ(𝑥∗)</p><p>= 𝐵𝑥𝑘 + 𝐶 − (𝐵𝑥∗ + 𝐶)</p><p>= 𝐵(𝑥𝑘 − 𝑥∗) = 𝐵𝑒𝑘</p><p>logo</p><p>𝑒(𝑘+1) = 𝐵𝑒𝑘</p><p>||𝑒(𝑘+1)|| = ||𝐵𝑒𝑘||</p><p>Entretanto, 𝐵 é uma matriz. Assim, é necessário obter a norma dessa matriz.</p><p>Seja uma matriz 𝐴 dada por:</p><p>𝐴 = (</p><p>⋮ ⋮ ⋮ ⋮</p><p>𝑎1 𝑎2 ⋯ 𝑎𝑛</p><p>⋮ ⋮ ⋮ ⋮</p><p>)</p><p>onde 𝑎𝑗 é a coluna 𝑗. Assim:</p><p>||𝐴||</p><p>1</p><p>= max {||𝑎𝑗||</p><p>1</p><p>}</p><p>Por exemplo:</p><p>𝐴 = (</p><p>2 5 1</p><p>−3 4 0</p><p>2 2 6</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>3</p><p>a norma da primeira coluna é 7 (|2| + |−3| + |2| = 2 + 3 + 2 = 7). A norma da segunda coluna</p><p>é 11. A norma da terceira coluna é 7. Portanto:</p><p>||𝐴||</p><p>1</p><p>= 11</p><p>Seja uma matriz dada por:</p><p>𝐴 = (</p><p>⋯ 𝑎1 ⋯</p><p>⋯ 𝑎2 ⋯</p><p>⋯</p><p>⋯</p><p>⋮</p><p>𝑎𝑛</p><p>⋯</p><p>⋯</p><p>)</p><p>onde 𝑎𝑗 é a linha 𝑗. Assim:</p><p>||𝐴||</p><p>∞</p><p>= max {||𝑎𝑗||</p><p>1</p><p>}</p><p>Por exemplo:</p><p>𝐴 = (</p><p>2 5 1</p><p>−3 4 0</p><p>2 2 6</p><p>)</p><p>a norma da primeira linha é 8 (|2| + |5| + |1| = 2 + 5 + 1 = 8). A norma da segunda linha é 7.</p><p>A norma da terceira linha é 10. Logo:</p><p>||𝐴||</p><p>∞</p><p>= 10</p><p>Uma propriedade da normal matricial é:</p><p>||𝐴𝑥||</p><p>𝑛</p><p>≤ ||𝐴||</p><p>𝑛</p><p>∙ ||𝑋||</p><p>𝑛</p><p>Portanto:</p><p>||𝑒(𝑘+1)|| ≤ ||𝐵|| ∙ ||𝑒(𝑘)||</p><p>Até agora vimos que</p><p>||𝑒(𝑘)|| ≤ ||𝐵|| ∙ ||𝑒(𝑘−1)||</p><p>isso vale para qualquer 𝑘. Então</p><p>||𝑒(𝑘−1)|| ≤ ||𝐵|| ∙ ||𝑒(𝑘−2)||</p><p>logo</p><p>||𝑒(𝑘)|| ≤ ||𝐵|| ∙ ||𝐵|| ∙ ||𝑒(𝑘−2)||</p><p>||𝑒(𝑘)|| ≤ ||𝐵||</p><p>2</p><p>∙ ||𝑒(𝑘−2)||</p><p>O próximo termo seria</p><p>||𝑒(𝑘)|| ≤ ||𝐵||</p><p>3</p><p>∙ ||𝑒(𝑘−3)||</p><p>e assim por diante. Fazemos isso até</p><p>||𝑒(𝑘)|| ≤ (||𝐵||)</p><p>𝑛</p><p>∙ ||𝑒(0)||</p><p>Se ||𝐵| 1 tanto para norma 1 quanto para</p><p>norma infinita. Assim, nosso método não funciona para esse sistema.</p><p>Esse método iterativo é chamado de Método de Richardson, mas não é muito usado pois</p><p>nem sempre dá certo.</p><p>Métodos baseados em Splitting</p><p>O método de splitting (separação) é o caso em que dividimos uma matriz em duas partes:</p><p>𝐴 = 𝑀 +𝑁, de modo que 𝑥∗ = −𝑀−1𝑁𝑥∗ +𝑀−1𝑏, em que ||𝐵|| = ||𝑀−1𝑁||. Vejamos dois</p><p>casos para esse método que, no fundo, são casos já bem conhecidos:</p><p>- Caso 1: Método de Jacobi</p><p>Nesse caso, a matriz 𝐴 é dividida em uma matriz triangular inferior, 𝐿, uma matriz diago-</p><p>nal, 𝐷, e uma matriz triangular inferior, 𝑈:</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>5</p><p>𝐴 = 𝐿 + 𝐷 + 𝑈</p><p>Com isso:</p><p>𝑀 = 𝐷; 𝑁 = (𝐿 + 𝑈)</p><p>e</p><p>𝐵 = −𝑀−1𝑁 = −𝐷−1(𝐿 + 𝑈)</p><p>logo</p><p>𝐴𝑥∗ = 𝑏</p><p>(𝐿 + 𝐷 + 𝑈)𝑥∗ = 𝑏</p><p>Isolando a matriz 𝐷:</p><p>𝐷𝑥∗ = −(𝐿 + 𝑈)𝑥∗ + 𝑏</p><p>𝐷𝑥(𝑘+1) = −(𝐿 + 𝑈)𝑥(𝑘) + 𝑏</p><p>Exemplo 1: Seja o sistema</p><p>{</p><p>2𝑥1 − 3𝑥2 + 4𝑥3 = 5</p><p>𝑥1 + 4𝑥2 − 𝑥3 = 0</p><p>𝑥1 + 6𝑥3 = 1</p><p>Note que a resolução nada mais é do que 𝐷(𝑘+1) = −(𝐿 + 𝑈)𝑥(𝑘) + 𝑏:</p><p>{</p><p>𝑥1 = (5 + 3𝑥2 − 4𝑥3)/2</p><p>𝑥2 = (−𝑥1 + 𝑥3)/4</p><p>𝑥3 = (1 − 𝑥1)/6</p><p>Exemplo 2: Sabemos que pelo método de Richardson, a seguinte matriz</p><p>𝐴 = (</p><p>5 1</p><p>−2 −4</p><p>)</p><p>possui norma maior que 1. Aplicando a matriz de iteração de Jacobi, teremos:</p><p>𝐷 = (</p><p>5 0</p><p>0 −4</p><p>) ; (𝐿 + 𝑈) = 𝑁 = (</p><p>0 1</p><p>−2 0</p><p>)</p><p>Sendo 𝐵 = −𝑀−1𝑁:</p><p>𝐵 = −(</p><p>1/5 0</p><p>0 −1/4</p><p>)(</p><p>0 1</p><p>−2 0</p><p>) = −(</p><p>0 1/5</p><p>1/2 0</p><p>)</p><p>Agora, vemos que ||𝐵||</p><p>1</p><p>= ||𝐵||</p><p>∞</p><p>= 0.5.</p><p>De forma geral, observando a matriz de iteração do método de Jacobi é possível vislum-</p><p>brar um critério de convergência baseado diretamente nas entradas da matriz 𝐴 original. O cri-</p><p>tério das linhas garante que o método de Jacobi será convergente se os elementos da diagonal</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>6</p><p>da matriz dominarem os restantes dos elementos das linhas. Ou seja, se em cada linha o ele-</p><p>mento da diagonal, em módulo, for maior que a soma dos elementos fora da diagonal (em mó-</p><p>dulo). Matrizes com essa propriedade são chamadas de matrizes diagonalmente dominantes por</p><p>linhas. Portanto:</p><p>||𝐵||</p><p>∞</p><p>= max {||𝛽𝑖||1} |1| + |1|. A</p><p>terceira linha também é satisfeita, pois |6| > |1| + |0|. Porém, é suficiente que apenas uma</p><p>linha não satisfaça o critério para que a convergência não seja satisfeita.</p><p>A seguinte matriz é satisfeita:</p><p>(</p><p>−7.5 7.3</p><p>2.8 9.0</p><p>)</p><p>pois |𝑎𝑖𝑗|</p><p>∙ 10</p><p>0 ∙ 0.10000 ∙ 101 = 0.50000 ∙ 100</p><p>𝑥1 = −0.0000025</p><p>𝑥1 = 0</p><p>ou</p><p>𝑥𝑏 = (</p><p>0</p><p>1</p><p>)</p><p>c) Por pivoteamento parcial, teremos de inverter as linhas:</p><p>( 0.20000 ∙ 100 0.10000 ∙ 100</p><p>−0.20000 ∙ 10−6 0.50000 ∙ 100</p><p>0.30000 ∙ 100</p><p>0.50000 ∙ 100</p><p>)</p><p>Fazemos 𝑙2 = 𝑙2 + 10</p><p>−6𝑙1</p><p>(0.20000 ∙ 10</p><p>0 0.10000 ∙ 100</p><p>0 0.50000 ∙ 100</p><p>0.30000 ∙ 100</p><p>0.50000 ∙ 100</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>8</p><p>Portanto</p><p>𝑥2 = 1</p><p>0.20000 ∙ 100𝑥1 + 0.10000 ∙ 10</p><p>0 ∙ 1 = 0.30000 ∙ 100</p><p>𝑥1 = 1</p><p>ou</p><p>𝑥𝑐 = (</p><p>1</p><p>1</p><p>)</p><p>d) Analisando o primeiro caso (sem pivoteamento):</p><p>𝐴𝑥𝑏 = 𝑏</p><p>(−0.20000 ∙ 10</p><p>−6 0.50000 ∙ 100</p><p>0.20000 ∙ 100 0.10000 ∙ 100</p><p>) (</p><p>0</p><p>1</p><p>) = (</p><p>0.5</p><p>0.1</p><p>)</p><p>esse resultado não está tão próximo de 𝑏 = (0.5, 0.3)𝑇. Vejamos o caso com pivoteamento:</p><p>(−0.20000 ∙ 10</p><p>−6 0.50000 ∙ 100</p><p>0.20000 ∙ 100 0.10000 ∙ 100</p><p>) (</p><p>1</p><p>1</p><p>) ≈ (</p><p>0.5</p><p>0.3</p><p>)</p><p>Ou seja, por pivoteamento encontramos uma solução muito mais próxima do valor real.</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>9</p><p>Sistemas Não-Lineares</p><p>Agora, nosso interesse está em resolver um sistema não linear:</p><p>{</p><p>𝑓1(𝑥1, 𝑥2, 𝑥3, … , 𝑥𝑛) = 0</p><p>𝑓2(𝑥1, 𝑥2, 𝑥3, … , 𝑥𝑛) = 0</p><p>⋮</p><p>𝑓𝑛(𝑥1, 𝑥2, 𝑥3, … , 𝑥𝑛) = 0</p><p>Exemplo 1: Seja o seguinte sistema</p><p>{</p><p>(𝑥 − 𝑥0)</p><p>2 + (𝑦 − 𝑦0)</p><p>2 − 1 = 0</p><p>𝑎𝑥 + 𝑏𝑦 + 𝑐 = 0</p><p>A primeira equação representa um círculo de raio 1, enquanto que a segunda equação repre-</p><p>senta uma reta. A solução desse sistema seria a intersecção das duas equações. Podemos ter o</p><p>caso onde não existe nenhuma solução (reta não toca o círculo); podemos ter uma solução (reta</p><p>tangente ao círculo) ou podemos ter duas soluções (reta secante ao círculo). A imagem mostra</p><p>a situação onde temos duas soluções.</p><p>O problema de sistemas não-lineares é que nem sempre é simples localizar suas soluções.</p><p>Iremos adotar uma notação vetorial, de modo que</p><p>𝑥 ∈ ℝ𝑛; 𝑥 = (𝑥1, 𝑥2, … , 𝑛𝑛)</p><p>𝑇</p><p>e</p><p>𝐹:ℝ𝑛 → ℝ𝑛</p><p>𝐹(𝑥) = (𝑓1(𝑥), 𝑓2(𝑥),… , 𝑓𝑛(𝑥))</p><p>𝑇</p><p>Queremos encontrar 𝑥∗ ∈ ℝ𝑛 tal que 𝐹(𝑥∗) = 0. Aqui iremos trabalhar somente com casos</p><p>onde 𝐹 é diferencial (embora nem toda função seja assim).</p><p>Exemplo 2: Seja o sistema</p><p>{</p><p>𝑥1</p><p>2 − 𝑒−𝑥1𝑥2 = 0</p><p>𝑥1𝑥2 + sin 𝑥1 = 0</p><p>Nesse caso, criamos uma matriz 𝐹(𝑥) cujas linhas serão as linhas dos sistema não-linear:</p><p>𝐹(𝑥) = (</p><p>𝑥1</p><p>2 − 𝑒−𝑥1𝑥2</p><p>𝑥1𝑥2 + sin𝑥1</p><p>)</p><p>Iremos fazer um tratamento de modo a analisar a função através de uma expansão em</p><p>Taylor. Nesse caso:</p><p>𝐹(𝑥 + 𝑠) = 𝐹(𝑥) + 𝐽(𝑥)𝑠 + 𝒪 (||𝑠||</p><p>2</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a7</p><p>0</p><p>Iremos escrever a expansão em Taylor para cada variável. Aqui, 𝐽(𝑥) é denominada matriz jaco-</p><p>biana de 𝐹. Ela é dada por</p><p>𝐽(𝑥) =</p><p>(</p><p>∇𝑇𝑓1(𝑥)</p><p>∇𝑇𝑓2(𝑥)</p><p>⋮</p><p>∇𝑇𝑓𝑛(𝑥))</p><p>Exemplo 3: Usando o sistema do exemplo 1, vamos aplicar a matriz jacobiana. A primeira</p><p>linha da matriz será a derivada da primeira linha de 𝐹(𝑥) com respeito a 𝑥1 e 𝑥2, de modo que</p><p>cada derivada irá compor uma coluna da matriz 𝐽(𝑥). A segunda linha será a derivada da se-</p><p>gunda linha de 𝐹(𝑥). Assim:</p><p>𝐽(𝑥) = (</p><p>2𝑥1 + 𝑥2𝑒</p><p>−𝑥1𝑥2 𝑥1𝑒</p><p>−𝑥1𝑥2</p><p>𝑥2 + cos𝑥1 𝑥1</p><p>)</p><p>Na expansão em Taylor, podemos desconsiderar o termo 𝒪 (||𝑠||</p><p>2</p><p>) que diz respeito ao</p><p>erro. Logo</p><p>𝐹(𝑥 + 𝑠) ≈ 𝐹(𝑥) + 𝐽(𝑥)𝑠</p><p>Se tomarmos 𝑥 + 𝑠 = 𝑥∗, então teremos de resolver a equação 𝐹(𝑥) + 𝐽(𝑥)𝑠 = 0. Ou seja,</p><p>nosso objetivo é determinar 𝑠. Note que, se 𝑥 é um vetor, 𝑠 também será um vetor. Para deter-</p><p>minado 𝑥 fixo, 𝐽(𝑥)𝑠 é uma matriz numérica e 𝐹(𝑥) é um vetor. Assim, 𝐹(𝑥) + 𝐽(𝑥)𝑠 = 0 é um</p><p>sistema linear. Ou seja:</p><p>𝐽(𝑥)𝑠 = −𝐹(𝑥)</p><p>Esse nada mais é do que o método de Newton para sistemas lineares. Assim, se descobrimos 𝑠</p><p>teremos de somar com 𝑥, de modo a adquirir uma aproximação da solução. Assim, um algoritmo</p><p>para esse método é semelhante ao algoritmo do método de Newton.</p><p>Seja 𝑥(0) uma aproximação razoável de 𝑥∗</p><p>Exemplo 4: Continuemos a resolução dos exemplos 2 e 3. Primeiro, devemos escolher um</p><p>ponto de partida. Tomemos 𝑥(0) = (2,1)𝑇:</p><p>𝐹(𝑥(0)) = (</p><p>(2)2 − 𝑒−2∙1</p><p>2 ∙ 1 + sin2</p><p>)</p><p>𝐹(𝑥(0)) = (</p><p>3.8647</p><p>2.9093</p><p>)</p><p>𝐽(𝑥(0)) = (2 ∙ 2 + 1𝑒</p><p>−2∙1 2𝑒−2∙1</p><p>1 + cos 2 2</p><p>)</p><p>𝐽(𝑥(0)) = (</p><p>4.1353 0.2707</p><p>0.5839 2.0000</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a7</p><p>1</p><p>Tomando a norma de 𝐹</p><p>||𝐹(𝑥(0))||</p><p>∞</p><p>= 3.8647</p><p>A norma mede o quão próximo nosso valor está de 𝐹(𝑥) = 0. O resultado que obtivemos está</p><p>longe de zero. Logo, precisamos ir para a segunda iteração. Para isso, precisamos resolver</p><p>𝐽(𝑥(0))𝑠(0) = −𝐹(𝑥(0)):</p><p>(</p><p>4.1353 0.2707</p><p>0.5839 2.0000</p><p>) 𝑠(0) = −(</p><p>3.8647</p><p>2.9093</p><p>)</p><p>Fazendo 𝑙2 = 𝑙2 −</p><p>0.5839</p><p>4.1353</p><p>𝑙1</p><p>(</p><p>4.1353 0.2707</p><p>0 1.9618</p><p>) 𝑠(0) = −(</p><p>3.8647</p><p>2.3636</p><p>)</p><p>Logo</p><p>𝑠2</p><p>(0)</p><p>= −1.2048</p><p>𝑠1</p><p>(0) = −0.8557</p><p>assim</p><p>𝑠(0) = (−0.8557,−1.2049)𝑇</p><p>Somando 𝑠(0) com 𝑥(0) teremos</p><p>𝑥(1) = 𝑥(0) + 𝑠(0) = (2,1𝑇) + (−0.8557,−1.2049)𝑇</p><p>𝑥(1) = (1.1443,−0.2049)𝑇</p><p>Agora, devemos aplicar esses novos valores em 𝐹(𝑥):</p><p>𝐹(𝑥(1)) = (</p><p>(1.1443)2 − 𝑒−1.1443∙(−0.2049)</p><p>1.1443 ∙ (−0.2049) + sin 1.1443</p><p>)</p><p>𝐹(𝑥(1)) = (</p><p>0.0453</p><p>0.6760</p><p>)</p><p>Nesse caso, ||𝐹(𝑥(1))||</p><p>∞</p><p>= 0.6760. Note que esse resultado está bem melhor que o resultado</p><p>original. Resolvendo a matriz jacobiana:</p><p>𝐽(𝑥(0)) = (2 ∙ 1.1443 − 0.2049𝑒</p><p>−1.1443∙(−0.2049) 1.1443𝑒−1.1443∙(−0.2049)</p><p>−0.2049 + cos 1.1443 1.1443</p><p>)</p><p>𝐽(𝑥(0)) = (</p><p>2.0297 1.4466</p><p>0.2088 1.1443</p><p>)</p><p>Resolvendo o sistema 𝐽(𝑥(1))𝑠(1) = −𝐹(𝑥(1)):</p><p>(</p><p>2.0297 1.4466</p><p>0.2088 1.1443</p><p>) 𝑠(1) = −(</p><p>0.0453</p><p>0.6760</p><p>)</p><p>Fazendo 𝑙2 = 𝑙2 −</p><p>0.2088</p><p>2.0297</p><p>𝑙1</p><p>(</p><p>2.0297 1.4466</p><p>0 0.9955</p><p>) 𝑠(1) = −(</p><p>0.0453</p><p>0.6713</p><p>)</p><p>𝑠2</p><p>(1) = −0.6743</p><p>𝑠1</p><p>(1) = 0.4583</p><p>P</p><p>ág</p><p>in</p><p>a7</p><p>2</p><p>logo 𝑠(1) = (0.4583,−0.6743)𝑇. Somando com 𝑥(1), obtemos 𝑥(2):</p><p>𝑥(2) = 𝑥(1) + 𝑠(1) = (1.6026,−.8792)𝑇</p><p>Agora, devemos aplicar esses novos valores, mais uma vez, em 𝐹(𝑥). Ao fazer isso, teremos uma</p><p>surpresa:</p><p>𝐹(𝑥(2)) = (</p><p>−1.5239</p><p>−0.4097</p><p>)</p><p>de modo que ||𝐹(𝑥(2))||</p><p>∞</p><p>= 1.5239. Aparentemente, nosso resultado começou a divergir da</p><p>solução. Será que fizemos alguma coisa errada? Antes de criarmos pânico, continuemos resol-</p><p>vendo a partir desse ponto. Iremos encontrar:</p><p>𝑥(3) = (1.5569,−0.6497)𝑇</p><p>de modo que</p><p>𝐹(𝑥(3)) = (</p><p>−0.3256</p><p>−0.0115</p><p>) ; ||𝐹(𝑥(3))||</p><p>∞</p><p>= 0.3256</p><p>assim, a próxima iteração nos forneceu um resultado ainda mais próximo da solução. Analisando</p><p>o gráfico, conseguimos ver que a cada iteração nos aproximamos mais da solução, mesmo, apa-</p><p>rentemente, o resultado ter divergido.</p><p>Mais duas iterações já nos colocaria numa região muito próxima da solução. A partir da terceira</p><p>iteração, a convergência passaria a ser quadrática:</p><p>O critério de parada para a resolução de uma equação não-linear é semelhante ao critério</p><p>usado para soluções lineares:</p><p>||𝑠(𝑘)|| ≤ 𝜖 ||𝑠(0)||</p><p>||𝐹(𝑥(𝑘))|| ≤ 𝜖 ||𝐹(𝑥(0))||</p><p>P</p><p>ág</p><p>in</p><p>a7</p><p>3</p><p>||𝐹(𝑥(𝑘))|| ≤ 𝜖1 ||𝐹(𝑥</p><p>(0))|| + 𝜖2</p><p>O algoritmo é:</p><p>Seja 𝑥(0) uma aproximação razoável de 𝑥∗:</p><p>Para o método de Newton para sistemas não-lineares, devemos ter em mente como re-</p><p>solver o sistema linear gerada a cada iteração. Esses subsistemas compreendem o chamado sub-</p><p>problema:</p><p>𝐽(𝑥(𝑘))𝑠(𝑘) = −𝐹(𝑥(𝑘))</p><p>Para o subproblema, tanto métodos diretos quanto métodos iterativos podem ser utilizados. No</p><p>caso de métodos iterativos, podemos emprega-los até atingir a convergência ou até atingir uma</p><p>solução aproximada.</p><p>Exercício 1: Dado o sistema a seguir, obtenha seu gráfico. Obtenha, também, a matriz</p><p>jacobiana e mostre qual o sistema linear deve ser resolvido a cada iteração.</p><p>{</p><p>𝑥1</p><p>2 + 𝑥2</p><p>2 − 2 = 0</p><p>𝑥1𝑥2 − 1 = 0</p><p>A primeira equação representa uma circunferência de raio √2. Já a segunda equação representa</p><p>uma hipérbole (𝑥2 = 1/𝑥1). Assim, o gráfico é dado por:</p><p>A matriz jacobiana é:</p><p>𝐽(𝑥) = (</p><p>2𝑥1 2𝑥2</p><p>𝑥2 𝑥1</p><p>)</p><p>O sistema linear que deve ser resolvido a cada iteração é:</p><p>P</p><p>ág</p><p>in</p><p>a7</p><p>4</p><p>𝐽(𝑥)𝑠 = −𝐹(𝑥)</p><p>(</p><p>2𝑥1 2𝑥2</p><p>𝑥2 𝑥1</p><p>) 𝑠 = −(</p><p>𝑥1</p><p>2 + 𝑥2</p><p>2 − 2</p><p>𝑥1𝑥1 − 1</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a7</p><p>5</p><p>Interpolação</p><p>Suponha que tenhamos uma tabela com os seguintes valores:</p><p>x y</p><p>2 1</p><p>3 7</p><p>4 8,5</p><p>6 12</p><p>Nossa meta é obter uma função que passe por esses pontos. Assim, podemos definir o problema</p><p>de interpolação como: dado um conjunto de pontos, devemos encontrar uma função que passe</p><p>por esses pontos.</p><p>Exemplo 1: Vamos considerar a função seno. Conhecemos os valores dessa função para</p><p>alguns pontos notáveis, como mostrado na tabela.</p><p>Partindo dos valores que dispomos, como podemos aproximar os valores da função para outros</p><p>pontos não tabelados? A curva tracejada preta representa o gráfico da função seno.</p><p>Nosso objetivo pode ser descrito como: desejamos encontrar uma função contínua que passe</p><p>pelos pontos marcados no gráfico. Será que há precisão? Quando temos poucos pontos e dese-</p><p>jamos encontrar uma função, temos uma informação muito vaga. Note que na figura acima, a</p><p>função tracejada em azul também passa pelos pontos tabelados.</p><p>Com o exemplo 1, vimos que procurar uma função que passe pelos pontos indicados é</p><p>uma formulação muito vaga do problema, de modo que podemos ter infinitas funções que sa-</p><p>tisfaçam nosso problema. Assim, devemos especificar o tipo de curva que nos interessa. Em</p><p>nosso tratamento, iremos trabalhar apenas com interpolação polinomial. Portanto, nossa mis-</p><p>são é encontrar um polinômio que passe pelos pontos prescritos.</p><p>Um polinômio é da forma:</p><p>𝑝𝑛(𝑥) = 𝑎0 + 𝑎1𝑥 + 𝑎2𝑥</p><p>2 + 𝑎3𝑥</p><p>3 +⋯+ 𝑎𝑛𝑥</p><p>𝑛</p><p>P</p><p>ág</p><p>in</p><p>a7</p><p>6</p><p>Nossa condição de interpolação é dada pela equação linear 𝑝(𝑥𝑖) = 𝑦𝑖. Então, o problema</p><p>de interpolação pode ser descrito como: dados 𝑥0</p><p>ser pré-computados, de modo</p><p>a reduzir o custo computacional. Note também que todos os polinômios de Lagrange diferem</p><p>entre si apenas por um único monômio.</p><p>𝑙𝑗(𝑥) =</p><p>(𝑥 − 𝑥0)… (𝑥 − 𝑥𝑗−1)(𝑥 − 𝑥𝑗+1)… (𝑥 − 𝑥𝑛)</p><p>(𝑥𝑗 − 𝑥0)… (𝑥𝑘 − 𝑥𝑗−1)(𝑥𝑗 − 𝑥𝑗+1)… (𝑥𝑗 − 𝑥𝑛)</p><p>Se</p><p>𝑙(𝑥) = (𝑥 − 𝑥0)(𝑥 − 𝑥1)… (𝑥 − 𝑥𝑛)</p><p>𝑤𝑗 =</p><p>1</p><p>∏ (𝑥𝑗 − 𝑥𝑘)𝑘=0</p><p>𝑘≠𝑗</p><p>então</p><p>𝑙𝑗(𝑥) = 𝑙(𝑥)</p><p>𝑤𝑗</p><p>𝑥 − 𝑥𝑗</p><p>Utilizando os coeficientes 𝑤𝑘 e o polinômio 𝑙 de grau (𝑛 + 1), o polinômio interpolador pode</p><p>ser reescrito de forma mais compacta:</p><p>𝑝(𝑥) = 𝑦0𝑙0(𝑥) + 𝑦1𝑙1(𝑥) + ⋯+ 𝑦𝑛𝑙𝑛(𝑥)</p><p>P</p><p>ág</p><p>in</p><p>a8</p><p>0</p><p>= 𝑦0𝑙(𝑥)</p><p>𝑤0</p><p>𝑥 − 𝑥0</p><p>+ 𝑦1𝑙(𝑥)</p><p>𝑤1</p><p>𝑥 − 𝑥1</p><p>+⋯+ 𝑦𝑛𝑙(𝑥)</p><p>𝑤𝑛</p><p>𝑥 − 𝑥𝑛</p><p>𝑝(𝑥) = 𝑙(𝑥) (𝑦0</p><p>𝑤0</p><p>𝑥 − 𝑥0</p><p>+ 𝑦1</p><p>𝑤1</p><p>𝑥 − 𝑥1</p><p>+⋯+ 𝑦𝑛</p><p>𝑤𝑛</p><p>𝑥 − 𝑥𝑛</p><p>)</p><p>Escrevendo na forma baricêntrica, reduzimos todos os problemas de interpolação por Lagrange.</p><p>𝑝(𝑥) = 𝑙(𝑥)∑𝑦𝑗</p><p>𝑤𝑗</p><p>𝑥 − 𝑥𝑗</p><p>𝑛</p><p>𝑗=0</p><p>𝑤𝑗 =</p><p>1</p><p>∏ (𝑥𝑗 − 𝑥𝑘)𝑘=0</p><p>𝑘≠𝑗</p><p>Se estivermos interpolando uma tabela de pontos, então não faz sentido perguntar qual</p><p>o erro de interpolação, visto que nosso polinômio terá exatamente esses pontos. Entretanto, ao</p><p>interpolar uma função podemos nos perguntar o quão próximo nosso resultado está, de fato,</p><p>da função. Em outras palavras, quão boa será nossa aproximação para a função desejada?</p><p>Para responder à questão apresentada, podemos recorrer a algumas hipóteses. Primeira,</p><p>a função 𝑓 tem de possuir (𝑛 + 1) derivadas contínuas. Segunda, o polinômio 𝑝 tem de possuir</p><p>grau no máximo 𝑛. Terceira, o polinômio 𝑝 tem que interpolar 𝑓 em {𝑥0, 𝑥1, … , 𝑥𝑛} ⊂ [𝑎, 𝑏].</p><p>Para um 𝑥 fixo, o erro de interpolação é dado por</p><p>𝐸(𝑥) ≡ 𝑓(𝑥) − 𝑝(𝑥)</p><p>de modo que 𝑥 ∉ {𝑥0, 𝑥1, … , 𝑥𝑛}</p><p>Vamos construir uma função auxiliar dada por</p><p>𝑔(𝑧) ≡ 𝐸(𝑥)𝜔(𝑧) − 𝐸(𝑧)𝜔(𝑥)</p><p>em que 𝜔(𝑧) ≡ (𝑧 − 𝑥0)(𝑧 − 𝑥1)… (𝑧 − 𝑥𝑛) e 𝜔(𝑥) ≡ (𝑥 − 𝑥0)(𝑥 − 𝑥1)… (𝑥 − 𝑥𝑛). Note que</p><p>𝜔 é um polinômio de grau (𝑛 + 1). Quantas derivadas possui a função 𝑔? Um polinômio é uma</p><p>função infinitamente diferenciável. Como 𝑓 possui (𝑛 + 1) derivadas contínuas, então 𝑔 possui</p><p>(𝑛 + 1) derivadas contínuas. A função 𝑔 se anula em 𝑥, 𝑥1, … , 𝑥𝑛.</p><p>Se uma função possui pontos de mesmo valor em a e b, então existe um ponto c dentro</p><p>desse intervalo cuja derivada é zero.</p><p>Sabemos que 𝑔 tem pelo menos (𝑛 + 2) zeros. Pelo teorema de Rolle, 𝑔′ terá pelo menos</p><p>(𝑛 + 1) zeros. De modo análogo, 𝑔′′ possui, pelo menos, 𝑛 zeros. Prosseguindo dessa maneira,</p><p>vemos que 𝑔(𝑛+1) tem, pelo menos, 1 zero. Seja 𝜉 um zero de 𝑔(𝑛+1). Temos</p><p>P</p><p>ág</p><p>in</p><p>a8</p><p>1</p><p>𝜔(𝑛+1)(𝑥) = (𝑛 + 1)!</p><p>𝐸(𝑛+1)(𝑥) = 𝑓(𝑛+1)(𝑥) − 0</p><p>𝑔(𝑛+1)(𝑧) = 𝐸(𝑥)(𝑛 + 1)! − 𝑓(𝑛+1)(𝑧)𝜔(𝑥)</p><p>Como 𝜉 é um zero de 𝑔(𝑛+1):</p><p>𝑔(𝑛+1)(𝜉) = 𝐸(𝑥)(𝑛 + 1)! − 𝑓(𝑛+1)(𝜉)𝜔(𝑥) = 0</p><p>Como queremos o erro:</p><p>𝐸(𝑥) =</p><p>𝑓(𝑛+1)(𝜉)</p><p>(𝑛 + 1)!</p><p>𝜔(𝑥)</p><p>Esse erro diz respeito apenas à região de interpolação.</p><p>Exemplo 8: Seja 𝑓(𝑥) = √𝑥 nos pontos 1, 2 e 4. Como temos 3 pontos, nosso polinômio</p><p>tem grau 𝑛 = 2. Logo</p><p>𝐸(𝑥) =</p><p>𝑓′′′(𝜉)</p><p>3!</p><p>(𝑥 − 1)(𝑥 − 2)(𝑥 − 4)</p><p>Tomando as derivadas:</p><p>𝑓′(𝑥) =</p><p>1</p><p>2</p><p>𝑥−1/2; 𝑓′′(𝑥) = −</p><p>1</p><p>4</p><p>𝑥−3/2; 𝑓′′′(𝑥) =</p><p>3</p><p>8</p><p>𝑥−5/2</p><p>Para 𝑥 ∈ (1,4), qual o máximo que 𝑓′′′(𝑥) assume? O valor máximo corresponde a</p><p>𝑀3 = max|𝑓</p><p>′′′(𝑥)| =</p><p>3</p><p>8</p><p>O termo 𝑀3 corresponde ao máximo da terceira derivada, que ocorre para quando 𝑥 = 1 (teste</p><p>com os valores 2 e 4 para certificar isso). Então</p><p>|𝐸(𝑥)| ≤ max|𝑓′′′(𝜉)| ∙ max|𝜔(𝑥)| ∙</p><p>1</p><p>3!</p><p>Essa fórmula nada mais é do que a fórmula do erro</p><p>𝐸(𝑥) =</p><p>𝑓(𝑛+1)(𝜉)</p><p>(𝑛 + 1)!</p><p>𝜔(𝑥)</p><p>tomando os máximos de 𝑓(𝑛+1)(𝜉) e 𝜔(𝑥). Precisamos calcular o máximo de 𝜔(𝑥). O máximo</p><p>ocorre no ponto onde a derivada é zero. Para esse caso:</p><p>𝜔(𝑥) = (𝑥 − 1)(𝑥 − 2)(𝑥 − 4)</p><p>Fazendo a derivada pela regra do produto e igualando a zero:</p><p>(𝑥 − 2)(𝑥 − 4) + (𝑥 − 1)(𝑥 − 4) + (𝑥 − 1)(𝑥 − 2) = 0</p><p>Fazendo a distributiva:</p><p>𝑥2 − 6𝑥 + 8 + 𝑥2 − 5𝑥 + 4 + 𝑥2 − 3𝑥 + 2 = 0</p><p>3𝑥2 − 14𝑥 + 14 = 0</p><p>𝑥 =</p><p>14 ± √196 − 168</p><p>6</p><p>P</p><p>ág</p><p>in</p><p>a8</p><p>2</p><p>𝑥 =</p><p>14 ± √28</p><p>6</p><p>=</p><p>14 ± 2√7</p><p>6</p><p>𝑥 =</p><p>7 ± √7</p><p>3</p><p>Como queremos o valor máximo</p><p>𝑥 =</p><p>7 + √7</p><p>3</p><p>Com isso</p><p>max|𝜔(𝑥)| = |𝜔 (</p><p>7 + √7</p><p>3</p><p>)| = |𝜔(3,215250437)|</p><p>Assim</p><p>|𝜔(𝑥)| = |(3,215250437 − 1)(3,215250437 − 2)(3,215250437 − 4)| = 2,1126</p><p>Por fim</p><p>|𝐸(𝑥)| ≤</p><p>3</p><p>8 ∙ 2,1126</p><p>3!</p><p>= 0,13204</p><p>Exemplo 9: Com que grau de precisão podemos aproximar √115 usando interpolação</p><p>quadrática sobre os pontos 100, 121 e 144.</p><p>Novamente temos 3 pontos, de modo que 𝑛 = 2. Usando a mesma diferenciação do exem-</p><p>plo 8, temos:</p><p>𝑓′′′(𝑥) =</p><p>3</p><p>8</p><p>𝑥−5/2</p><p>de modo que o máximo ocorre para o ponto 100:</p><p>𝑓′′′(100) =</p><p>3</p><p>8</p><p>1</p><p>(100)5/2</p><p>=</p><p>3</p><p>8</p><p>∙ 10−5</p><p>O erro é</p><p>|𝐸(𝑥)| ≤</p><p>𝑀3</p><p>3!</p><p>𝜔(𝑥)</p><p>Note que nesse exemplo, 𝜔(𝑥) = 𝜔(115). Com isso</p><p>𝜔(115) = (115 − 100)(115 − 121)(115 − 144) = 2610</p><p>Logo</p><p>|𝐸(𝑥)| ≤</p><p>3</p><p>8</p><p>∙ 10−5</p><p>1</p><p>3!</p><p>∙ 2610 = 1.631 ∙ 10−3</p><p>Suponha que uma função foi interpolada em apenas dois pontos. De acordo com a ima-</p><p>gem a seguir, é nítido que uma interpolação que passe apenas por esses dois pontos não seja</p><p>suficiente. Afinal, uma função que contenha esses dois pontos pode ser uma reta, mas a função</p><p>procurada pode ser bem diferente disso. Porém, podemos nos aproximar de uma melhor</p><p>P</p><p>ág</p><p>in</p><p>a8</p><p>3</p><p>solução se tivermos mais pontos para interpolar. Na figura, a curva representa a função dese-</p><p>jada, enquanto que a reta vermelha mostra a interpolação com apenas dois pontos.</p><p>Na imagem a seguir fizemos interpolações usando 3 pontos (𝑝2), 4 pontos (𝑝3) e 5 pontos (𝑝4).</p><p>De forma nítida, o polinômio 𝑝4 foi o que mais se aproximou da função real que buscamos.</p><p>A partir dessa análise, podemos nos questionar: será que inserindo mais pontos chegare-</p><p>mos cada vez mais próximos da função procurada?</p><p>A resposta é negativa. A adição de mais pontos pode ocasionar um aumento no erro de</p><p>interpolação, gerando o que chamamos de fenômeno de Runge. Na figura a seguir é possível ver</p><p>um polinômio interpolar de grau 6 (isso é, possui 7 pontos) em azul e um polinômio interpolar</p><p>de grau 10 (com 11 pontos) em vermelho. Note que o erro máximo de interpolação é maior no</p><p>polinômio de grau 10.</p><p>Em uma malha de pontos regularmente espaçados, os polinômios interpolares em geral</p><p>divergem. Entretanto, é possível garantir que o polinômio interpolar convirja para a função</p><p>P</p><p>ág</p><p>in</p><p>a8</p><p>4</p><p>mesmo adicionando mais pontos (contanto que esses pontos sejam cuidadosamente seleciona-</p><p>dos). Na figura seguinte temos uma interpolação com 11 pontos igualmente espaçados (com</p><p>erro grande) e mais duas interpolações, com 11 e 15 pontos, criteriosamente escolhidos. Na</p><p>interpolação com 15 pontos é mais difícil distinguir visualmente a função original do polinômio</p><p>interpolador.</p><p>Os pontos que garantem a convergência do polinômio interpolador são os zeros de poli-</p><p>nômios especiais, denominados polinômios de Chebyshev.</p><p>A grande dificuldade de fugir do fenômeno de Runge é que, em problemas práticos, é</p><p>bem difícil escolher quais pontos usaremos na interpolação.</p><p>Vejamos um caso onde temos que interpolar 7 pontos. Uma maneira de proceder é: ao</p><p>invés de procurar um polinômio de grau 6, podemos, a cada dois pontos, interpolar um polinô-</p><p>mio de grau 1. Dessa maneira utilizaremos todos os 7 pontos e evitaremos o fenômeno de</p><p>Runge.</p><p>Note que a função de interpolação não é mais um polinômio, mas sim uma função definida de</p><p>forma diferente em cada subintervalo. Em cada subintervalo, a função é um polinômio de grau</p><p>diferente. Uma função definida dessa forma é dita ser um polinômio de grau 1 por partes. Como</p><p>a condição de interpolação em cada ponto é satisfeita, então a função como um todo é contínua.</p><p>Mas ao invés de tomarmos apenas 2 pontos, podemos tomar 3 e construir um polinômio</p><p>de grau 2. Semelhante ao que vimos anteriormente, a função interpolar, nesse caso, é dita ser</p><p>P</p><p>ág</p><p>in</p><p>a8</p><p>5</p><p>um polinômio de grau 2 por partes. Assim como o polinômio de grau 1, para grau 2 obtemos</p><p>uma função contínua.</p><p>Podemos prosseguir o raciocínio e montar um polinômio de grau 3, tomando 4 pontos. O</p><p>problema aqui é que, embora não fique evidente na figura, a função não é diferenciável no</p><p>ponto 𝑥 = 3. O fato é que nesse ponto os dois polinômios de grau 3 estão “colados”.</p><p>Quando fazemos uma interpolação por partes, o conjunto de pontos de interpolação deve</p><p>ser fracionado em porções menores.</p><p>Suponha que desejamos interpolar os pontos por um</p><p>polinômio de grau, no máximo, 2. Assim, devemos esco-</p><p>lher regiões que possua conjuntos de 3 pontos.</p><p>Sejam os pontos de interpolação original dados por</p><p>(𝑥0, 𝑦0), (𝑥1, 𝑦1), … , (𝑥𝑛, 𝑦𝑛), ordenados de tal forma</p><p>que 𝑥𝑘 > 𝑥𝑗 se 𝑘 > 𝑗. O intervalo de interpolação 𝐼 =</p><p>[𝑥0, 𝑥𝑛] pode então ser escrito como 𝐼 = 𝐼0 ∪ 𝐼1 ∪ …𝐼𝑚. Dessa forma, precisamos resolver 𝑚</p><p>problemas de interpolação, um para cada subintervalo. Dizemos que 𝑝𝑖 é o polinômio interpo-</p><p>lador no intervalo 𝐼𝑗. O grau de cada polinômio interpolador depende de quantos pontos de</p><p>interpolação há em cada subintervalo 𝐼𝑘. Se todos os polinômios tiverem o mesmo grau, diga-</p><p>mos 𝑞, dizemos que a função 𝑠 é um polinômio por partes de grau 𝑞:</p><p>𝑠(𝑥) = 𝑝𝑘(𝑥)</p><p>P</p><p>ág</p><p>in</p><p>a8</p><p>6</p><p>se 𝑥 ∈ 𝐼𝑘. O erro de interpolação é limitado pelo erro em cada subintervalo. Para interpolação</p><p>linear por partes, chamadas de splines lineares, temos:</p><p>|𝐸(𝑥)| ≤</p><p>𝑀2ℎ</p><p>2</p><p>8</p><p>onde ℎ = max|𝑥𝑘 − 𝑥𝑘−1|. Podemos entender o valor de ℎ, também, da seguinte maneira: te-</p><p>mos um intervalo de interpolação [𝑎, 𝑏] dividido em 𝑛 subintervalos. Então, ℎ será o compri-</p><p>mento de cada subintervalo, dado por:</p><p>ℎ =</p><p>|𝑏 − 𝑎|</p><p>𝑛</p><p>Exemplo 10: Em quantos pontos regularmente amostrados em [0,2] devemos tabelar a</p><p>função 𝑓(𝑥) = (2𝑥 + 1)/(𝑥 − 3) de modo a garantir um erro inferior a 10−4 com splines linea-</p><p>res?</p><p>Temos que</p><p>𝑓′(𝑥) =</p><p>2(𝑥 − 3) − (2𝑥 + 1)</p><p>(𝑥 − 3)2</p><p>= −</p><p>7</p><p>(𝑥 − 3)2</p><p>Como precisamos de 𝑀2:</p><p>𝑓′′(𝑥) =</p><p>7 ∙ 2(𝑥 − 3)</p><p>(𝑥 − 3)4</p><p>=</p><p>14</p><p>(𝑥 − 3)3</p><p>Analisando nos extremos:</p><p>𝑓′′(0) =</p><p>14</p><p>−27</p><p>𝑓′′(2) =</p><p>14</p><p>1</p><p>= 14 → máximo</p><p>Como queremos um erro inferior a 10−4:</p><p>10−4 ></p><p>𝑀2ℎ</p><p>2</p><p>8</p><p>ℎ2</p><p>𝜋</p><p>2√8</p><p>102 ≈ 55.5</p><p>Ou seja, precisamos de, pelo menos, 57 pontos.</p><p>Polinômios de grau 3 por partes que possuem, pelo menos, duas derivadas são denomi-</p><p>nados splines cúbicos. Dado um conjunto de pontos 𝑥0</p><p>− 𝑦|2 =∑(𝜙(𝑥𝑖) − 𝑦𝑖)</p><p>2</p><p>𝑚</p><p>𝑖=1</p><p>Podemos resumir nosso problema da seguinte forma: dado {(𝑥1, 𝑦1), … (𝑥𝑚, 𝑦𝑚)} ⊂ ℝ</p><p>2,</p><p>queremos encontrar 𝜙(𝑥) = 𝑐1𝜙1(𝑥) + 𝑐2𝜙2(𝑥) + 𝑐3𝜙3(𝑥) + 𝑐4𝜙4(𝑥) que minimize</p><p>|𝜙 − 𝑦|2 =∑(𝜙(𝑥𝑖) − 𝑦𝑖)</p><p>2</p><p>𝑚</p><p>𝑖=1</p><p>Uma notação que iremos usar é de transpostas: 𝜙 = (𝜙(𝑥1), 𝜙(𝑥2),… , 𝜙(𝑥𝑚))</p><p>𝑇</p><p>e 𝑦 =</p><p>(𝑦1, 𝑦2, … , 𝑦𝑚)</p><p>𝑇.</p><p>O problema de ajuste é o de encontrar a função 𝜙, que é uma combinação linear das</p><p>funções prescritas, que minimiza a soma dos quadrados dos desvios entre os valores amostrados</p><p>e os valores preditos pela função 𝜙. Assim, o critério dos quadrados mínimos será |𝜙 − 𝑦|2.</p><p>Usando a definição de função 𝜙, podemos reescrever de forma explícita o vetor 𝜙 em</p><p>função dos coeficientes 𝑐𝑖:</p><p>𝜙 = (</p><p>𝜙(𝑥1)</p><p>𝜙(𝑥2)</p><p>⋮</p><p>𝜙(𝑥𝑚)</p><p>) = (</p><p>𝑐1𝜙1(𝑥1) + 𝑐2𝜙2(𝑥1) + 𝑐3𝜙3(𝑥1) + 𝑐4𝜙4(𝑥1)</p><p>𝑐1𝜙1(𝑥2) + 𝑐2𝜙2(𝑥2) + 𝑐3𝜙3(𝑥2) + 𝑐4𝜙4(𝑥2)</p><p>⋮</p><p>𝑐1𝜙1(𝑥𝑚) + 𝑐2𝜙2(𝑥𝑚) + 𝑐3𝜙3(𝑥𝑚) + 𝑐4𝜙4(𝑥𝑚)</p><p>)</p><p>O vetor 𝜙 pode ser representado por um produto matricial Φ𝑐, onde cada elemento de Φ é a</p><p>avaliação de uma das funções 𝜙𝑗 prescritas em um dos pontos 𝑥𝑖 amostrados. Aqui, 𝑐 é a matriz</p><p>dos coeficientes a serem determinados. Assim:</p><p>𝜙 = Φ𝑐</p><p>Φ = (</p><p>𝜙1(𝑥1) 𝜙2(𝑥1) 𝜙3(𝑥1) 𝜙4(𝑥1)</p><p>𝜙1(𝑥2) 𝜙2(𝑥2) 𝜙3(𝑥2) 𝜙4(𝑥2)</p><p>⋮</p><p>𝜙1(𝑥𝑚) 𝜙2(𝑥𝑚) 𝜙3(𝑥𝑚) 𝜙4(𝑥𝑚)</p><p>)</p><p>𝑐 = (</p><p>𝑐1</p><p>𝑐2</p><p>𝑐3</p><p>𝑐4</p><p>)</p><p>Usando a propriedade de que |𝑢|2 = 𝑢𝑇𝑢, temos que a função objetivo, dada por</p><p>|𝜙 − 𝑦|2, pode ser reescrita como uma quadrática em 𝑐:</p><p>|𝜙 − 𝑦|2 = |Φ𝑐 − 𝑦|2</p><p>= (Φ𝑐 − 𝑦)𝑇(Φ𝑐 − 𝑦)</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>2</p><p>= 𝑐𝑇(Φ𝑇Φ)𝑐 − 2𝑐𝑇Φ𝑇𝑦 + 𝑦𝑇𝑦</p><p>Vamos lembrar uma propriedade do cálculo: se 𝑀 ∈ ℝ𝑛×𝑛 e 𝑥, 𝑦 ∈ ℝ𝑛, então</p><p>∇𝑥(𝑥𝑇𝑀𝑥) = 𝑀𝑥 −𝑀𝑇𝑥</p><p>∇𝑥(𝑥𝑇𝑀𝑦) = 𝑀𝑦</p><p>Como queremos minimizar |𝜙 − 𝑦|2, então o gradiente deve se anular (ponto de mí-</p><p>nimo):</p><p>∇(|𝜙 − 𝑦|2) = 0</p><p>Com isso:</p><p>∇(|𝜙 − 𝑦|2) = ∇(𝑐𝑇(Φ𝑇Φ)𝑐 − 2𝑐𝑇Φ𝑇𝑦 + 𝑦𝑇𝑦) = 2Φ𝑇Φ𝑐 − 2Φ𝑇𝑦</p><p>ou</p><p>Φ𝑇Φ𝑐 = Φ𝑇𝑦</p><p>Agora estamos prontos para voltar ao nosso gráfico de pontos. Lembre-se- se que deter-</p><p>minar que o polinômio que o descreve é, aparentemente, de grau 3, de modo que</p><p>𝜙(𝑥) = 𝑐1𝜙1(𝑥) + 𝑐2𝜙2(𝑥) + 𝑐3𝜙3(𝑥) + 𝑐4𝜙4(𝑥)</p><p>onde 𝜙1(𝑥) = 1;𝜙2(𝑥) = 𝑥;𝜙3(𝑥) = 𝑥</p><p>2 e 𝜙4(𝑥) = 𝑥</p><p>3. Com isso, nossa matriz Φ será:</p><p>Φ =</p><p>(</p><p>1 𝑥1 𝑥1</p><p>2 𝑥1</p><p>3</p><p>1 𝑥2 𝑥2</p><p>2 𝑥2</p><p>3</p><p>⋮</p><p>1 𝑥𝑚 𝑥𝑚</p><p>2 𝑥𝑚</p><p>3 )</p><p>Exemplo 1: Vamos analisar um caso numérico. Vamos exibir graficamente os pontos</p><p>amostrados e ajusta-los por uma curva adequada.</p><p>Vamos utilizar o Matlab/Octave para nos ajudar. Primeiro, vamos construir o gráfico gerando</p><p>uma matriz para 𝑓(𝑥). Tomando 𝑓(𝑥) = 𝑦, fazemos:</p><p>Vamos fazer o mesmo para 𝑥:</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>3</p><p>Agora devemos construir o gráfico de pontos. Vamos representar os pontos por bolinhas. Assim,</p><p>fazemos:</p><p>Olhando a curva obtida é sensato supor que estamos diante de um gráfico de logaritmo. Assim,</p><p>nossa função será:</p><p>𝜙(𝑥) = 𝑐1𝜙1(𝑥) + 𝑐2𝜙2(𝑥)</p><p>𝜙(𝑥) = 𝑐1 + 𝑐2 log(𝑥)</p><p>de modo que 𝜙1(𝑥) = 1 e 𝜙2(𝑥) = log(𝑥). Note que é sempre bom tomar 𝜙1(𝑥) como sendo</p><p>1, de modo que 𝜙2(𝑥) é a função desejada. Vamos construir a matriz Φ, de modo que a primeira</p><p>coluna será os valores de 𝜙1(𝑥) aplicados aos pontos de 𝑥 e a segunda coluna será os valores de</p><p>log(𝑥) aplicados aos valores de 𝑥. Denotando a matriz Φ por p:</p><p>O comando ones(7,1) cria um vetor de 7 linhas com valor 1. O próximo passo é calcular pTp</p><p>(Φ𝑇Φ). Vamos chamar esse produto de A:</p><p>Note que estamos resolvendo o sistema 𝐴𝑐 = 𝑏, de modo que 𝐴 = Φ𝑇Φ e 𝑏 = Φ𝑇𝑦. Calculando</p><p>𝑏:</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>4</p><p>Agora, por fim, vamos encontrar os coeficientes 𝑐𝑖:</p><p>Assim, nossa função se torna 𝜙(𝑥) = 0.98935 + 5.47411 ∙ log(𝑥). Plotando o gráfico com essa</p><p>função:</p><p>Com isso vemos que nosso ajuste está satisfatório.</p><p>Etapas para trabalhar com quadrados mínimos</p><p>Para resolver problemas através de quadrados mínimos é conveniente seguir algumas</p><p>etapas. Vamos analisa-las aqui, de modo a generalizar nosso estudo.</p><p>A qualidade de um ajuste depende da escolha do espaço de aproximação. Por exemplo,</p><p>no exemplo anterior, aproximamos o polinômio por uma função logarítmica. Podemos usar as</p><p>seguintes aproximações:</p><p>• Polinômios</p><p>{1, 𝑥, 𝑥2, … , 𝑥𝑛}</p><p>• Polinômios trigonométricos</p><p>{1, cos(𝑥) , sin(𝑥) , … , cos(𝑘𝑥) , sin(𝑘𝑥)}</p><p>• Exponenciais</p><p>{𝑒−𝑘𝑥, … , 𝑒−𝑥, 1, 𝑒𝑥, … , 𝑒𝑘𝑥}</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>5</p><p>A próxima etapa é construir a matriz Φ. Essa é uma matriz 𝑚× 𝑛, de modo que (Φ)𝑖𝑗 =</p><p>𝜙𝑗(𝑥𝑖). A matriz 𝐴 é definida por 𝐴 = (Φ𝑇Φ), de modo a ser de ordem 𝑛 × 𝑛. Essa é uma matriz</p><p>simétrica, pois 𝐴 = Φ𝑇Φ → 𝐴𝑇 = (Φ𝑇Φ)𝑇 = Φ𝑇Φ𝑇𝑇 = Φ𝑇Φ = 𝐴.</p><p>Por fim, a última etapa consiste em resolver um sistema normal, dado por 𝐴𝑐 = 𝑏, onde</p><p>𝐴 = Φ𝑇Φ e 𝑏 = Φ𝑇𝑦. Para resolver esse sistema podemos recorrer à eliminação de Gauss, de-</p><p>composição de Cholesky, decomposição QR ou decomposição SVD. Como sabemos, o custo da</p><p>eliminação de Gauss é de 2/3 𝑛³. Na decomposição de Cholesky, o custo é 1/3 𝑛³. Já na decom-</p><p>posição QR, o custo é 4/3 𝑛³. Embora seja mais cara, a decomposição QR é mais confiável. Por</p><p>fim, a decomposição SVD tem um custo de 10/3 𝑛³, mas é o método que melhor resolve pro-</p><p>blemas mais complexos.</p><p>Exemplo 2: Exiba graficamente os pontos amostrados e a eles ajuste a curva 𝜙(𝑥) =</p><p>𝑐1𝑒</p><p>−𝑥 + 𝑐2 + 𝑐3𝑒</p><p>𝑥.</p><p>Vamos montar o gráfico em Matlab/Octave.</p><p>O gráfico está mostrado a seguir. Agora, devemos criar a matriz Φ. Aplicando os valores de 𝜙(𝑥)</p><p>atribuídos à curva, teremos:</p><p>Agora, vamos criar a matriz 𝐴 = Φ𝑇Φ:</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>6</p><p>O próximo passo é calcular a matriz 𝑏 = Φ𝑇𝑦:</p><p>Agora, vamos resolver o sistema 𝐴𝑐 = 𝑏:</p><p>O gráfico a seguir é a distribuição dos pontos.</p><p>Usando os valores de 𝑐 em 𝜙(𝑥) = 𝑐1𝑒</p><p>−𝑥 + 𝑐2 + 𝑐3𝑒</p><p>𝑥 teremos a curva:</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>7</p><p>Ajuste não linear</p><p>Nem sempre iremos conseguir ajustar pontos amostrados à todas as curvas. O fato é que</p><p>existem curvas não lineares. Entretanto, muitas dessas curvas podem ser linearizadas.</p><p>Exemplo 3: A curva 𝜙(𝑥) = 𝛼𝑒𝛽𝑥 pode ser linearizada?</p><p>Podemos linearizar a curva tomando o logaritmo em ambos lados:</p><p>ln 𝜙(𝑥) = ln 𝛼 + 𝛽𝑥</p><p>de modo que ln 𝛼 é nosso 𝑐1 e 𝛽 é nosso 𝑐2.</p><p>Exemplo 4: A curva 𝜙(𝑥) = 1/(𝑐1 + 𝑐2𝑥) pode ser linearizada?</p><p>Esse caso é simples. Basta invertemos ambos lados:</p><p>1</p><p>𝜙(𝑥)</p><p>= 𝑐1 + 𝑐2𝑥</p><p>Exemplo 5: linearize a curva 𝜙(𝑥) = 𝑥 + 𝑥2/(𝛼 + 𝛽𝑥)</p><p>Subtraindo 𝑥 em ambos lados:</p><p>𝜙(𝑥) − 𝑥 =</p><p>𝑥2</p><p>𝛼 + 𝛽𝑥</p><p>Invertendo ambos lados</p><p>1</p><p>𝜙(𝑥) − 𝑥</p><p>=</p><p>𝛼 + 𝛽𝑥</p><p>𝑥2</p><p>𝑥2</p><p>𝜙(𝑥) − 𝑥</p><p>= 𝛼 + 𝛽𝑥</p><p>Podemos, se preferir, chamar o lado esquerdo da equação acima de 𝑧. Assim:</p><p>𝑧 = 𝛼 + 𝛽𝑥</p><p>Exemplo 6: Linearize 𝜙(𝑥) = 𝑎0 cos(𝑎1𝑥)</p><p>Esse é um exemplo de curva que não podemos linearizar. Assim, nem sempre podemos</p><p>ajustar curvas não lineares.</p><p>EXERCÍCIOS DE REVISÃO</p><p>Exercício 1: Ajuste uma curva aos pontos dados: 𝑓(𝑥) → 𝑓(−20) = 0,128; 𝑓(10) =</p><p>0,134 e 𝑓(70) = 0,144.</p><p>Plotando o gráfico, temos a imagem</p><p>ao lado. Um bom palpite é aproximar a fun-</p><p>ção para uma reta. Assim:</p><p>𝜙(𝑥) = 𝑐1𝑥 + 𝑐2</p><p>Agora devemos gerar a matriz Φ. Ela é ge-</p><p>rada aplicando 𝜙𝑖(𝑥) nos pontos dados (de</p><p>modo que 𝜙1(𝑥) = 𝑥 e 𝜙2(𝑥) = 1). Assim:</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>8</p><p>Φ = (</p><p>−20 1</p><p>10 1</p><p>70 1</p><p>)</p><p>O próximo passo é calcular a matriz 𝐴 = Φ𝑇Φ:</p><p>𝐴 = (</p><p>−20 10 70</p><p>1 1 1</p><p>) (</p><p>−20 1</p><p>10 1</p><p>70 1</p><p>)</p><p>𝐴 = (</p><p>5400 60</p><p>60 3</p><p>)</p><p>Agora calculamos a matriz 𝑏 = Φ𝑇𝑦:</p><p>𝑏 = (</p><p>−20 10 70</p><p>1 1 1</p><p>) (</p><p>0,128</p><p>0,134</p><p>0,144</p><p>)</p><p>𝑏 = (</p><p>8,860</p><p>0,406</p><p>)</p><p>O que nos resta é resolver o sistema 𝐴𝑐 = 𝑏</p><p>(</p><p>5400 60</p><p>60 3</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>8,860</p><p>0,406</p><p>)</p><p>Resolvendo por eliminação gaussiana, fazemos 𝑙2</p><p>= 𝑙2 −</p><p>60</p><p>5400</p><p>𝑙1</p><p>(</p><p>5400 60</p><p>0 2,3333</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>8,860</p><p>0,3075</p><p>)</p><p>Com isso, 𝑐2 = 0,1318 e 𝑐1 = 0,0001763. Logo</p><p>𝜙(𝑥) = 0,0001763𝑥 + 0,1318</p><p>Plotando o gráfico:</p><p>Assim, nossa aproximação está satisfatória.</p><p>Exercício 2: Ajuste uma curva aos pontos 𝑥 = (−1,0,2) e 𝑦 = (4,1,−1).</p><p>A construção do gráfico está mostrada a seguir. Note que um bom palpite é que a função</p><p>seja exponencial decrescente. Vamos, primeiro, escrever o polinômio 𝜙(𝑥):</p><p>𝜙(𝑥) = 𝑐1 + 𝑐2𝑒</p><p>−𝑥</p><p>P</p><p>ág</p><p>in</p><p>a9</p><p>9</p><p>Eu poderia escolher um outro polinômio com expoente, por exemplo 𝜙(𝑥) = 𝑐1𝑒</p><p>−𝑥 somente ou</p><p>até 𝜙(𝑥) = 𝑐1𝑒</p><p>−𝑥 + 𝑐2 + 𝑐3𝑒</p><p>𝑥. Mas optei por trabalhar dessa forma. Assim, a matriz Φ será</p><p>𝜙𝑖(𝑥) aplicado aos valores de 𝑥, onde aqui 𝜙1(𝑥) = 1 e 𝜙2(𝑥) = 𝑒</p><p>−𝑥. Assim:</p><p>Φ = (</p><p>1 2,7183</p><p>1 1</p><p>1 0,1353</p><p>)</p><p>O próximo passo é calcular 𝐴 = Φ𝑇Φ</p><p>𝐴 = (</p><p>1 1 1</p><p>2,7183 1 0,1353</p><p>)(</p><p>1 2,7183</p><p>1 1</p><p>1 0,1353</p><p>)</p><p>𝐴 = (</p><p>3 3,8536</p><p>3,8536 8,4075</p><p>)</p><p>Agora, fazemos 𝑏 = Φ𝑇𝑦</p><p>𝑏 = (</p><p>1 1 1</p><p>2,7183 1 0,1353</p><p>)(</p><p>4</p><p>1</p><p>−1</p><p>)</p><p>𝑏 = (</p><p>4</p><p>11,7379</p><p>)</p><p>Por fim, devemos resolver o sistema 𝐴𝑐 = 𝑏</p><p>(</p><p>3 3,8536</p><p>3,8536 8,4075</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>4</p><p>11,7379</p><p>)</p><p>Por eliminação de Gauss, fazemos 𝑙2 = 𝑙2 −</p><p>3,8536</p><p>3</p><p>𝑙1</p><p>(</p><p>3 3,8536</p><p>0 3,4574</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>4</p><p>6,5998</p><p>)</p><p>O que fornece 𝑐2 = 1,9089 e 𝑐1 = −1,1187. Logo</p><p>𝜙(𝑥) = −1,1187 + 1,9089𝑒−𝑥</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>0</p><p>Exercício 3: Construa um polinômio para 𝑓(𝑥) = √𝑥 nos pontos 𝑥 = 1, 2 e 4.</p><p>Esse exercício foi feito no exemplo 5 da seção de interpolação. Vamos aplicar o método</p><p>de Lagrange. Como temos 3 pontos, então buscamos um polinômio de grau máximo 2. Logo:</p><p>𝑝(𝑥) = 𝑦0𝑙0(𝑥) + 𝑦1𝑙1(𝑥) + 𝑦2𝑙2(𝑥)</p><p>Como 𝑦 = 𝑓(𝑥) = √𝑥, para 𝑥0 = 1, 𝑥1 = 2 e 𝑥2 = 4 teremos:</p><p>𝑦0 = 1</p><p>𝑦1 = √2</p><p>𝑦2 = 2</p><p>Fazendo a construção pela fórmula de Lagrange:</p><p>𝑙0 =</p><p>(𝑥 − 𝑥1)(𝑥 − 𝑥2)</p><p>(𝑥0 − 𝑥1)(𝑥0 − 𝑥2)</p><p>=</p><p>(𝑥 − 2)(𝑥 − 4)</p><p>(1 − 2)(1 − 4)</p><p>𝑙1 =</p><p>(𝑥 − 𝑥0)(𝑥 − 𝑥2)</p><p>(𝑥1 − 𝑥0)(𝑥1 − 𝑥2)</p><p>=</p><p>(𝑥 − 1)(𝑥 − 4)</p><p>(2 − 1)(2 − 4)</p><p>𝑙2 =</p><p>(𝑥 − 𝑥0)(𝑥 − 𝑥1)</p><p>(𝑥2 − 𝑥0)(𝑥2 − 𝑥1)</p><p>=</p><p>(𝑥 − 1)(𝑥 − 2)</p><p>(4 − 1)(4 − 2)</p><p>Com isso, obtemos o seguinte polinômio:</p><p>𝑝(𝑥) = 1</p><p>(𝑥 − 2)(𝑥 − 4)</p><p>(1 − 2)(1 − 4)</p><p>+ √2</p><p>(𝑥 − 1)(𝑥 − 4)</p><p>(2 − 1)(2 − 4)</p><p>+ 2</p><p>(𝑥 − 1)(𝑥 − 2)</p><p>(4 − 1)(4 − 2)</p><p>Agora o tratamento é puramente algébrico. Fazendo as distributivas e juntando os termos se-</p><p>melhantes (e aqui também usei uma aproximação para √2), teremos:</p><p>𝑝(𝑥) = −0,042𝑥2 + 0,535𝑥 + 0,505</p><p>Que é o polinômio procurado.</p><p>Exercício 4: Refaça o exercício anterior usando quadrados mínimos.</p><p>Agora, vamos tentar obter a mesma resposta por quadrados mínimos. Como buscamos</p><p>um polinômio de grau 2, irei escrever a função 𝜙 como:</p><p>𝜙(𝑥) = 𝑐1𝜙1(𝑥) + 𝑐2𝜙2(𝑥) + 𝑐3𝜙3(𝑥)</p><p>de modo que 𝜙1(𝑥) = 𝑥</p><p>2; 𝜙2(𝑥) = 𝑥 e 𝜙3(𝑥) = 1. A matriz Φ será:</p><p>Φ = (</p><p>1 1 1</p><p>4 2 1</p><p>16 4 1</p><p>)</p><p>Agora, fazemos a matriz 𝐴 = Φ𝑇Φ:</p><p>𝐴 = (</p><p>1 4 16</p><p>1 2 4</p><p>1 1 1</p><p>)(</p><p>1 1 1</p><p>4 2 1</p><p>16 4 1</p><p>) = (</p><p>273 73 21</p><p>73 21 7</p><p>21 7 3</p><p>)</p><p>O próximo passo é calcular 𝑏 = Φ𝑇𝑦</p><p>𝑏 = (</p><p>1 4 16</p><p>1 2 4</p><p>1 1 1</p><p>) (</p><p>1</p><p>1,414</p><p>2</p><p>) = (</p><p>38,656</p><p>11,828</p><p>4,414</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>1</p><p>Como descobrimos a matriz 𝐴 e 𝑏, devemos resolver o sistema 𝐴𝑐 = 𝑏:</p><p>(</p><p>273 73 21</p><p>73 21 7</p><p>21 7 3</p><p>)(</p><p>𝑐1</p><p>𝑐2</p><p>𝑐3</p><p>) = (</p><p>38,656</p><p>11,828</p><p>4,414</p><p>)</p><p>Recorrendo à eliminação de Gauss, faremos:</p><p>𝑙2 = 𝑙2 −</p><p>73</p><p>273</p><p>𝑙1</p><p>𝑙3 = 𝑙3 −</p><p>21</p><p>273</p><p>𝑙1</p><p>(</p><p>273 73 21</p><p>0 1,47985 1,38462</p><p>0 1,38462 1,38462</p><p>)(</p><p>𝑐1</p><p>𝑐2</p><p>𝑐3</p><p>) = (</p><p>38,656</p><p>1,4914</p><p>1,44046</p><p>)</p><p>Agora fazemos</p><p>𝑙3 = 𝑙3 −</p><p>1,38462</p><p>1,47985</p><p>𝑙2</p><p>(</p><p>273 73 21</p><p>0 1,47985 1,38462</p><p>0 0 0,08910</p><p>)(</p><p>𝑐1</p><p>𝑐2</p><p>𝑐3</p><p>) = (</p><p>38,656</p><p>1,4914</p><p>0,04503</p><p>)</p><p>Logo, temos 𝑐3 = 0,505; 𝑐2 = 0,535 e 𝑐1 = −0,0403. Nossa função 𝜙 se torna:</p><p>𝜙(𝑥) = −0,0403𝑥2 + 0,535𝑥 + 0,505</p><p>Esse é um resultado muito próximo daquele encontrado pelo método de Lagrange. A imagem</p><p>mostra o ajuste realizado por esse polinômio.</p><p>O programa em Matlab/Octave é:</p><p>Exercício 5: Usando o método dos quadrados mínimos, determine a solução aproximada</p><p>do sistema linear incompatível:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>2</p><p>Um sistema é dito ser incompatível quando não admite soluções. Seja esse sistema ex-</p><p>presso por 𝐴𝑥 = 𝑦, de modo que</p><p>𝐴 =</p><p>(</p><p>1 −3</p><p>2 −5</p><p>−1</p><p>3</p><p>1</p><p>2</p><p>−1</p><p>2 )</p><p>; 𝑦 =</p><p>(</p><p>0.9</p><p>1.9</p><p>−0.9</p><p>3.0</p><p>1.1 )</p><p>Podemos obter a solução aproximada fazendo 𝐴𝑇𝐴𝑥 = 𝐴𝑇𝑦</p><p>(</p><p>1 2 − 1 3 1</p><p>−3 − 5 2 − 1 2</p><p>)</p><p>(</p><p>1 −3</p><p>2 −5</p><p>−1</p><p>3</p><p>1</p><p>2</p><p>−1</p><p>2 )</p><p>(</p><p>𝑎</p><p>𝑏</p><p>) = (</p><p>1 2 − 1 3 1</p><p>−3 − 5 2 − 1 2</p><p>)</p><p>(</p><p>0.9</p><p>1.9</p><p>−0.9</p><p>3.0</p><p>1.1 )</p><p>(</p><p>16 −16</p><p>−16 43</p><p>)(</p><p>𝑎</p><p>𝑏</p><p>) = (</p><p>15.7</p><p>−14.8</p><p>)</p><p>O que fornece 𝑎 = 1.01458 e 𝑏 = 0.03333.</p><p>Para ficar claro como a escolha de mais parâmetros pode gerar melhores resultados, a</p><p>imagem a seguir mostra duas aproximações feitas levando em conta uma função 𝐟(𝐱) = 𝐚 +</p><p>𝐛𝐱𝟏/𝟐 + 𝐜𝐱 e outra 𝐟(𝐱) = 𝐚 + 𝐛𝐱𝟏/𝟐. Esse é o caso do exemplo 1, mas usando uma função</p><p>raiz ao invés de uma função logarítmica.</p><p>Exercício 6: Três quantidades experimentais foram medidas e estão mostradas a seguir</p><p>𝑢 2.1 4.5 5.3 6.2 9.0</p><p>𝑣 3.2 3.2 4.6 6.1 2.2</p><p>𝑧 1.1 0.1 1.1 10.0 − 13.5</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>3</p><p>Supondo que o valor de 𝑧 seja determinado por 𝑢 e por 𝑣, descubra os melhores parâmetros 𝑐1</p><p>e 𝑐2 tais que 𝑧 ≈ 𝑐1(𝑢 − 5) + 𝑐2(𝑢 − 5)(𝑣 − 4), no sentido de quadrados mínimos. Com os co-</p><p>eficientes descobertos, calcule o valor estimado para 𝑧, usando os valores tabelados de 𝑢 e 𝑣 e</p><p>compute o resíduo (a soma das diferenças ao quadrado).</p><p>Nosso polinômio é do tipo 𝜙 = 𝑐1𝜙1 + 𝑐2𝜙2, onde 𝜙1 = (𝑢 − 5) e 𝜙2 = (𝑢 − 5)(𝑣 − 4).</p><p>Com isso, obtemos a matriz Φ:</p><p>Φ = (𝜙1(𝑢) 𝜙2(𝑢, 𝑣))</p><p>Φ =</p><p>(</p><p>2.1 − 5 (2.1 − 5)(3.2 − 4)</p><p>4.5 − 5 (4.5 − 5)(3.2 − 4)</p><p>5.3 − 5 (5.3 − 5)(4.6 − 4)</p><p>6.2 − 5 (6.2 − 5)(6.1 − 4)</p><p>9.0 − 5 (9.0 − 5)(2.2 − 4))</p><p>=</p><p>(</p><p>−2.9 2.32</p><p>−0.5 0.40</p><p>0.3 0.18</p><p>1.2 2.52</p><p>4.0 − 7.20)</p><p>Vamos calcular as matrizes 𝐴 = Φ𝑇Φ e 𝑏 = Φ𝑇𝑦, onde 𝑦 = 𝑧𝑇</p><p>𝐴 = (</p><p>−2.9 −0.5 0.3 1.2 4.0</p><p>2.32 0.40 0.18 2.52 −7.20</p><p>)</p><p>(</p><p>−2.9 2.32</p><p>−0.5 0.40</p><p>0.3 0.18</p><p>1.2 2.52</p><p>4.0 − 7.20)</p><p>𝐴 = (</p><p>26.19 −32.65</p><p>−32.65 63.77</p><p>)</p><p>𝑏 = (</p><p>−2.9 −0.5 0.3 1.2 4.0</p><p>2.32 0.40 0.18 2.52 −7.20</p><p>)</p><p>(</p><p>1.1</p><p>0.1</p><p>1.1</p><p>10.0</p><p>−13.5)</p><p>𝑏 = (</p><p>−44.91</p><p>125.19</p><p>)</p><p>Logo, nosso sistema linear será:</p><p>𝐴𝑐 = 𝑏</p><p>(</p><p>26.19 −32.65</p><p>−32.65 63.77</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>−44.91</p><p>125.19</p><p>)</p><p>Fazendo 𝑙2 → 𝑙2 + (</p><p>32.65</p><p>26.19</p><p>) 𝑙1</p><p>(</p><p>26.19 −32.65</p><p>0 23.067</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>−44.91</p><p>69.203</p><p>)</p><p>Portanto</p><p>𝑐2 = 3</p><p>26.19𝑐1 − 32.65(3) = −44.91</p><p>26.19𝑐1 = 53.04</p><p>𝑐1 = 2.01</p><p>Nossa solução é 𝑐1 = 2.01 e 𝑐2 = 3. Vejamos:</p><p>𝑧1 = 2.01(2.1 − 5) + 3(2.1 − 5)(3.2 − 4) = 1.131</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>4</p><p>𝑧2 = 2.01(4.5 − 5) + 3(4.5 − 5)(3.2 − 4) = 0.195</p><p>𝑧3 = 2.01(5.3 − 5) + 3(5.3 − 5)(4.6 − 4) = 1.143</p><p>𝑧4 = 2.01(6.2 − 5) + 3(6.2 − 5)(6.1 − 4) = 9.972</p><p>𝑧5 = 2.01(9.0 − 5) + 3(9.0 − 5)(2.2 − 4) = −13.56</p><p>Computando o resíduo:</p><p>|1.1 − 1.131|2 = 0.000961</p><p>|0.1 − 0.195|2 = 0.009025</p><p>|1.1 − 1.143|2 = 0.001849</p><p>|10.0 − 9.972|2 = 0.000784</p><p>|−13.5 + 13.56|2 = 0.0036</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>5</p><p>Integração Numérica</p><p>Vamos supor que temos que calcular a seguinte integral</p><p>𝐼 = ∫ 𝑓(𝑥)𝑑𝑥</p><p>𝑏</p><p>𝑎</p><p>de modo que 𝑎, 𝑏 ∈ ℝ (é uma integral definida). Entretanto, alguns empecilhos podem surgir.</p><p>Podemos nos deparar com uma integral difícil</p><p>de ser calculada. Por outro lado, podemos até</p><p>saber calcular a integral, mas a expressão é muito complicada. Outro fator é que podemos ser</p><p>apresentados a uma tabela de pontos, e não a uma função propriamente dita.</p><p>Um modo de proceder na resolução de integrais complicadas é substituir a função 𝑓 por</p><p>uma outra função 𝑓′ mais simples. Feito isso, nossa integral é realizada sobre 𝑓′. Um caso fácil é</p><p>aproximar 𝑓 por um polinômio.</p><p>Sabemos que a integral fornece a área abaixo de um gráfico. Vamos analisar uma função</p><p>𝑓(𝑥) qualquer, cujo gráfico é:</p><p>Vamos supor que queremos calcular a integral num intervalo [𝑎, 𝑏]. Podemos aproximar a área</p><p>da integral com um retângulo que passa pelos pontos. Assim, a integral será a área do retângulo.</p><p>Sabemos que a área é a multiplicação da base pela altura. Aqui, a base é o comprimento 𝑏 − 𝑎</p><p>e a altura, como mostra a figura, é 𝑓(𝑎).</p><p>Com isso a integral será aproximada para:</p><p>𝐼 ≈ 𝑓(𝑎) ∙ (𝑏 − 𝑎)</p><p>Esse resultado é denominado quadratura do retângulo, pois a área do gráfico foi aproximada</p><p>pela área de um retângulo. Poderíamos ter obtido um retângulo cuja altura passe pelo ponto</p><p>𝑓(𝑏):</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>6</p><p>Nesse caso</p><p>𝐼 ≈ 𝑓(𝑏) ∙ (𝑏 − 𝑎)</p><p>Note que em ambos casos, a área não foi exatamente a desejada. No primeiro caso en-</p><p>contramos uma área menor e no segundo encontramos uma área maior.</p><p>Vejamos um caso em que usamos uma melhor aproximação. Vamos traçar uma reta li-</p><p>gando os pontos 𝑓(𝑎) e 𝑓(𝑏). Nesse caso, a figura obtida será um trapézio:</p><p>Lembrando que a área de um trapézio é (base maior + base menor) ∙ altura/2, teremos:</p><p>𝐼 ≈</p><p>(𝑓(𝑏) + 𝑓(𝑎)) ∙ (𝑏 − 𝑎)</p><p>2</p><p>Essa fórmula, que fornece uma área mais próxima da procurada, é denominada quadratura do</p><p>trapézio.</p><p>Outro método é usar um retângulo cuja altura seja um ponto médio entre 𝑓(𝑎) e 𝑓(𝑏).</p><p>Nesse caso, a altura é dada por</p><p>𝑓(𝑏) + 𝑓(𝑎)</p><p>2</p><p>Logo, a área será:</p><p>𝐼 ≈ (𝑏 − 𝑎)</p><p>𝑓(𝑏) + 𝑓(𝑎)</p><p>2</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>7</p><p>O que vimos até aqui compreendem quatro quadraturas, sendo três de retângulos e uma</p><p>de trapézio:</p><p>𝑄𝑅[𝑓] = 𝑓(𝑎) ∙ (𝑏 − 𝑎)</p><p>𝑄𝑅[𝑓] = 𝑓(𝑏) ∙ (𝑏 − 𝑎)</p><p>𝑄𝑅[𝑓] = (𝑏 − 𝑎)</p><p>𝑓(𝑏) − 𝑓(𝑎)</p><p>2</p><p>𝑄𝑇[𝑓] =</p><p>(𝑓(𝑏) + 𝑓(𝑎)) ∙ (𝑏 − 𝑎)</p><p>2</p><p>Uma notação útil será escrever 𝑏 − 𝑎 = ℎ.</p><p>O melhor jeito para encontrar a área do gráfico é aproximando a curva por um polinômio.</p><p>Agora podemos generalizar o cálculo da integral levando em conta o erro associado ao valor</p><p>obtido. No caso de um polinômio de grau 2, a integral será aproximada por:</p><p>∫𝑓(𝑥)𝑑𝑥 ≈ ∫𝑝2(𝑥) + ∫𝐸(𝑥)</p><p>onde 𝐸(𝑥) representa o erro. Vamos tomar o caso do trapézio, que nada mais é do que um</p><p>polinômio de grau 1. Com isso</p><p>𝑓(𝑥) = 𝑝1(𝑥) +</p><p>𝑓′′(𝜉)</p><p>2!</p><p>(𝑥 − 𝑎)(𝑥 − 𝑏)</p><p>Isolando o erro e integrando</p><p>∫𝑓(𝑥) − 𝑝1(𝑥)𝑑𝑥 = ∫</p><p>𝑓′′(𝜉)</p><p>2!</p><p>(𝑥 − 𝑎)(𝑥 − 𝑏)𝑑𝑥</p><p>𝐼 − 𝑄𝑇[𝑓] = ∫</p><p>𝑓′′(𝜉)</p><p>2!</p><p>(𝑥 − 𝑎)(𝑥 − 𝑏)𝑑𝑥</p><p>𝑏</p><p>𝑎</p><p>O grande problema dessa integral é que desconhecemos 𝜉, e esse valor, por sua vez, é depen-</p><p>dente de 𝑥. Entretanto, podemos recorrer ao teorema do valor médio. Se</p><p>∫𝑢(𝑥)𝑣(𝑥)𝑑𝑥</p><p>de modo que 𝑢(𝑥) não troca de sinal. Com isso</p><p>𝑣(𝜉)∫𝑢(𝑥)𝑑𝑥 = ∫ 𝑢(𝑥)𝑣(𝑥)𝑑𝑥</p><p>𝑏</p><p>𝑎</p><p>No caso em questão, (𝑥 − 𝑎)(𝑥 − 𝑏) não troca de sinal. Logo</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>8</p><p>∫</p><p>𝑓′′(𝜉)</p><p>2!</p><p>(𝑥 − 𝑎)(𝑥 − 𝑏)𝑑𝑥</p><p>𝑏</p><p>𝑎</p><p>=</p><p>𝑓′′(𝜉)</p><p>2</p><p>∫ (𝑥 − 𝑎)(𝑥 − 𝑏)𝑑𝑥</p><p>𝑏</p><p>𝑎</p><p>Usando o fato de 𝑏 − 𝑎 = ℎ, teremos:</p><p>∫ (𝑥 − 𝑎)(𝑥 − 𝑏)𝑑𝑥</p><p>𝑏</p><p>𝑎</p><p>= −</p><p>ℎ3</p><p>6</p><p>o que fornece</p><p>𝑓′′(𝜉)</p><p>2</p><p>∫ (𝑥 − 𝑎)(𝑥 − 𝑏)𝑑𝑥</p><p>𝑏</p><p>𝑎</p><p>= −</p><p>𝑓′′(𝜉)ℎ3</p><p>12</p><p>Portanto</p><p>𝐼 − 𝑄𝑇[𝑓] = −</p><p>𝑓′′(𝜉)ℎ3</p><p>12</p><p>Como nosso interesse está no mínimo de erro que podemos obter, então queremos</p><p>|𝐼 − 𝑄𝑇| ≤</p><p>𝑀2ℎ</p><p>3</p><p>12</p><p>onde 𝑀2 = max|𝑓</p><p>′′(𝜉)|.</p><p>Exemplo 1: Usando a quadratura do trapézio, calcule</p><p>∫ 𝑒−𝑡</p><p>2</p><p>𝑑𝑡</p><p>2</p><p>0</p><p>A quadratura do trapézio diz que</p><p>𝑄𝑇[𝑓] =</p><p>𝑓(𝑎) + 𝑓(𝑏)</p><p>2</p><p>(𝑏 − 𝑎)</p><p>Temos 𝑏 − 𝑎 = 2 − 0 = 2; 𝑓(0) = 𝑒−0</p><p>2</p><p>= 1 e 𝑓(2) = 𝑒−2</p><p>2</p><p>= 0,0183. Logo</p><p>𝑄𝑇[𝑓] =</p><p>1 + 0,0183</p><p>2</p><p>2 = 1,0183</p><p>Exemplo 2: Qual o erro máximo encontrado para o exemplo 1?</p><p>O erro máximo é dado para 𝑀2 = max|𝑓</p><p>′′(𝑡)|. Logo, precisamos da segunda derivada:</p><p>𝑓′(𝑡) = −2𝑡𝑒−𝑡</p><p>2</p><p>𝑓′′(𝑡) = 4𝑡2𝑒−𝑡</p><p>2</p><p>− 2𝑒𝑡</p><p>2</p><p>= 𝑒−𝑡</p><p>2</p><p>(4𝑡2 − 2)</p><p>Entretanto, devemos determinar o valor de 𝑡 para que ocorra o ponto máximo. Para isso, deve-</p><p>mos derivar novamente e igualar a zero:</p><p>𝑓′′′(𝑡) = −4𝑡𝑒−𝑡</p><p>2</p><p>[2𝑡2 − 3] = 0</p><p>Assim, 𝑡 = 0 ou 𝑡 = √3/2. Testando os valores:</p><p>𝑒−0</p><p>2</p><p>(4 ∙ 02 − 2) = −2</p><p>𝑒−3/2 (4 ∙</p><p>3</p><p>2</p><p>− 2) = 0,89</p><p>Como queremos o erro máximo em módulo, então 𝑀2 = max|𝑓</p><p>′′(𝑡)| = 2. Assim:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>0</p><p>9</p><p>|𝐼 − 𝑄𝑇| ≤</p><p>𝑀2ℎ</p><p>3</p><p>12</p><p>|𝐼 − 𝑄𝑇| ≤</p><p>2 ∙ 23</p><p>12</p><p>|𝐼 − 𝑄𝑇| ≤ 1,333…</p><p>O exemplo 2 mostra como, nem sempre, o método usado fornece uma boa estimativa.</p><p>Calculamos que a integral é igual a 1,0183 e encontramos um erro maior que a área encontrada</p><p>(1,333)! Onde foi que erramos? Na verdade, nosso cálculo está correto. Entretanto estamos ten-</p><p>tando aproximar uma curva por uma reta, de modo a estarmos perdendo muitas informações.</p><p>Uma saída para esse problema é tomar várias retas, de modo a diminuir cada vez mais a área</p><p>perdida no gráfico pela aproximação. Assim, cada sub-trapézio criado por cada reta terá um</p><p>intervalo ℎ.</p><p>Como isso, a integral será:</p><p>∫ 𝑓(𝑥)𝑑𝑥 ≈</p><p>𝑓(𝑥0) + 𝑓(𝑥1)</p><p>2</p><p>ℎ +</p><p>𝑓(𝑥1) + 𝑓(𝑥2)</p><p>2</p><p>ℎ +⋯+</p><p>𝑓(𝑥𝑛−1) + 𝑓(𝑥𝑛)</p><p>2</p><p>ℎ</p><p>𝑏</p><p>𝑎</p><p>ou</p><p>𝑄𝑇𝑅[𝑓] = ℎ [</p><p>𝑓(𝑥0)</p><p>2</p><p>+ 𝑓(𝑥1) + ⋯+</p><p>𝑓(𝑥𝑛)</p><p>2</p><p>]</p><p>Essa é a fórmula da quadratura do trapézio repetida. Nesse caso, teremos um erro associado a</p><p>cada subintervalo 𝑛:</p><p>|𝐼 − 𝑄𝑇𝑅| ≤∑</p><p>𝑀2</p><p>(𝑖)ℎ3</p><p>12</p><p>≤</p><p>𝑀2𝑛ℎ</p><p>3</p><p>12</p><p>𝑛</p><p>𝑖=1</p><p>Nesse caso, temos</p><p>ℎ =</p><p>𝑏 − 𝑎</p><p>𝑛</p><p>logo</p><p>|𝐼 − 𝑄𝑇𝑅| ≤</p><p>𝑀2ℎ</p><p>2(𝑏 − 𝑎)</p><p>12</p><p>Exemplo 3: Voltando ao caso do exemplo 1, em quantos intervalos teríamos de dividir o</p><p>gráfico para obter um erro menor que 10−6? Como 𝑏 − 𝑎 = 2, temos:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>0</p><p>|𝐼 − 𝑄𝑇𝑅| ≤</p><p>2ℎ2(2)</p><p>12</p><p>=</p><p>1</p><p>3</p><p>ℎ2</p><p>Como queremos um erro menor que 10−6:</p><p>1</p><p>3</p><p>ℎ2</p><p>2</p><p>√3</p><p>∙ 103</p><p>Exemplo 4: Aproxime</p><p>∫</p><p>1</p><p>𝑥</p><p>𝑒𝑥/2𝑑𝑥</p><p>4</p><p>1</p><p>usando 3 intervalos.</p><p>Nesse caso, usemos a fórmula da quadratura do trapézio repetida:</p><p>𝐼 = 𝑄𝑇𝑅 = ℎ [</p><p>𝑓(𝑥0)</p><p>2</p><p>+ 𝑓(𝑥1) + 𝑓(𝑥2) +</p><p>𝑓(𝑥3)</p><p>2</p><p>]</p><p>𝐼 =</p><p>4 − 1</p><p>3</p><p>[</p><p>𝑓(1)</p><p>2</p><p>+ 𝑓(2) + 𝑓(3) +</p><p>𝑓(4)</p><p>2</p><p>]</p><p>𝐼 =</p><p>3</p><p>3</p><p>[0,82436 + 1,3514 + 1,49389 + 0,92363]</p><p>𝐼 = 4,59328</p><p>Exemplo 5: Em quantos intervalos devemos trabalhar para estimar a integral abaixo com</p><p>quatro casas de precisão?</p><p>𝐼 = ∫ 𝑒−𝑥</p><p>2</p><p>𝑑𝑥</p><p>1</p><p>0</p><p>Queremos</p><p>|𝐼 − 𝑄𝑇𝑅| ≤</p><p>𝑀2ℎ</p><p>2(𝑏 − 𝑎)</p><p>12</p><p>1</p><p>√6</p><p>∙ 10²</p><p>O que fornece 𝑛 ≥ 41.</p><p>Exemplo 6: Aproxime a integral a seguir para 3 subintervalos. Determine quantos interva-</p><p>los devem ser tomados para que o erro seja inferior a 10−5.</p><p>∫</p><p>1</p><p>1 + 𝑡</p><p>𝑑𝑡</p><p>3</p><p>2</p><p>Tomando 𝑓(𝑡) = (1 + 𝑡)−1. Vamos tomar os pontos 2; 2,25; 2,5 e 3:</p><p>𝐼 = 𝑄𝑇𝑅[𝑓] =</p><p>𝑏 − 𝑎</p><p>𝑛</p><p>[</p><p>𝑓(𝑡0)</p><p>2</p><p>+ 𝑓(𝑡1) + 𝑓(𝑡2) +</p><p>𝑓(𝑡3)</p><p>2</p><p>]</p><p>𝐼 =</p><p>1</p><p>3</p><p>[0,1666 + 0,30769 + 0,28571 + 0,125] = 0,295</p><p>Para calcular o erro, devemos fazer a derivada da nossa função:</p><p>𝑓′(𝑡) = −(1 + 𝑡)−2</p><p>𝑓′′(𝑡) = 2(1 + 𝑡)−3</p><p>O máximo ocorre para 𝑓′′(𝑡) = 0</p><p>2(1 + 𝑡)−3 = 0</p><p>Como nosso intervalo está entre 2 e 3, testamos o resultado acima para esses dois pontos:</p><p>2(1 + 2)−3 = 0,074</p><p>2(1 + 3)−3 = 0,03125</p><p>Como o erro depende do máximo, temos</p><p>𝑀2 = max|𝑓</p><p>′′(𝑡)| = 0,074</p><p>Portanto</p><p>|𝐼 − 𝑄𝑇𝑅| ≤</p><p>𝑀2ℎ</p><p>2(𝑏 − 𝑎)</p><p>12</p><p>√6,2 ∙ 10</p><p>Ou seja, 𝑛 tem que ser maior</p><p>ou igual a 25 pontos.</p><p>Retomando o raciocínio, vimos que podemos aproximar a área de um gráfico por um po-</p><p>linômio. No caso da quadratura do trapézio, o polinômio em questão é de grau 1, pois lidamos</p><p>com dois pontos:</p><p>𝑓(𝑥) ≈ 𝑝1(𝑥)</p><p>A integral é dada por</p><p>𝐼 = ∫ 𝑓(𝑥)</p><p>𝑏</p><p>𝑎</p><p>𝑑𝑥 = ∫ 𝑝1(𝑥)</p><p>𝑏</p><p>𝑎</p><p>+∫ 𝐸(𝑥)</p><p>𝑏</p><p>𝑎</p><p>𝑑𝑥</p><p>onde 𝐸(𝑥) é o erro. Pro caso do trapézio com repetição:</p><p>|𝐸(𝑥)| ≤</p><p>𝑀2ℎ</p><p>3</p><p>12</p><p>lembrando que</p><p>ℎ =</p><p>𝑏 − 𝑎</p><p>𝑛</p><p>sendo 𝑛 o número de intervalos entre 𝑎 e 𝑏.</p><p>Agora, para melhorar nosso cálculo vamos aproximar nossa função por um polinômio de</p><p>grau 2, de modo que 𝑓(𝑥) = 𝑝2(𝑥) + 𝐸(𝑥). Nosso polinômio passará pelos pontos 𝑎, 𝑚 e 𝑏, de</p><p>modo que 𝑚 é um ponto médio entre os extremos.</p><p>Podemos calcular o polinômio da maneira que quisermos (por Lagrange, por exemplo). Inde-</p><p>pendentemente do método, deveremos encontrar:</p><p>𝐼 ≈ ∫ 𝑝2(𝑥)</p><p>𝑏</p><p>𝑎</p><p>𝑑𝑥 =</p><p>ℎ</p><p>3</p><p>[𝑓(𝑎) + 4𝑓(𝑚) + 𝑓(𝑏)]</p><p>em que</p><p>ℎ =</p><p>𝑏 − 𝑎</p><p>2</p><p>e</p><p>𝑚 =</p><p>𝑏 + 𝑎</p><p>2</p><p>Essa é a fórmula da quadratura de Simpson, também chamada de 1/3 de Simpson.</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>3</p><p>Assim como fatiamos um intervalo em várias regiões na quadratura do trapézio, podemos</p><p>fazer o mesmo com o método de Simpson. Entretanto, como estamos criando polinômios a par-</p><p>tir de 3 pontos, é importante frisar que o número de intervalos tem que ser sempre par. Na</p><p>imagem a seguir dividimos o intervalo em 6 intervalos. Note que 𝑥1 é o ponto médio entre 𝑥0 e</p><p>𝑥2, 𝑥3 é o ponto médio entre 𝑥2 e 𝑥4 e 𝑥5 é o ponto médio entre 𝑥4 e 𝑥6. Aqui devemos atentar</p><p>que o valor de ℎ é dado por</p><p>ℎ =</p><p>𝑥6 − 𝑥0</p><p>2 ∙ 3</p><p>=</p><p>𝑥6 − 𝑥0</p><p>6</p><p>pois dividimos o intervalo de 𝑎 até 𝑏 em 3 partes. Como cada parte é dividida, também, na</p><p>metade, obtemos 6 intervalos. De modo geral</p><p>ℎ =</p><p>𝑏 − 𝑎</p><p>𝑛</p><p>que é semelhante ao que tínhamos anteriormente.</p><p>No caso em que temos 𝑛 subintervalos, o método de Simpson se torna:</p><p>𝐼 =</p><p>ℎ</p><p>3</p><p>[𝑓(𝑥0) + 4𝑓(𝑥1) + 2𝑓(𝑥2) + 4𝑓(𝑥3) + 2𝑓(𝑥4) + 4𝑓(𝑥5) + 𝑓(𝑥6)]</p><p>repare que os termos entre colchetes começam sendo multiplicados pelo coeficiente 1 e, então,</p><p>são intercalador entre 4 e 2 até chegar no ultimo termo, que será multiplicado também por 1.</p><p>Essa expressão representa o método de Simpson composto.</p><p>Para um polinômio de grau 2, o erro será dado por</p><p>|𝐼 − 𝑄𝑆| = ∫</p><p>𝑓′′′(𝜉𝑥)</p><p>3!</p><p>(𝑥 − 𝑎)(𝑥 − 𝑚)(𝑥 − 𝑏)𝑑𝑥</p><p>𝑏</p><p>𝑎</p><p>esse é um resultado difícil de ser integrado. Por conta disso, vamos simplesmente mostrar a</p><p>resposta aqui:</p><p>|𝐼 − 𝑄𝑆| = −(</p><p>𝑏 − 𝑎</p><p>2</p><p>)</p><p>5 1</p><p>90</p><p>𝑓(4)(𝜉) = −</p><p>ℎ5</p><p>90</p><p>𝑓(4)(𝜉)</p><p>ou</p><p>|𝐼 − 𝑄𝑆| ≤</p><p>𝑀4ℎ</p><p>5</p><p>90</p><p>Esse é o erro do método de Simpson simples. Para o método composto:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>4</p><p>|𝐼 − 𝑄𝑆| ≤</p><p>𝑀4ℎ</p><p>5</p><p>90</p><p>∙</p><p>𝑛</p><p>2</p><p>=</p><p>(𝑏 − 𝑎)𝑀4</p><p>180</p><p>ℎ4</p><p>Veja como esse resultado é interessante. Estamos trabalhando com um polinômio de grau 2, o</p><p>que implica que na terceira derivada já teremos encontrado uma constante. Só que o erro do</p><p>polinômio aqui obtido diz respeito a uma derivada de quarta ordem. Ora, se a terceira derivada</p><p>é um número constante, então a derivada quarta será zero. Traduzindo, para polinômios de grau</p><p>3 o erro de Simpson é dado por 𝑀4 = 0, ou seja, o resultado é exato!</p><p>Exemplo 7: Vamos refazer o exemplo 5, mas dessa vez usando Simpson composto.</p><p>Queremos saber em quantos intervalos entre [0,1] devemos particionar a integral para</p><p>encontrar um valor com 4 casas decimais de precisão.</p><p>𝐼 = ∫ 𝑒−𝑥</p><p>2</p><p>𝑑𝑥</p><p>1</p><p>0</p><p>Tomando e erro de Simpson composto</p><p>|𝐼 − 𝑄𝑆| ≤</p><p>(𝑏 − 𝑎)𝑀4</p><p>180</p><p>ℎ4</p><p>(1 − 0)𝑀4</p><p>180</p><p>ℎ4 ≤ 10−4</p><p>𝑓′(𝑥) = −2𝑥𝑒−𝑥</p><p>2</p><p>; 𝑓′′(𝑥) = −2𝑒−𝑥</p><p>2</p><p>+ 4𝑥2𝑒−𝑥</p><p>2</p><p>𝑓′′′(𝑥) = 12𝑥𝑒−𝑥</p><p>2</p><p>− 8𝑥3𝑒−𝑥</p><p>2</p><p>𝑓′′′′(𝑥) = 16𝑥4𝑒−𝑥</p><p>2</p><p>− 48𝑥2𝑒−𝑥</p><p>2</p><p>+ 12𝑒−𝑥</p><p>2</p><p>Para 𝑓′′′′(1) ≈ −7,357. Para 𝑓′′′′(0) = 12. Logo</p><p>𝑀2 = 𝑚𝑎𝑥|𝑓</p><p>′′′′(𝑥)| = 12</p><p>Portanto</p><p>12</p><p>180</p><p>ℎ4 ≤ 10−4</p><p>ℎ4 ≤ 15 ∙ 10−4</p><p>ℎ ≤ √15</p><p>4</p><p>∙ 10−1</p><p>𝑏 − 𝑎</p><p>𝑛</p><p>≤ √15</p><p>4</p><p>∙ 10−1</p><p>1</p><p>𝑛</p><p>≤ √15</p><p>4</p><p>∙ 10−1</p><p>𝑛 ≥</p><p>1</p><p>√15</p><p>4</p><p>∙ 10−1</p><p>𝑛 ≥ 0,5 × 101</p><p>𝑛 ≥ 5</p><p>Ou seja, temos que ter um intervalo maior ou igual a 5. Mas cuidado! Para trabalhar com Simp-</p><p>son composto devemos ter intervalos PARES. Logo, 𝑛 = 6!!!</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>5</p><p>Quando devemos usar Simpson e quando devemos usar trapézio? Tentemos fixar da se-</p><p>guinte maneira: se o número de pontos amostrados for ÍMPAR, então usamos SIMPSON. Caso</p><p>contrário, usamos trapézio.</p><p>EXERCÍCIOS DE REVISÃO</p><p>Exercício 1: Aproxime a integral 𝐼 = ∫ [𝑥3 + ln 𝑥]𝑑𝑥</p><p>2</p><p>1</p><p>, pela regra de Simpson, usando a</p><p>menor quantidade de subintervalos necessários para garantir um erro inferior a 10−3.</p><p>Como queremos um erro inferior a 10−3, usando Simpson Composto teremos:</p><p>𝑀4ℎ</p><p>4(𝑏 − 𝑎)</p><p>180</p><p>≤ 10−3</p><p>Devemos, primeiro, calcular o valor máximo para a derivada quarta da função:</p><p>𝑓(𝑥) = 𝑥3 + ln𝑥 → 𝑓′(𝑥) = 3𝑥2 +</p><p>1</p><p>𝑥</p><p>→ 𝑓′′(𝑥) = 6𝑥 −</p><p>1</p><p>𝑥2</p><p>𝑓′′′(𝑥) = 6 +</p><p>2</p><p>𝑥3</p><p>→ 𝑓′′′′(𝑥) = −</p><p>6</p><p>𝑥4</p><p>O máximo ocorre para 𝑓′′′′(1) = −6. Logo 𝑀4 = 6. Assim:</p><p>6ℎ4(2 − 1)</p><p>180</p><p>≤ 10−3</p><p>ℎ4 ≤</p><p>180</p><p>6</p><p>10−3</p><p>ℎ ≤ √30 ∙ 10−3</p><p>4</p><p>ℎ ≤ 0.416</p><p>2 − 1</p><p>𝑛</p><p>≤ 0.416</p><p>Logo 𝑛 ≥ 2.4. Como Simpson trabalha melhor com números pares de subintervalos, 𝑛 = 4.</p><p>Como temos 4 subintervalos, teremos 5 pontos para analisar, sendo eles 𝑥0 = 1, 𝑥1 = 1,25,</p><p>𝑥2 = 1,5, 𝑥3 = 1,75 e 𝑥4 = 2. Para obter esses valores, dividi (2 − 1) = 1 por 4, de modo a</p><p>obter 0,25, que é o tamanho do passo dentro do intervalo [0,1]. Simpson composto diz que:</p><p>𝑄𝑆 =</p><p>ℎ</p><p>3</p><p>[𝑓𝑥0 + 4𝑓𝑥1 + 2𝑓𝑥2 + 4𝑓𝑥3 + 𝑓𝑥4]</p><p>Como ℎ = (𝑏 − 𝑎)/𝑛, e usando os valores de 𝑥𝑖 na função, teremos:</p><p>𝑄𝑠 =</p><p>1</p><p>4 ∙ 3</p><p>[1 + 8.705 + 7.562 + 23.676 + 8.693]</p><p>𝑄𝑆 = 4.13625</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>6</p><p>Métodos para Equações Diferenciais</p><p>Equações cuja incógnita é uma função e que envolvem derivadas dessa função são cha-</p><p>madas de equações diferenciais. Como exemplos:</p><p>𝑦′(𝑡) = 2𝑡</p><p>possui solução</p><p>𝑦(𝑡) = 𝑡2 + 𝑐</p><p>e</p><p>𝑢′ = 𝑢</p><p>tem solução</p><p>𝑢(𝑡) = 𝑐𝑒𝑡</p><p>Uma equação diferencial é classificada de acordo com sua ordem. A ordem mais alta que</p><p>aparece irá determinar a ordem da equação. A quantidade de constantes arbitrárias na solução</p><p>geral da equação diferencial é igual a ordem da equação. Aqui iremos nos focar em equações de</p><p>primeira ordem do tipo</p><p>𝑦′(𝑡) = 𝑓(𝑡, 𝑦(𝑡))</p><p>de modo que a resolução nos fornece uma família de soluções, ao invés de uma única. Para</p><p>selecionar uma única solução, uma condição deve existir, como um valor inicial, por exemplo</p><p>𝑦(𝑡0) = 𝑦0</p><p>Se a equação é de segunda ordem, então duas condições iniciais serão necessárias.</p><p>A partir de condições iniciais, temos um problema de valor inicial (PVI). Todo PVI pode ser</p><p>escrito em termos de uma derivada de primeira ordem. Nosso PVI padrão é:</p><p>{</p><p>𝑦′(𝑡) = 𝑓(𝑡, 𝑦(𝑡)); 𝑡 > 𝑡0</p><p>𝑦(𝑡0) = 𝑦0</p><p>Antes de tentar resolver uma equação diferencial ordinária (EDO), precisamos saber se,</p><p>de fato, existe alguma solução. Assim recorremos ao teorema da existência e unicidade. Seja</p><p>𝑅 = [𝑎, 𝑏] × [𝑐, 𝑑]. Para que o teorema seja satisfeito, devemos ter:</p><p>• 𝑓 contínua em 𝑅</p><p>• 𝑓 é Lipschitz contínua em 𝑦 em 𝑅, isso é</p><p>|𝑓(𝑡, 𝑦1) − 𝑓(𝑡, 𝑦2)| ≤ 𝐿|𝑦1 − 𝑦2|</p><p>para 𝐿 > 0</p><p>• (𝑡0, 𝑦0) ∈ 𝑅</p><p>Essas condições garantem que nosso PVI terá solução.</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>7</p><p>Exemplo 1: Considere 𝑅 = [0,3] × [0,4]. A EDO 𝑦′ = 𝑡2 − 𝑦 é contínua no intervalo dado</p><p>e é Lipschitz contínua (é diferenciável). A EDO 𝑦′ = 𝑒−2𝑡 − 2𝑦 também é contínua e também é</p><p>diferenciável. Entretanto, 𝑦′ = 2𝑡 + ln(𝑦) não é contínua no intervalo dado por conta do ponto</p><p>0.</p><p>Vamos supor que desejamos encontrar uma aproximação para a</p><p>curva do gráfico. Devemos começar por um ponto inicial dado. Ire-</p><p>mos criar alguns pontos sobre 𝑡, de modo a gerar uma função que</p><p>se aproxime da curva somente por esses pontos, de modo que</p><p>𝑡0</p><p>resolver 𝑦′(𝑡) = 𝑓(𝑡, 𝑦(𝑡)) podemos começar integrando ambos lados</p><p>∫ 𝑦′(𝑡)𝑑𝑡</p><p>𝑡𝑛</p><p>𝑡𝑛−1</p><p>= ∫ 𝑓(𝑡, 𝑦(𝑡))𝑑𝑡</p><p>𝑡𝑛</p><p>𝑡𝑛−1</p><p>𝑦(𝑡𝑛) − 𝑦(𝑡𝑛−1) = ∫ 𝑓(𝑡, 𝑦(𝑡))𝑑𝑡</p><p>𝑡𝑛</p><p>𝑡𝑛−1</p><p>A integral da função 𝑓(𝑡, 𝑦(𝑡)) é feita numericamente. Supondo que usemos o método do re-</p><p>tângulo como aproximação, teremos</p><p>𝑦(𝑡𝑛) − 𝑦(𝑡𝑛−1) ≅ ℎ𝑛𝑓(𝑡𝑛−1, 𝑦𝑛−1)</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>8</p><p>𝑦(𝑡𝑛) ≅ 𝑦(𝑡𝑛−1) + ℎ𝑛𝑓(𝑡𝑛−1, 𝑦𝑛−1)</p><p>Aproximando para 𝑡𝑛, onde 𝑛 = 1,2,3,…</p><p>𝑦𝑛 ≅ 𝑦𝑛−1 + ℎ𝑛𝑓(𝑡𝑛−1, 𝑦𝑛−1)</p><p>Esse é o método de Euler.</p><p>Exemplo 2: Encontre uma aproximação para 𝑦(1), pelo método de Euler, utilizando passo</p><p>ℎ = 1/2.</p><p>{</p><p>𝑦′(𝑡) = −2𝑡𝑦; 𝑡 > 0</p><p>𝑦(0) = 1</p><p>Note que a condição inicial foi dada para 𝑡0 = 0 (expresso na segunda linha do sistema acima).</p><p>Esse marca o ponto inicial. O próximo passo será 𝑡1 = 𝑡0 + ℎ = 0 + 1/2 = 1/2, e, por fim, 𝑡2 =</p><p>𝑡1 + ℎ = 1/2 + 1/2 = 1. Para 𝑛 = 1, temos:</p><p>𝑦1 = 𝑦0 + ℎ𝑓(𝑡0, 𝑦0)</p><p>Temos</p><p>𝑓(𝑡, 𝑦) = −2𝑡𝑦</p><p>de modo que</p><p>𝑓(𝑡0, 𝑦0) = −2 ∙ 0 ∙ 1 = 0</p><p>Logo</p><p>𝑦1 = 1 +</p><p>1</p><p>2</p><p>(0) = 1</p><p>A próxima iteração será para 𝑛 = 2:</p><p>𝑦2 = 𝑦1 + ℎ𝑓(𝑡1, 𝑦1)</p><p>𝑦2 = 1 +</p><p>1</p><p>2</p><p>(−2 ∙</p><p>1</p><p>2</p><p>∙ 1) = 1 −</p><p>1</p><p>2</p><p>=</p><p>1</p><p>2</p><p>Como 𝑦2 ≈ 𝑦(𝑡2) = 𝑦(1), obtemos 𝑦(1) ≈ 1/2.</p><p>Exemplo 3: usando passo ℎ = 0,05, determine valores aproximados para</p><p>{</p><p>𝑦′ = 1 − 𝑡 + 4𝑦</p><p>𝑦(0) = 1</p><p>Usando a relação de Euler</p><p>𝑦𝑛 = 𝑦𝑛−1 + ℎ𝑓(𝑡𝑛−1, 𝑦𝑛−1)</p><p>podemos ir construindo uma tabela, de modo que nossa solução seja resumida a preencher a</p><p>tabela. Tomando 𝑓(𝑡, 𝑦) = 1 − 𝑡 + 4𝑦, 𝑦0 = 1, 𝑡0 = 0 e lembrando que 𝑡𝑛 = 𝑡𝑛−1 + ℎ, tere-</p><p>mos:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>9</p><p>𝑛 𝑦𝑛−1 𝑡𝑛 𝑦𝑛</p><p>1 1 0,05 1,25</p><p>2 1,25 0,10 1,5475</p><p>3 1,5475 0,15 1,902</p><p>4 1,902 0,20 2,3249</p><p>5 2,3249 0,25 2,82988</p><p>6 2,82988 0,30 3,433356</p><p>Para ficar claro, vou fazer algumas iterações passo-a-passo. Partindo de 𝑦0 = 1 e 𝑡1 = 𝑡0 + ℎ =</p><p>0 + 0,05 = 0,05, para 𝑛 = 1 teremos</p><p>𝑦1 = 𝑦0 + ℎ𝑓(𝑡0, 𝑦0)</p><p>𝑦1 = 1 + 0,05(1 − 0 + 4 ∙ 1) = 1,25</p><p>Para 𝑛 = 2:</p><p>𝑦2 = 𝑦1 + ℎ𝑓(𝑡1, 𝑦1)</p><p>𝑦2 = 1,25 + 0,05(1 − 0,05 + 4 ∙ 1,25) = 1,5475</p><p>Para 𝑛 = 3 e 𝑡2 = 𝑡1 + ℎ = 0,05 + 0,05 = 0,10</p><p>𝑦3 = 𝑦2 + ℎ𝑓(𝑡2, 𝑦2)</p><p>𝑦3 = 1,5475 + 0,05(1 − 0,10 + 4 ∙ 1,5475) = 1,902</p><p>E assim por diante.</p><p>Métodos tipo Runge-Kutta</p><p>Esses são métodos mais precisos e mais simples de serem aplicados. Para isso, esses mé-</p><p>todos não utilizam derivadas da função 𝑓, mas fazem múltiplas avaliações de sua função.</p><p>Podemos obter métodos de Runge-Kutta partindo de regras de integração numérica. Por</p><p>exemplo, podemos recorrer à regra do trapézio:</p><p>Sendo ℎ𝑛 = 𝑡𝑛 − 𝑡𝑛−1 teremos</p><p>𝑦𝑛 = 𝑦𝑛−1 +</p><p>ℎ𝑛</p><p>2</p><p>[𝑓(𝑡𝑛−1, 𝑦𝑛−1) + 𝑓(𝑡𝑛, 𝑦𝑛)]</p><p>Note que calcular 𝑦𝑛 pelo método do trapézio depende do próprio valor de 𝑦𝑛. Por conta</p><p>disso, esse método é chamado de implícito. Sendo assim, o cálculo de 𝑦𝑛 necessita de um mé-</p><p>todo auxiliar.</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>2</p><p>0</p><p>Um modo de explicitar o método do trapézio é construindo uma aproximação para 𝑦𝑛.</p><p>Podemos criar um valor aproximado pelo método de Euler. Com isso, obtemos o método do</p><p>trapézio explícito ou método de Heun. Nossa aproximação para 𝑦𝑛 é:</p><p>�̂�𝑛 = 𝑦𝑛−1 + ℎ𝑛𝑓(𝑡𝑛−1, 𝑦𝑛−1)</p><p>Assim</p><p>𝑦𝑛 = 𝑦𝑛−1 +</p><p>ℎ𝑛</p><p>2</p><p>[𝑓(𝑡𝑛−1, 𝑦𝑛−1) + 𝑓(𝑡𝑛, �̂�𝑛)]</p><p>No final do intervalo, o erro será de ordem</p><p>|𝑦(𝑡𝑛) − 𝑦𝑛| = 𝒪(ℎ</p><p>2)</p><p>Outro método de Runge-Kutta de segunda ordem ocorre quando aproximamos a integral</p><p>de 𝑓 pela área do retângulo com a altura igual ao valor de 𝑓 no ponto médio do intervalo ℎ𝑛:</p><p>𝑦𝑛 = 𝑦𝑛−1 + ℎ𝑛𝑓 (𝑡𝑛−1/2,</p><p>𝑦𝑛−1 + 𝑦𝑛</p><p>2</p><p>)</p><p>Note que, assim como o método do trapézio, o método do ponto médio é implícito. Usando</p><p>Euler, teremos o método do ponto médio explícito:</p><p>�̂�𝑛−1/2 = 𝑦𝑛−1 +</p><p>ℎ𝑛</p><p>2</p><p>𝑓(𝑡𝑛−1, 𝑦𝑛−1)</p><p>𝑦𝑛 = 𝑦𝑛−1 + ℎ𝑛𝑓(𝑡𝑛−1/2, �̂�𝑛−1/2)</p><p>Podemos construir métodos de Runge-Kutta de qualquer ordem. Vejamos o caso de um</p><p>método de quarta ordem:</p><p>𝑦𝑛 = 𝑦𝑛−1 +</p><p>ℎ𝑛</p><p>6</p><p>[𝑓(𝑡𝑛−1, 𝑌1) + 2𝑓(𝑡𝑛−1/2, 𝑌2) + 2𝑓(𝑡𝑛−1/2, 𝑌3) + 𝑓(𝑡𝑛, 𝑌4)]</p><p>em que</p><p>𝑌1 = 𝑦𝑛−1</p><p>𝑌2 = 𝑦𝑛−1 +</p><p>ℎ𝑛</p><p>2</p><p>𝑓(𝑡𝑛−1, 𝑌1)</p><p>𝑌3 = 𝑦𝑛−1 +</p><p>ℎ𝑛</p><p>2</p><p>𝑓(𝑡𝑛−1/2, 𝑌2)</p><p>𝑌4 = 𝑦𝑛−1 + ℎ𝑛𝑓(𝑡𝑛−1/2, 𝑌3)</p><p>Exemplo 4: Resolva 𝑥𝑦′ = 𝑥 − 𝑦 para 𝑦(2) = 2. Quanto é 𝑦(3)? Use como passo ℎ =</p><p>1/2.</p><p>A primeira coisa a fazer é colocar a EDO na forma padrão:</p><p>𝑦′ = 1 −</p><p>𝑦</p><p>𝑡</p><p>= 𝑓(𝑡, 𝑦)</p><p>Vamos resolver por Euler, de modo que 𝑡0 = 2 para 𝑦0 = 2. Com isso, 𝑡1 = 𝑡0 + ℎ = 2 + 0,5 =</p><p>2,5. Para 𝑛 = 1:</p><p>𝑦1 = 𝑦0 + ℎ𝑓(𝑡0, 𝑦0)</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>2</p><p>1</p><p>𝑦1 = 2 + 0,5 (1 −</p><p>2</p><p>2</p><p>) = 2</p><p>Para 𝑛 = 2</p><p>𝑦2 = 𝑦1 + ℎ𝑓(𝑡1, 𝑦1)</p><p>𝑦2 = 2 + 0,5 (1 −</p><p>2</p><p>2,5</p><p>) = 2,1</p><p>Agora faremos o mesmo exercício, mas usando o método do ponto médio explícito. Nesse</p><p>caso, teremos o ponto médio dado por</p><p>𝑡1/2 = 𝑡0 +</p><p>ℎ</p><p>2</p><p>= 2 +</p><p>0,5</p><p>2</p><p>= 2,25</p><p>E</p><p>𝑡1 = 𝑡0 + ℎ = 2 + 0,5 = 2,5</p><p>Calculando a aproximação para 𝑛 = 1:</p><p>�̂�1/2 = 𝑦0 +</p><p>ℎ𝑛</p><p>2</p><p>𝑓(𝑡0, 𝑦0)</p><p>�̂�1/2 = 2 +</p><p>0,5</p><p>2</p><p>(1 −</p><p>2</p><p>2</p><p>) = 2</p><p>𝑦1 = 𝑦0 + ℎ𝑛𝑓(𝑡1/2, �̂�1/2)</p><p>𝑦1 = 2 + 0,5 (1 −</p><p>2</p><p>2,25</p><p>) = 2,05556</p><p>Para 𝑛 = 2, teremos</p><p>𝑡3/2 = 𝑡1,5 = 𝑡1 +</p><p>ℎ</p><p>2</p><p>= 2,5 +</p><p>0,5</p><p>2</p><p>= 2,75</p><p>𝑡2 = 𝑡1 + ℎ = 2,5 + 0,5 = 3</p><p>�̂�2−1/2 = �̂�1,5 = �̂�3/2 = 𝑦1 +</p><p>ℎ𝑛</p><p>2</p><p>𝑓(𝑡1, 𝑦1)</p><p>�̂�3/2 = 2,05556 +</p><p>0,5</p><p>2</p><p>(1 −</p><p>2,05556</p><p>2,5</p><p>) = 2,10000</p><p>𝑦2 = 𝑦1 + ℎ𝑛𝑓(𝑡3/2, �̂�3/2)</p><p>𝑦2 = 2,05556 + 0,5 (1 −</p><p>2,10000</p><p>2,75</p><p>) = 2,17374</p><p>Exemplo 5: Vamos ver um exemplo de um problema que envolve uma ordem mais alta.</p><p>Considere:</p><p>{</p><p>𝑢′′ + 𝑢 = 𝑡2</p><p>𝑢(1) = 3</p><p>𝑢′(1) = −6</p><p>Definindo</p><p>𝑦 = (</p><p>𝑦1</p><p>𝑦2</p><p>) = (</p><p>𝑢</p><p>𝑢′</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>2</p><p>2</p><p>{</p><p>𝑦′ = (</p><p>𝑢′</p><p>𝑢′′</p><p>) = (</p><p>𝑦2</p><p>𝑡2 − 𝑢</p><p>) = (</p><p>𝑦2</p><p>𝑡2 − 𝑦1</p><p>) = 𝑓(𝑡, 𝑦)</p><p>𝑦(1) = (</p><p>𝑦1</p><p>𝑦2</p><p>) = (</p><p>3</p><p>−6</p><p>) = 𝑦0</p><p>Tomando ℎ = 1/4 e usando Euler:</p><p>𝑦1 = 𝑦0 + ℎ𝑓(𝑡0, 𝑦0)</p><p>como 𝑡0 = 1</p><p>𝑦1 = (</p><p>3</p><p>−6</p><p>) +</p><p>1</p><p>4</p><p>(</p><p>−6</p><p>1 − 3</p><p>) = (</p><p>3 −</p><p>6</p><p>4</p><p>−6 −</p><p>1</p><p>2</p><p>) = (</p><p>1,5</p><p>−6,5</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>2</p><p>3</p><p>Métodos para Problemas de Valores de</p><p>Contorno (PVC)</p><p>Um problema de valor inicial (PVI) geral seria:</p><p>{</p><p>𝑦′′ = 𝑓(𝑥, 𝑦, 𝑦′); 𝑥 > 𝑎</p><p>𝑦(𝑎) = 𝛼</p><p>𝑦′(𝑎) = 𝛽</p><p>O caracteriza esse problema como sendo PVI é que são dados os mesmos pontos para 𝑦 e 𝑦′.</p><p>Para um problema de valor de contorno (PVC) temos:</p><p>{</p><p>𝑦′′ = 𝑓(𝑥, 𝑦, 𝑦′); 𝑎</p><p>de erro, que retorna 0 para um cálculo bem sucedido. Já nfun indica o número de</p><p>iterações necessárias. Por fim, err é uma estimativa de erro.</p><p>Vamos calcular a integral</p><p>∫ 𝑥 sin (</p><p>1</p><p>𝑥</p><p>)√|1 − 𝑥|𝑑𝑥</p><p>3</p><p>0</p><p>O comando em Octave será:</p><p>Gráficos</p><p>Para gráficos existem dois comandos básicos: gplot (gráficos 2D) e gsplot (gráficos 3D).</p><p>Vejamos um exemplo:</p><p>O gráfico gerado está mostrado na imagem a seguir. Nesse exemplo geramos dois gráficos, um</p><p>com a curva do cosseno e o outro com a curva do seno. Para o cosseno indicamos, entre aspas,</p><p>que o gráfico deve ser gerado por uma linha sólida (-) na cor azul (b) e com a legenda cos(t). Para</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>1</p><p>o seno indicamos, também entre aspas, que a curva será representada por sinais positivos (+) a</p><p>cada três pontos (3) e na cor vermelha (r) com a legenda sin(t).</p><p>Os seguintes comandos são usados para plotar gráficos em 2D:</p><p>• bar(x,y) – a partir de dois vetores, x e y, um gráfico de barras é produzido</p><p>• loglog(args) – plota em escala logarítmica ambos eixos</p><p>• polar(𝜃, 𝜌) – gera um gráfico de acordo com as coordenadas polares 𝜃 e 𝜌</p><p>• semilogy(args) – gera um gráfico logarítmico somente no eixo y</p><p>• semilogx(args) – gera um gráfico logarítmico somente no eixo x</p><p>• stairs(x,y) – plota um gráfico em degrau</p><p>Para 3 dimensões precisamos, primeiro, criar uma malha de dados a serem visualizados.</p><p>Essa malha é criada com o comando meshgrid. Vejamos outros comandos:</p><p>• gsplot – plota um gráfico em 3D</p><p>• mplot(x1,y1,x2,y2) – plotamos diversos valores de x e y num mesmo gráfico</p><p>• plot border(args) – especifica o tipo de borda a ser usada de acordo com os seguintes</p><p>argumentos: blank; all; north; south; east; West</p><p>• subplot(rows,cols,index) – rows (número de linhas no subplot grid); cols (número de</p><p>colunas no subplot grid) e index (index de subplot onde se faz a próxima figura)</p><p>• grid – insere uma grade na figura plotada</p><p>• title(string) – fornece um título (string) para o gráfico</p><p>• xlabel(string) – nomeia o eixo x</p><p>• ylabel(string) – nomeia o eixo y</p><p>• zlabel(string) – nomeia o eixo z</p><p>Vamos construir uma malha usando o comando meshgrid e obter um gráfico em 3D:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>2</p><p>Nesse ponto, surge a seguinte malha:</p><p>O código completo é:</p><p>E o gráfico gerado é:</p><p>O próximo exemplo cria um gráfico de potencial:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>3</p><p>Aqui usei o comando surf, onde é gerado um gráfico de superfície:</p><p>Se ao invés de surf usarmos o comando mesh, obteremos:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>4</p><p>Erros</p><p>Dificilmente uma medida que fazemos coincide com o valor real do que estamos dese-</p><p>jando medir. Esses erros de medidas podem surgir devido a vários fatores, como, por exemplo,</p><p>problemas com o equipamento de medição. Vamos supor que 𝑥 seja o valor real do que deseja-</p><p>mos medir e 𝑥 seja o seu valor aproximado (obtido experimentalmente). Definimos o erro abso-</p><p>luto como:</p><p>𝐸𝑎𝑏𝑠(𝑥) = |𝑥 − 𝑥|</p><p>Um modo de minimizar o erro é calcular o erro relativo, da forma:</p><p>𝐸𝑟𝑒𝑙(𝑥) =</p><p>|𝑥 − 𝑥|</p><p>|𝑥|</p><p>para 𝑥 ≠ 0. Entretanto, esse método necessita do conhecimento do valor exato de 𝑥, o que é</p><p>difícil já que queremos determinar esse valor. Entretanto, se determinarmos uma dimensão ca-</p><p>racterística 𝐿, podemos calcular o chamado erro adimensional:</p><p>𝐸𝑎𝑑𝑚(�̂�) =</p><p>|𝑥 − 𝑥|</p><p>𝐿</p><p>Por exemplo, se quisermos determinar o tamanho de uma mesa, então 𝐿 = 1 m é uma dimen-</p><p>são razoável. Para calcular a distância entre duas cidades, 𝐿 = 1 km também é uma dimensão</p><p>razoável.</p><p>Exemplo 1: Seja 𝑥 = 1.00000 e 𝑥 = 1.00499. Os erros absoluto e relativo são</p><p>𝐸𝑎𝑏𝑠 = 1.00499 − 1.00000 = 4.99 ∙ 10</p><p>−3</p><p>𝐸𝑟𝑒𝑙 =</p><p>4.99 ∙ 10−3</p><p>1.00000</p><p>= 4.99 ∙ 10−3</p><p>Exemplo 2: Seja 𝑥 = 9.00000 e 𝑥 = 8.99501. Os erros absoluto e relativo são</p><p>𝐸𝑎𝑏𝑠 = 9.00000 − 8.99501 = 4.99 ∙ 10</p><p>−3</p><p>𝐸𝑟𝑒𝑙 =</p><p>4.99 ∙ 10−3</p><p>9.00000</p><p>= 5.54 ∙ 10−4</p><p>Através desses dois exemplos, vemos que, no geral, o erro relativo fornece uma aproxi-</p><p>mação melhor para o resultado desejado. Note que tanto em 1 quanto em 2, os erros absolutos</p><p>são os mesmos. Entretanto, o erro relativo em 2 é uma ordem de grandeza menor.</p><p>Exemplo 3: Vamos calcular a área de uma circunferência de raio 100 usando 𝜋1 = 3.14 e</p><p>𝜋2 = 3.141592.</p><p>A área é dada por 𝜋𝑅2. Logo:</p><p>𝐴1 = 𝜋1𝑅</p><p>2 = 3.14 ∙ (100)2 = 31400</p><p>𝐴2 = 𝜋2𝑅</p><p>2 = 3.141592 ∙ (100)2 = 31415.92</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>5</p><p>Como 𝜋2 tem um valor com mais casas decimais, vamos considera-lo como sendo o valor verda-</p><p>deiro. Assim:</p><p>𝐸𝑎𝑏𝑠 = |𝐴1 − 𝐴2| = 15.92</p><p>𝐸𝑟𝑒𝑙 =</p><p>𝐸𝑎𝑏𝑠</p><p>𝐴2</p><p>=</p><p>15.92</p><p>31415.92</p><p>= 5.07 ∙ 10−4</p><p>O exemplo 3 torna mais evidente como o erro relativo fornece uma melhor aproximação.</p><p>Os tipos de erros são:</p><p>Erros de medição ou de aquisição: esses erros podem ser diminuídos, mas nunca evitados.</p><p>A origem desses erros está na pessoa que faz a medida, no equipamento utilizado, em</p><p>precisões do experimento, etc.</p><p>Erros de representação: assim como os erros de medição, esses erros são inevitáveis. Es-</p><p>ses problemas surgem quando os dados são digitalizados. No geral, esses erros tem or-</p><p>dem de magnitude muito menor que a de outros erros.</p><p>Erros de cálculo em precisão finita: esse é o erro de maior interesse no cálculo numérico,</p><p>e está relacionado com o quanto de dígitos o computador pode armazenar.</p><p>Erros introduzidos por algoritmos numéricos: esses erros surgem quando usamos deter-</p><p>minados métodos de cálculo que apenas aproximam o resultado esperado.</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>6</p><p>Aritmética de Ponto Flutuante</p><p>Para cálculos científicos em computadores, utilizamos a aritmética de ponto flutuante.</p><p>Um número 𝑥 é representado em ponto flutuante da seguinte forma:</p><p>𝑓𝑙(𝑥) = ±(0. 𝑑1𝑑2𝑑3…𝑑𝑛) ∙ 𝐵</p><p>𝑒</p><p>onde 𝑑1𝑑2𝑑3…𝑑𝑛 representam os dígitos do número, que chamamos de mantissa. Por defini-</p><p>ção, o dígito 𝑑1 tem que ser diferente de zero (ao menos que o número que se deseja represen-</p><p>tar seja, de fato, o zero). Isso impede que um mesmo número tenha várias representações dife-</p><p>rentes. O valor 𝐵 é a base do número, enquanto que 𝑒 é o expoente. O expoente 𝑒 pertence a</p><p>determinado intervalo, de modo que −𝑀</p><p>ℎ3</p><p>3!</p><p>+ 𝑦′′′′(𝜉+)</p><p>ℎ4</p><p>4!</p><p>ou para o ponto anterior:</p><p>𝑦(𝑥𝑗−1) = 𝑦(𝑥𝑗) − 𝑦</p><p>′(𝑥𝑗)ℎ + 𝑦</p><p>′′(𝑥𝑗)</p><p>ℎ2</p><p>2</p><p>− 𝑦′′′(𝑥𝑗)</p><p>ℎ3</p><p>3!</p><p>+ 𝑦′′′′(𝜉−)</p><p>ℎ4</p><p>4!</p><p>Subtraindo as duas equações acima:</p><p>𝑦(𝑥𝑗+1) − 𝑦(𝑥𝑗−1) = 2ℎ𝑦</p><p>′(𝑥𝑗) +</p><p>2</p><p>3!</p><p>ℎ3𝑦′′′(𝑥𝑗) + 𝒪(ℎ</p><p>4)</p><p>𝑦′(𝑥𝑗) =</p><p>𝑦(𝑥𝑗+1) − 𝑦(𝑥𝑗−1)</p><p>2ℎ</p><p>− 𝑦′′′(𝑥𝑗)</p><p>ℎ2</p><p>3!</p><p>+ 𝒪(ℎ3)</p><p>ou</p><p>𝑦′(𝑥𝑗) ≈</p><p>𝑦𝑗+1 − 𝑦𝑗−1</p><p>2ℎ</p><p>que é a fórmula da diferença centrada. Essa é uma aproximação de segunda ordem. Se ao invés</p><p>de subtrairmos as duas equações as somarmos, de modo a isolar 𝑦′′, obteremos:</p><p>𝑦′′(𝑥𝑗) ≈</p><p>𝑦𝑗+1 − 2𝑦𝑗 + 𝑦𝑗−1</p><p>ℎ2</p><p>que é a fórmula da diferença centrada, mas para 𝑦′′.</p><p>Resumindo, temos duas fórmulas de primeira ordem e duas de segunda ordem.</p><p>Lembremos que estamos analisando um problema do tipo</p><p>{</p><p>𝑦′′ = 𝑓(𝑥, 𝑦, 𝑦′); 𝑎</p><p>𝑥 + 𝑦 = 0</p><p>Escrevendo como ponto flutuante:</p><p>0.100 ∙ 10−2𝑥 − 0.100 ∙ 101𝑦 = 0.100 ∙ 101</p><p>0.100 ∙ 101𝑥 + 0.100 ∙ 101𝑦 = 0.000 ∙ 101</p><p>Fazendo 𝑓𝑙(𝑙2) → 𝑓𝑙(𝑙2) − 𝑓𝑙(10</p><p>3 ∙ 𝑙1)</p><p>0.100 ∙ 10−2𝑥 − 0.100 ∙ 101𝑦 = 0.100 ∙ 101</p><p>0 + 0.100 ∙ 101𝑦 = −0.100 ∙ 101</p><p>Logo</p><p>𝑦 = −0.100 ∙ 101 → 𝑦 = −1</p><p>Calculando 𝑥</p><p>0.100 ∙ 10−2𝑥 − 0.100 ∙ 101 ∙ (−1) = 0.100 ∙ 101</p><p>0.100 ∙ 10−2𝑥 = 0.100 ∙ 101 − 0.100 ∙ 10−1</p><p>0.100 ∙ 10−2𝑥 = 0</p><p>𝑥 = 0</p><p>Sem pivoteamento, a solução é dada por 𝑥 = 0 e 𝑦 = −1.</p><p>B) Fazendo com pivoteamento, devemos trocar a linha 1 com a linha 2:</p><p>{</p><p>𝑥 + 𝑦 = 0</p><p>0.001𝑥 − 𝑦 = 1</p><p>0.100 ∙ 101𝑥 + 0.100 ∙ 101𝑦 = 0.000 ∙ 101</p><p>0.100 ∙ 10−2𝑥 − 0.100 ∙ 101𝑦 = 0.100 ∙ 101</p><p>Tomando 𝑓𝑙(𝑙2) → 𝑓𝑙(𝑙2) − 𝑓𝑙(10</p><p>−3 ∙ 𝑙1)</p><p>0.100 ∙ 101𝑥 + 0.100 ∙ 101𝑦 = 0.000 ∙ 101</p><p>0 − 0.100 ∙ 101𝑦 = 0.100 ∙ 101</p><p>Assim, obtemos</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>3</p><p>0</p><p>𝑦 = −1</p><p>Portanto</p><p>0.100 ∙ 101𝑥 − 0.100 ∙ 101 = 0.000 ∙ 101</p><p>0.100 ∙ 101𝑥 = 0.100 ∙ 101</p><p>𝑥 = 1</p><p>Com pivoteamento, 𝑥 = 1 e 𝑦 = −1.</p><p>C) Usando os valores obtidos sem pivoteamento</p><p>{</p><p>0.001(0) − (−1) = 1</p><p>0 + (−1) = −1</p><p>O que fornece um erro</p><p>‖</p><p>1 − 1</p><p>−1 − 0</p><p>‖ = ‖</p><p>0</p><p>−1</p><p>‖</p><p>∞</p><p>= 1</p><p>Com pivoteamento</p><p>{</p><p>0.001(1) − (−1) = 1.001 = 0.100 ∙ 101 = 1</p><p>1 + (−1) = 0</p><p>O que fornece um erro</p><p>‖</p><p>1 − 1</p><p>0 − 0</p><p>‖ = ‖</p><p>0</p><p>0</p><p>‖</p><p>∞</p><p>= 0</p><p>Logo, a solução com pivoteamento é exata, como era de se esperar.</p><p>Sejam 𝒇:ℝ → ℝ e sua derivada definidas por</p><p>𝒇(𝒙) =</p><p>𝒙𝟐 − 𝒆−𝒙/𝟐</p><p>𝒙𝟐 + 𝟏</p><p>; 𝒇′(𝒙) =</p><p>𝟒𝒙 + (𝒙𝟐 + 𝟒𝒙 + 𝟏)𝒆−𝒙/𝟐</p><p>𝟐(𝒙𝟐 + 𝟏)𝟐</p><p>A) Identifique um intervalo [𝒂, 𝒃] que contenha um zero de 𝒇.</p><p>B) Encontre 𝒙 tal que |𝒇(𝒙)|</p><p>a tabela</p><p>𝒙 𝟎. 𝟏 𝟎. 𝟑 𝟎. 𝟓 𝟎. 𝟕 𝟏. 𝟐</p><p>𝒚 − 𝟏. 𝟖𝟎 − 𝟎. 𝟕𝟎 − 𝟎. 𝟏𝟗 𝟎. 𝟏𝟒 𝟎. 𝟔𝟖</p><p>Calcule uma aproximação para 𝒇(𝟎. 𝟔) usando interpolação quadrática.</p><p>A interpolação quadrática é do tipo</p><p>𝑝(𝑥) = 𝑎𝑥2 + 𝑏𝑥 + 𝑐</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>3</p><p>6</p><p>Como estamos interessados no ponto 0.6, podemos optar pelos valores de 𝑥 mais próximo</p><p>desse ponto. Com isso, vamos trabalhar com os valores de 𝑥 = 0.3, 𝑥 = 0.5 e 𝑥 = 0.7. Vamos</p><p>criar um sistema de polinômios para cada valor de 𝑥 escolhido. Assim</p><p>𝑝(0.3) = 𝑎(0.3)2 + 𝑏(0.3) + 𝑐 = −0.70</p><p>𝑝(0.5) = 𝑎(0.5)2 + 𝑏(0.5) + 𝑐 = −0.19</p><p>𝑝(0.7) = 𝑎(0.7)2 + 𝑏(0.7) + 𝑐 = 0.14</p><p>Assim, obtemos um sistema dado por</p><p>0.09𝑎 + 0.3𝑏 + 𝑐 = −0.70</p><p>0.25𝑎 + 0.5𝑏 + 𝑐 = −0.19</p><p>0.49𝑎 + 0.7𝑏 + 𝑐 = 0.14</p><p>O próximo passo consiste em resolver esse sistema:</p><p>(</p><p>0.09 0.3 1</p><p>0.25 0.5 1</p><p>0.49 0.7 1</p><p>)(</p><p>𝑎</p><p>𝑏</p><p>𝑐</p><p>) = (</p><p>−0.70</p><p>−0.19</p><p>0.14</p><p>)</p><p>Fazendo 𝑙2 → 𝑙2 − (</p><p>0.25</p><p>0.09</p><p>) 𝑙1 e 𝑙3 → 𝑙3 − (</p><p>0.49</p><p>0.09</p><p>) 𝑙1</p><p>(</p><p>0.09 0.3 1</p><p>0 −0.3 −1.78</p><p>0 −0.93 −4.4</p><p>)(</p><p>𝑎</p><p>𝑏</p><p>𝑐</p><p>) = (</p><p>−0.70</p><p>1.75</p><p>3.95</p><p>)</p><p>Fazendo, agora, 𝑙3 → 𝑙3 − (</p><p>0.93</p><p>0.3</p><p>) 𝑙2</p><p>(</p><p>0.09 0.3 1</p><p>0 −0.3 −1.78</p><p>0 0 1.12</p><p>)(</p><p>𝑎</p><p>𝑏</p><p>𝑐</p><p>) = (</p><p>−0.70</p><p>1.75</p><p>−1.48</p><p>)</p><p>O que fornece</p><p>𝑐 = −1.32</p><p>−0.3𝑏 − 1.78(−1.32) = 1.72</p><p>𝑏 = 2.1</p><p>0.09𝑎 + 0.3(2.1) − 1.32 = −0.7</p><p>𝑎 = −0.1</p><p>Assim, obtemos como polinômio:</p><p>𝑝(𝑥) = −0.1𝑥2 + 2.1𝑥 − 1.32</p><p>Como buscamos 𝑥 = 0.6</p><p>𝑝(0.6) = −0.1(0.6)2 + 2.1(0.6) − 1.32 = −0.096</p><p>Deseja-se ajustar a função 𝝋(𝒙) = 𝒆𝒙𝒑(𝜶 + 𝜷𝒙), através do método de quadrados mí-</p><p>nimos, usando os seguintes dados:</p><p>𝒙 𝟏. 𝟎 𝟏. 𝟓 𝟐. 𝟎 𝟐. 𝟓 𝟑. 𝟎</p><p>𝒇(𝒙) 𝟐. 𝟖 𝟑. 𝟑 𝟑. 𝟗 𝟒. 𝟔 𝟓. 𝟒</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>3</p><p>7</p><p>Obtenha o sistema linear que deve ser resolvido para determinar os coeficientes 𝜶 e 𝜷.</p><p>Para resolver esse problema devemos, primeiro, linearizar nossa função. Assim:</p><p>ln 𝜑(𝑥) = ln(exp(𝛼 + 𝛽𝑥))</p><p>ln 𝜑(𝑥) = 𝛼 + 𝛽𝑥</p><p>𝑧 ≈ 𝑐1 + 𝑐2𝑥</p><p>onde 𝑐1 = 𝛼 e 𝑐2 = 𝛽. Uma vez que alteramos a função (mas não os pontos dados), devemos</p><p>alterar os valores de 𝑓(𝑥) para ln 𝑓(𝑥). Assim, nossos dados serão:</p><p>𝒙 𝟏. 𝟎 𝟏. 𝟓 𝟐. 𝟎 𝟐. 𝟓 𝟑. 𝟎</p><p>𝐥𝐧𝒇(𝒙) 𝟏. 𝟎𝟑 𝟏. 𝟏𝟗 𝟏. 𝟑𝟔 𝟏. 𝟓𝟑 𝟏. 𝟔𝟗</p><p>Criando a matriz Φ:</p><p>Φ =</p><p>(</p><p>1.0 1.0</p><p>1.0 1.5</p><p>1.0 2.0</p><p>1.0 2.5</p><p>1.0 3.0)</p><p>Sendo a matriz 𝑦 dada por</p><p>𝑦 =</p><p>(</p><p>1.03</p><p>1.19</p><p>1.36</p><p>1.53</p><p>1.69)</p><p>Obtemos o sistema 𝐴𝑐 = 𝑏 fazendo 𝐴 = Φ𝑇Φ e 𝑏 = Φ𝑇𝑦:</p><p>𝐴 = (</p><p>1.0 1.0 1.0</p><p>1.0 1.5 2.0</p><p>1.0 1.0</p><p>2.5 3.0</p><p>)</p><p>(</p><p>1.0 1.0</p><p>1.0 1.5</p><p>1.0 2.0</p><p>1.0 2.5</p><p>1.0 3.0)</p><p>= (</p><p>5.0 10.0</p><p>10.0 22.5</p><p>)</p><p>𝑏 = (</p><p>1.0 1.0 1.0</p><p>1.0 1.5 2.0</p><p>1.0 1.0</p><p>2.5 3.0</p><p>)</p><p>(</p><p>1.03</p><p>1.19</p><p>1.36</p><p>1.53</p><p>1.69)</p><p>= (</p><p>6.8</p><p>14.42</p><p>)</p><p>Portanto, o sistema a ser resolvido é</p><p>(</p><p>5.0 10.0</p><p>10.0 22.5</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>6.8</p><p>14.42</p><p>)</p><p>Considere a função tabelada abaixo</p><p>𝒙 𝟎. 𝟎 𝟏. 𝟎 𝟑. 𝟎 𝟒. 𝟎 𝟔. 𝟎 𝟕. 𝟎</p><p>𝒇(𝒙) − 𝟎. 𝟖 − 𝟎. 𝟐 𝟎. 𝟑 𝟎. 𝟔 𝟏. 𝟐 𝟏. 𝟑</p><p>A) Estime 𝑰 = ∫ 𝒇(𝒙)𝒅𝒙</p><p>𝟕</p><p>𝟎</p><p>, justificando sua estratégia.</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>3</p><p>8</p><p>B) Usando interpolação quadrática, estime �̅� tal que 𝒇(�̅�) = 𝒈(�̅�), onde 𝒈(𝒙) = 𝟐𝒙𝟐 −</p><p>𝟖𝒙 − 𝟓. Justifique a escolha dos pontos de interpolação.</p><p>A) uma vez que temos um número par de pontos, teremos um número ímpar de subin-</p><p>tervalos. Assim, a melhor estimativa que podemos fazer para a integral é usando a quadratura</p><p>do trapézio:</p><p>𝑄𝑇𝑅 = ℎ [</p><p>𝑓𝑥0</p><p>2</p><p>+ 𝑓𝑥1 + 𝑓𝑥2 + 𝑓𝑥3 + 𝑓𝑥4 +</p><p>𝑓𝑥5</p><p>2</p><p>]</p><p>Onde</p><p>ℎ =</p><p>7 − 0</p><p>5</p><p>= 1.4</p><p>Assim</p><p>𝑄𝑇𝑅 = 1.4[−0.4 − 0.2 + 0.3 + 0.6 + 1.2 + 0.65] = 3.01</p><p>Entretanto, note que os valores de 𝑥 não seguem o passo dado por ℎ = 1.4. Assim, podemos</p><p>tomar uma estimativa a partir de cada subintervalo (por trapézio simples), levando em conta o</p><p>passo de cada um deles. Assim:</p><p>𝑄 =</p><p>ℎ</p><p>2</p><p>[𝑓(𝑏) − 𝑓(𝑎)]</p><p>𝑄1 =</p><p>1</p><p>2</p><p>[𝑓(1) + 𝑓(0)] =</p><p>1</p><p>2</p><p>[−0.2 − 0.8] = −0.5</p><p>𝑄2 =</p><p>2</p><p>2</p><p>[𝑓(3) + 𝑓(1)] = 1[0.3 − 0.2] = 0.1</p><p>𝑄3 =</p><p>1</p><p>2</p><p>[𝑓(4) + 𝑓(3)] =</p><p>1</p><p>2</p><p>[0.6 + 0.3] = 0.45</p><p>𝑄4 =</p><p>2</p><p>2</p><p>[𝑓(6) + 𝑓(4)] = 1[1.2 + 0.6] = 1.8</p><p>𝑄5 =</p><p>1</p><p>2</p><p>[𝑓(7) + 𝑓(6)] =</p><p>1</p><p>2</p><p>[1.3 + 1.2] = 1.25</p><p>Portanto, a integral será</p><p>𝐼 ≈∑𝑄𝑖 = 3.1</p><p>5</p><p>𝑖=1</p><p>B) Como queremos 𝑓(�̅�) = 𝑔(�̅�), buscamos o ponto onde 𝑓(�̅�) − 𝑔(�̅�) = 0. Usando os</p><p>valores dados para 𝑥, obtemos os seguintes valores para 𝑔(𝑥):</p><p>𝑔(0.0) = −5</p><p>𝑔(1.0) = −11</p><p>𝑔(3.0) = −11</p><p>𝑔(4.0) = −5</p><p>𝑔(6.0) = 19</p><p>𝑔(7.0) = 37</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>3</p><p>9</p><p>Assim</p><p>𝑥 0.0 1.0 3.0 4.0 6.0 7.0</p><p>𝑓(𝑥) − 0.8 − 0.2 0.3 0.6 1.2 1.3</p><p>𝑔(𝑥) − 𝑓(𝑥) = −4.2 − 10.8 − 11.3 − 5.6 17.8 35.7</p><p>Analisando os valores obtidos, podemos ver que o zero ocorre entre os pontos 4 e 6. Portanto,</p><p>é sensato escolher os pontos 𝑥 = 3, 𝑥 = 4 e 𝑥 = 6. Como queremos uma interpolação quadrá-</p><p>tica:</p><p>𝑝(𝑥) = 𝑎𝑥2 + 𝑏𝑥 + 𝑐</p><p>𝑝(3) = 9𝑎 + 3𝑏 + 𝑐 = 0.3</p><p>𝑝(4) = 16𝑎 + 4𝑏 + 𝑐 = 0.6</p><p>𝑝(6) = 36𝑎 + 6𝑏 + 𝑐 = 1.2</p><p>Devemos resolver esse sistema. Fazendo 𝑙2 = 𝑙2 − 𝑙1 e 𝑙3 = 𝑙3 − 𝑙1</p><p>9𝑎 + 3𝑏 + 𝑐 = 0.3</p><p>7𝑎 + 𝑏 + 0 = 0.3</p><p>27𝑎 + 3𝑏 + 0 = 0.9</p><p>Fazendo 𝑙3 − 3𝑙2</p><p>9𝑎 + 3𝑏 + 𝑐 = 0.3</p><p>7𝑎 + 𝑏 + 0 = 0.3</p><p>6𝑎 + 0 + 0 = 0</p><p>Logo 𝑎 = 0, 𝑏 = 0.3 e 𝑐 = −0.6, o que fornece:</p><p>𝑝(𝑥) = 0.3𝑥 − 0.6</p><p>Fazendo 𝑝(𝑥) − 𝑔(𝑥) = 0</p><p>0.3𝑥 − 0.6 − 2𝑥2 + 8𝑥 + 5 = 0</p><p>−2𝑥2 + 8.3𝑥 + 4.4 = 0</p><p>𝑥 =</p><p>−8.3 ± √104.09</p><p>−4</p><p>𝑥 =</p><p>−8.3 ± 10.2</p><p>−4</p><p>𝑥1 =</p><p>−8.3 + 10.2</p><p>−4</p><p>= −0.475 → fora do intervalo</p><p>𝑥2 =</p><p>−8.3 − 10.2</p><p>−4</p><p>= 4.625</p><p>Logo, �̅� = 4.625.</p><p>Três quantidades experimentais foram medidas e estão mostradas a seguir</p><p>𝒖 𝟐. 𝟏 𝟒. 𝟓 𝟓. 𝟑 𝟔. 𝟐 𝟗. 𝟎</p><p>𝒗 𝟑. 𝟐 𝟑. 𝟐 𝟒. 𝟔 𝟔. 𝟏 𝟐. 𝟐</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>4</p><p>0</p><p>𝒛 𝟏. 𝟏 𝟎. 𝟏 𝟏. 𝟏 𝟏𝟎. 𝟎 − 𝟏𝟑. 𝟓</p><p>Supondo que o valor de 𝐳 seja determinado por 𝐮 e por 𝐯, descubra os melhores parâmetros</p><p>𝒄𝟏 e 𝒄𝟐 tais que 𝒛 ≈ 𝒄𝟏(𝒖 − 𝟓) + 𝒄𝟐(𝒖 − 𝟓)(𝒗 − 𝟒), no sentido de quadrados mínimos. Com</p><p>os coeficientes descobertos, calcule o valor estimado para 𝒛, usando os valores tabelados de</p><p>𝒖 e 𝒗 e compute o resíduo (a soma das diferenças ao quadrado).</p><p>Nosso polinômio é do tipo 𝜙 = 𝑐1𝜙1 + 𝑐2𝜙2, onde 𝜙1 = (𝑢 − 5) e 𝜙2 = (𝑢 − 5)(𝑣 − 4).</p><p>Com isso, obtemos a matriz Φ:</p><p>Φ = (𝜙1(𝑢) 𝜙2(𝑢, 𝑣))</p><p>Φ =</p><p>(</p><p>2.1 − 5 (2.1 − 5)(3.2 − 4)</p><p>4.5 − 5 (4.5 − 5)(3.2 − 4)</p><p>5.3 − 5 (5.3 − 5)(4.6 − 4)</p><p>6.2 − 5 (6.2 − 5)(6.1 − 4)</p><p>9.0 − 5 (9.0 − 5)(2.2 − 4))</p><p>=</p><p>(</p><p>−2.9 2.32</p><p>−0.5 0.40</p><p>0.3 0.18</p><p>1.2 2.52</p><p>4.0 − 7.20)</p><p>Vamos calcular as matrizes 𝐴 = ΦTΦ e 𝑏 = ΦTy, onde 𝑦 = 𝑧𝑇</p><p>𝐴 = (</p><p>−2.9 −0.5 0.3 1.2 4.0</p><p>2.32 0.40 0.18 2.52 −7.20</p><p>)</p><p>(</p><p>−2.9 2.32</p><p>−0.5 0.40</p><p>0.3 0.18</p><p>1.2 2.52</p><p>4.0 − 7.20)</p><p>𝐴 = (</p><p>26.19 −32.65</p><p>−32.65 63.77</p><p>)</p><p>𝑏 = (</p><p>−2.9 −0.5 0.3 1.2 4.0</p><p>2.32 0.40 0.18 2.52 −7.20</p><p>)</p><p>(</p><p>1.1</p><p>0.1</p><p>1.1</p><p>10.0</p><p>−13.5)</p><p>𝑏 = (</p><p>−44.91</p><p>125.19</p><p>)</p><p>Logo, nosso sistema linear será:</p><p>𝐴𝑐 = 𝑏</p><p>(</p><p>26.19 −32.65</p><p>−32.65 63.77</p><p>) (</p><p>c1</p><p>c2</p><p>) = (</p><p>−44.91</p><p>125.19</p><p>)</p><p>Fazendo 𝑙2 → 𝑙2 + (</p><p>32.65</p><p>26.19</p><p>) 𝑙1</p><p>(</p><p>26.19 −32.65</p><p>0 23.067</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>−44.91</p><p>69.203</p><p>)</p><p>Portanto</p><p>𝑐2 = 3</p><p>26.19𝑐1 − 32.65(3) = −44.91</p><p>26.19𝑐1 = 53.04</p><p>𝑐1 = 2.01</p><p>Nossa solução é 𝑐1 = 2.01 e 𝑐2 = 3. Vejamos:</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>4</p><p>1</p><p>𝑧1 = 2.01(2.1 − 5) + 3(2.1 − 5)(3.2 − 4) = 1.131</p><p>𝑧2 = 2.01(4.5 − 5) + 3(4.5 − 5)(3.2 − 4) = 0.195</p><p>𝑧3 = 2.01(5.3 − 5) + 3(5.3 − 5)(4.6 − 4) = 1.143</p><p>𝑧4 = 2.01(6.2 − 5) + 3(6.2 − 5)(6.1 − 4) = 9.972</p><p>𝑧5 = 2.01(9.0 − 5) + 3(9.0 − 5)(2.2 − 4) = −13.56</p><p>Computando o resíduo:</p><p>|1.1 − 1.131|2 = 0.000961</p><p>|0.1 − 0.195|2 = 0.009025</p><p>|1.1 − 1.143|2 = 0.001849</p><p>|10.0 − 9.972|2 = 0.000784</p><p>|−13.5 + 13.56|2 = 0.0036</p><p>Ajuste os pontos da tabela à função 𝝋(𝒙) = 𝜷𝟏𝒆</p><p>𝜷𝟐𝒙</p><p>𝒙 − 𝟏. 𝟎𝟎 − 𝟎. 𝟕𝟎 − 𝟎. 𝟒𝟎</p><p>− 𝟎. 𝟏𝟎 𝟎. 𝟐𝟎 𝟎. 𝟓𝟎 𝟎. 𝟖𝟎 𝟏. 𝟎𝟎</p><p>𝒚 𝟑𝟔. 𝟓𝟒 𝟏𝟕. 𝟐𝟔 𝟖. 𝟏𝟓 𝟑. 𝟖𝟓 𝟏. 𝟖𝟐 𝟎. 𝟖𝟔 𝟎. 𝟒𝟎 𝟎. 𝟐𝟒</p><p>Devemos linearizar a função. Fazemos isso tomando o logaritmo em ambos lados</p><p>ln𝜑(𝑥) = ln(𝛽1𝑒</p><p>𝛽2𝑥)</p><p>ln𝜑(𝑥) = ln 𝛽1 + ln 𝑒</p><p>𝛽2𝑥</p><p>ln 𝜑(𝑥) = ln𝛽1 + 𝛽2𝑥</p><p>𝑧 ≈ 𝑐1 + 𝑐2𝑥</p><p>onde 𝑐1 = ln𝛽1 e 𝑐2 = 𝛽2. Ajustando os valores para ln 𝑦:</p><p>ln 𝑦 ≈ 𝑧 3.60 2.85 2.10 1.35 0.60 − 0.15 − 0.92 − 1.43</p><p>Criando a matriz Φ</p><p>Φ =</p><p>(</p><p>1.00 − 1.00</p><p>1.00 − 0.70</p><p>1.00 − 0.40</p><p>1.00 − 0.10</p><p>1.00 0.20</p><p>1.00 0.50</p><p>1.00 0.80</p><p>1.00 1.00 )</p><p>A matriz 𝐴 será 𝐴 = Φ𝑇Φ e a matriz 𝑏 será Φ𝑇𝑧𝑇</p><p>𝐴 = (</p><p>1.00 1.00 1.00</p><p>−1.00 −0.70 −0.40</p><p>1.00 1.00 1.00</p><p>−0.10 0.20 0.50</p><p>1.00 1.00</p><p>0.80 1.00</p><p>)</p><p>(</p><p>1.00 − 1.00</p><p>1.00 − 0.70</p><p>1.00 − 0.40</p><p>1.00 − 0.10</p><p>1.00 0.20</p><p>1.00 0.50</p><p>1.00 0.80</p><p>1.00 1.00 )</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>4</p><p>2</p><p>𝐴 = (</p><p>8.00 0.30</p><p>0.30 3.59</p><p>)</p><p>𝑏 = (</p><p>1.00 1.00 1.00</p><p>−1.00 −0.70 −0.40</p><p>1.00 1.00 1.00</p><p>−0.10 0.20 0.50</p><p>1.00 1.00</p><p>0.80 1.00</p><p>)</p><p>(</p><p>3.60</p><p>2.85</p><p>2.10</p><p>1.35</p><p>0.60</p><p>−0.15</p><p>−0.92</p><p>−1.43)</p><p>𝑏 = (</p><p>8.00</p><p>−8.70</p><p>)</p><p>O sistema a ser resolvido é:</p><p>(</p><p>8.00 0.30</p><p>0.30 3.59</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>8.00</p><p>−8.70</p><p>)</p><p>Fazendo 𝑙2 → 𝑙2 − (</p><p>0.30</p><p>8.00</p><p>) 𝑙1</p><p>(</p><p>8.00 0.30</p><p>0 3.58</p><p>) (</p><p>𝑐1</p><p>𝑐2</p><p>) = (</p><p>8.00</p><p>−9.00</p><p>)</p><p>Portanto 𝑐2 = −2.514 e 𝑐1 = 1.094. Uma vez que 𝑐1 = ln𝛽1</p><p>1.094 = ln𝛽1</p><p>𝑒1.094 = 𝛽1</p><p>𝑏1 = 2.9862</p><p>Assim, nossa função é dada por</p><p>𝜑(𝑥) = 2.9862𝑒−2.514𝑥</p><p>Resolva o problema a seguir adotando 𝒉 = 𝟎. 𝟐𝟓</p><p>{</p><p>𝒖′′ − 𝒖 = 𝒆𝒙</p><p>𝒖(𝟎) = 𝟏</p><p>𝒖′(𝟎) = 𝟎</p><p>Colocando na forma geral:</p><p>𝑢′′ = 𝑒𝑡 + 𝑢</p><p>Fazemos</p><p>𝑦 = (</p><p>𝑦1</p><p>𝑦2</p><p>) = (</p><p>𝑢</p><p>𝑢′</p><p>)</p><p>𝑦′ = (𝑢</p><p>′</p><p>𝑢′′</p><p>) = (</p><p>𝑦2</p><p>𝑒𝑡 + 𝑦1</p><p>) = 𝑓(𝑡, 𝑦)</p><p>Para 𝑡0</p><p>𝑦0 = (</p><p>𝑢(0)</p><p>𝑢′(0)</p><p>) = (</p><p>𝑦1(0)</p><p>𝑦2(0)</p><p>) = (</p><p>1</p><p>0</p><p>)</p><p>Aplicando Euler</p><p>𝑦𝑛 = 𝑦𝑛−1 + ℎ𝑓(𝑡𝑛−1, 𝑦𝑛−1)</p><p>Para 𝑛 = 1</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>4</p><p>3</p><p>𝑦1 = 𝑦0 + ℎ𝑓(𝑡0, 𝑦0)</p><p>𝑦1 = (</p><p>1</p><p>0</p><p>) + 0.25 (</p><p>0</p><p>𝑒0 + 1</p><p>)</p><p>𝑦1 = (</p><p>1</p><p>0</p><p>) + (</p><p>0</p><p>0.5</p><p>) = (</p><p>1</p><p>0.5</p><p>)</p><p>Para 𝑛 = 2</p><p>𝑦2 = 𝑦1 + ℎ𝑓(𝑡1, 𝑦1)</p><p>de modo que 𝑡1 = 𝑡0 + ℎ = 0 + 0.25 = 0.25</p><p>𝑦2 = (</p><p>1</p><p>0.5</p><p>) + 0.25 (</p><p>0.5</p><p>𝑒0.25 + 1</p><p>) = (</p><p>1.125</p><p>1.071</p><p>)</p><p>Aproxime os valores no intervalo obtido para</p><p>{</p><p>𝒚′′ = 𝟑𝒙𝒚′ − 𝒚 + 𝒙</p><p>𝒚(𝟎) = 𝟎</p><p>𝒚(𝟏) = 𝟎</p><p>adotando 𝒉 = 𝟎. 𝟐𝟓.</p><p>Uma vez que temos o valor de ℎ e dos extremos, fazemos:</p><p>ℎ =</p><p>𝑏 − 𝑎</p><p>𝑛</p><p>→ 𝑛 =</p><p>𝑏 − 𝑎</p><p>ℎ</p><p>=</p><p>1 − 0</p><p>0.25</p><p>= 4</p><p>o que mostra que estaremos trabalhando com 4 subintervalos. Vamos trabalhar encima da ta-</p><p>bela mostrada a seguir. Como o tamanho do passo é 0.25, iremos analisar o problema nos pon-</p><p>tos 𝑥 = 0, 𝑥 = 0.25, 𝑥 = 0.50, 𝑥 = 0.75 e 𝑥 = 1.00. Note que no ponto 𝑦0 a função assume o</p><p>valor 0, e o mesmo para o ponto 𝑦1. Assim, devemos procurar determinar os valores nos pontos</p><p>entre os extremos do intervalo. Em outras palavras, vamos analisar os pontos 1, 2 e 3. Nossa</p><p>tabela assume, num primeiro momento, o seguinte aspecto:</p><p>Vamos escrever nossa equação na forma</p><p>𝑦′′(𝑥𝑗) − 3𝑥𝑗𝑦</p><p>′(𝑥𝑗) + 𝑦(𝑥𝑗) = 𝑥𝑗</p><p>Agora usaremos as fórmulas das diferenciais finitas, usando a diferença centrada. Assim</p><p>[</p><p>𝑦𝑗+1 − 2𝑦𝑗 + 𝑦𝑗−1</p><p>ℎ2</p><p>] − 3𝑥𝑗 [</p><p>𝑦𝑗+1 − 𝑦𝑗−1</p><p>2ℎ</p><p>] + 𝑦𝑗 = 𝑥𝑗</p><p>𝑗 𝑥𝑗 𝑦𝑗</p><p>0 0 0</p><p>1 0.25</p><p>2 0.50</p><p>3 0.75</p><p>4 1.00 0</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>4</p><p>4</p><p>multiplicando tudo por ℎ2</p><p>𝑦𝑗+1 − 2𝑦𝑗 + 𝑦𝑗−1 −</p><p>3</p><p>2</p><p>ℎ𝑥𝑗𝑦𝑗+1 +</p><p>3</p><p>2</p><p>ℎ𝑥𝑗𝑦𝑗−1 + ℎ</p><p>2𝑦𝑗 = ℎ</p><p>2𝑥𝑗</p><p>juntando os termos semelhantes</p><p>(1 −</p><p>3</p><p>2</p><p>ℎ𝑥𝑗) 𝑦𝑗+1 + (ℎ</p><p>2 − 2)𝑦𝑗 + (1 +</p><p>3</p><p>2</p><p>ℎ𝑥𝑗) 𝑦𝑗−1 = ℎ</p><p>2𝑥𝑗</p><p>usando o valor de ℎ = 0.25, obtemos a seguinte equação:</p><p>(𝟏 − 𝟎. 𝟑𝟕𝟓𝒙𝒋)𝒚𝒋+𝟏 − 𝟏. 𝟗𝟑𝟕𝟓𝒚𝒋 + (𝟏 + 𝟎. 𝟑𝟕𝟓𝒙𝒋)𝒚𝒋−𝟏 = 𝟎. 𝟎𝟔𝟐𝟓𝒙𝒋</p><p>que é a equação base para resolver esse problema. Uma vez que já temos os valores para 𝑗 = 0,</p><p>nosso primeiro ponto será 𝑗 = 1. Assim, a equação acima se torna:</p><p>(1 − 0.375 ∙ 0.25)𝑦1+1 − 1.9375𝑦1 + (1 + 0.375 ∙ 0.25)𝑦1−1 = 0.0625 ∙ 0.25</p><p>(1 − 0.375 ∙ 0.25)𝑦1+1 − 1.9375𝑦1 + (1 + 0.375 ∙ 0.25)𝑦1−1 = 0.0625 ∙ 0.25</p><p>0.90625𝑦2 − 1.9375𝑦1 + 1.09375𝑦0 = 0.015625</p><p>como 𝑦0 = 0, obtemos</p><p>0.90625𝑦2 − 1.9375𝑦1 = 0.015625</p><p>Não há mais o que fazer. Vamos para 𝑗 = 2:</p><p>(1 − 0.375 ∙ 0.50)𝑦2+1 − 1.9375𝑦2 + (1 + 0.375 ∙ 0.50)𝑦2−1 = 0.0625 ∙ 0.50</p><p>0.8125𝑦3 − 1.9375𝑦2 + 1.1875𝑦1 = 0.03125</p><p>O próximo passa é para 𝑗 = 3:</p><p>(1 − 0.375 ∙ 0.75)𝑦3+1 − 1.9375𝑦3 + (1 + 0.375 ∙ 0.75)𝑦3−1 = 0.0625 ∙ 0.75</p><p>0.71875𝑦4 − 1.9375𝑦3 + 1.28125𝑦2 = 0.046875</p><p>como 𝑦4 = 0</p><p>−1.9375𝑦3 + 1.28125𝑦2 = 0.046875</p><p>Agora temos um sistema com três equações e três incógnitas. Colocando na forma de matriz:</p><p>(</p><p>−1.9375 0.90625 0</p><p>1.1875 −1.9375 0.8125</p><p>0 1.28125 −1.9375</p><p>)(</p><p>𝑦1</p><p>𝑦2</p><p>𝑦3</p><p>) = (</p><p>0.015625</p><p>0.03125</p><p>0.046875</p><p>)</p><p>Fazendo 𝑙2 → 𝑙2 + (</p><p>1.1875</p><p>1.9375</p><p>) 𝑙1</p><p>(</p><p>−1.9375 0.90625 0</p><p>0 −1.3821 0.8125</p><p>0 1.28125 −1.9375</p><p>)(</p><p>𝑦1</p><p>𝑦2</p><p>𝑦3</p><p>) = (</p><p>0.015625</p><p>0.04083</p><p>0.046875</p><p>)</p><p>Fazendo 𝑙3 → 𝑙3 + (</p><p>1.28125</p><p>1.3821</p><p>) 𝑙2</p><p>(</p><p>−1.9375 0.90625 0</p><p>0 −1.3821 0.8125</p><p>0 0 −1.1843</p><p>)(</p><p>𝑦1</p><p>𝑦2</p><p>𝑦3</p><p>) = (</p><p>0.015625</p><p>0.04083</p><p>0.08473</p><p>)</p><p>o que fornece</p><p>𝑦3 = −0.07154</p><p>𝑦2 = −0.07157</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>4</p><p>5</p><p>𝑦1 = −0.04154</p><p>Com esses resultados, completamos a tabela:</p><p>Aproxime os valores no intervalo obtido para</p><p>{</p><p>𝒚′′ + 𝟐𝒚′ + 𝒚 = 𝒙</p><p>𝒚(𝟎) = 𝟐</p><p>𝒚(𝟏) = 𝟎</p><p>adotando 𝒉 = 𝟎. 𝟐𝟓.</p><p>Os pontos analisados serão:</p><p>Nossa equação é</p><p>𝑦′′(𝑥𝑗) + 2𝑦</p><p>′(𝑥𝑗) + 𝑦(𝑥𝑗) = 𝑥𝑗</p><p>Usando as aproximações centradas</p><p>[</p><p>𝑦𝑗+1 − 2𝑦𝑗 + 𝑦𝑗−1</p><p>ℎ2</p><p>] + 2 [</p><p>𝑦𝑗+1 − 𝑦𝑗−1</p><p>2ℎ</p><p>] + 𝑦𝑗 = 𝑥𝑗</p><p>Multiplicando tudo por ℎ2</p><p>𝑦𝑗+1 − 2𝑦𝑗 + 𝑦𝑗−1 + ℎ𝑦𝑗+1 − ℎ𝑦𝑗−1 + ℎ</p><p>2𝑦𝑗 = ℎ</p><p>2𝑥𝑗</p><p>Agrupando os termos semelhantes</p><p>(1 + ℎ)𝑦𝑗+1 + (ℎ</p><p>2 − 2)𝑦𝑗 + (1 − ℎ)𝑦𝑗−1 = ℎ</p><p>2𝑥𝑗</p><p>usando o valor de ℎ = 0.25</p><p>𝟏. 𝟐𝟓𝒚𝒋+𝟏 − 𝟏. 𝟗𝟑𝟕𝟓𝒚𝒋 + 𝟎. 𝟕𝟓𝒚𝒋−𝟏 = 𝟎. 𝟎𝟔𝟐𝟓𝒙𝒋</p><p>que é a equação base que iremos resolver. Para 𝑗 = 1</p><p>𝑗 𝑥𝑗 𝑦𝑗</p><p>0 0 0</p><p>1 0.25 −0.04154</p><p>2 0.50 −0.07157</p><p>3 0.75 −0.07154</p><p>4 1.00 0</p><p>𝑗 𝑥𝑗 𝑦𝑗</p><p>0 0 2</p><p>1 0.25</p><p>2 0.50</p><p>3 0.75</p><p>4 1.00 0</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>4</p><p>6</p><p>1.25𝑦2 − 1.9375𝑦1 + 0.75𝑦0 = 0.0625 ∙ 0.25</p><p>1.25𝑦2 − 1.9375𝑦1 + 0.75 ∙ 2 = 0.015625</p><p>1.25𝑦2 − 1.9375𝑦1 = −1.484375</p><p>Para 𝑗 = 2</p><p>1.25𝑦3 − 1.9375𝑦2 + 0.75𝑦1 = 0.0625 ∙ 0.50</p><p>1.25𝑦3 − 1.9375𝑦2 + 0.75𝑦1 = 0.03125</p><p>Para 𝑗 = 3 (e atentando que 𝑦4 = 0)</p><p>1.25𝑦4 − 1.9375𝑦3 + 0.75𝑦2 = 0.0625 ∙ 0.75</p><p>−1.9375𝑦3 + 0.75𝑦2 = 0.046875</p><p>Montando nosso sistema</p><p>(</p><p>−1.9375 1.25 0</p><p>0.75 −1.9375 1.25</p><p>0 0.75 −1.9375</p><p>)(</p><p>𝑦1</p><p>𝑦2</p><p>𝑦3</p><p>) = (</p><p>−1.487375</p><p>0.03125</p><p>0.046875</p><p>)</p><p>Tomando 𝑙2 → 𝑙2 + (</p><p>0.75</p><p>1.9375</p><p>) 𝑙1</p><p>(</p><p>−1.9375 1.25 0</p><p>0 −1.4536 1.25</p><p>0 0.75 −1.9375</p><p>)(</p><p>𝑦1</p><p>𝑦2</p><p>𝑦3</p><p>) = (</p><p>−1.487375</p><p>−0.54451</p><p>0.046875</p><p>)</p><p>Fazendo 𝑙3 → 𝑙3 + (</p><p>0.75</p><p>1.4536</p><p>) 𝑙2</p><p>(</p><p>−1.9375 1.25 0</p><p>0 −1.4536 1.25</p><p>0 0 −1.2925</p><p>)(</p><p>𝑦1</p><p>𝑦2</p><p>𝑦3</p><p>) = (</p><p>−1.487375</p><p>−0.54451</p><p>−0.2341</p><p>)</p><p>o que fornece</p><p>𝑦3 = 0.18112</p><p>𝑦2 = 0.5303</p><p>𝑦1 = 1.1098</p><p>Logo, nossa tabela fica</p><p>𝑗 𝑥𝑗 𝑦𝑗</p><p>0 0 2</p><p>1 0.25 1.1098</p><p>2 0.50 0.5303</p><p>3 0.75 0.18112</p><p>4 1.00 0</p><p>3.141592654… Então</p><p>𝑓𝑙(𝜋) = 0.31416 ∙ 101</p><p>Exemplo 8: Qual o menor e o maior número representável num sistema de base 10, 5</p><p>dígitos para a mantissa e 2 para o expoente?</p><p>O menor número seria:</p><p>0.10000 ∙ 10−99</p><p>e o maior seria:</p><p>0.99999 ∙ 1099</p><p>Agora que temos uma ideia de como representar números em ponto flutuante, podemos</p><p>retomar ao estudo de erros.</p><p>O que faremos agora é determinar a diferença entre precisão e acurácia.</p><p>Precisão se refere a um propriedade do sistema de ponto flutuante da máquina. Já acu-</p><p>rácia diz respeito a como iremos fazer um cálculo de modo a obter a resposta o mais próximo</p><p>possível do valor real. Uma máquina possui grande precisão se os erros em operações matemá-</p><p>ticas forem pequenos. A acurácia irá mostrar o quão bom está o resultado.</p><p>Existem dois tipos de precisão, que chamamos de precisão simples e precisão dupla. A</p><p>diferença entre essas duas é o espaço utilizado para armazenamento de números de ponto flu-</p><p>tuante. Na precisão simples são utilizados 32 bits, enquanto que na dupla são 64. Abaixo temos</p><p>um esquema que descreve como os bits são distribuídos, de modo que 𝑠 é o sinal do número, 𝑒</p><p>é o expoente do número e 𝑓 é a mantissa.</p><p>O menor número 𝑢 positivo de ponto flutuante que satisfaz a relação</p><p>𝑓𝑙(1 + 𝑢) > 1</p><p>é denominado unidade de arredondamento.</p><p>Exemplo 9: Uma calculadora científica modelo 𝑓𝑥 − 82𝑀𝑆, da CASIO, possui uma unidade</p><p>de arredondamento na ordem de 10−9. Se fizermos 1 + 1 ∙ 10−9 teremos como resposta</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>8</p><p>1.000000001. Se fizemos 1 + 1 ∙ 10−10 teremos como resposta 1. Portanto a ordem de gran-</p><p>deza de 𝑢 é igual a 10−9.</p><p>Podemos, então, dizer que a unidade de arredondamento mede a precisão da máquina.</p><p>Um algoritmo para calcular com quantos dígitos uma máquina trabalha é:</p><p>1. 𝜖 = 1</p><p>2. Para j = 1,2,… faça</p><p>3. 𝜖 = 𝜖/2</p><p>4. Se 1 + 𝜖 > 1 então</p><p>5. Volte a 3</p><p>6. Caso contrário</p><p>7. Escreva o valor de j</p><p>Consideremos um sistema de ponto flutuante simples que seja capaz de representar ape-</p><p>nas cinco dígitos significativos de um número e um único digito para o expoente. Nesse sistema,</p><p>a unidade de arredondamento é 𝑢 = 10−4.</p><p>Exemplo 10: Num sistema de ponto flutuante com cinco dígitos significativos, calcule</p><p>49213 + 31.728 − 49244.</p><p>Calculando de modo direto, temos:</p><p>49213 + 31.728 − 49244 = 0.728</p><p>Agora, vamos transformar esses números em ponto flutuante para fazer o cálculo de forma nu-</p><p>mérica. Fazendo a primeira soma:</p><p>49213 + 31.728 = 49244.728</p><p>escrevendo na forma de ponto flutuante:</p><p>0.49245 ∙ 105</p><p>Tornando o ultimo termo em ponto flutuante</p><p>. 49244 ∙ 105</p><p>Fazendo a subtração:</p><p>0.49245 ∙ 105 − 0.49244 ∙ 105 = 0.00001 ∙ 105 = 1</p><p>Veja que o valor obtido foi diferente daquele calculando de forma direta. O erro relativo no cál-</p><p>culo foi</p><p>|1 − 0.728|</p><p>0.728</p><p>= 3.74 ∙ 10−1</p><p>que é bem maior que a unidade de arredondamento do sistema que estamos usando (3.74 ∙</p><p>10−1 ≫ 10−4). Em que passo esse erro foi originado? Note que a primeira adição fornece um</p><p>resultado com 8 dígitos. Entretanto, nosso “computador de mão” guarda somente os 5 primeiros</p><p>dígitos. Esse problema de perda de dígitos não é preocupante para a adição em si. Entretanto,</p><p>P</p><p>ág</p><p>in</p><p>a1</p><p>9</p><p>na hora de realizar a subtração esses 3 dígitos perdidos passaram a fazer falta. Os cinco primei-</p><p>ros dígitos foram cancelados, mas os outros 3 seriam necessários para o cálculo exato.</p><p>Exemplo 11: Vamos determinar as raízes da equação 𝑎𝑥2 − 𝑏𝑥 + 𝑐 = 0.</p><p>Podemos resolver esse exercício aplicando diretamente:</p><p>𝑥1 =</p><p>𝑏 + √𝑏2 − 4𝑎𝑐</p><p>2𝑎</p><p>; 𝑥2 =</p><p>𝑏 − √𝑏2 − 4𝑎𝑐</p><p>2𝑎</p><p>O problema dessa solução ocorre quando 𝑏2 ≫ 4𝑎𝑐. Nesse caso, a raiz 𝑥2 será aproximada para</p><p>𝑥2 ≈</p><p>𝑏2 − 𝑏2</p><p>2𝑎</p><p>= 0</p><p>O fato é que haverá perdas de dígitos significativos ao fazer essa subtração, o que irá compro-</p><p>meter o resultado. Um modo de contornar isso é calcular 𝑥2 através de 𝑥1 usando a relação:</p><p>𝑥2 =</p><p>𝑐</p><p>𝑥1𝑎</p><p>Consideremos a equação 𝑥2 − 100.22𝑥 + 1.2371 = 0. Usando aritmética de ponto flutuante</p><p>com cinco dígitos:</p><p>𝑏2 = 10044</p><p>𝑏2 − 4𝑎𝑐 = 10039</p><p>√𝑏2 − 4𝑎𝑐 = 100.19</p><p>Calculando as raízes usando o primeiro procedimento:</p><p>𝑥1 =</p><p>100.22 + 100.19</p><p>2</p><p>= 100.20</p><p>𝑥2 =</p><p>100.22 − 100.19</p><p>2</p><p>= 0.015</p><p>Calculando a segunda raiz do outro modo:</p><p>𝑥2 =</p><p>𝑐</p><p>𝑥1𝑎</p><p>=</p><p>1.2371</p><p>100.20 ∙ 1</p><p>= 0.01235</p><p>Exemplo 12: Reescreva a expressão √𝑥2 + 1 − 𝑥 para reduzir os possíveis erros.</p><p>Note que um possível erro surge se 𝑥 ≫ 1. Nesse caso, a expressão será aproximada para</p><p>√𝑥2 − 𝑥 = 𝑥 − 𝑥 = 0. Um modo de reescrever essa equação é usar a racionalização:</p><p>√𝑥2 + 1 − 𝑥</p><p>(√𝑥2 + 1 + 𝑥)</p><p>(√𝑥2 + 1 + 𝑥)</p><p>𝑥2 + 1 − 𝑥2</p><p>√𝑥2 + 1 + 𝑥</p><p>=</p><p>1</p><p>√𝑥2 + 1 + 𝑥</p><p>Exemplo 13: Reescreva a expressão √1 + 𝑥2 − 1 para reduzir possíveis erros.</p><p>Nesse caso, se 𝑥 ≪ 1 a expressão se aproxima de √1 − 1 = 0. Fazendo o mesmo proce-</p><p>dimento do exercício 12:</p><p>P</p><p>ág</p><p>in</p><p>a2</p><p>0</p><p>√1 + 𝑥2 − 1</p><p>(√1 + 𝑥2 + 1)</p><p>(√1 + 𝑥2 + 1)</p><p>1 + 𝑥2 − 1</p><p>√1 + 𝑥2 + 1</p><p>=</p><p>𝑥2</p><p>√1 + 𝑥2 + 1</p><p>Exemplo 14: Reescreva a expressão (1 − 𝑐𝑜𝑠 𝑥)/ 𝑠𝑖𝑛 𝑥 para reduzir possíveis erros.</p><p>Um erro que pode ocorrer é se 𝑥 for próximo de zero. Nesse caso, teremos 𝑐𝑜𝑠 𝑥 ≈ 1, de</p><p>modo a anular o resultado. Vamos multiplicar por 𝑐𝑜𝑠 𝑥 / 𝑐𝑜𝑠 𝑥</p><p>1 − 𝑐𝑜𝑠 𝑥</p><p>𝑠𝑖𝑛 𝑥</p><p>(𝑐𝑜𝑠 𝑥)</p><p>(𝑐𝑜𝑠 𝑥)</p><p>𝑐𝑜𝑠 𝑥 + 𝑐𝑜𝑠2 𝑥</p><p>𝑠𝑖𝑛 𝑥 𝑐𝑜𝑠 𝑥</p><p>Pela trigonometria, temos</p><p>𝑠𝑖𝑛2 𝑥 + 𝑐𝑜𝑠2 𝑥 = 1</p><p>logo</p><p>𝑐𝑜𝑠2 𝑥 = 1 − 𝑠𝑖𝑛2 𝑥</p><p>Com isso, nossa expressão se torna:</p><p>𝑐𝑜𝑠 𝑥 + 1 − 𝑠𝑖𝑛2 𝑥</p><p>𝑠𝑖𝑛 𝑥 𝑐𝑜𝑠 𝑥</p><p>Nem sempre uma perda de dígitos significativos estará associada com a subtração de nú-</p><p>meros próximos. Por exemplo, computacionalmente não há como somar infinitos termos. Veja</p><p>a seguinte soma:</p><p>𝑆 = ∑</p><p>1</p><p>𝑘2</p><p>=</p><p>𝜋2</p><p>6</p><p>∞</p><p>𝑘=1</p><p>computacionalmente esse resultado é aproximado para</p><p>𝑆 ≈ 𝑆𝑁 =∑</p><p>1</p><p>𝑘2</p><p>𝑁</p><p>𝑘=1</p><p>Um algoritmo para realizar computacionalmente essa soma é:</p><p>𝑘 ← 2, 𝑠 ← 1</p><p>Enquanto 𝑘 ≤ 𝑁,</p><p>𝑠 ← 𝑠 + 1/𝑘²</p><p>𝑘 ← 𝑘 + 1</p><p>de modo que ← é o símbolo de atribuição.</p><p>Perdas de dígitos geram overflow e underflow.</p><p>Sabemos que um número em ponto flutuante é dado por</p><p>𝑓𝑙(base, números de dígitos, expoente)</p><p>P</p><p>ág</p><p>in</p><p>a2</p><p>1</p><p>Exemplo 15: Vejamos o caso dado por 𝑓𝑙(10, 3, −5, 5), ou seja, o expoente vai de −5 a 5.</p><p>Nessas condições, podemos escrever o número 235.89 como ponto flutuante?</p><p>Esse número pode ser escrito sem problema algum:</p><p>0.23589 ∙ 103</p><p>Como queremos 3 algarismos para a mantissa:</p><p>0.236 ∙ 103</p><p>Exemplo 16: Seguindo a mesma condição do exemplo 15, podemos representar o número</p><p>0.345 ∙ 10−7 em ponto flutuante?</p><p>Nesse caso, atente que o expoente está fora do intervalo de [−5,5]. O número que esta-</p><p>mos tentando representar é menor do que o número que nossa máquina pode computar. Isso é</p><p>o que caracteriza um underflow.</p><p>Exemplo 17: Seguindo a mesma condição do exemplo 15, podemos representar o número</p><p>0.875 ∙ 109 em ponto flutuante?</p><p>Novamente vemos que o expoente está fora do intervalo [−5,5]. Aqui, o número que es-</p><p>tamos tentando representar é muito maior do que o que podemos computar. Isso caracteriza</p><p>um overflow.</p><p>Exemplo 18: A norma euclidiana de um vetor 𝑥 = (𝑥1, 𝑥2, … , 𝑥𝑛)</p><p>𝑇 é dada por</p><p>|𝑥|2 = √𝑥1</p><p>2 + 𝑥2</p><p>2 +⋯+ 𝑥𝑛</p><p>2</p><p>Um algoritmo para calcular a norma seria</p><p>𝑘 ← 1, 𝑠 ← 0</p><p>Enquanto 𝑘 ≤ 𝑛:</p><p>𝑠 ← 𝑠 + (𝑥𝑘 ∙ 𝑥𝑘)</p><p>𝑘 ← 𝑘 + 1</p><p>𝑠 ← √𝑠</p><p>Considerando no máximo um dígito para o expoente, tomemos 𝑥 = (6 ∙ 104, 8 ∙ 104). Nesse</p><p>caso |𝑥|2 = 10</p><p>5. Seguindo o algoritmo, teremos:</p><p>𝑠 = 3.6 × 109 + (8 ∙ 104 × 8 ∙ 104) → 𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤</p><p>note que o overflow surge logo na multiplicação entre parêntesis.</p><p>EXERCÍCIOS DE REVISÃO</p><p>Exercício 1: Considere o sistema 𝐹(10,4,−4,4). Represente os seguintes números: a)</p><p>432124; b) -0.0013523; c) 125.64; d) 0.00034</p><p>a) 432124 → 0.432124 ∙ 106 → nesse caso temos um overflow</p><p>b) −0.0013523 → −0.1352 ∙ 10−2</p><p>c) 125.64 → 0.1256 ∙ 103</p><p>P</p><p>ág</p><p>in</p><p>a2</p><p>2</p><p>d) 0.00034 → 0.3400 ∙ 10−3</p><p>Exercício 2: Mude os seguintes números: a) (1101)2 para base 10; b) (0.110)2 para base</p><p>10; c) (13)10 para base 2; d) (0.75)10 para base 2.</p><p>a) (1101)2 = 1 × 2</p><p>3 + 1 × 22 + 0 × 21 + 1 × 20 = 8 + 4 + 0 + 1 = 13</p><p>b) (0.110)2 = 1 × 2</p><p>−1 + 1 × 2−2 + 0 × 2−3 = 1 ×</p><p>1</p><p>2</p><p>+ 1 ×</p><p>1</p><p>4</p><p>+ 0 ×</p><p>1</p><p>8</p><p>= 0.5 + 0.25 =</p><p>0.75</p><p>c) (13)10 → aqui iremos dividido por 2, de modo a tomar o resto. Assim 13/2 = 6 (resto</p><p>1); 6/2 = 3 (resto 0); 3/2 = 1 (resto 1); 1/2 = 0 (resto 1). Logo, contando de trás para</p><p>frente temos 1310 = 11012.</p><p>d) Para converter números fracionários em binário devemos multiplicar o número por</p><p>dois e analisar o valor. Vejamos: 0.75 x 2 é igual a 1.5. Agora devemos analisar a parte</p><p>inteira e a parte decimal. A parte inteira é maior que 0.5, logo o valor retorna 1. Agora,</p><p>vamos multiplicar a parte decimal por 2: 0.5 x 2 = 1.0. Como obtivemos um valor maior</p><p>que 0.5, o valor retorna 1. Assim, 0.7510 = 0.112</p><p>P</p><p>ág</p><p>in</p><p>a2</p><p>3</p><p>Método de Newton</p><p>Vamos analisar o problema de um canhão disparando um projétil, como mostra a figura.</p><p>As equações que regem o movimento do projétil, na direção vertical, são dadas por:</p><p>𝑦′′(𝑡) = −𝑔</p><p>𝑦(0) = 0</p><p>𝑦′(0) = 𝑣0 sin𝜃</p><p>𝑦(𝑡) = (𝑣0 sin𝜃)𝑡 −</p><p>𝑔𝑡2</p><p>2</p><p>A partir delas, podemos determinar o tempo total de movimento, ou o tempo que o projétil</p><p>demora a atingir o alvo, como:</p><p>𝑦(𝑡) = 0 → 𝑡 =</p><p>2𝑣0 sin𝜃</p><p>𝑔</p><p>Uma vez que a distância 𝑑 é dada por:</p><p>𝑑 = (𝑣0 cos𝜃)𝑡</p><p>podemos obter uma função que fornece a relação entre a distância e o ângulo de tiro:</p><p>𝑓(𝜃) =</p><p>2𝑣0</p><p>2 sin𝜃 cos𝜃</p><p>𝑔</p><p>− 𝑑 = 0</p><p>Ou seja, para calibrar o ângulo de tiro precisamos resolver a equação não-linear acima, de modo</p><p>que 𝑓(𝜃) = 0. Mas antes de tentar encontrar uma solução, é sensato pensar em algumas ques-</p><p>tões. Primeiro de tudo, será que essa equação possui, de fato, uma solução? Note que se 𝑑 ></p><p>𝑣0</p><p>2/𝑔, não teremos solução. Outro ponto em questão é que essa função pode ter mais de uma</p><p>solução. Em outras palavras, pode não haver unicidade. No caso de não haver unicidade, algu-</p><p>mas soluções podem não fazer sentido físico.</p><p>Antes de tentarmos resolver uma equação do tipo apresentada, é conveniente pensar se</p><p>existe algum meio de simplificar a função. Para alguns métodos que iremos estudar, a simplifi-</p><p>cação ajuda na determinação de uma solução. Além disso, alguns métodos necessitaram da de-</p><p>rivada da função. Portanto, devemos saber se 𝑓 é diferenciável.</p><p>Uma função contínua que troca de sinal nos extremos de um intervalo passa por pelo</p><p>menos um ponto do eixo das abscissas. Podemos exprimir isso através do teorema de Bolzano:</p><p>P</p><p>ág</p><p>in</p><p>a2</p><p>4</p><p>Seja 𝑓 uma função contínua em [a, b]. Se 𝑓(a) ∙ 𝑓(b) 0 > 𝑓(b)). Podemos</p><p>exprimir melhor essa ideia com o teorema da unicidade: Seja 𝑓 diferenciável em [a, b]. Se 𝑓(a) ∙</p><p>𝑓(b) 0. Se 𝑥 = 0, então</p><p>𝑓′(0) 0 para qualquer valor de 𝑥 > √2 (é estritamente crescente para 𝑥 maior que</p><p>√2). Para 𝑥 = 1.5 e 𝑥 = 3, temos que 𝑓(1.5) 0. Fazendo a derivada:</p><p>𝑓′(𝑥) = 2𝑥 −</p><p>5</p><p>2√5𝑥</p><p>Se 𝑥 > 1, então 𝑓′(𝑥) > 0. Assim, existe um único zero de 𝑓 no intervalo (1,2).</p><p>Método da Bissecção</p><p>Um modo de determinar o zero de uma função é a partir do método da bissecção. Para</p><p>isso, partimos de um intervalo inicial [a, b] de modo que 𝑓(a) ∙ 𝑓(b)</p><p>Vou “chutar” 𝑥𝑘 = 2. Fa-</p><p>zendo o cálculo em Octave:</p><p>Repare que na segunda iteração o método de Newton já fornece uma aproximação muito boa</p><p>para o resultado. Para ficar mais visível como utilizamos esse método, vamos fazer aqui, usando</p><p>uma calculadora científica.</p><p>𝑥𝑘 = 2</p><p>𝑥𝑘+1 = 2 −</p><p>(2)2 − 3</p><p>2 ∙ (2)</p><p>= 1.75</p><p>Agora, 1.75 será o novo valor de 𝑥𝑘:</p><p>𝑥𝑘+1 = 1.75 −</p><p>(1.75)2 − 3</p><p>2 ∙ (1.75)</p><p>= 1.732142857</p><p>Na mesma calculador, fazendo √3 encontramos 1.732050808, ou seja, em duas iterações já te-</p><p>mos uma aproximação da ordem de 10−4. O que ocorre se fizermos mais uma? Tomando</p><p>1.732142857 como o novo 𝑥𝑘:</p><p>𝑥𝑘+1 = 1.732142857 −</p><p>(1.732142857)2 − 3</p><p>2 ∙ (1.732142857)</p><p>= 1.73205081</p><p>onde obtivemos uma aproximação de 10−9. Se fizermos mais uma aproximação, então iremos</p><p>encontrar um valor mais preciso que nem a calculadora poderá computar.</p><p>Exemplo 2: Estime o valor de √10</p><p>3</p><p>.</p><p>Podemos escrever a função para calcular esse resultado como sendo 𝑓(𝑥) = 𝑥3 − 10, de</p><p>modo que 𝑓′(𝑥) = 3𝑥2. Novamente, vou usar 𝑥𝑘 = 2 como uma aproximação razoável.</p><p>𝑘𝑘+1 = 2 −</p><p>(2)3 − 10</p><p>3 ∙ (2)2</p><p>= 2.166666667</p><p>𝑥𝑘+1 = 2.166666667 −</p><p>(2.166666667)3 − 10</p><p>3 ∙ (2.166666667)2</p><p>= 2.154503616</p><p>Na mesma calculadora, √10</p><p>3</p><p>= 2.154433469. Assim, vemos que na segunda iteração já obtive-</p><p>mos uma boa aproximação para a raiz.</p><p>Exemplo 3: Calcule √10</p><p>3</p><p>usando o método da bissecção.</p><p>P</p><p>ág</p><p>in</p><p>a3</p><p>0</p><p>Para isso, precisamos, primeiro, definir dois pontos em que a função troca de sinal. Para</p><p>𝑥 = 2 temos:</p><p>𝑓(2) = 23 − 10 = −2 0</p><p>Portanto, podemos usar esse intervalo. Pelo método da bissecção, tomamos o valor médio entre</p><p>esses dois pontos:</p><p>𝑥𝑀 =</p><p>2 + 3</p><p>2</p><p>= 2.5</p><p>Para 2.5 temos 𝑓(2.5) = (2.5)3 − 10 = 5.625 > 0. Ou seja, agora nosso novo intervalor será</p><p>[2, 2.5]. Tomando a média:</p><p>𝑥𝑀 =</p><p>2 + 2.5</p><p>2</p><p>= 2.25</p><p>Para 2.25 temos 𝑓(2.25) = (2.25)3 − 10 = 1.39 > 0. Como o sinal é positivo, nosso novo in-</p><p>tervalo será [2, 2.25]:</p><p>𝑥𝑀 =</p><p>2 + 2.25</p><p>2</p><p>= 2.125</p><p>Para esse valor 𝑓(2.125) = −0.404 0. Então o novo intervalo será [2.125, 2.1875]. O ponto</p><p>médio será 𝑥𝑀 = 2.156, de modo que 𝑓(2.156) = 0.0218 > 0. Com isso, o novo intervalo será</p><p>[2.125, 2.156]. Tomando a média, teremos 𝑥𝑀 = 2.141, de modo que 𝑓(2.141) = −0.19</p><p>na primeira iteração, de modo a manter o valor</p><p>nas iterações seguintes.</p><p>Existe ainda o método das secantes, em que a reta tangente é substituída por uma reta</p><p>secante. Para esse método, é necessário iniciar com dois pontos.</p><p>Para esse método, temos:</p><p>𝑥𝑘+1 = 𝑥𝑘 −</p><p>𝑓(𝑥𝑘)</p><p>𝑔𝑘</p><p>onde</p><p>𝑔𝑘 =</p><p>𝑓(𝑥𝑘) − 𝑓(𝑥𝑘−1)</p><p>𝑥𝑘 − 𝑥𝑘−1</p><p>Exemplo 1: Use o método das secantes para calcular √3.</p><p>Fazemos 𝑓(𝑥) = 𝑥2 − 3. Agora, devemos escolher dois pontos próximos. Vou tomar 𝑥𝑘 =</p><p>2 e 𝑥𝑘−1 = 1.2. Com isso:</p><p>𝑔𝑘 =</p><p>(2)2 − 3 − ((1.2)2 − 3)</p><p>2 − 1.2</p><p>= 3.2</p><p>P</p><p>ág</p><p>in</p><p>a3</p><p>5</p><p>𝑥𝑘+1 = 2 −</p><p>(2)2 − 3</p><p>3.2</p><p>= 1.6875</p><p>Agora, o novo valor de 𝑥𝑘 = 1.6875 e o valor anterior fica 𝑥𝑘−1 = 2. Com isso</p><p>𝑔𝑘 =</p><p>(1.6875)2 − 3 − ((2)2 − 3)</p><p>1.6875 − 2</p><p>= 3.6875</p><p>𝑥𝑘+1 = 1.6875 −</p><p>(1.6875)2 − 3</p><p>3.6875</p><p>= 1.7288</p><p>Então 𝑥𝑘 = 1.7288 e 𝑥𝑘−1 = 1.6875:</p><p>𝑔𝑘 =</p><p>(1.7288)2 − 3 − ((1.6875)2 − 3)</p><p>1.7288 − 1.6875</p><p>= 3.4163</p><p>𝑥𝑘+1 = 1.7288 −</p><p>(1.7288)2 − 3</p><p>3.4163</p><p>= 1.7321</p><p>o que já é uma boa aproximação. Note que o número de iterações foi superior à do método de</p><p>Newton.</p><p>Exemplo 2: Resolva 𝑓(𝑥) = 3𝑥2 − 𝑒𝑥 usando o método mais conveniente.</p><p>Encontrar os zeros dessa função pode não ser tão trivial. Porém, podemos pensar que,</p><p>para 𝑥 = 1 teremos 𝑓(1) ≈ 0, que é um valor próximo do zero. Usando o método de Newton:</p><p>Um algoritmo para o método das secantes é:</p><p>Dados 𝑥0, 𝑥1, 𝑓(𝑥), 𝜖1 e/ou 𝜖2</p><p>Para 𝑘 = 0,1,2,…</p><p>𝑥𝑘+1 =</p><p>𝑥𝑘+1𝑓(𝑥𝑘) − 𝑥𝑘𝑓(𝑥𝑘−1)</p><p>𝑓(𝑥𝑘) − 𝑓(𝑥𝑘−1)</p><p>Se |𝑓(𝑥𝑘+1)| 0</p><p>𝑓(1) = −5.2 0, qual é o menor número de iterações necessárias para que o mé-</p><p>todo da bissecção encontre raízes com uma precisão 𝜖? Considere [𝑎, 𝑏].</p><p>Pelo método da bissecção:</p><p>𝑏𝑘 − 𝑎𝑘 =</p><p>𝑏𝑘−1 − 𝑎𝑘−1</p><p>2</p><p>=</p><p>𝑏0 − 𝑎0</p><p>2𝑘</p><p>Queremos 𝑘 tal que 𝑏𝑘 − 𝑎𝑘</p><p>𝑏0 − 𝑎0</p><p>𝜖</p><p>Tomando o logaritmo em ambos lados:</p><p>𝑘 log 2 > log(𝑏0 − 𝑎0) − log 𝜖</p><p>𝑘 ></p><p>log(𝑏0 − 𝑎0) − log 𝜖</p><p>log 2</p><p>Exercício 3: Mostre que os iterandos do método de Newton para resolver a equação 𝑥2 −</p><p>𝑎 = 0 são da forma dada a seguir. Em seguida, use esse método para calcular √5 com precisão</p><p>de 10−8, partindo de 𝑥 = 1.5.</p><p>𝑥𝑘+1 =</p><p>1</p><p>2</p><p>(𝑥𝑘 +</p><p>𝑎</p><p>𝑥𝑘</p><p>) ; 𝑘 = 0,1,2,3,…</p><p>O método de Newton diz que</p><p>𝑥𝑘+1 = 𝑥𝑘 −</p><p>𝑓(𝑥)</p><p>𝑓′(𝑥)</p><p>Assim</p><p>P</p><p>ág</p><p>in</p><p>a3</p><p>7</p><p>𝑥𝑘+1 = 𝑥𝑘 −</p><p>𝑥𝑘</p><p>2 − 𝑎</p><p>2𝑥𝑘</p><p>𝑥𝑘+1 =</p><p>2𝑥𝑘</p><p>2 − (𝑥𝑘</p><p>2 − 𝑎)</p><p>2𝑥𝑘</p><p>𝑥𝑘+1 =</p><p>𝑥𝑘</p><p>2 + 𝑎</p><p>2𝑥𝑘</p><p>𝑥𝑘+1 =</p><p>𝑥𝑘 (𝑥𝑘 +</p><p>𝑎</p><p>𝑥𝑘</p><p>)</p><p>2𝑥𝑘</p><p>𝑥𝑘+1 =</p><p>𝑥𝑘 +</p><p>𝑎</p><p>𝑥𝑘</p><p>2</p><p>que é a expressão que queríamos demonstrar. Para calcular √5 usamos a função 𝑥2 − 5. Logo,</p><p>a iteração será dada por:</p><p>𝑥𝑘+1 =</p><p>1</p><p>2</p><p>(𝑥𝑘 +</p><p>5</p><p>𝑥𝑘</p><p>)</p><p>Partindo de 𝑥1 = 1.5, para 𝑘 = 0.</p><p>𝑥1 =</p><p>1</p><p>2</p><p>(1.5 +</p><p>5</p><p>1.5</p><p>) = 2.41666667</p><p>Para 𝑘 = 1</p><p>𝑥2 =</p><p>1</p><p>2</p><p>(2.41666667 +</p><p>5</p><p>2.41666667</p><p>) = 2.24281609</p><p>Para 𝑘 = 2</p><p>𝑥3 =</p><p>1</p><p>2</p><p>(2.24281609 +</p><p>5</p><p>2.24281609</p><p>) = 2.23607813</p><p>Para 𝑘 = 3</p><p>𝑥4 =</p><p>1</p><p>2</p><p>(2.23607813 +</p><p>5</p><p>2.23607813</p><p>) = 2.23606798</p><p>|2.23606798 − √5| = 2.5 ∙ 10−9</p><p>Assim, com 3 iterações já conseguimos uma precisão de 10−9.</p><p>Exercício 4: A figura a seguir mostra um caso em que a aplicação do método de Newton</p><p>falha para a função 𝑓(𝑥) = 𝑥4 − 𝑥2. Encontre os pontos iniciais tais que isso ocorre.</p><p>P</p><p>ág</p><p>in</p><p>a3</p><p>8</p><p>Temos que 𝑓(𝑥) = 𝑥4 − 𝑥2 e 𝑓′(𝑥) = 4𝑥3 − 2𝑥. Nesse caso, temos que 𝑥𝑘+1 = −𝑥𝑘. As-</p><p>sim:</p><p>−𝑥𝑘 = 𝑥𝑘 −</p><p>𝑥𝑘</p><p>4 − 𝑥𝑘</p><p>2</p><p>4𝑥𝑘</p><p>3 − 2𝑥𝑘</p><p>−2𝑥𝑘 = −</p><p>𝑥𝑘</p><p>2(𝑥𝑘</p><p>2 − 1)</p><p>2𝑥𝑘(2𝑥𝑘</p><p>2 − 1)</p><p>−2𝑥𝑘 = −</p><p>𝑥𝑘(𝑥𝑘</p><p>2 − 1)</p><p>2(2𝑥𝑘</p><p>2 − 1)</p><p>→ 2 =</p><p>(𝑥𝑘</p><p>2 − 1)</p><p>2(2𝑥𝑘</p><p>2 − 1)</p><p>4 =</p><p>𝑥𝑘</p><p>2 − 1</p><p>2𝑥𝑘</p><p>2 − 1</p><p>8𝑥𝑘</p><p>2 − 4 = 𝑥𝑘</p><p>2 − 1</p><p>−𝑥𝑘</p><p>2 + 8𝑥𝑘</p><p>2 = 4 − 1</p><p>7𝑥𝑘</p><p>2 = 3</p><p>𝑥𝑘 = ±√</p><p>3</p><p>7</p><p>Exercício 5: Uma corrente oscilante em um circuito elétrico é descrita por</p><p>𝐼 = 10𝑒−𝑡 sin(2𝜋𝑡)</p><p>onde 𝑡 é dada em segundos. A) Determine uma aproximação para o último momento tal que 𝐼 =</p><p>2 utilizando o método de Newton, com 𝑡0 = 1.5 e precisões 𝜖1 = 𝜖2 = 10</p><p>−3.</p><p>Para 𝐼 = 2</p><p>𝑓(𝑡) = 10𝑒−𝑡 sin(2𝜋𝑡) = 2</p><p>𝑓(𝑡) = 10𝑒−𝑡 sin(2𝜋𝑡) − 2 = 0</p><p>Temos que 𝑓′(𝑡) = −10𝑒−𝑡 sin(2𝜋𝑡) + 2𝜋10𝑒−𝑡 cos(2𝜋𝑡), ou</p><p>𝑓′(𝑡) = 10𝑒−𝑡[−sin(2𝜋𝑡) + 2𝜋 cos(2𝜋𝑡)]</p><p>Usando Newton:</p><p>𝑡𝑘+1 = 𝑡𝑘 −</p><p>10𝑒−𝑡 sin(2𝜋𝑡) − 2</p><p>10𝑒−𝑡[2𝜋 cos(2𝜋𝑡) − sin(2𝜋𝑡)]</p><p>𝑡𝑘+1 = 𝑡𝑘 −</p><p>sin(2𝜋𝑡𝑘) − 0.2𝑒</p><p>𝑡𝑘</p><p>[2𝜋 cos(2𝜋𝑡𝑘) − sin(2𝜋𝑡𝑘)]</p><p>Para 𝑘 = 0 e 𝑡0 = 1.5</p><p>𝑓(1.5) = 10𝑒−1.5 sin(2𝜋 ∙ 1.5) − 2</p><p>𝑓(1.5) = −2</p><p>𝑡1 = 1.5 −</p><p>−0.8963</p><p>−6.2832</p><p>= 1.5 − 0.1427 = 1.3573</p><p>Para 𝑘 = 1 e 𝑡1 = 1.3573</p><p>𝑓(1.3573) = 0.0105</p><p>P</p><p>ág</p><p>in</p><p>a3</p><p>9</p><p>𝑡2 = 1.3573 −</p><p>4.0779 × 10−3</p><p>−4.7036</p><p>= 1.3582</p><p>Para 𝑘 = 2 e 𝑡2 = 1.3582</p><p>𝑓(1.3582) = −0.0004</p><p>de modo que alcançamos 𝑓(𝑡𝑘)</p><p>pela integral:</p><p>∑𝑘</p><p>𝑛</p><p>𝑘=1</p><p>≈ ∫ 𝑘𝑑𝑘</p><p>𝑛</p><p>0</p><p>=</p><p>1</p><p>2</p><p>𝑘2 =</p><p>1</p><p>2</p><p>𝑛2</p><p>Por fim:</p><p>∑𝑘2</p><p>𝑛</p><p>𝑘=1</p><p>=</p><p>𝑛(𝑛 + 1/2)(𝑛 + 1)</p><p>3</p><p>Pela integral:</p><p>∑𝑘2</p><p>𝑛</p><p>𝑘=1</p><p>≈ ∫ 𝑘2𝑑𝑘</p><p>𝑛</p><p>0</p><p>=</p><p>1</p><p>3</p><p>𝑘3 =</p><p>1</p><p>3</p><p>𝑛3</p><p>Operações elementares</p><p>Para resolver um sistema linear em forma de matriz (ou não, necessariamente) podemos</p><p>aplicar algumas operações elementares. Essas operações consistem em:</p><p>• Multiplicar uma equação, ou linha da matriz, por um escalar não-nulo</p><p>• Trocar a posição de duas equações, ou linhas</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>2</p><p>• Somar/subtrair uma equação, ou linha, por outra</p><p>Exemplo 1: vamos utilizar operações elementares para transformar o sistema linear em</p><p>outro sistema equivalente. Definição: dois sistemas são ditos equivalentes se possuírem exata-</p><p>mente as mesmas soluções.</p><p>𝐴𝑥 = 𝑏</p><p>Vejamos</p><p>As matrizes acima são chamadas de matrizes aumentadas, em que inserimos uma coluna com</p><p>os valores da matriz 𝑏. Assim, a matriz aumentada é [𝐴|𝑏]. Começamos analisando a primeira</p><p>linha. Essa linha não foi alterada. A segunda linha foi substituída da seguinte maneira: multipli-</p><p>camos a primeira linha por -2 e somamos com a segunda linha. O mesmo foi feito na terceira</p><p>linha. A quarta linha foi substituída fazendo a primeira linha vezes -3 e somando com a quarta</p><p>linha. A matriz equivalente está à direita. Note que todos os termos da primeira coluna abaixo</p><p>do primeiro termo foram zerados. Agora, vamos para a segunda linha:</p><p>Como a análise se inicia na segunda linha, então não vamos alterá-la. As operações elementares</p><p>feitas sobre as linhas 3 e 4 estão mostradas. Note que isso zerou todos os elementos da segunda</p><p>coluna abaixo do segundo elemento da segunda linha. O próximo passo é analisar a linha 3:</p><p>Nessa etapa, somente a linha 4 será alterada. Agora, nosso sistema se resume a um sistema</p><p>triangular, cuja solução é obtida por substituição.</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>3</p><p>O que fizemos no exemplo 1 foram operações de escalonamento, em que zeramos todos</p><p>os elementos abaixo da diagonal principal. Basicamente, ao escalonar uma matriz, ou um sis-</p><p>tema, estamos obtendo um sistema equivalente triangular, de modo que a solução se torna</p><p>trivial. O sistema obtido no exemplo 1 é denominado triangular superior.</p><p>Quando aplicamos as operações sobre a matriz [𝐴|𝑏], vimos que fomos alterando valores</p><p>de 𝐴 e de 𝑏. Entretanto, apenas as entradas da matriz 𝐴 foram determinantes na definição de</p><p>cada operação. Mesmo sendo alterados, os valores de 𝑏 não foram decisivos para a escolha das</p><p>operações elementares. Com isso, podemos pensar o seguinte: se no meio de processo de es-</p><p>calonamento vimos que “copiamos” um valor errado para 𝑏, teríamos de retomar os cálculos do</p><p>zero? Se na matriz original ao invés de 𝑏𝑇 = (3, 6, 4, 3) fosse, na verdade, 𝑏𝑇 = (13, 6, 4, 3),</p><p>teríamos de fazer os cálculos do zero? A resposta é não! Podemos escalonar qualquer sistema</p><p>sem nos preocuparmos com o vetor 𝑏. Fazemos as operações e guardamos os cálculos usados.</p><p>No final, usamos esses cálculos e aplicamos somente em 𝑏. O cuidado que devemos ter é guar-</p><p>dar as operações!</p><p>Uma maneira de guardar as operações feitas é a seguinte: perceba que o resultado pro-</p><p>duzido por essas operações pode ser obtido através de um produto matricial. Vamos analisar</p><p>isso com um segundo exemplo:</p><p>Exemplo 2:</p><p>Aqui não estamos interessados no vetor 𝑏, de modo que realizaremos as operações somente na</p><p>matriz 𝐴.</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>4</p><p>ou</p><p>Observe que o produto da matriz 𝐿1 pela matriz 𝐴 produz o mesmo resultado de três operações</p><p>elementares. A matriz 𝐿1 é uma matriz triangular inferior, como os elementos da diagonal prin-</p><p>cipal iguais a 1. O primeiro elemento da primeira linha, 2, foi usado para zerar os elementos</p><p>abaixo dele (como fizemos no exemplo 1). Esse elemento é chamado de pivô. Com isso, zeramos</p><p>todos os elementos da primeira coluna (exceto o pivô). Assim, na matriz 𝐿1 inserimos os coefici-</p><p>entes usados nas operações elementares, colocando-os nas respectivas posições dos elementos</p><p>zerados. Agora, o próximo pivô será o número 1 na segunda linha:</p><p>Tomando uma nova matriz 𝐿1, que para diferenciar chamaremos de 𝐿2, iremos inserir os valores</p><p>-1 e - 0 nas respectivas posições dos elementos zerados. Assim, a operação acima pode ser des-</p><p>crita como:</p><p>Note que estamos aplicando 𝐿2 sobre a matriz obtida quando aplicamos 𝐿1 sobre 𝐴. Ou seja,</p><p>estamos aplicando 𝐿2 sobre 𝐿1𝐴. Agora, o pivô será o elemento 2 da terceira linha:</p><p>Vamos criar uma matriz 𝐿3 e inserir nela o elemento -3. Assim, teremos 𝐿3 aplicada em 𝐿2𝐿1𝐴:</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>5</p><p>Note que a matriz final é semelhante a matriz final 𝐴 no exemplo 1. A matriz triangular</p><p>superior obtida acima é chamada de matriz 𝑈. Assim, 𝑈 = 𝐿3𝐿2𝐿1𝐴:</p><p>O nome 𝑈 vem de “upper” (superior). Já as matrizes 𝐿 provém de “lower” (inferior), visto que</p><p>são matrizes triangulares inferiores. Assim:</p><p>𝐴 = (𝐿3𝐿2𝐿1)</p><p>−1𝑈 = (𝐿1</p><p>−1𝐿2</p><p>−1𝐿3</p><p>−1)𝑈</p><p>O que precisamos é saber como fazer para computar as matrizes 𝐿𝑗</p><p>−1.</p><p>Para o casos dessas matrizes, encontrar a 𝐿𝑗</p><p>−1 não é nada difícil. Por exemplo, na primeira</p><p>iteração, as linhas 2, 3 e 4 foram mudadas para outros valores através das operações:</p><p>ℓ̃2 = −2ℓ1 + ℓ2</p><p>ℓ̃3 = −2ℓ1 + ℓ3</p><p>ℓ̃4 = −3ℓ1 + ℓ4</p><p>de modo que ℓ̃𝑖 representa a nova linha 𝑖. Para voltar ao valor original, fazemos:</p><p>ℓ̃2 + 2ℓ1 = ℓ2</p><p>ℓ̃3 + 2ℓ1 = ℓ3</p><p>ℓ̃4 + 3ℓ1 = ℓ4</p><p>Portanto, a obtenção de 𝐿𝑗</p><p>−1 é feita invertendo os sinais dos valores abaixo da diagonal de 𝐿𝑗.</p><p>Outro fato peculiar desse tipo de matriz é que o produto de 𝐿1</p><p>−1𝐿2</p><p>−1𝐿3</p><p>−1 é uma matriz 𝐿</p><p>com a junção dos valores de cada matriz:</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>6</p><p>Decomposição LU</p><p>A decomposição LU consiste, então, de uma fatoração da matriz 𝐴 em um produto de</p><p>duas matrizes, uma triangular inferior com diagonal unitária e outra diagonal superior:</p><p>Um algoritmo para a fatoração LU é:</p><p>O número de operações é:</p><p>∑ ∑ [1 + 2(𝑛 − 𝑗)] ≈</p><p>2</p><p>3</p><p>𝑛3 flops</p><p>𝑛</p><p>𝑖=𝑗+1</p><p>𝑛−1</p><p>𝑗=1</p><p>em que “flops” é a quantidade de operações de ponto flutuante que seu computador pode re-</p><p>alizar por segundo.</p><p>Através da decomposição LU, a resolução de um sistema linear quadrado se restringe a</p><p>resolver dois sistemas triangulares em sequência. Para resolver 𝐴𝑥 = 𝑏 tomamos 𝐴 = 𝐿𝑈, de</p><p>modo a obter 𝐿𝑈𝑥 = 𝑏. Definindo 𝑈𝑥 = 𝑦, teremos dois sistemas lineares para resolver:</p><p>{</p><p>𝐿𝑦 = 𝑏</p><p>𝑈𝑥 = 𝑦</p><p>A resolução se inicia por 𝐿𝑦 = 𝑏. Sendo 𝑙𝑖𝑗 um elemento particular da matriz 𝐿, os elementos de</p><p>𝑦 serão dados por:</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>7</p><p>𝑦𝑖 =</p><p>1</p><p>𝑙𝑖𝑖</p><p>(𝑏𝑖 −∑𝑙𝑖𝑗𝑦𝑗</p><p>𝑖−1</p><p>𝑗=1</p><p>)</p><p>O número de operações será:</p><p>∑[2 + (𝑖 − 1) + (𝑖 − 2)] ≈</p><p>𝑛</p><p>𝑖=1</p><p>𝑛2 flops</p><p>Uma vez computado o valor de 𝑦, resolvemos o sistema triangular superior 𝑈𝑥 = 𝑦. Após obter</p><p>o vetor 𝑥, teremos a solução do sistema linear original.</p><p>O que nos resta saber agora é: será que sempre é possível resolver um sistema através da</p><p>decomposição LU?</p><p>Nem sempre isso será possível. A condição necessária para que ocorra a decomposição</p><p>LU é dada pelo seguinte teorema: Seja 𝐴 uma matriz quadrada com todos os menores principais</p><p>não-singulares. Então 𝐴 pode ser fatorada de maneira única no produto 𝐴 = 𝐿𝑈. Porém, deter-</p><p>minar se esse teorema é satisfeito pode custar um pouco caro. Sendo assim, é muito mais van-</p><p>tajoso aplicar o algoritmo para o cálculo dos fatores de 𝐿 e de 𝑈 e ver se conseguimos resolver.</p><p>Exemplo 1: A seguinte matriz</p><p>𝐴 = [</p><p>0 1</p><p>1 1</p><p>]</p><p>não possui decomposição LU. Entretanto</p><p>Numericamente, como 𝑢 ≈ 10−16, temos que 𝑓𝑙(1 − 1020) = −1020. Isso já é suficiente para</p><p>tornar o produto LU bem diferente de A:</p><p>Quando se computam os fatores L e U, dificilmente será computado o produto deles e compa-</p><p>rado com a matriz A original. Assim, seria arriscado usar esses valores para tentar resolver o</p><p>sistema linear.</p><p>O problema</p><p>com o sistema acima é que o pivô, embora não seja nulo, é muito pequeno. Como</p><p>no algoritmo usamos a divisão pelo pivô, teremos como resposta um número muito grande. Isso</p><p>vai acarretar perdas de dígitos significativos. Por conta disso, vamos tomar como estratégia evi-</p><p>tar pivôs pequenos.</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>8</p><p>Pivoteamento</p><p>A estratégia que iremos adotar é a seguinte: o pivô será o maior número (em módulo) da</p><p>coluna, de modo que iremos aplicando o escalonamento como fizemos até então. Vejamos:</p><p>Após zerar os termos abaixo de 𝑥11, passamos para 𝑥22 (na matriz acima, estamos generalizando</p><p>para 𝑥𝑘𝑘). Vamos zerar os elementos abaixo de 𝑥22. Porém, vamos supor que 𝑥22 não seja o</p><p>maior elemento, mas existam elementos maiores que ele nas linhas debaixo (note que só nos</p><p>interessam os elementos das linhas de baixo. Se o elemento 𝑥12 for maior que o 𝑥22 não faremos</p><p>nada, pois as operações sobre a primeira linha já foram feitas). Nas operações sobre linhas, ze-</p><p>ramos apenas os elementos abaixo da diagonal principal. Vamos supor que 𝑥42 seja o maior</p><p>número abaixo de 𝑥22. Assim, 𝑥42 será o pivô e deverá ser usado para cancelar os termos acima</p><p>e abaixo dele (exceto o termo 𝑥12, por motivos descritos acima). Assim:</p><p>Quando trocamos o pivô, o ideal é trocar as linhas envolvendo esses números. Essa troca de</p><p>linhas irá ser expressa numa matriz, que chamaremos de matriz 𝑃. Vejamos um exemplo para</p><p>ficar mais claro.</p><p>Exemplo 1: Vamos fazer o pivoteamento da matriz a seguir.</p><p>A matriz 𝑃 é uma matriz de permutação, que se incia como uma matriz identidade, de modo que</p><p>𝐼𝐴 = 𝑃𝐴. Assim:</p><p>P</p><p>ág</p><p>in</p><p>a4</p><p>9</p><p>Começando pelo elemento 𝑎11 = 2, vemos que ele não é o maior termo de sua coluna. O maior</p><p>termo é 𝑎41 = 6. Portanto, vamos trocar a linha 1 com a linha 4 em 𝐴 e fazer o mesmo na matriz</p><p>𝑃.</p><p>Agora, vamos zerar os termos abaixo de 𝑎11. Para zerar o 4 da segunda linha, faremos −</p><p>4</p><p>6</p><p>vezes</p><p>a primeira linha mais a segunda linha. Para zerar o 4 da terceira linha faremos a mesma conta.</p><p>Para zerar o 2 da última linha, fazemos −</p><p>2</p><p>6</p><p>vezes a primeira linha mais a última linha. Note que</p><p>os coeficientes que irão zerar os elementos 𝑎𝑖𝑗 abaixo do pivô são dados por −𝑎𝑖𝑗/𝑥𝑘, em que</p><p>𝑥𝑘 é o pivô. Assim, inserimos esses termos numa matriz L:</p><p>Agora, vamos para a próxima linha, onde o pivô será 𝑎22 = 1. O termo abaixo dele é igual, por-</p><p>tanto não precisamos inverter as linhas. Assim, para zerar 𝑎32 = 1 fazemos −1 vezes a segunda</p><p>linha e somamos com a terceira. Nossas novas matrizes serão:</p><p>O próximo termo será 𝑎33 = 2. Como o termo abaixo dele é igual (em módulo) não precisamos</p><p>inverter as linhas. Para zerar 𝑎43 = −2 multiplicamos a terceira linha por 1 e somamos com a</p><p>quarta. Portanto:</p><p>O que obtivemos então foi:</p><p>𝑃𝐴 = 𝐿𝑈</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>0</p><p>Diferente do que ocorre com a decomposição LU sem pivoteamento, a decomposição</p><p>com pivoteamento sempre existe.</p><p>Teorema: qualquer matriz quadrada 𝐴 pode ser fatorada como 𝑃𝐴 = 𝐿𝑈, com 𝑃 sendo a</p><p>matriz de permutação da matriz identidade.</p><p>Para resolver um sistema do tipo 𝐴𝑥 = 𝑏, de modo que 𝑃𝐴 = 𝐿𝑈, fazemos 𝑃𝐴𝑥 = 𝑃𝑏.</p><p>Como 𝑃𝐴 = 𝐿𝑈, temos 𝐿𝑈𝑥 = 𝑃𝑏. Definindo 𝑦 = 𝑈𝑥, obtemos dois sistemas triangulares:</p><p>{</p><p>𝐿𝑦 = 𝑃𝑏</p><p>𝑈𝑥 = 𝑦</p><p>Exemplo 2: Vamos resolver o sistema abaixo através da decomposição LU com pivotea-</p><p>mento:</p><p>𝐴𝑥 = 𝑏</p><p>(</p><p>2 3 4</p><p>6 1 5</p><p>4 2 2</p><p>)𝑥 = (</p><p>−13</p><p>−10</p><p>−4</p><p>)</p><p>A primeira coisa a fazer é escrever a matriz 𝑃 e a matriz 𝐿:</p><p>𝑃 = (</p><p>1 0 0</p><p>0 1 0</p><p>0 0 1</p><p>) ; 𝐿 = (</p><p>1 0 0</p><p>0 1 0</p><p>0 0 1</p><p>)</p><p>Assim</p><p>(</p><p>𝟐 3 4</p><p>6 1 5</p><p>4 2 2</p><p>)</p><p>2 é o primeiro termo da primeira linha e primeira coluna. Porém, ele não é o maior termo de sua</p><p>coluna. O maior termo é o 6. Assim, vamos trocar a linha 1 com a linha 2, de modo a fazer o</p><p>mesmo na matriz P:</p><p>𝑃 = (</p><p>0 1 0</p><p>1 0 0</p><p>0 0 1</p><p>)</p><p>𝑃𝐴 = (</p><p>𝟔 1 5</p><p>2 3 4</p><p>4 2 2</p><p>)</p><p>A matriz 𝑏 também deve ser trocada (embora podemos aplicar 𝑃 em 𝑏 somente na hora de re-</p><p>solver 𝐿𝑦 = 𝑏):</p><p>𝑃𝑏 = (</p><p>−10</p><p>−13</p><p>−4</p><p>)</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>1</p><p>Para zerar os termos 𝑎21 e 𝑎31 faremos 𝑙2 = −</p><p>2</p><p>6</p><p>𝑙1 + 𝑙2 e 𝑙3 = −</p><p>4</p><p>6</p><p>𝑙1 + 𝑙3. Assim, a matriz L será:</p><p>𝐿 =</p><p>(</p><p>1 0 0</p><p>2</p><p>6</p><p>1 0</p><p>4</p><p>6</p><p>0 1</p><p>)</p><p>o que fornecerá</p><p>𝑃𝐴 =</p><p>(</p><p>6 1 5</p><p>0</p><p>𝟖</p><p>𝟑</p><p>7</p><p>3</p><p>0</p><p>4</p><p>3</p><p>−</p><p>4</p><p>3)</p><p>O próximo pivô é 𝑎22 = 8/3. Como esse número é maior que 4/3, então ele será o pivô. Para</p><p>zerar o termo 𝑎32, fazemos</p><p>𝑙3 = −</p><p>1</p><p>2</p><p>𝑙2 + 𝑙3</p><p>A matriz L será</p><p>𝐿 =</p><p>(</p><p>1 0 0</p><p>2</p><p>6</p><p>1 0</p><p>4</p><p>6</p><p>1</p><p>2</p><p>1</p><p>)</p><p>e</p><p>𝑃𝐴 =</p><p>(</p><p>6 1 5</p><p>0</p><p>8</p><p>3</p><p>7</p><p>3</p><p>0 0 −</p><p>15</p><p>6 )</p><p>Como 𝑃𝐴 = 𝐿𝑈, então</p><p>𝑈 =</p><p>(</p><p>6 1 5</p><p>0</p><p>8</p><p>3</p><p>7</p><p>3</p><p>0 0 −</p><p>15</p><p>6 )</p><p>Como 𝐿𝑦 = 𝑃𝑏:</p><p>(</p><p>1 0 0</p><p>2</p><p>6</p><p>1 0</p><p>4</p><p>6</p><p>1</p><p>2</p><p>1</p><p>)</p><p>(</p><p>𝑦1</p><p>𝑦2</p><p>𝑦3</p><p>) = (</p><p>−10</p><p>−13</p><p>−4</p><p>)</p><p>Vamos resolver esse sistema:</p><p>𝑦1 = −10</p><p>2</p><p>6</p><p>𝑦1 + 𝑦2 = −13</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>2</p><p>2</p><p>6</p><p>(−10) + 𝑦2 = −13</p><p>−</p><p>20</p><p>6</p><p>+ 𝑦2 = −13 → 𝑦2 = −13 +</p><p>20</p><p>6</p><p>𝑦2 =</p><p>−78 + 20</p><p>6</p><p>= −</p><p>58</p><p>6</p><p>4</p><p>6</p><p>𝑦1 +</p><p>1</p><p>2</p><p>𝑦2 + 𝑦3 = −4</p><p>4</p><p>6</p><p>(−10) +</p><p>1</p><p>2</p><p>(−</p><p>58</p><p>6</p><p>) + 𝑦3 = −4</p><p>−</p><p>40</p><p>6</p><p>−</p><p>29</p><p>6</p><p>+ 𝑦3 = −4</p><p>−</p><p>69</p><p>6</p><p>+ 𝑦3 = −4</p><p>𝑦3 =</p><p>69</p><p>6</p><p>− 4</p><p>𝑦3 = 11.5 − 4 → 𝑦3 = 7.5</p><p>Portanto</p><p>𝑦1 = −10; 𝑦2 = −</p><p>58</p><p>6</p><p>; 𝑦3 = 7.5</p><p>ou</p><p>𝑦 = (</p><p>−10</p><p>−</p><p>58</p><p>6</p><p>7.5</p><p>)</p><p>Por fim, 𝑈𝑥 = 𝑦:</p><p>(</p><p>6 1 5</p><p>0</p><p>8</p><p>3</p><p>7</p><p>3</p><p>0 0 −</p><p>15</p><p>6 )</p><p>(</p><p>𝑥1</p><p>𝑥2</p><p>𝑥3</p><p>) = (</p><p>−10</p><p>−</p><p>58</p><p>6</p><p>7.5</p><p>)</p><p>Usando a substituição reversa</p><p>−</p><p>15</p><p>6</p><p>𝑥3 = 7.5</p><p>𝑥3 = 7.5 (−</p><p>6</p><p>15</p><p>) = −</p><p>45</p><p>15</p><p>= −3</p><p>8</p><p>3</p><p>𝑥2 +</p><p>7</p><p>3</p><p>𝑥3 = −</p><p>58</p><p>6</p><p>8</p><p>3</p><p>𝑥2 +</p><p>7</p><p>3</p><p>(−3) = −</p><p>58</p><p>6</p><p>8</p><p>3</p><p>𝑥2 − 7 = −</p><p>58</p><p>6</p><p>8</p><p>3</p><p>𝑥2 = −</p><p>58</p><p>6</p><p>+ 7</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>3</p><p>8</p><p>3</p><p>𝑥2 =</p><p>−58 + 42</p><p>6</p><p>=</p><p>−16</p><p>6</p><p>→ 𝑥2 =</p><p>−16</p><p>6</p><p>3</p><p>8</p><p>=</p><p>−48</p><p>48</p><p>= −1</p><p>6𝑥1 + 1𝑥2 + 5𝑥3 = −10</p><p>6𝑥1 − 1 − 15 = −10</p><p>6𝑥1 = −10 + 16</p><p>6𝑥1 = 6</p><p>𝑥1 = 1</p><p>Então</p><p>𝑥 = (</p><p>1</p><p>−1</p><p>−3</p><p>)</p><p>Assim:</p><p>(</p><p>2 3 4</p><p>6 1 5</p><p>4 2 2</p><p>)(</p><p>1</p><p>−1</p><p>−3</p><p>) = (</p><p>−13</p><p>−10</p><p>−4</p><p>)</p><p>Esse exemplo mostra muito bem o algoritmo que usaremos para realizar a decomposição</p><p>LU com pivoteamento. Então, sempre iniciamos escrevendo as matrizes 𝑃 e 𝐿. Se for necessário</p><p>trocar duas linhas de 𝐴 para o pivoteamento, teremos de trocar as mesmas linhas de 𝑃 e de 𝑏.</p><p>Assim, a nova matriz não será 𝐴, mas sim 𝑃𝐴.</p><p>Exemplo 3: Encontre a decomposição LU com pivoteamento para</p><p>𝐴 = (</p><p>2 1 4</p><p>6 1 5</p><p>4 2 2</p><p>)</p><p>Comecemos escrevendo as matrizes P e L:</p><p>𝑃 = (</p><p>1 0 0</p><p>0 1 0</p><p>0 0 1</p><p>) ; 𝐿 = (</p><p>1 0 0</p><p>0 1 0</p><p>0 0 1</p><p>)</p><p>Trocando a primeira linha com a segunda:</p><p>𝑃𝐴 = (</p><p>𝟔 1 5</p><p>2 1 4</p><p>4 2 2</p><p>)</p><p>𝑃 = (</p><p>0 1 0</p><p>1 0 0</p><p>0 0 1</p><p>)</p><p>Para eliminar 𝑎21 fazemos 𝑙2 = −</p><p>2</p><p>6</p><p>𝑙1 + 𝑙2. Para eliminar 𝑎31 fazemos 𝑙3 = −</p><p>4</p><p>6</p><p>𝑙1 + 𝑙3</p><p>𝑃𝐴 = (</p><p>6 1 5</p><p>0 2/3 7/3</p><p>0 4/3 −4/3</p><p>)</p><p>Nossa matriz L fica:</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>4</p><p>𝐿 = (</p><p>1 0 0</p><p>2/6 1 0</p><p>4/6 0 1</p><p>)</p><p>Note que como 4/3 é maior que 2/3, então teremos de inverter a linha 2 com a 3:</p><p>𝑃𝐴 = (</p><p>6 1 5</p><p>0 4/3 −4/3</p><p>0 2/3 7/3</p><p>)</p><p>e</p><p>𝑃 = (</p><p>0 1 0</p><p>0 0 1</p><p>1 0 0</p><p>)</p><p>Assim, é necessário inverter os elementos de 𝐿 também:</p><p>𝐿 = (</p><p>1 0 0</p><p>4/6 1 0</p><p>2/6 0 1</p><p>)</p><p>Para zerar 𝑎32 fazemos 𝑙3 = −</p><p>1</p><p>2</p><p>𝑙2 + 𝑙3. Logo:</p><p>𝑃𝐴 = (</p><p>6 1 5</p><p>0 4/3 −4/3</p><p>0 0 3</p><p>)</p><p>o que fornece</p><p>𝐿 = (</p><p>1 0 0</p><p>4/6 1 0</p><p>2/6 1/2 1</p><p>)</p><p>e</p><p>𝑃𝐴 = 𝐿𝑈 → 𝑈 = (</p><p>6 1 5</p><p>0 4/3 −4/3</p><p>0 0 3</p><p>)</p><p>Exemplo 4: Resolva o sistema usando decomposição LU com pivoteamento.</p><p>𝐴𝑥 = 𝑏</p><p>(</p><p>1 3 5</p><p>2 4 7</p><p>1 1 0</p><p>)(</p><p>𝑥1</p><p>𝑥2</p><p>𝑥3</p><p>) = (</p><p>0</p><p>1</p><p>−2</p><p>)</p><p>Novamente devemos fazer 𝐴 = 𝐿𝑈, de modo que 𝐿𝑈𝑥 = 𝑏. Assim, comecemos por 𝐿𝑦 = 𝑏. Es-</p><p>crevendo a matrizes de permutação e a matriz 𝐿:</p><p>𝑃 = (</p><p>1 0 0</p><p>0 1 0</p><p>0 0 1</p><p>) ; 𝐿 = (</p><p>1 0 0</p><p>0 1 0</p><p>0 0 1</p><p>)</p><p>Para a matriz A</p><p>(</p><p>𝟏 3 5</p><p>2 4 7</p><p>1 1 0</p><p>)</p><p>precisamos inverter a primeira linha com a segunda:</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>5</p><p>𝑃 = (</p><p>0 1 0</p><p>1 0 0</p><p>0 0 1</p><p>)</p><p>𝑃𝐴 = (</p><p>𝟐 4 7</p><p>1 3 5</p><p>1 1 0</p><p>)</p><p>𝑃𝑏 = (</p><p>1</p><p>0</p><p>−2</p><p>)</p><p>As operações de linha serão: 𝑙2 = −</p><p>1</p><p>2</p><p>𝑙1 + 𝑙2 e 𝑙3 = −</p><p>1</p><p>2</p><p>𝑙1 + 𝑙3:</p><p>𝑃𝐴 = (</p><p>𝟐 4 7</p><p>0 1 3/2</p><p>0 −1 −7/2</p><p>)</p><p>Com isso, obtemos</p><p>𝐿 = (</p><p>1 0 0</p><p>1/2 1 0</p><p>1/2 0 1</p><p>)</p><p>O próximo pivô será:</p><p>𝑃𝐴 = (</p><p>2 4 7</p><p>0 𝟏 3/2</p><p>0 −1 −7/2</p><p>)</p><p>Assim,</p><p>a operação entre linhas será 𝑙3 = 𝑙2 + 𝑙3:</p><p>𝑃𝐴 = (</p><p>2 4 7</p><p>0 𝟏 3/2</p><p>0 0 −2</p><p>)</p><p>e</p><p>𝐿 = (</p><p>1 0 0</p><p>1/2 1 0</p><p>1/2 −1 1</p><p>)</p><p>Assim,</p><p>𝑃𝐴 = 𝑈 = (</p><p>2 4 7</p><p>0 1 3/2</p><p>0 0 −2</p><p>)</p><p>Como 𝐿𝑦 = 𝑃𝑏:</p><p>(</p><p>1 0 0</p><p>1/2 1 0</p><p>1/2 −1 1</p><p>)(</p><p>𝑦1</p><p>𝑦2</p><p>𝑦3</p><p>) = (</p><p>1</p><p>0</p><p>−2</p><p>)</p><p>Fazendo substituição direta:</p><p>𝑦1 = 1</p><p>1</p><p>2</p><p>𝑦1 + 1𝑦2 = 0</p><p>1</p><p>2</p><p>+ 𝑦2 = 0</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>6</p><p>𝑦2 = 0 −</p><p>1</p><p>2</p><p>= −</p><p>1</p><p>2</p><p>1</p><p>2</p><p>𝑦1 − 1𝑦2 + 1𝑦3 = −2</p><p>1</p><p>2</p><p>+</p><p>1</p><p>2</p><p>+ 𝑦3 = −2</p><p>𝑦3 = −2 − 1</p><p>𝑦3 = −3</p><p>Assim</p><p>𝑦 = (−</p><p>1</p><p>1/2</p><p>−3</p><p>)</p><p>Por fim:</p><p>𝑈𝑥 = 𝑦</p><p>(</p><p>2 4 7</p><p>0 1 3/2</p><p>0 0 −2</p><p>)(</p><p>𝑥1</p><p>𝑥2</p><p>𝑥3</p><p>) = (</p><p>1</p><p>−1/2</p><p>−3</p><p>)</p><p>Fazendo a substituição reversa:</p><p>−2𝑥3 = −3</p><p>𝑥3 = 3/2</p><p>𝑥2 +</p><p>3</p><p>2</p><p>𝑥3 = −</p><p>1</p><p>2</p><p>𝑥2 +</p><p>3</p><p>2</p><p>(</p><p>3</p><p>2</p><p>) = −</p><p>1</p><p>2</p><p>𝑥2 = −</p><p>1</p><p>2</p><p>−</p><p>9</p><p>4</p><p>𝑥2 =</p><p>−4− 18</p><p>8</p><p>= −</p><p>22</p><p>8</p><p>= −</p><p>11</p><p>4</p><p>2𝑥1 + 4𝑥2 + 7𝑥3 = 1</p><p>2𝑥1 + 4(−</p><p>11</p><p>4</p><p>) + 7(</p><p>3</p><p>2</p><p>) = 1</p><p>2𝑥1 − 11 +</p><p>21</p><p>2</p><p>= 1</p><p>2𝑥1 +</p><p>−22 + 21</p><p>2</p><p>= 1</p><p>2𝑥1 −</p><p>1</p><p>2</p><p>= 1</p><p>2𝑥1 = 1 +</p><p>1</p><p>2</p><p>2𝑥1 =</p><p>3</p><p>2</p><p>𝑥1 =</p><p>3</p><p>4</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>7</p><p>Assim</p><p>𝑥 = (</p><p>3/4</p><p>−11/4</p><p>3/4</p><p>)</p><p>ou</p><p>𝑥 = (</p><p>0.75</p><p>−2.75</p><p>1.5</p><p>)</p><p>Métodos Iterativos I</p><p>O custo computacional, como vimos, para resolver um sistema é 𝒪 (</p><p>2</p><p>3</p><p>𝑛3). Agora, como</p><p>devemos proceder quando não tivermos tantos recursos? Se nosso dinheiro não conseguir pa-</p><p>gar todas as iterações? E se não houver tempo? E se não houver espaço na memória?</p><p>Nesse casos, podemos recorrer a métodos que fornecem uma aproximação para o que</p><p>desejamos. Vamos tomar como exemplo o seguinte sistema:</p><p>Exemplo 1:</p><p>{</p><p>−7.5𝑥1 + 7.3𝑥2 = −4.65</p><p>−2.8𝑥1 + 9.0𝑥2 = 49.80</p><p>Vamos isolar o termo com 𝑥1 na primeira linha e o termo com 𝑥2 na segunda:</p><p>{</p><p>−7.5𝑥1 = −4.65 − 7.3𝑥2</p><p>9.0𝑥2 = 49.80 + 2.8𝑥1</p><p>Se usarmos uma aproximação para (𝑥1, 𝑥2), digamos que sejam 𝑥𝑘 = (𝑥1</p><p>𝑘 , 𝑥2</p><p>𝑘), então podemos</p><p>construir novas aproximações 𝑥(𝑘+1) = (𝑥1</p><p>(𝑘+1)</p><p>, 𝑥2</p><p>(𝑘+1)</p><p>). Assim, a próxima iteração será:</p><p>{</p><p>−7.5𝑥1</p><p>(𝑘+1) = −4.65 − 7.3𝑥2</p><p>𝑘</p><p>9.0𝑥2</p><p>(𝑘+1) = 49.80 + 2.8𝑥1</p><p>𝑘</p><p>Isolando os termos que desejamos calcular:</p><p>{</p><p>𝑥1</p><p>(𝑘+1)</p><p>=</p><p>(4.65 + 7.3𝑥2</p><p>𝑘)</p><p>7.5</p><p>𝑥2</p><p>(𝑘+1) =</p><p>49.80 + 2.8𝑥1</p><p>𝑘</p><p>9.0</p><p>podemos calcular os valores para 𝑥1</p><p>(𝑘+1) e 𝑥2</p><p>(𝑘+1) usando as aproximações iniciais para 𝑥1</p><p>𝑘 e 𝑥2</p><p>𝑘.</p><p>Para ver como as iterações podem nos aproximar da solução da equação, iremos esboçar a so-</p><p>lução através das retas descritas pelas equações. A primeira equação será a reta vermelha, e a</p><p>segunda será a reta azul</p><p>{</p><p>−7.5𝑥1 + 7.3𝑥2 = −4.65</p><p>−2.8𝑥1 + 9.0𝑥2 = 49.80</p><p>Na imagem a seguir, o ponto 1 marca a nossa aproximação inicial. O ponto 2 é o resultado após</p><p>a segunda iteração:</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>8</p><p>Então, é nítido como o ponto 2 está mais próximo da solução. Esse ponto foi obtido da seguinte</p><p>maneira: a equação vermelha faz com que o ponto 1 se mova em direção à reta vermelha, hori-</p><p>zontalmente. A equação azul faz com que o ponto 1 se mova em direção à reta azul, vertical-</p><p>mente. Assim, o ponto 2 é a intersecção dos prolongamentos desses deslocamentos. As próximas</p><p>iteração irão nos aproximar ainda mais da solução:</p><p>Agora, tomemos o mesmo sistema, mas trocando a ordem das equações. O que será que irá</p><p>ocorrer?</p><p>{</p><p>−2.8𝑥1 + 9.0𝑥2 = 49.80</p><p>−7.5𝑥1 + 7.3𝑥2 = −4.65</p><p>Como já temos uma ideia da solução desse problema, vamos escolher um ponto bem próximo</p><p>dela:</p><p>Sabemos que cada iteração move o ponto na horizontal em direção à reta vermelha e na vertical</p><p>em direção à reta azul. Após algumas iterações, nosso ponto será:</p><p>P</p><p>ág</p><p>in</p><p>a5</p><p>9</p><p>Ou seja, a simples troca da ordem das equações faz com que nossa solução comece a divergir.</p><p>O exemplo 1 mostra como a ordem das equações pode alterar o modo como nossa solu-</p><p>ção irá convergir. Esse método de resolução é denominado Método de Gauss-Jacobi, ou sim-</p><p>plesmente Método de Jacobi. Algumas propriedades desse método: ele é fácil de construir; nem</p><p>sempre converge; a convergência depende da ordem das equações; mesmo que convirja, pode</p><p>ser lento.</p><p>Um método parecido com o de Jacobi é o Método de Gauss-Seidel. Esse método busca</p><p>acelerar o método de Jacobi, de modo que a cada iteração é utilizado o novo valor de 𝑥(𝑘+1) já</p><p>calculado na equação seguinte.</p><p>Exemplo 2: Resolva o seguinte sistema usando o método de Jacobi</p><p>{</p><p>4.00𝑥1 + 0.24𝑥2 − 0.08𝑥3 = 8.00</p><p>0.09𝑥1 + 3.00𝑥2 − 0.15𝑥3 = 9.00</p><p>0.04𝑥1 − 0.08𝑥2 + 4.00𝑥3 = 20.00</p><p>Isolando 𝑥1 na primeira equação, 𝑥2 na segunda e 𝑥3 na terceira:</p><p>𝑥1 = (8.00 − 0.24𝑥2 + 0.08𝑥3)/4.00</p><p>𝑥2 = (9.00 − 0.09𝑥1 + 0.15𝑥3)/3.00</p><p>𝑥3 = (20.00 − 0.04𝑥1 + 0.08𝑥2)/4.00</p><p>ou</p><p>𝑥1</p><p>(𝑘+1)</p><p>= 2.00 − 0.06𝑥2</p><p>𝑘 + 0.02𝑥3</p><p>𝑘</p><p>𝑥2</p><p>(𝑘+1) = 3.00 − 0.03𝑥1</p><p>𝑘 + 0.05𝑥3</p><p>𝑘</p><p>𝑥3</p><p>(𝑘+1) = 5.00 − 0.01𝑥1</p><p>𝑘 + 0.02𝑥2</p><p>𝑘</p><p>Tomando 𝑥(0) = (0,0,0):</p><p>𝑥1</p><p>1 = 2.00 − 0.06 ∙ 0 + 0.02 ∙ 0 = 2.00</p><p>𝑥2</p><p>1 = 3.00 − 0.03 ∙ 0 + 0.05 ∙ 0 = 3.00</p><p>𝑥3</p><p>1 = 5.00 − 0.01 ∙ 0 + 0.02 ∙ 0 = 5.00</p><p>Assim, obtivemos os novos valores de 𝑥1, 𝑥2 e 𝑥3. Usando esses valores na próxima iteração:</p><p>𝑥1</p><p>2 = 2.00 − 0.06 ∙ 3.00 + 0.02 ∙ 5.00 = 1.92</p><p>𝑥2</p><p>2 = 3.00 − 0.03 ∙ 2.00 + 0.05 ∙ 5.00 = 3.19</p><p>𝑥3</p><p>2 = 5.00 − 0.01 ∙ 2.00 + 0.02 ∙ 3.00 = 5.04</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>0</p><p>A próxima iteração será:</p><p>𝑥1</p><p>3 = 2.00 − 0.06 ∙ 3.19 + 0.02 ∙ 5.04 = 1.9094</p><p>𝑥2</p><p>3 = 3.00 − 0.03 ∙ 1.92 + 0.05 ∙ 5.04 = 3.1944</p><p>𝑥3</p><p>3 = 5.00 − 0.01 ∙ 1.92 + 0.02 ∙ 3.19 = 5.0446</p><p>Exemplo 3: Resolva o mesmo exercício anterior usando Gauss-Seidel.</p><p>A diferença nesse método é que teremos uma convergência mais rápida. O fato é que, ao</p><p>invés de calcular as três equações separadamente, calculamos primeiro 𝑥1 e então substituímos</p><p>na equação de 𝑥2. Ao descobrir 𝑥2, usamos o resultado em 𝑥3 e assim por diante.</p><p>Tomando 𝑥(0) = (0,0,0):</p><p>𝑥1</p><p>1 = 2.00 − 0.06 ∙ 0 + 0.02 ∙ 0 = 2.00</p><p>Agora, 𝑥1 = 2.00:</p><p>𝑥2</p><p>1 = 3.00 − 0.03 ∙ 2.00 + 0.05 ∙ 0 = 2.94</p><p>Para 𝑥3:</p><p>𝑥3</p><p>1 = 5.00 − 0.01 ∙ 2.00 + 0.02 ∙ 2.94 = 5.0388</p><p>Calculando 𝑥1 novamente:</p><p>𝑥1</p><p>2 = 2.00 − 0.06 ∙ 2.94 + 0.02 ∙ 5.0388 = 1.924376</p><p>Calculando 𝑥2:</p><p>𝑥2</p><p>2 = 3.00 − 0.03 ∙ 1.924376 + 0.05 ∙ 5.0388 = 3.194208</p><p>Calculando 𝑥3:</p><p>𝑥3</p><p>2 = 5.00 − 0.01 ∙ 1.924376 + 0.02 ∙ 3.194208 = 5.04464</p><p>Assim temos uma convergência mais rápida.</p><p>Assim como o método de Jacobi, o método de Gauss-Seidel é fácil de ser construído. En-</p><p>tretanto, nem sempre irá convergir, de modo a também depender da ordem das equações. En-</p><p>tretanto, se ocorre convergência ela é mais rápida que Jacobi.</p><p>Métodos Iterativos II</p><p>Temos que encontrar a solução de um problema. Vamos chamar essa solução de 𝑥∗. To-</p><p>memos 𝑥0 como uma aproximação inicial dessa solução. A cada iteração feita usando o método</p><p>conveniente, estaremos calculando uma solução 𝑥(𝑘+1)dada por</p><p>𝑥(𝑘+1) = Φ(𝑥(𝑘))</p><p>onde Φ é o método usado (é a nossa função de iteração) e 𝑥(𝑘+1) é o iterando. Por exemplo, no</p><p>método de Newton</p><p>𝑥(𝑘+1) = 𝑥𝑘 −</p><p>𝑓(𝑥𝑘)</p><p>𝑓′(𝑥𝑘)</p><p>temos que</p><p>P</p><p>ág</p><p>in</p><p>a6</p><p>1</p><p>Φ(𝑥(𝑘)) = 𝑥𝑘 −</p><p>𝑓(𝑥𝑘)</p><p>𝑓′(𝑥𝑘)</p><p>Uma propriedade de todo método iterativo é que 𝑥∗ = Φ(𝑥∗). Ou seja, se o valor esco-</p><p>lhido for a própria solução, o método não irá divergir desse valor. Essa propriedade é chamada</p><p>de condição de ponto fixo (𝑥∗). Para o método funcionar, essa propriedade é necessária, mas</p><p>não suficiente.</p><p>Para sistema lineares, temos 𝐴𝑥∗ = 𝑏. Assim, devemos construir um método iterativo</p><p>para resolver esse sistema. Vejamos como fazer isso. Se 𝐴𝑥∗ = 𝑏 é verdade, podemos somar 𝑥∗</p><p>em ambos lados:</p><p>𝑥∗ + 𝐴𝑥∗ = 𝑥∗ + 𝑏</p><p>isolando o 𝑥∗ do lado esquerdo:</p><p>𝑥∗ = 𝑥∗ − 𝐴𝑥∗ + 𝑏</p><p>𝑥∗ = 𝑥∗(𝐼 − 𝐴) + 𝑏</p><p>onde 𝐼 é a matriz identidade. Assim:</p><p>𝑥∗ = Φ(𝑥∗)</p><p>Esse é um método iterativo.</p><p>Vamos analisar outro método partindo do fato de que uma matriz pode ser escrita como</p><p>a soma de outras duas matrizes:</p><p>𝐴 = 𝑀 +𝑁</p><p>Assim, para o sistema 𝐴𝑥∗ = 𝑏 teremos:</p><p>(𝑀 +𝑁)𝑥∗ = 𝑏</p><p>𝑀𝑥∗ + 𝑁𝑥∗ = 𝑏</p><p>𝑀𝑥∗ = −𝑁𝑥∗ + 𝑏</p><p>𝑥∗ = 𝑀−1(−𝑁𝑥∗ + 𝑏)</p><p>𝑥∗ = Φ(𝑥∗)</p><p>ou ainda</p><p>𝑥∗ = −𝑀−1𝑁𝑥∗ +𝑀−1𝑏</p><p>tomando −𝑀−1𝑁 ≡ 𝐵 e 𝑀−1𝑏 ≡ 𝐶:</p><p>𝑥∗ = 𝐵𝑥∗ + 𝐶</p><p>de modo que</p><p>Φ(𝑥) = 𝐵𝑥 + 𝐶</p>

Mais conteúdos dessa disciplina