Você está na página 1de 86

Apostila de Introdução

Aos Métodos Numéricos

PARTE I
2o Semestre - 2002

Profa. Salete Souza de Oliveira Buffoni


Índice
INTRODUÇÃO: O QUE SÃO OS MÉTODOS NUMÉRICOS, SUA IMPORTÂNCIA E OS
OBJETIVOS DO CURSO....................................................................................................4

O QUE É O CÁLCULO NUMÉRICO? .....................................................................................4


A IMPORTÂNCIA DA DISCIPLINA DE MÉTODOS NUMÉRICOS .............................................5
OBJETIVOS DA DISCIPLINA:...............................................................................................6

CONTEÚDO..........................................................................................................................7

DATA .....................................................................................................................................7

REPRESENTAÇÃO NUMÉRICA .....................................................................................9

INTRODUÇÃO ....................................................................................................................9
PONTO FIXO E PONTO FLUTUANTE ....................................................................................9

ERROS NUMÉRICOS .......................................................................................................11

INTRODUÇÃO ..................................................................................................................11
TIPOS DE ERROS ..............................................................................................................12
PROPAGAÇÃO E CONDICIONAMENTO DE ERROS NUMÉRICOS ..........................................13
ERROS NA ARITMÉTICA DE PONTO FLUTUANTE ..............................................................13

ZERO REAIS DE FUNÇÕES REAIS ..............................................................................16

INTRODUÇÃO ..................................................................................................................16
ZEROS OU RAÍZES DE FUNÇÕES ......................................................................................16
PROCESSOS ITERATIVOS..................................................................................................18
ISOLAMENTO DE RAÍZES .................................................................................................19
Exemplo: ........................................................................................................................ 19
Teorema de Bolzano. ..................................................................................................... 20
Exemplo: ........................................................................................................................ 21
MÉTODO DA DICOTOMIA OU BISSECÇÃO. .......................................................................21
Exemplo: ........................................................................................................................ 23

PRIMEIRA LISTA DE EXERCÍCIOS ............................................................................25

CRITÉRIOS DE PARADA EM UM PROCESSO ITERATIVO ..................................26

2
Estimativa do número de iterações no método da bisseção. ......................................... 27

MÉTODO DE ITERAÇÃO LINEAR (MIL) ...................................................................28

O PROBLEMA DA CONVERGÊNCIA NO MÉTODO DA ITERAÇÃO LINEAR ..32

CRITÉRIOS DE PARADA NO MÉTODO DA ITERAÇÃO LINEAR .............................................36

MÉTODO DE NEWTON-RAPHSON..............................................................................38

CONVERGÊNCIA DO MÉTODO DE NEWTON-RAPHSON .....................................................39


Interpretação Geométrica.............................................................................................. 39

SEGUNDA LISTA DE EXERCÍCIOS .............................................................................42

TERCEIRA LISTA DE EXERCÍCIOS............................................................................43

3
Introdução: O que são os Métodos Numéricos, sua
importância e os objetivos do curso

O que é o Cálculo Numérico?


Os Métodos Numéricos correspondem a um conjunto de ferramentas ou métodos usados para se
obter a solução de problemas matemáticos de forma aproximada. Esses métodos se aplicam a
problemas que não apresentam uma solução exata, portanto precisam ser resolvidos
numericamente.
O que isso quer dizer? Vamos tomar um exemplo para entender melhor os objetivos do
Cálculo Numérico.
Seja um circuito elétrico composto de uma fonte de tensão (uma pilha, por exemplo) e um
resistor, como ilustrado na Figura 1. Digamos que desejamos obter a corrente que circula no
circuito, dado o valor da tensão V e da resistência R. O primeiro passo é formular um modelo
matemático para o nosso sistema físico (o circuito), e encontrar a solução do problema
representado por esse modelo.

Figura 1: circuito elétrico composto de uma fonte de tensão e um resistor.


No caso do circuito da Figura 1, o modelo matemático também é bastante simples.
Utilizando-se a Lei de Kirchoff (não se preocupe com essa lei caso você não a conheça), teremos a
seguinte equação para o circuito:
V − R ⋅i = 0
Esse é o nosso modelo matemático para o circuito (sistema físico). O modelo apresenta uma
equação bastante simples que tem uma solução exata. Portanto, nosso problema (encontrar a
corrente elétrica do circuito) pode ser resolvido de maneira exata, cuja solução é dada por:

4
V
i=
R
Por exemplo, se V=10 V e R=100 Ω, teremos que i=0,1 A.
Como esse problema tem uma solução exata, não é preciso utilizar os métodos do cálculo
numérico para resolve-lo. Porém, digamos que um outro componente eletrônico seja incluído no
circuito: um diodo semicondutor. Esse dispositivo tem uma curva característica, isto é, a tensão
nesse componente em função da corrente, que é dada por:
kT  i 
v( i ) = ln + 1
q  Is 

onde k e Is são constantes, q é a carga do elétron e T a temperatura do dispositivo. Essa equação


corresponde ao modelo matemático do diodo (não se preocupe em entender esta equação, pois isto é
só um exemplo).
Portanto, ao se incluir o diodo no circuito da Figura 1, tem-se a seguinte equação
descrevendo o comportamento da corrente elétrica no circuito:

kT  i 
V − R ⋅i − ln + 1 = 0
q  Is 

A inclusão desse novo componente no circuito tornou nosso problema mais complicado e de
difícil solução analítica. O que isso quer dizer? Tornou-se difícil se obter uma expressão para i,
principalmente quando comparado ao caso anterior, quando tínhamos simplesmente i=V/R.
Como resolver esse problema então? Como obter o valor de i? A solução está na utilização
de métodos numéricos que serão aprendidos neste curso.

A importância da Disciplina de Métodos Numéricos


Ao resolver um problema matemático numericamente, o mais comum é o profissional utilizar um
pacote computacional. Porém, ele terá que tomar uma série de decisões antes de resolver o
problema. E para tomar essas decisões, é preciso ter conhecimento de métodos numéricos. O
profissional terá que decidir:
9 Pela utilização ou não de um método numérico (existem métodos numéricos para se resolver
este problema?);
9 Escolher o método a ser utilizado, procurando aquele que é mais adequado para o seu
problema. Que vantagens cada método oferece e que limitações eles apresentam;

5
9 Saber avaliar a qualidade da solução obtida. Para isso, é importante ele saber exatamente o
que está sendo feito pelo computador ou calculadora, isto é, como determinado método é
aplicado;

Objetivos da Disciplina:
Os principais objetivos do curso são:
• Apresentar diversos métodos numéricos para a resolução de diferentes problemas matemáticos.
Pretende-se deixar bem claro a importância desses métodos, mostrando:
9 a essência de um método numérico;
9 a diferença em relação a soluções analíticas;
9 as situações em que eles devem ser aplicados;
9 as vantagens de se utilizar um método numérico;
9 e as limitações na sua aplicação e confiabilidade na solução obtida.
• Melhorar a familiarização e “intimidade” do aluno com a matemática, mostrando seu lado
prático e sua utilidade no dia-a-dia de um engenheiro. Rever conceitos já vistos, exercitá-los e
utilizá-los de maneira prática;
• Apresentar ao aluno maneiras práticas de se desenvolver e utilizar métodos numéricos. Isso
significa mostrar como usar esses métodos numéricos na calculadora e com linguagens e
aplicativos computacionais;
• Treinar o aluno a aprender outros métodos numéricos por conta própria. No seu dia-a-dia
profissional, ele pode se deparar com um problema cuja solução depende de um método
numérico que não foi visto no curso. Portanto, ele deverá ser capaz de encontrar a literatura
pertinente, estudar o método e aprender a sua utilização de maneira conceitual e prática (usando
um aplicativo computacional) por conta própria.

6
Plano de Aula

Conteúdo Data

1) Introdução aos Sistemas Numéricos e Erros 09/10 (qua)


2) Ponto Fixo e Ponto Flutuante 10/10 (qui)
3) Zeros Reais de Funções Reais. Introdução: Sistema de Bolzano 16/10 (qua)
4) Método da Bisseção. Método da Posição Falsa 17/10 (qui)
5) Aula de Laboratório 23/10 (qua)
6) Aula de Laboratório 24/10 (qui)
7) Método da Iteração Linear 30/10 (qua)
8) Método de Newton - Raphson. Método das Cordas 31/10 (qui)
9) Sistemas de Equações Lineares: Métodos diretos e Indiretos 06/11 (qua)
10) Métodos Matriciais. Regra de Cramer. 07/11 (qui)
11) Método de Jacobi. Método de Gauss - Seidel 13/11 (qua)
12) Aceleração da Convergência. Projeção. 14/11 (qui)
13) Entrega do primeiro trabalho individual e prova oral. 20/11 (qua)
14) Interpolação Polinomial. Introdução: Interpolação Linear 21/11 (qui)
15) Interpolação Lagrangeana. Extrapolação. 27/11 (qua)
16) Ajuste de Curvas: Método dos Mínimos quadrados 28/11 (qui)
17) Regressão Linear. Regressão Polinomial. 04/12 (qua)
18) Exercícios/ Aula de dúvidas 05/12 (qui)
19) Aula de laboratório 11/12 (qua)
20) Aula de Laboratório 12/12 (qui)
21) Primeira Prova Escrita 18/12 (qua)
22) Integração Numérica. Introdução: Diferenciação. 19/12 (qui)
23) Regra dos Trapézios. Método da Extrapolação para o limite. 08/01(qua)
24) Regras de Simpson. Integral de Gauss. 09/01(qui)
25) Entrega do Segundo Trabalho Individual e Prova Oral. 15/01(qua)
26) Introdução à Solução Numérica de Equações Diferenciais Ordinárias. 16/01 (qui)
27) Solução para Série de Taylor. 22/01 (qua)
28) Método de Predição-Correção. 23/01 (qui)
29) Método dos passos. 29/01(qua)
30) Métodos de Runge Kutta. 30/01(qui)
31) Aula de Laboratório 05/02 (qua)
32) Aula de Laboratório 06/02 (qui)
33) Entrega do Terceiro Trabalho Individual e Prova Oral 12/02 (qua)
34) Segunda Prova Escrita 13/02(qui)
35) Verificação de Reposição 19/02 (qua)
36) Verificação Suplementar 20/02 (qui)

7
Objetivos da Parte I
Apresentar a noção de análise numérica: o que é e para que serve. Mostrar o que está por
trás da maneira prática como realizamos operações numéricas, isto é, como calculadoras e
computadores realizam essas operações. E, finalmente, quais os problemas que podem surgir ao
realizar essas operações e o que devemos considerar para realmente compreender o resultado obtido
de tais operações.
Introduzir a idéia de processos iterativos, chamando a atenção para suas características básicas.
Apresentar três métodos numéricos utilizados na obtenção de zeros de função, procurando ressaltar
as características, vantagens e desvantagens de cada método, como avaliar o resultado obtido (erros)
e problemas que podem ser encontrados durante a resolução.
• Conceitos introduzidos: representação numérica em equipamentos digitais (calculadoras e
computadores); erros numéricos; métodos iterativos e suas características (estimativa inicial,
convergência, critérios de parada).
• Conceitos revistos: representação de números em matemática elementar; funções e raízes
de funções.
Metodologia:
• Métodos numéricos abordados: bissecção, iteração linear, Newton-Raphson.
• Aplicativo computacional: programação C e Excel.
Aproveitamento:
• Fundamental: entendimento da natureza e objetivo do cálculo numérico. Saber definir e
identificar as conseqüências de erros numéricos. Entendimento do conceito de raízes de uma
equação, processos iterativos e capacidade de encontrar raízes de equações simples
utilizando o Método da Bissecção.
• Bom: representação de números. Capacidade de encontrar raízes de equações simples
utilizando qualquer um dos métodos abordados.
• Excelente: compreender o mecanismo que leva aos erros numéricos durante operações em
calculadoras e computadores. Saber avaliar o erro da raiz encontrada.

8
Representação Numérica

Introdução
A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos
representa-los em uma determinada base numérica. O que isso significa? Vamos tomar como
exemplo o número 2 . A fim de calcularmos, por exemplo, o valor de 2 - 1, nós precisamos
escrever o número 2 de alguma outra forma, caso contrário não é possível realizar essa operação.
Podemos escreve-lo na base decimal, por exemplo, que é a base mais usada na história da
humanidade (graças a nossa anatomia). O valor de 2 na base decimal pode ser escrito como 1,41
ou 1,4142 ou ainda 1,41421356237. Qual é a diferença entre essas várias formas de representar
2 ? A diferença é a quantidade de algarismos significativos usados em cada representação. Agora
podemos realizar a operação proposta: 2 -1=0.41 ou 0.4142 ou ainda 0.41421356237, conforme o
número de algarismos significativos adotados na nossa representação.
Em uma máquina digital, como uma calculadora ou um computador, os números não são
representados na base decimal. Eles são representados na base binária, ou seja, usam o número 2
como base ao invés do número 10. Como na base decimal existem 10 algarismos diferentes (0, 1, 2
,3, 4, 5, 6, 7, 8, 9), na base binária existem somente 2 números: 0 e 1. Portanto, a base binária é
usada porque essas máquinas utilizam-se de sinais elétricos, sendo o 0 correspondente a ausência de
sinal e o número 1 a presença do sinal elétrico.

Ponto fixo e Ponto Flutuante


A princípio, toda vez que escrevemos um número, deveríamos mencionar a base numérica a qual
estamos nos referindo. Obviamente, isso não se faz necessário na prática, pois estamos sempre
representando os números na base decimal, portanto sabemos exatamente o seu significado. Por
exemplo, quando escrevemos o número 1532, o que realmente queremos dizer? Estamos dizendo
que esse número representa uma quantidade equivalente a 1×1000 + 5×100 + 3×10 + 2, ou,
escrevendo a base de outra forma, 1×103 + 5×102 + 3×101 + 2×100. Essa é a chamada
representação posicional de números.

9
Na base binária, o mecanismo é o mesmo, porém, ao invés de potências de 10, utilizamos
potências de 2. Portanto, um número binário como 1011 (lembre-se que na base binária só existem
os algarismos 0 e 1) significa 1×23 + 0×22 + 1×21 + 1×20.
Essa idéia que está por trás da representação dos números em bases numéricas é utilizada
para representar números no computador. A fim de tornar a manipulação de números mais eficiente,
os computadores fazem a distinção entre números inteiros e números reais. Um número inteiro
apresenta a chamada representação de ponto fixo, onde a posição do ponto “decimal” está fixa e
todos os dígitos são usados para representar o número em si, com exceção do primeiro dígito usado
para representar o sinal desse número.
A figura abaixo ilustra essa representação:
Sinal dígitos
Para um número real qualquer (inteiro ou não inteiro) é utilizada a representação de ponto
flutuante, que é dada pela expressão:
±(0.d1d2d3...dt) ×be
onde:
0.d1d2d3...dt é uma fração na base b, também chamada de mantissa, com 0 ≤ di ≤ b-1, para todo i =
1,2,3,...,t, sendo t o número máximo de dígitos da mantissa que é determinado pelo comprimento de
palavra do computador;
e é um expoente que varia em um intervalo dado pelos limites da máquina utilizada.
Esse tipo de representação é chamada de ponto flutuante pois o ponto da fração “flutua”
conforme o número a ser representado e sua posição é expressa pelo expoente e. A figura abaixo
ilustra essa representação:

Sinal posição do ponto = dígitos = mantissa


expoente e

Alguns exemplos da representação de ponto flutuante pode ser visto na tabela abaixo.
Número na base decimal representação em ponto flutuante mantissa base expoente
1532 0.1532×104 0.1532 10 4
15.32 0.1532×102 0.1532 10 2
0.00255 0.255×10-2 0.255 10 -2
10 0.10×102 0.10 10 1
10 0.1010×24 0.1010 2 4

10
Erros Numéricos

Introdução
Vamos supor o seguinte problema: como calcular o valor de 2 ? Provavelmente, a primeira
resposta que vem a mente de qualquer pessoa que nasceu no século XX será: utilizando uma
calculadora ou um computador. Indiscutivelmente, essa é a resposta mais sensata e prática. Porém,
um profissional que utilizará o resultado fornecido pela calculadora para projetar, construir ou
manter pontes, edifícios, máquinas, dispositivos eletrônicos, etc., não pode aceitar o valor obtido
antes de fazer alguns questionamentos (pelo menos uma vez na sua vida profissional).
Quando calculamos, por exemplo, o valor de 2 em uma calculadora ou em um
computador, o que realmente estamos fazendo? Em outras palavras, o que a calculadora fez para
obter o resultado? Para um engenheiro, ainda mais importante é a pergunta: qual é a confiabilidade
do resultado que obtemos?
Essa pergunta faz sentido pois 2 é um número irracional, isto é, não existe uma forma de
representa-lo com um número finito de algarismos. Portanto, o número apresentado pela
calculadora é uma aproximação do valor real de 2 , já que ela não pode mostrar infinitos
algarismos. E quão próximo do valor real está o resultado mostrado?
Podemos criar algumas definições a fim de facilitar as discussões e trocas de informação
sobre esse problema. Vamos definir a diferença entre o valor real da grandeza que queremos
calcular e o valor aproximado que efetivamente calculamos como sendo o erro, ou seja:
erro = valor real – valor aproximado (1)
Quanto menor for esse erro, mais preciso será o resultado da operação. Essa definição
corresponde ao erro absoluto de um cálculo.
Porém, se estivermos lidando com números muito grandes, o erro pode ser grande em
termos absolutos, mas o resultado ainda será preciso. E o caso inverso também pode ocorrer: um
erro absoluto pequeno, mas um resultado impreciso. Por exemplo, digamos que o resultado de uma
operação nos forneça o valor 2.123.542,7 enquanto o valor real que deveríamos obter é 2.123.544,5.
O erro absoluto neste caso é 1,8. Comparada com o valor real, essa diferença (o erro) é bem
pequena, portanto, podemos considerar o resultado preciso. Em um outro caso, digamos que o
resultado da operação seja 0,234 e o resultado esperado era 0,128. Desta vez o erro será igual a
0,106 , porém o resultado é bastante impreciso.

11
A fim de evitar esse tipo de ambigüidade, podemos criar uma nova definição. Podemos
definir o erro relativo, que corresponde ao quociente entre o erro absoluto e o valor aproximado da
grandeza a ser calculada, ou seja:
valor _ real − valor _ aproximado
erro = (2)
valor _ aproximado
O erro relativo é uma forma muito mais geral de se avaliar a precisão de um cálculo
efetuado. No exemplo acima, teremos um erro relativo de 0,0000008 ou 0,00008% no primeiro caso
e um erro relativo igual a 0,83 ou 83% no segundo caso.

Tipos de Erros
O erro cometido ao se calcular o valor de 2 , por exemplo, é apenas um tipo de erro que pode
surgir ao se resolver um problema real. Outros tipos de erros também podem aparecer devido a
outros tipos de problemas ou limitações.
A solução matemática de um determinado problema envolve diversas etapas, como
discutido na introdução desta apostila. A solução do problema se inicia com a criação de um
modelo matemático do sistema em questão. Esse modelo sempre apresentará aproximações e
limitações. Além disso, na grande maioria das vezes, dados experimentais serão utilizados para se
obter a solução. Como toda medida experimental apresenta uma incerteza, a solução do problema
será influenciada pelas mesmas. Portanto, logo de início, existem diversos fatores que introduzem
incertezas na solução numérica do problema. Esse tipo de erro é chamado de erro inicial.
O problema discutido na introdução desta aula para o cálculo de 2 , que se refere a
inevitável limitação na representação de números irracionais (por exemplo), introduz erros no
resultado. Esse tipo de erro é chamado de erro de arredondamento.
Vamos considerar um outro tipo de problema prático que pode surgir ao realizarmos
determinadas operações. Digamos que precisamos calcular o valor de ex. Mais uma vez, iremos
utilizar uma máquina digital (calculadora ou computador). Porém. Como esse equipamento irá
realizar essa operação? Sabemos que a exponencial é uma função que pode ser representada por
uma série infinita dada por:
x2 x3 xn
ex = 1+ x + + +L+ +L
2! 3! n!
Como a exponencial é uma série infinita, na prática é impossível calcular seu valor exato.
Portanto, mais uma vez, teremos que fazer uma aproximação, que levará a um erro no resultado

12
final de ex. Neste caso, faremos um truncamento dessa série, e o erro gerado no valor de ex é
chamado de erro de truncamento.

Propagação e Condicionamento de Erros Numéricos


Vamos supor que queremos calcular o valor de 2 - e3. Como vimos anteriormente, ao calcularmos
o valor de 2 , teremos que realizar um arredondamento, que leva ao um resultado aproximado de
2 , ou seja, existe um erro de arredondamento associado ao resultado. Para calcularmos o valor de
e3 teremos que fazer um truncamento, que também irá gerar um erro no resultado obtido. Portanto,
o resultado da operação de subtração entre 2 e e3 apresentará um erro que é proveniente dos erros
nos valores de 2 e e3 separadamente. Em outras palavras, os erros nos valores de 2 e e3 se
propagam para o resultado de 2 - e3. Podemos concluir então que, ao se resolver um problema
numericamente, a cada etapa e a cada operação realizada, devem surgir diferentes tipos de erros
gerados das mais variadas maneiras, e estes erros se propagam e determinam o erro no resultado
final obtido.
A propagação de erros é muito importante pois, além de determinar o erro final de uma
operação numérica, ela também determina a sensibilidade de um determinado problema ou método
numérico. Se uma pequena variação nos dados de entrada de um problema levar a uma grande
diferença no resultado final, considera-se que essa operação é mal-condicionada, ou seja, existe
uma grande propagação de erros nessa operação. Por outro lado, se uma pequena variação nos
dados de entrada leva a apenas uma pequena diferença no resultado final, então essa operação é
bem-condicionada.

Erros na Aritmética de Ponto Flutuante


Nós vimos nas seções anteriores que ao manipularmos os números de maneira prática, estaremos
sempre lidando com erros, devido a diversos fatores. Vamos agora examinar os erros mais comuns
que aparecem quando um computador manipula os números.
O primeiro tipo de erro que está presente na forma como computadores lidam com números
corresponde aos erros de arredondamento e truncamento. Como citado anteriormente, esses erros
estão presentes pois os computadores precisam representar os números com uma quantidade finita
de algarismos.

13
Vamos supor, para simplificação, um computador com uma representação de ponto
flutuante na base decimal (b=10) e uma mantissa de 4 algarismos (t=4). A fim de representarmos
em ponto flutuante nesse computador, por exemplo, o número 734,68, teríamos que trunca-lo para
0,7346×103 ou arredonda-lo para 0,7347×103. Portanto, no truncamento, estaríamos cometendo um
erro de 0,8×10-1 e no arredondamento, um erro de 0,2×10-1. Podemos generalizar esse exemplo e
dizer que, em uma representação de ponto flutuante na base b e mantissa de t algarismos, os erros
de truncamento serão dados por:
erro < b e −t
onde o número em questão foi representado na forma x=fx× be. E os erros de arredondamento serão
dados por:
1 e −t
erro < ×b
2
Portanto, para uma representação numérica com t=24 ou t=53 (como no caso da maioria dos
computadores) esse erro é muito pequeno.
Apesar de pequeno, é importante lembrar que ele se propagará nas operações aritméticas
realizadas pelo computador. Vamos tomar como exemplo a soma dos números 6563 (=
0,6563×104) e 3,375 (= 0,3375×101) no nosso computador fictício de mantissa com 4 algarismos. A
soma desses dois números corresponde a 6566,375. Como nosso computador pode representar com
apenas 4 algarismos, o resultado dessa operação será 0,6566×104 = 6566. Ou seja, apesar de
partirmos de dois números exatos, o resultado da soma não será exata. Mais uma vez, para um
computador real, esse erro é pequeno, porém, se um número muito grande de operações for
realizado e se existir a necessidade de se obter um resultado bastante preciso, será preciso se levar
em consideração esse tipo de erro para avaliar o resultado obtido.
Existe mais um tipo de erro que aparece quando computadores manipulam números. Esse
erro se refere à conversão de números de uma base para a outra. O tipo de conversão mais comum é
da base decimal (usada por humanos) para a base binária (usada por computadores) e vice-versa.
Um exemplo bastante peculiar é o número 0,1. Ao convertermos esse número da base decimal para
a base binária (existem diversos algoritmos para se realizar essa conversão, mas não vamos entrar
nesse detalhe aqui), obtemos como resposta:
(0,1)10 = (0,0001100110011...)2
onde representamos com um subscrito a base em que esse número está escrito.
Portanto, notamos que, ao se converter o número 0,1 da base decimal para a base binária,
obtemos um número com infinitos algarismos! Como esse número não pode ser representado pelo

14
computador, ele será truncado, introduzindo um erro na sua representação. Uma forma interessante
1000
de constatar esse problema é escrevendo um pequeno programa que calcule o valor de ∑ 0,1 . Você
i =1

verá que esse número não é igual a 100 !

15
Zero Reais de Funções Reais

Introdução
No exemplo usado na introdução desta apostila, vimos que ao tentar calcularmos a corrente elétrica
de um circuito simples contendo apenas uma bateria, um resistor e um diodo, já nos deparamos com
um problema matemático de difícil solução. Esse problema corresponde ao cálculo do valor da
corrente i que satisfaz a equação

kT  i 
V − R ⋅i − ln + 1 = 0
q  Is 

Em outras palavras, precisamos resolver ou encontrar o zero da função acima.


Nesta aula iniciaremos o estudo de métodos numéricos que nos permitirão resolver
problemas como esse.

Zeros ou Raízes de Funções


Dada uma função f(x), dizemos que α é raiz, ou zero de f se e somente f(α)=0.
Graficamente, os zeros de uma função correspondem ao ponto x em que a função intercepta
o eixo do gráfico, como mostrado no exemplo abaixo:

g (x )

a x1 x2 x3 x4 x5 b x

A função g(x) acima tem 5 raízes no intervalo [a,b]: x1, x2, x3, x4, x5.
As raízes de uma função podem ser encontradas analiticamente, ou seja, resolvendo a
equação f(x)=0 de maneira exata, como mostrado nos exemplos abaixo:

16
1−) f ( x) = x − 3
x = 3 é raíz de f ( x) pois :
f (3) = 3 − 3 = 0

8
2−) g ( x ) =
x−4
3
8 8 12 3
x−4 = 0⇒ x = 4⇒ x = =
3 3 8 2
3 8 3
g  = . − 4 = 0
2 3 2
3−) h( x) = x 2 − 5 x + 6
x 2 − 5x + 6 = 0
∆ = 25 − 24 = 1
5± 1
x =
2
x1 = 3
x2 = 2

h(3) = 3 2 − 5.3 + 6 = h(2) = 2 2 - 5.2 + 6 =


= 15 − 15 = 0 = 10 - 10 = 0

Porém, nem sempre é possível encontrar analiticamente a raiz de uma função, como nos casos
abaixo:

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

2−) g ( x) = sen( x) + e x

3−) h( x) = x + ln( x)

Nestes casos precisamos de um método numérico para encontrar uma estimativa para a raiz
da função estudada.
Um método numérico para se encontrar os zeros de uma função deve envolver as seguintes
etapas:

17
(a) Determinar um intervalo em x que contenha pelo menos uma raiz da função f(x), ou seja,
isolar as raízes;
(b) Calcular a raiz aproximada através de um processo iterativo até a precisão desejada.

Processos Iterativos
Existe um grande número de métodos numéricos que são processos iterativos. Como o próprio
nome já diz (consulte um dicionário para verificar o significado de iterativo), esses processos se
caracterizam pela repetição de uma determinada operação. A idéia nesse tipo de processo é repetir
um determinado cálculo várias vezes, obtendo-se a cada repetição ou iteração um resultado mais
preciso que aquele obtido na iteração anterior. E, a cada iteração utiliza-se o resultado da iteração
anterior como parâmetro de entrada para o cálculo seguinte.
Existem diversos aspectos comuns a qualquer processo iterativo, que iremos discutir abaixo:
9 Estimativa inicial: como um processo iterativo se caracteriza pela utilização do resultado da
iteração anterior para o cálculo seguinte, a fim de se iniciar um processo iterativo, é preciso
ter uma estimativa inicial do resultado do problema. Essa estimativa pode ser conseguida de
diferentes formas, conforme o problema que se deseja resolver;
9 Convergência: a fim de obtermos um resultado próximo do resultado real esperado, é
preciso que a cada passo ou iteração, nosso resultado esteja mais próximo daquele esperado,
isto é, é preciso que o método convirja para o resultado real. Essa convergência nem sempre
é garantida em um processo numérico. Portanto, é muito importante estar atento a isso e
verificar a convergência do método para um determinado problema antes de tentar resolve-
lo;
9 Critério de Parada: obviamente não podemos repetir um processo numérico infinitamente.
É preciso pará-lo em um determinado instante. Para isso, devemos utilizar um certo critério,
que vai depender do problema a ser resolvido e da precisão que precisamos obter na solução.
O critério adotado para parar as iterações de um processo numérico é chamado de critério
de parada.

Para encontrarmos as raízes ou zeros de uma função iremos utilizar métodos numéricos
iterativos. Portanto, teremos que abordar todos esses aspectos nos métodos que utilizaremos. Como
mencionado acima, o primeiro passo para resolver um processo iterativo corresponde a obtenção de

18
uma estimativa inicial para o resultado do problema. No caso de zeros de funções, essa operação é
chamada de isolamento de raízes, que veremos na seção seguinte.

Isolamento de Raízes
Para determinarmos o número e a localização aproximada de raízes de uma função para obtermos
uma estimativa inicial a ser usada nos processo iterativos, podemos examinar o comportamento
dessa função através de um esboço gráfico.
Por exemplo, seja uma função f(x) tal que:

f( x ) = g( x ) - h( x )

As raízes de f(x), são tais que:

g( x ) – h (x ) = 0

ou seja, os valores de x em que o gráfico g(x) intercepta o gráfico de h(x) é a raiz de f(x).

Exemplo:
f(x) = sen(x) - [-cos( x )]
sen( x ) – [-cos( x )] = 0
sen( x ) = -cos( x )

1ª raiz
sen x
+1

0
π 3π x
π 2π
2 2 - cos x

-1

2ª raiz

19
Pelo gráfico acima, vemos que a função g(x) irá interceptar a função h(x) entre π/2 e π e
entre 3π/2 e 2π. Portanto, podemos afirmar que existe uma raiz de f(x) no intervalo [π/2, π] e no
intervalo [3π/2,2π]. Esses intervalos podem ser utilizados como estimativa inicial nos processos
iterativos que veremos a seguir.
Porém, o esboço gráfico nem sempre é a forma mais prática de se obter um intervalo que
contém pelo menos uma raiz da função f(x). Muitas vezes é preciso se utilizar um método algébrico.
Para isso, vamos recorrer ao teorema de Bolzano.

Teorema de Bolzano.
Seja uma função f(x) contínua em um intervalo [a,b], tal que, f(a).f(b)<0. Então a função f(x) possui
pelo menos uma raiz no intervalo [a,b].
Podemos verificar este teorema graficamente:

y
y

f(b )
f(a )

a b x a b x

f(a )
f(b )

a b x

20
Exemplo:
Seja a função f(x)=x⋅ln(x)-3.2. Podemos calcular o valor de f(x) para valores arbitrários de x, como
mostrado na tabela abaixo:

x 1 2 3 4
f(x) -3.20 -1.81 0.10 2.36

Pelo teorema de Bolzano, concluímos que existe pelo menos uma raiz real no intervalo
[2,3].

Método da Dicotomia ou Bissecção.


O método da dicotomia ou bissecção é a forma mais intuitiva de se obter a raiz de uma função. Seja
uma função f(x) contínua em um intervalo [a,b], e α uma raiz de f(x) isolada neste intervalo através
de um dos métodos descritos no item anterior.
Inicialmente, subdividimos este intervalo em suas duas metades, ou seja:

 a + b a + b 
 a;  e  2 ; b
 2   

Verificamos se a raiz está contida na primeira ou na segunda metade do intervalo inicial,

usando o teorema de Bolzano. Ou seja, se a função f(x) mudar de sinal entre a e a + b saberemos
2
que a raiz está nessa primeira metade do intervalo [a,b]. Caso a função f(x) mude de sinal entre
a+b e b, a raiz deverá estar na segunda metade do intervalo original.
2
Em seguida repetimos o processo para aquela metade que contém a raiz de f(x): dividimos o
intervalo ao meio e verificamos em qual metade está a raiz. E podemos continuar repetindo esse
processo indefinidamente.
A estimativa da raiz α em cada etapa será o ponto médio do intervalo em estudo onde
sabemos que existe uma raiz. E, como todo processo numérico, é importante estimarmos o erro
nesse resultado obtido. No caso do método da bissecção, o erro na estimativa será dado pela metade
do comprimento do intervalo em estudo.
A seguir, uma ilustração desse processo:

21
+ + -
a x1 b

 a +b  b−a
x1 =   ±
 2  2

+ - -
x1 x2 b

 x +b  b − x1
x2 =  1  ±
 2  2

+ + -
x1 x3 x2

 x + x2  x2 − x1
x3 =  1  ±
 2  2

22
Exemplo:

Encontre uma estimativa para a raiz de:

f (x) = ex + x
, com um erro menor ou igual a 0,050.

exp(x)
4 -x

1
0

-1

-2

-4

-4 -2 0 2 4

A raiz de f(x) ∈ [-1,0];

- + + f (−1) = −0,63

-1 -0,5 0
f (0) = 1
x1 = −0,5 ± 0,5
f (−0,5) = 0,11

- - +

-1 -0,75 -0,5 f (−0,75) = −0,28

x2 = −0,75 ± 0,25

23
- - +

-0,75 -0,625 -0,5


f ( −0,625) = −0,09
x3 = −0,625 ± 0,125

- + +

-0,625 -0,563 -0,5


f ( −0,563) = 0,01
x4 = −0,563 ± 0,063

- - +

-0,625 -0,594 -0,563


f ( −0,594 ) = −0,04
x5 = −0,594 ± 0,032

Portanto, a raiz da função f(x)=ex+x é igual a –0,594 ± 0,032.

24
Primeira Lista de Exercícios

1 ) Quais são as 3 causas mais importantes de erros numéricos em operações realizadas em


computadores e calculadoras?

2 ) Cite as características básicas de todo processo iterativo.

3 ) Como você poderia usar o método da bissecção para estimar o valor de 7 ? Estime esse valor

com uma precisão de (ou erro menor que) 0,1.

4 ) Dada a função f (x ) = sen (x ) − x 2 + 4 :


(a) Determine o intervalo em x que contém pelo menos uma raiz de f(x) (graficamente ou
aritmeticamente usando o Teorema de Bolzano);
(b) Partindo-se desse intervalo, utilize o método da bissecção para determinar o valor dessa raiz
após 4 iterações.
(c) Qual é o erro no seu resultado final?

25
Critérios de Parada em um Processo Iterativo
Foi usado, até o momento, o seguinte critério de parada:

bk − a k ≤ erro estipulado (1)

onde [a k , bk ] é o intervalo que contêm a raiz da função após k iterações.

No entanto, se tivermos uma função do seguinte tipo:

f(x0 x0 é a estimativa da raíz

α é a raiz de f(x)

a x0 α
x

Podemos estar satisfazendo (1) e, entretanto, f(x0) pode ser muito maior que zero. Assim, em
certos casos pode-se usar a seguinte condição:

f(x 0 ) ≤ erro estipulado (2)

Tanto o critério (1), quanto o critério (2), podem levar a um número muito grande de
iterações. Uma maneira de se contornar este problema é tomar como um critério de parada
adicional, um certo número de iterações máximo.

26
Estimativa do número de iterações no método da bisseção.
Como em cada passo, dividimos o intervalo por 2, temos:

bo − ao
bk − a k = (3)
2k

onde k é o número de iterações e [ao,bo] é o intervalo inicial que isola a raiz da função.
Dado o seguinte critério de parada:

ε ≥ bk − a k (4)

onde ε é o erro estipulado. Assim de (3) em (4):

b o − ao
2k ≥ (5)
ε
e re-arranjando os termos:

klog 2 ≥ log bo − a o - log ε (6)

Assim,
log bo − a o - log ε
k≥ (7)
log 2

A expressão (7) dá o número de iterações necessárias para que o critério de parada, definido
em (5), seja satisfeito.

27
Método de Iteração Linear (MIL)
O método da iteração linear é um processo iterativo que apresenta vantagens e desvantagens em
relação ao método da bissecção estudado na aula passada.
Seja uma função f(x) contínua em um intervalo [a,b] que contenha uma raiz de f(x). O Método de
Iteração Linear inicia-se reescrevendo a função f(x) como,
f(x) = ϕ(x) – x
Essa forma de escrever f(x) é bastante útil. No ponto x que corresponde à raiz de f(x), isto é,
f(x) = 0, teremos que:
f(x) = ϕ(x) – x =0
ϕ(x) = x
Ou seja, no ponto x que corresponde à raiz de f(x), ao substituirmos o valor de x na função
ϕ(x), teremos como resultado o próprio valor de x. Portanto, a raiz de f(x) será o ponto fixo de ϕ(x),
ou seja, o valor que ao ser substituído em ϕ(x) retorna o próprio valor de x.
Por exemplo, a função
f(x) = x2 - x – 2
pode ser reescrita como,
f(x) = x2 – 2 – x = ϕ(x) – x ,
onde ϕ(x) = x2 – 2. Essa função tem como ponto fixo o valor x=2, pois ϕ(2) = 22 – 2 = 2. E esse é
exatamente o valor da raiz de f(x), pois f(2) = 22 – 2 – 2 = 0.
Portanto, para encontrarmos a raiz de f(x), podemos encontrar o valor numérico que ao
substituirmos em ϕ(x), essa função retorna o próprio valor de x. Para encontrarmos esse valor de x,
vamos utilizar um processo iterativo, onde começamos a calcular o valor de ϕ(x) com um valor
inicial de x, e recalculamos repetidamente o valor de ϕ(x) sempre usando o resultado de uma dada
iteração como a nova estimativa de x, ou seja, fazendo:

xk +1 = ϕ ( xk )

onde, k é a ordem da iteração em que estamos (k = 0, 1, 2, 3, 4, ...). A função


ϕ(x) é chamada de função de iteração. Ela não é única para uma dada

28
função f(x), mas, como veremos na próxima aula, o bom resultado deste
método depende de uma boa escolha de ϕ(x).

Exemplo 1:
Encontre algumas funções de iteração a partir de:

f ( x ) = x 2 + ln( x ) − x + 1

f ( x) = 0
x 2 + ln( x ) − x + 1 = 0
x = x 2 + ln( x ) + 1
∴ ϕ ( x ) = x 2 + ln( x ) + 1

Ou então,

x 2 + ln( x ) − x + 1 = 0
ln( x ) = x − x 2 − 1
2
x = e ( x− x −1)

2
∴ ϕ ( x) = e ( x− x −1)

Ou ainda,

x 2 + ln( x ) − x + 1 = 0
x. x = x − ln( x ) − 1 ÷x
x − ln( x ) − 1
x=
x
x − ln( x ) − 1
∴ ϕ ( x) =
x

Mais um exemplo,

29
x 2 + ln( x ) − x + 1 + cos x − cos x = 0
cos x = cos x − x 2 − ln( x ) + x − 1
x = arc cos(cos x − x 2 − ln( x ) + x − 1)
∴ ϕ ( x ) = arc cos(cos x − x 2 − ln( x ) + x − 1)

Exemplo 2:

Encontre uma estimativa para a raiz de :

f ( x) = x 2 − e x

usando o método da iteração linear.


Vamos iniciar a solução encontrando uma boa estimativa inicial para o valor da raiz de f(x).
Para isso, vamos usar o método gráfico para o isolamento de raízes. Escrevendo:
f(x) = g(x) – h(x) ⇒ g(x) = x2 e h(x) = ex

x*x
4 exp(x)

1
0
-1

-2

-4

-4 -2 0 2 4

A partir do esboço gráfico acima, conclui-se que a raiz encontra-se no intervalo [-1,0].
Devemos agora escolher uma função de iteração ϕ(x). Para isso, escrevemos:

30
f ( x) = 0
x2 − ex = 0
x = ± ex

Ou seja, podemos ter como função iteração, os dois casos abaixo:

ϕ ( x) = e x
ϕ ( x) = − e x

Usando ϕ ( x) = − e x e x0 = − 1 , temos :

x 0 = − 1 → ϕ ( x0 ) = ϕ ( − 1) = − e −1 = − 0,606
x1 = − 0,606 → ϕ ( x1 ) = ϕ ( − 0,606 ) = − e − 0 , 606 = − 0,738
x 2 = − 0,738 → ϕ ( x2 ) = ϕ ( − 0,738 ) = − e − 0 , 738 = − 0,691
x 3 = − 0,691 → ϕ ( x3 ) = ϕ ( − 0,691) = − e − 0 , 691 = − 0,707
x 4 = − 0,7 07

Substituindo os valores de xk em f(x) para cada iteração k, vemos que a cada etapa nos
aproximamos mais da raiz de f(x), pois o valor dessa função fica mais próximo de zero a cada
iteração, como mostrado na tabela abaixo:

x f ( x) = x 2 − e x

-1 0,632
-0,606 -0,178
-0,738 0,067
-0,691 -0,024
-0,707 0,007

31
O problema da convergência no Método da
Iteração Linear
Como discutido na aula 03, para se obter um resultado coerente e preciso com um processo
iterativo, é preciso que a cada iteração a resposta se aproxime mais e mais da solução real, ou seja,
que o método convirja para o valor real. No caso do método da bissecção, nós não precisamos nos
preocupar com a convergência, pois com esse método ela está sempre garantida, já que isolamos a
raiz em um dado intervalo e nunca deixamos esse intervalo inicial. Já no método da iteração linear,
a convergência não é garantida a priori. A cada iteração podemos nos aproximar os nos afastar da
solução real. Portanto, antes de resolver um problema através desse método é preciso se verificar se
haverá ou não a convergência.
O seguinte Teorema coloca condições suficientes, porém não necessárias para que o método
de iteração linear seja convergente.
Seja uma função f(x) contínua em um intervalo [a,b] e α uma raiz de f(x) contida em [a,b].
Seja ϕ(x) uma função de iteração obtida a partir de f(x).

Se:

i) ϕ(x) e ϕ’(x) forem contínuas em [a,b];


ii) |ϕ’(x)| < 1 (para todo) ∀ x ∈ [a,b];

iii) x0 ∈ [a,b].

Então:

lim n→+∞ xn = α
Exemplos:
1) Deseja-se encontrar a raiz de f ( x) = x 2 + 0,96 x − 2,08 .
Para isto, pretende-se usar uma das seguintes funções de iteração:

2 , 08
ϕ1( x) =
x + 0 ,96

ϕ 2 ( x ) = x 2 + 1,96 x − 2 , 08

32
Verifique se ϕ1(x) e ϕ2(x) satisfazem as condições (i) e (ii) do Teorema de convergência no
intervalo [1,2].
Vamos iniciar verificando a condição (i) para a função ϕ1(x).
2 , 08
ϕ1 ( x) =
x + 0 ,96
ϕ 1 ' ( x ) = 2 ,08 .( x + 0 ,96 ) −1
ϕ 1 ' ( x ) = 0 .( x + 0 ,96 ) −1 − 2 , 08 .( x + 0 ,96 ) − 2 . 1
2 , 08
ϕ1 ' ( x) = −
( x + 0 ,96 ) 2

Ambas as funções ϕ1(x) e ϕ1‘(x) são contínuas (para todo) ∀ x ∈ R com x ≠ -0,96.
Em seguida, vamos verificar a condição (ii) para ϕ1(x).
| ϕ 1 '( x ) | < 1
2 , 08
− < 1
( x + 0 , 96 ) 2

− 2 , 08
< 1
( x + 0 , 96 ) 2

2 , 08
< 1
( x + 0 , 96 ) 2

2 , 08 < ( x + 0 , 96 ) 2
2 , 08 < x 2 + 1, 92 x + 0 , 9216
x 2 + 1, 92 x + 0 , 9216 > 2 , 08
x 2 + 1, 92 x − 1,1584 > 0

Portanto, para os valores de x que satisfazem a equação acima, teremos |ϕ1(x)| < 1, ou seja ,
a condição (ii) do teorema da convergência satisfeita. Vamos encontrar as raízes da função acima
(x2 + 1.92x – 1,1584) e, como ela se trata de uma parábola com concavidade para cima, sabemos
que a função será positiva para valores menores que a raiz de menor valor (x1) e valores maiores
que a raiz de maior valor (x2) , como ilustrado abaixo.

33
+ +
x1 _ x2

As raízes dessa função são:

x 2 + 1, 92 x − 1,1584 = 0
∆ = 8,32
− 1, 92 ± 8 , 32
x = =
2
x 1 = − 2 ,40
x 2 = 0 ,48
Portanto:

| ϕ1‘(x) | <1 para x< –2,40 ou x > 0,48.


Finalmente, concluímos que as condições (i) e (ii) do Teorema de Convergência são
satisfeitas por:
2,08
ϕ1 ( x ) =
x + 0,96
no intervalo [1,2].
Vamos verificar se essas condições são satisfeitas para a função ϕ2(x). Para a condição (i),
temos:

ϕ 2 ( x ) = x 2 + 1,96 x − 2,08
ϕ 2 ' ( x ) = 2 x + 1,96

Portanto, ϕ2 (x) e ϕ2‘(x) são contínuas ∀ x ∈ R . Para a condição (ii) ser satisfeita,
devemos ter:

ϕ 2 ' ( x) <1
2 x + 1,96 <1
− 1 < 2 x + 1,96 < 1
− 1 − 1,96 < 2 x + 1,96 − 1,96 < 1 − 1,96
− 2,96 < 2 x < − 0,96 ( ÷2)
- 1,48 < x < - 0,48

34
Ou seja:
ϕ2‘(x) < 1 para –1,48 < x < -0,48.

Temos, portanto, que ϕ2(x) não satisfaz a condição (ii) do Teorema de Convergência, no
intervalo [1,2].

2) Na aula 05, calculamos o valor da raiz da função f(x) = x2 – ex, utilizando:

ϕ (x ) = − e x
Vamos verificar se essa função satisfaz as condições do teorema da convergência. Para a
condição (i), temos:

( )
1
ϕ ( x) = − e = − e x x 2

x 1
( )
1
1 − 1 − 1 x
ϕ ′( x) = − e x 2 .e = − .e 2 .e x = − .e 2
x

2 2 2

Portanto, ϕ(x) e ϕ’(x) são contínuas para ∀ x ∈ R.


Para a condição (ii), devemos ter |ϕ’(x)| < 1, ou seja:

x
1
- e2 < 1
2
x
1
e2 < 1
2
x

e2 < 2
x
< ln 2
2
x < 2 . ln 2
x < 1,386

35
O Teorema de convergência será satisfeito se x < 1,386.

E, finalmente, para a condição (iii), devemos ter x0 < 1,386, que tem se satisfaz para x0 = -
0.5, que foi o valor usado.

Ainda nesse exemplo, vimos que a função ϕ ( x ) = e x , a princípio, também poderia ser
usada. Mas, será que ela satisfaz todas as condições do teorema da convergência. Devido sua

semelhança com a função ϕ (x ) = − e x , podemos concluir que ela satisfaz o teorema da


convergência também para valores de x < 1,386.

Ao tentarmos resolver este problema usando a função ϕ (x ) = − e x , notamos que essa


condição não é satisfeita em todas as etapas do problema. A tabela abaixo mostra o que acontece ao

tentarmos encontrar a raiz de f(x) usando ϕ ( x ) = e x . A tabela apresenta o índice das iterações que
estamos (i), o valor de ϕ(xi) e de f(xi) para cada iteração:

i xi ϕ(xi) f(xi)
0 -0.5 0.778801 -0.35653
1 0.778801 1.476095 -1.57233
2 1.476095 2.091848 -2.19697
3 2.091848 2.846027 -3.72404
4 2.846027 4.149606 -9.11936
5 4.149606 7.962976 -46.1898

Notamos que o processo está divergindo, isto é, se afastando da raiz de f(x), já que o valor
de f(x) é cada vez mais distante de zero. Também podemos notar que isso acontece devido ao fato
de usarmos valores de x > 1,386 a partir da iteração i=2. Portanto, essa função não satisfaz o
teorema da convergência em todas as iterações.

Critérios de Parada no método da iteração linear


No caso do método da iteração linear, podemos usar qualquer uma (ou todas simultaneamente) das
condições abaixo como critério de parada:
1. Variação de xk :

xk − xk −1 < ε

36
Conforme avançamos no número de iterações, se as estimativas da raiz de f(x) começam a
variar muito pouco, podemos concluir que estamos bem próximos da raiz de f(x) e o processo
iterativo pode ser parado.

2. Valor de f(xk) (como discutido na aula 04):

f (x k ) < ε
3. Número de Iterações (também discutido na aula).

37
Método de Newton-Raphson.
O Método de Newton-Raphson é um caso particular do método de iteração linear.
O método de iteração linear consiste em estimar a raiz de uma função f(x) usando o processo
iterativo:

xn +1 = ϕ ( xn ) (1)

Essa expressão define a forma de ϕ(x). Podemos escrever uma forma geral para essa função
dada por:

ϕ ( x ) = x + A( x ). f ( x ) (2)

pois, para x igual à raiz de f(x), tem-se f(x)=0, ou seja x=ϕ(x) para qualquer A(x)≠0.

Para haver a convergência no método da iteração linear é preciso que |ϕ’(x)|<1 em um


intervalo [a,b] que contém a raiz de f(x). Portanto, a idéia no método de Newton-Raphson é
escolher uma função ϕ(x) tal que ϕ’(α)=0 onde α é a raiz de f(x) e α ∈ [a,b]. Com isso, teremos
|ϕ’(x)|<1 desde que não nos afastemos muito do valor de α durante o processo de resolução do
problema.
Derivando ϕ(x) dada pela expressão (2) em relação a x, temos:

ϕ ' ( x ) = 1 + A ' ( x ). f ( x ) + A ( x ). f ' ( x )

Exigindo que ϕ’(x)=0, tem-se:

0 = 1 + A' ( x). f ( x) + A( x). f ' ( x)

Portanto:

1 + A ' ( x ). f ( x ) + A ( x ). f ' ( x ) = 0
A ( x ). f ' ( x ) = − 1
1
A( x) = −
f '( x)
38
Escolhendo:

1
A( x) = − (3)
f ' ( x)

De (3) em (2):

f (x)
ϕ ( x) = x − (4)
f ' ( x)

O Método de Newton-Raphson consiste em usar o processo iterativo xn+1 = ϕ (xn) e como


função de iteração a expressão (4).

Convergência do Método de Newton-Raphson


Apesar de obtermos a forma da função ϕ(x) procurando garantir a convergência do processo
iterativo, esta não esta sempre garantida para este método (mas quase sempre). A convergência no
método de Newton-Raphson esta sempre garantida para um certo intervalo [a,b] que contém a
raiz de f(x), desde que f(x) e f’(x) sejam contínuas nesse intervalo e que f’(α)≠0, onde α é a raiz de
f(x) (f(α)=0). Portanto, se utilizarmos uma estimativa inicial x0 tal que x0 ∈ [a,b], a convergência
estará garantida. Em outras palavras, para o método de Newton-Raphson convergir, é preciso que
nossa estimativa inicial esteja próxima da raiz de f(x). A proximidade exigida para a convergência
vai depender de caso a caso e nem sempre é simples de determinar.

Interpretação Geométrica
Dado xn, o ponto xn+1 será dado pela intercessão da reta tangente a f(x) no ponto xn com o eixo x (a
abscissa). Podemos ilustrar isso matematicamente. A reta tangente a f(x) em xn é dada por:

f (xn ) − 0
f '( xn ) =
x n − x n +1

A partir dessa expressão, obtemos a fórmula de Newton-Raphson, ou seja:

39
f (xn)
x n − x n +1 =
f '( x n )

f (xn )
x n +1 = x n −
f '( xn )

Portanto, a cada iteração do nosso processo, nos aproximamos cada vez mais da raiz de f(x)
através da tangente (ou seja, da derivada) da função f(x).
A figura abaixo ilustra essa interpretação geométrica do Método de Newton-Raphson.

f(x n )

( x n , f(x n ) )

xn + 1 xn
x
α

Exemplo:

Calcule a raiz de f ( x) = x 2 + x − 6 , usando o método de Newton-Raphson,


x0 = 3 como estimativa inicial e como critério de parada |f(xn)| 0,020.

Para encontrar a raiz de f(x) usando o método de Newton-Raphson, devemos ter:

40
x n +1 = ϕ ( x n )

onde,
f (x )
ϕ (x ) = x −
f ′( x )
x2 + x − 6 2 ⋅ x2 + x − x2 − x + 6 x2 + 6
ϕ (x ) = x − = =
2 ⋅ x +1 2 ⋅ x +1 2 ⋅ x +1

Portanto, temos que:

xn f(xn) ϕ(xn)
3 6 2,1429
2,1429 0,7349 2,0039
2,0039 0,0195

A estimativa da raiz de f(x) é: x = 2,0039

41
Segunda Lista de Exercícios

1 ) O que significa a convergência de um método iterativo? Que condições garantem a


convergência no método da iteração linear? O que fazer caso seja constatado que o método da
iteração linear não irá convergir para um dado problema?

2 ) Como você estimaria o erro da raiz obtida através do método da iteração linear?

3 ) Dada a função f(x)=ln(x) –x2 + 4, mostre 3 formas para a função ϕ(x) que poderiam ser usadas
para se estimar a raiz de f(x).

4 ) Seja a função f(x) = ex – 4x2.


(a) Encontre o intervalo que deve possuir pelo menos uma raiz de f(x);
1 x2
(b) Usando ϕ ( x ) = e , estime a raiz de f(x) com |xn-xn-1| < 0,001.
2
(c) Faça a mesma estimativa usando o método de Newton-Raphson. Qual dos dois métodos
converge mais rapidamente?
(d) Um outro critério de parada que poderia ser usado corresponde à verificação se o valor de f(x)
está próximo de zero. Qual resultado para a raiz de f(x) se obteria caso se usasse como critério
de parada a condição |f(x)| < 0.001?

42
Terceira Lista de Exercícios

1 ) Descreva a representação de ponto flutuante utilizada por computadores e calculadoras? Que


palavra(s) chave(s) define(m) um tipo de variável que utilizaria essa representação na Linguagem
C?

2 ) O que é um zero ou raiz de função?

3 ) Dada a função f (x ) = e − x + x 2 − 2 :
(a) Determine graficamente o intervalo em x que contém pelo menos uma raiz de f(x);
(b) Faça a mesma estimativa, mas desta vez aritmeticamente usando o Teorema de Bolzano;
(c) Partindo-se desse intervalo, utilize o método da bissecção para determinar o valor dessa raiz
com uma precisão de 0,05.
(d) Compare o resultado obtido aqui com a solução dada pelo programa que você escreveu na
linguagem C.

4 ) Seja: f ( x) = x 3 − 3x + 1
(a) Mostre que f(x) possui uma raiz em [0,1].
x3 + 1
(b) Mostre que ϕ ( x) = , é uma possível função de iteração obtida a partir de f(x).
3
(c) Verifique se ϕ(x) satisfaz as condições (i) e (ii) do Teorema de Convergência.
(d) Encontre uma estimativa para a raiz de f(x) através do método da iteração linear e usando a

função ϕ(x) do item (c), tal que |f(x)| < 0,0070.

(e) Faça a mesma estimativa, mas desta vez ao invés de utilizar a função ϕ(x) do item (c), utilize o
método de Newton-Raphson.

43
Referências Bibliográficas
RUGGIERO/LOPES - Cálculo Numérico. Makron Books
CHAPRA/CARRALE - Numerical Methods for Engineers. Ed. McGrawHill
CONTE - Elementos de Análise Numérica. Ed. Globo
BARROSO - Cálculo Numérico - Ed. Harper & How do Brasil
MARCELO G. MUNHOZ- Apostila de Cálculo Numérico - FACENS

44
Apostila de Introdução
Aos Métodos Numéricos

PARTE II
2o Semestre - 2002

Profa. Salete Souza de Oliveira Buffoni


Índice
SISTEMAS LINEARES ....................................................................................................................3

INTRODUÇÃO ....................................................................................................................................3
MÉTODOS DIRETOS: ELIMINAÇÃO DE GAUSS ...................................................................................4
Sistema linear com n=3 ...............................................................................................................5
Exemplo: ......................................................................................................................................7

SISTEMAS LINEARES ....................................................ERRO! INDICADOR NÃO DEFINIDO.

Minimizando erros numéricos: Estratégia de Pivoteamento.....................................................10


Avaliando os erros na solução de um sistema linear ................................................................12

QUARTA LISTA DE EXERCÍCIOS ............................................................................................15

MÉTODOS ITERATIVOS: GAUSS-SEIDEL .............................................................................16

Introdução..................................................................................................................................16
Descrição do Método .................................................................................................................17
Exemplo: ....................................................................................................................................18

CRITÉRIOS DE CONVERGÊNCIA DO MÉTODO DE GAUSS-SEIDEL .............................20

Critério de Sassenfeld ................................................................................................................20


Critério das Linhas ....................................................................................................................21

QUINTA LISTA DE EXERCÍCIOS..............................................................................................24

SEXTA LISTA DE EXERCÍCIOS ................................................................................................25

2
Sistemas Lineares

Introdução
Um sistema linear consiste em um conjunto de n equações lineares envolvendo m variáveis (xi).
Uma equação linear é aquela que só apresenta termos que são proporcionais às variáveis (termos do
tipo ai⋅xi), isto é, não apresenta nenhuma função aplicada a variável xi, como xn, ln(x), cos(x), como
ilustrado abaixo envolvendo m variáveis (x1, x2, x3,...,xm):

a1 ⋅ x1 + a 2 ⋅ x 2 + a 3 ⋅ x3 + L + a m ⋅ x m = b

Um sistema linear quadrado é aquele em que o número de variáveis é igual ao número de


equações (m=n). Portanto, um sistema linear quadrado pode ser escrito na forma:

a11 ⋅ x1 + a12 ⋅ x 2 + L + a1n ⋅ x n = b1


a 21 ⋅ x1 + a 22 ⋅ x 2 + L + a 2 n ⋅ x n = b2
M
a n1 ⋅ x1 + a n 2 ⋅ x 2 + L + a nn ⋅ x n = bn

Resolver um sistema linear significa encontrar os valores numéricos das variáveis x1, x2,
x3,..., xn que satisfazem todas as equações do sistema.
Duas perguntas fundamentais devem ser feitas em relação a um sistema linear:
9 Existe solução para o sistema linear?
9 Em caso afirmativo, será que ela é única?
Cada sistema linear estudado deve ser analisado a fim de se obter as respostas para essas
perguntas. Três casos são possíveis:
9 O sistema não possui nenhuma solução (sistema impossível);
9 O sistema possui uma solução (sistema possível e único);
9 O sistema possui infinitas soluções.
É preciso manter em mente essas três possibilidades de comportamento de um sistema linear
a fim de evitar surpresas e poder interpretar a solução de um problema.

3
Sistemas de equações lineares aparecem com bastante freqüência na resolução de problemas
práticos envolvendo as mais variadas situações. Estima-se que aproximadamente 75% dos
problemas científicos envolvem a resolução de um sistema de equações lineares. Um exemplo pode
ser visto no livro texto de M. A. G. Ruggiero.
Os métodos usados na resolução de sistemas lineares podem ser de dois tipos: diretos ou
iterativos. Métodos diretos são aqueles que, a menos de erros de arredondamento, fornecem a
solução exata do sistema linear, caso ela exista. Métodos iterativos são equivalentes àqueles vistos
no módulo passado: a partir de uma estimativa inicial, repetimos determinado cálculo diversas
vezes, utilizando sempre a estimativa da etapa anterior como estimativa para a etapa seguinte.

Métodos Diretos: Eliminação de Gauss


O método direto que abordaremos no curso é o método da eliminação de Gauss. Neste método
procuramos reescrever um sistema linear quadrado como um sistema linear triangular, isto é, um
sistema da forma:

a11 ⋅ x1 + a12 ⋅ x 2 + L + a1n ⋅ x n = b1


a 22 ⋅ x 2 + L + a 2 n ⋅ x n = b2
M
a nn ⋅ x n = bn

Esse sistema é de fácil resolução. Partindo-se da solução da última equação, que é dada por:

bn
xn =
a nn

obtém-se o resultados das outras equações recursivamente, isto é:

n
bi − ∑a
j = i +1
ij ⋅ xj
xi =
aii

A fim de se transformar um sistema linear quadrado em um sistema linear triangular,


manipula-se as equações multiplicando-as por determinados fatores numéricos e subtraindo-as uma

4
das outras de forma a zerar os termos apropriados. Da álgebra linear, sabemos que essas operações
não alteram a solução do sistema.
Vamos verificar como essa manipulação pode ser feita para um sistema de 3 equações e 3
variáveis e depois podemos generalizar o procedimento para n dimensões.

Sistema linear com n=3


Um sistema linear quadrado com n=3 é dado pelas equações:

a11 ⋅ x1 + a12 ⋅ x 2 + a13 ⋅ x3 = b1


a 21 ⋅ x1 + a 22 ⋅ x 2 + a 23 ⋅ x3 = b2
a31 ⋅ x1 + a32 ⋅ x 2 + a33 ⋅ x3 = b3

A fim de resolver esse sistema pelo método de eliminação de Gauss, vamos transforma-lo
em um sistema linear triangular, como mencionado anteriormente. Inicialmente, vamos multiplicar
a primeira equação pelo fator:

a 21
m21 =
a11

e subtraí-la da segunda equação. Essa primeira equação é chamada de linha pivô e o elemento a11 é
o elemento pivô. Pela expressão de m21 conclui-se que o elemento pivô não pode ser nulo. Caso isso
ocorra, essa linha deve ser trocada por outra linha que não apresente o pivô igual a zero.
Com essa operação, o sistema se transforma em:

a11 ⋅ x1 + a12 ⋅ x 2 + a13 ⋅ x3 = b1


′ ⋅ x 2 + a 23
0 + a 22 ′ ⋅ x3 = b2′
a31 ⋅ x1 + a32 ⋅ x 2 + a33 ⋅ x3 = b3

onde,
′ = a 22 − m21 ⋅ a12
a 22
′ = a 23 − m21 ⋅ a13
a 23

b2′ = b2 − m21 ⋅ b1

5
Em seguida, podemos multiplicar a primeira equação (a linha pivô) por:

a31
m31 =
a11

e subtraí-la da terceira equação.


Com essa operação, o sistema se transforma em:

a11 ⋅ x1 + a12 ⋅ x 2 + a13 ⋅ x3 = b1


0 + a ′22 ⋅ x 2 + a 23
′ ⋅ x3 = b2′
′ ⋅ x 2 + a33
0 + a32 ′ ⋅ x3 = b3′

onde,
′ = a32 − m31 ⋅ a12
a32

′ = a33 − m31 ⋅ a13


a33

b3′ = b3 − m31 ⋅ b1

Note que, com essas operações, conseguimos transformar a segunda linha do sistema na
forma triangular. Para finalizarmos a triangulação do sistema, basta “zerar” o termo de x2 na terceira
equação. Para isso, vamos utilizar o mesmo procedimento usado anteriormente. Desta vez, a
segunda linha será a linha pivô e o elemento a’22 será o elemento pivô, que deve ser diferente de
zero. Mais uma vez, caso esse elemento seja nulo, essa linha deve ser trocada por outra linha que
não apresente um pivô igual zero. Caso isso não seja possível, ou seja, todas as outras linhas
apresentam o pivô nulo, o sistema não terá solução determinada.
Portanto, vamos multiplicar a segunda linha pelo fator:


a32
m32 =

a 22

e subtraí-la da terceira equação.


Com essa operação, o sistema se transforma em:

6
a11 ⋅ x1 + a12 ⋅ x 2 + a13 ⋅ x3 = b1
′ ⋅ x 2 + a 23
a 22 ′ ⋅ x3 = b2′
′′ ⋅ x3 = b3′′
0 + a33

onde,
′′ = a33
a33 ′ − m32 ⋅ a 23

b3′′ = b3′ − m32 ⋅ b2′

Com isso, obtivemos o sistema linear triangular que desejávamos. Esse sistema pode ser
resolvido de maneira recursiva, sendo o resultado dado por:

b3′′
x3 = ,
′′
a33

b3′′
b2′ − a 23
′ ⋅
b′ − a 23
′ ⋅ x3 ′′
a33
x2 = 2 =

a 22 ′
a 22
e
 b′ − a ′ ⋅ b3′′ 
 2 23 ′′ 
a33 b′′
b1 − a12 ⋅   − a13 ⋅ 3
 ′
a 22  ′′
a33
b − a12 ⋅ x 2 − a13 ⋅ x3  
x1 = 1 =
a11 a11

Esse procedimento pode ser estendido facilmente para sistemas com n>3. A única diferença
será o número maior de operações a serem realizadas.

Exemplo:
Vamos resolver o sistema de 4 equações e 4 incógnitas, dado por:

2 ⋅ x1 − x 2 + 3 ⋅ x3 + 5 ⋅ x 4 = −7
6 ⋅ x1 − 3 ⋅ x 2 + 12 ⋅ x3 + 11 ⋅ x 4 = 4
4 ⋅ x1 − x 2 + 10 ⋅ x3 + 8 ⋅ x 4 = 4
− 2 ⋅ x 2 − 8 ⋅ x3 + 10 ⋅ x 4 = −60

7
Para facilitar a resolução do problema, vamos representa-lo na forma de uma matriz
aumentada, que corresponde a uma matriz cujos elementos são os fatores aii, e ela é “aumentada”
incluindo-se os fatores bi. Portanto, o sistema acima ficará na forma:

2 − 1 3 5 − 7 
6 − 3 12 11 4 

4 − 1 10 8 4 
 
0 − 2 − 8 10 − 60

A primeira linha será a linha pivô e o número 2 é o elemento pivô. Vamos utilizar essa linha
e esse elemento para zerar o primeiro elemento de cada linha seguinte. Portanto, multiplicando a
primeira linha por 6/2=3 e subtraindo-a da segunda linha, teremos:

 2 −1 3 5 −7 
6 − 2 ⋅ 3 = 0 − 3 − (− 1) ⋅ 3 = 0 12 − 3 ⋅ 3 = 3 11 − 5 ⋅ 3 = −4 4 − (− 7 ) ⋅ 3 = 25
 
 4 −1 10 8 4 
 
 0 −2 −8 10 − 60 

Podemos realizar a mesma operação para as outras duas linhas. Porém, vamos multiplicar a
primeira linha pelo fator 4/2=2 antes de subtraí-la da terceira linha, e no caso da quarta linha, não
precisamos realizar nenhuma operação, pois seu primeiro elemento já é igual a zero. Portanto,
teremos a matriz aumentada:

 2 −1 3 5 −7 
 0 0 3 −4 25 
 
4 − 2 ⋅ 2 = 0 − 1 − (− 1) ⋅ 2 = 1 10 − 3 ⋅ 2 = 4 8 − 5 ⋅ 2 = −2 4 − (− 7 ) ⋅ 2 = 18
 
 0 −2 −8 10 − 60 

Vamos continuar a triangulação do sistema zerando os elementos da segunda coluna da


terceira e quarta linha. Porém, devemos notar que a segunda linha, que seria a linha pivô desta
etapa, apresenta o elemento pivô igual a zero. Portanto, não podemos utiliza-la como linha pivô
nesta etapa. Devemos troca-la por outra linha. Vamos prosseguir, trocando a segunda linha pela
terceira. Com isso, a terceira linha passa a ser a linha pivô. Mais que isso, não precisamos realizar
nenhuma operação com a segunda linha, pois ela já apresenta o elemento da segunda coluna igual a

8
zero. Portanto, basta multiplicar a nova linha pivô por –2/1=-2 e subtrai-la da quarta linha, ou seja,
teremos:

2 −1 3 5 −7 
0 1 4 −2 18 
 
0 0 3 −4 25 
 
0 − 2 − 1 ⋅ (− 2 ) = 0 − 8 − 4 ⋅ (− 2 ) = 0 10 − (− 2 ) ⋅ (− 2 ) = 6 − 60 − 18 ⋅ (− 2 ) = −24

A próxima etapa corresponderia a operação que anularia o elemento da terceira coluna da


quarta linha. Porém, esse elemento já é nulo. Portanto, já podemos obter a solução desse sistema,
que será dada por:

x4 = -24/6 = -4
x3 = [25 – (-4)⋅(-4)]/3 = 3
x2 = [18 – (-2) ⋅(-4) – 4⋅3]/1 = -2
e
x1 = [-7 - 5⋅(-4) - 3⋅3 – (-1)⋅(-2)]/2 = 1

9
Minimizando erros numéricos: Estratégia de Pivoteamento
Um problema que pode ocorrer durante a resolução de um sistema linear pelo método da eliminação
de Gauss se refere a erros de arredondamento ou truncamento durante as operações envolvidas. A
fim de ilustrar esse problema e definirmos um procedimento que pode minimiza-lo, vamos
considerar o seguinte exemplo. Seja o sistema linear:

x1 + 4 ⋅ x 2 + 52 ⋅ x3 = 57
27 ⋅ x1 + 110 ⋅ x 2 − 3 ⋅ x3 = 134
22 ⋅ x1 + 2 ⋅ x 2 + 14 ⋅ x3 = 38

Antes mesmo de resolve-lo pelo método de eliminação de Gauss, podemos notar que ele
apresenta uma solução exata dada por x1=1, x2=1 e x3 =1 (substitua esses valores nas equações do
sistema acima para verificar que realmente eles correspondem à solução exata). Porém, vamos
resolve-lo utilizando esse método e, para ilustrar o problema provocado por arredondamentos,
vamos utilizar apenas 3 algarismos significativos durante todos os cálculos e comparar o resultado
obtido com essa solução exata. Ou seja, vamos supor que estamos usando uma calculadora que
representa números com apenas 3 algarismos.
Iniciamos a resolução do sistema escrevendo-o na forma de uma matriz aumentada, ou seja:

1 4 52 57 
27 110 − 3 134
 
 22 2 14 38 

A primeira linha será a linha pivô e devemos multiplica-la pelo fator 27/1 e subtrai-la da
segunda linha. Em seguida, multiplicamos essa linha por 22/1 e a subtraímos da terceira linha.
Portanto, teremos: (Fazendo truncamento)

 1 4 52 57 
27 − 27 ⋅ 1 = 0 110 − 27 ⋅ 4 = 2 − 3 − 27 ⋅ 52 = −1.40 × 10 3 134 − 27 ⋅ 57 = −1.41 × 10 3 
 
 22 − 22 ⋅ 1 = 0 2 − 22 ⋅ 4 = −86 14 − 22 ⋅ 52 = −1.13 × 10 3 38 − 22 ⋅ 57 = −1.21 × 10 3 

Em seguida, a segunda linha será a linha pivô e devemos multiplica-la pelo fator –86/2=-43
e subtrai-la da terceira linha, ou seja, teremos:

10
 
1 4 52 57 
 
0 2 − 1.40 × 10 3
− 1.41× 10 3

 ( ) ( )
− 1.13× 103 − (− 43) ⋅ − 1.40 × 103 = − 1.21× 103 − (− 43) ⋅ − 1.41× 103 =
0 − 86 − (− 43) ⋅ 2 = 0 = −6.13× 104 = −6.18 × 104 
 
Com isso terminamos a triangulação do sistema, que será dado por:
x1 + 4 ⋅ x 2 + 52 ⋅ x3 = 57
2 ⋅ x 2 − 1.40 × 10 3 ⋅ x3 = −1.41 × 10 3
− 6.13 × 10 4 ⋅ x3 = −6.18 × 10 4

A partir dai, podemos calcular a solução desse sistema. A solução do sistema será dada por:

x3 = -61800/(-61300)=1.01
x2 =[ -1410 – (-1400)⋅1.01]/2 = 0.0
x1 = [57 - 52⋅1.01 -4⋅0.0]/1 = 4.5

Note que essa solução é muito diferente da solução exata que deveríamos ter encontrado. E
essa discrepância foi resultado dos arredondamentos e truncamentos que fizemos durante o cálculo
dos valores das variáveis xi.
A fim de minimizar os efeitos de arredondamento na solução de um sistema linear, utiliza-se
a chamada estratégia de pivoteamento. Nessa estratégia, no início de cada etapa em que uma coluna
da matriz aumentada deve ser zerada, escolhemos como linha pivô aquela que apresenta o elemento
pivô de maior módulo.
Portanto, no exemplo acima, iniciaríamos a solução do sistema trocando a segunda linha
pela primeira, pois a segunda linha apresenta um elemento pivô (primeiro elemento da linha) maior
que a primeira linha (27 > 1). Ou seja, teremos:

27 110 − 3 134


1 4 52 57 

 22 2 14 38 

Em seguida, multiplicamos a primeira linha (linha pivô) por 1/27 e a subtraímos da segunda
linha. Também devemos multiplica-la por 22/27 e subtrai-la da terceira linha. Com isso, teremos:

11
 27 110 −3 134 
 
 1 − 1 27 ⋅ 27 = 0 4 − 1 ⋅ 110 = −0.07 52 − 1 ⋅ (− 3) = 52.1 57 − 1 ⋅ 134 = 52 
 27 27 27 
22 22
 − 27 ⋅ = 27 0 2 − 22
27
⋅ 110 =−87 . 6 14 − 22
27
(
⋅ − =
3 ) 16 . 5 38 − 22
27
⋅ 134 = −71

Mais uma vez, antes de iniciar a próxima etapa, devemos procurar pela linha que apresenta o
elemento pivô (o primeiro elemento não nulo) de maior módulo. Neste caso, será a terceira linha.
Portanto, vamos trocá-la pela segunda linha, o que resulta na matriz aumentada:

27 110 − 3 134 


 0 − 87.6 16.5 − 71
 
 0 − 0.07 52.1 52 

Vamos agora multiplicar a linha pivô por (–0.07)/(-87.6) e subtrai-la da terceira linha, ou
seja:

27 110 −3 134 


 
0 − 87.6 16.5 − 71 
 (− 0.07) (− 0.07) (− 0.07) 
 0 − 0.07 − (− 87.6) ⋅ (− 87.6) = 0 52.1− (− 87.6) ⋅ (16.5) = 52.1 52− (− 87.6) ⋅ (− 71) = 52.1
A solução do sistema triangular que resultou dessas operações é dada por:

x1 = 52.1/52.1 = 1.0
x2 = [-71-16.5⋅1.0]/(-87.6) = 0.999
x3 = [134 – (-3)⋅1.0 – 110⋅0.999]/27 = 1.0

Portanto, obtivemos uma solução muito próxima da solução exata do sistema utilizando a
estratégia do pivoteamento.

Avaliando os erros na solução de um sistema linear


Como vimos na seção anterior, devido aos erros numéricos de arredondamento ou truncamento e
devido ao grande número de operações realizadas na resolução de sistemas lineares, o resultado que
obtemos está sujeito a erros, ou seja, pode não representar a solução exata do problema. Portanto,
precisamos sempre avaliar a solução obtida, ou seja, precisamos nos perguntar qual é o erro do
resultado que obtivemos.

12
Para facilitar a visualização de como podemos avaliar esses erros, vamos escrever um
sistema de equações lineares da forma matricial, ou seja, o sistema linear:

a11 ⋅ x1 + a12 ⋅ x 2 + L + a1n ⋅ x n = b1


a 21 ⋅ x1 + a 22 ⋅ x 2 + L + a 2 n ⋅ x n = b2
M
a n1 ⋅ x1 + a n 2 ⋅ x 2 + L + a nn ⋅ x n = bn
pode ser escrito como,

A⋅x = b

onde,

 a11 a12 L a1n 


a a 22 L a 2 n 
A =  21 ,
 M M O M 
 
a n1 an2 L a nn 

 x1 
x 
x =  2 e
M
 
 xn 

 b1 
b 
b =  2
M
 
bn 

Ao resolver esse sistema devido aos erros numéricos cometidos, obtemos como solução, ao
invés dos valores x, valores que chamaremos de x’. Portanto, o erro será dado por:

Erro = x – x’.

13
Uma operação simples que podemos realizar para verificar a diferença entre o valor real (x)
e o valor que obtivemos (x’) é calcularmos:

A⋅x’ = b’

Podemos em seguida calcular a diferença entre b e b’, que chamaremos de resíduos:

Resíduo = b – b’

Quanto menor for o resíduo, menor será o erro que cometemos. Note que o resíduo não é o
erro, mas apenas uma estimativa do mesmo, pois:

Resíduo = b – b’ = A⋅x - A⋅x’ = A⋅(x – x’) = A⋅erro

14
Quarta Lista de Exercícios

1 ) O que é um sistema de equações lineares quadrado?

2 ) A fim de se poder interpretar a resolução de um sistema de equações lineares é preciso saber


quais são os possíveis tipos de soluções que podemos encontrar. Cite os três tipos de soluções
possíveis de um sistema linear e comente o que você faria em cada caso.

3 ) No método de eliminação de Gauss, um sistema linear quadrado é transformado em um sistema


triangular. Qual a vantagem de se fazer isso?

4 ) Dado o sistema linear,


3.2 ⋅ x1 + x 2 + 2 ⋅ x3 = 8.2
− x1 + 1.5 ⋅ x3 − 2.4 ⋅ x 4 = 2.84
4.1 ⋅ x1 + 2.5 ⋅ x 2 + x 4 = 1
3.6 ⋅ x1 + 2.8 ⋅ x 4 = 4.72
Encontre sua solução através do método de eliminação de Gauss.

15
Métodos Iterativos: Gauss-Seidel

Introdução
É bastante comum encontrarmos sistemas lineares que envolvem uma grande porcentagem de
coeficientes nulos. Esses sistemas são chamados de sistemas esparsos. Para esses tipos de sistemas,
o método de Eliminação de Gauss não é o mais apropriado, pois ele não preserva essa esparsidade,
que pode nos ser útil por facilitar a resolução do sistema. Um método mais apropriado para esse tipo
de sistema é o método iterativo de Gauss-Seidel.
Este método consiste em encontrar, dada uma estimativa inicial xi0, uma seqüência de
estimativas xik que após um número suficientemente grande de iterações convirja para a solução do
sistema de equações.

x10 x 11 x 12 x1

x 20 x 12 x 22 x2

x30 → x 31 → x 32 → x3

x 40 x 14 x 42 x4
M M M M
x n0 x 1n x n2 xn

Uma outra vantagem deste método é o fato de não estar tão suscetível ao acúmulo de erros
de arredondamento como o método de Eliminação de Gauss. Porém, como todo processo iterativo,
este método sempre apresentará um resultado aproximado, que será tão próximo do resultado real
conforme o número de iterações realizadas. Além disso, também precisamos nos preocupar com a
convergência desse método.

16
Descrição do Método
Seja o seguinte sistema de equações:
a11 .x1 + a12 .x 2 + a13 .x 3 + ... + a1n − 1 .x n − 1 + a1n .x n = b1

a 21 .x1 + a 22 .x 2 + a 23 .x 3 + ... + a 2 n − 1 .x n − 1 + a 2 n .x n = b2

a 31 .x1 + a 32 .x 2 + a 33 .x 3 + ... + a 3 n − 1 .x n − 1 + a 3 n .x n = b3

M
a n1 .x1 + a n 2 .x 2 + a n 3 .x 3 + ... + a n1 n − 1 .x n − 1 + a nn .x n = bn

Isolando xi a partir da linha i, temos :

1
x1 = (b 1 − a 12 . x 2 − a 13 . x 3 − a 1 , n − 1 . x n − 1 − a 1 n . x n )
a 11

1
x2 = (b 2 − a 21 . x 1 − a 23 . x 3 − a 2 , n − 1 . x n − 1 − a 2 n . x n )
a 22

1
x3 = (b 3 − a 31 . x 2 − a 32 . x 2 − a 3 , n − 1 . x n − 1 − a 3 n . x n )
a 33

xn =
1
a nn
(
b n − a n 1 . x 1 − a n 2 . x 2 − ... − a n , n − 1 . x n − 1 )

17
O processo iterativo é obtido a partir dessas equações, fazendo:
1 
x k +1 =  b1 − a12 .x k − a13 .x k − ... − a 1,n − 1 .x k − a 1n .x nk 
1 a 11  2 3 n −1 

1
x k +1 =  b − a .x k + 1 − a .x k − ... − a
2 21 23 2 , n − 1 .x k − a 2 n .x nk 
2 a 22  1 3 n − 1 

1 
x k +1 =  b3 − a 31 .x k + 1 − a 32 .x k + 1 − ... − a 3 ,n − 1 .x k − a 3 n .x nk 
3 a 33  1 2 n −1 

1 
x nk + 1 = k + 1 − a .x k + 1 − ... − a
 b n − a n1 .x1 n 2 n , n − 1 .x k + 1 
a nn  2 n −1 

Como todo processo iterativo, precisamos definir um critério de parada. Podemos usar a
diferença relativa entre duas iterações consecutivas para estabelecer o critério de parada. Define-se
por diferença relativa a expressão:

 xik + 1 − xik
 se xik + 1 ≠ 0
 Máx. xik + 1
 1≤i ≤ n
 0 se xik + 1 = xik = 0
k +1
dR = 

  xk +1 = 0
  i
1 se 

  xik ≠ 0

Quando o valor de dRk+1 for pequeno o bastante para a precisão desejada, podemos para o
processo iterativo.

Exemplo:
Resolva:

18
5x + y + z = 5
3x + 4 y + z = 6
3x + 3 y + 6 z = 0

com k ≤ 5 .10 − 2 .
dR

1
x= (5 − y − z )
5
1
y = (6 − 3 x − z )
4
1 1
z = (− 3 x + 3 y ) ⇒ z = − ( x + y )
6 2

xk d xk yk d ky zk d zk k
dR
-1 - 0 - 1 - -
0,8 2,25 0,65 1 -0,725 2,379 2,379
1,015 0,212 0,92 0,293 -0,967 0,250 0,293
1,009 0,006 0,985 0,066 -0,997 0,030 0,066
1,002 0,007 0,998 0,0013 -1 0,003 0,013

x = 1,002 y = 0,998 z = -1

Verificação:

5.(1,002) + (0,998) + (-1) = 5,008 ≅ 5 ok


3.(1,002) + 4.(0,998) + (-1) = 5,998 ≅ 6 ok
3.(1,002) + 3.(0,998) + 6.(-1) = 0 ok

19
Critérios de Convergência do Método de Gauss-Seidel
Como todo processo iterativo, a sua convergência para a solução exata não é garantida para
qualquer sistema. Existem certas condições que devem ser satisfeitas por um sistema de equações
lineares para se garantir a convergência do método. Uma condição suficiente, porém não necessária,
para a convergência do método de Gauss-Seidel para um dado sistema linear, corresponde ao
Critério de Sassenfeld.

Critério de Sassenfeld
Vamos definir as quantidades βi dadas por:

1 n
β1 = ⋅ ∑ a1 j
a11 j = 2

1  i −1 n 
βi = ⋅ ∑ aij ⋅ β j + ∑a ij  , para i = 2, 3, ..., n.
aii  j =1 j =i +1 
onde n é a ordem do sistema linear que queremos resolver e aij são os coeficientes das equações que
compõem esse sistema.
O Critério de Sassenfeld garante que o método de Gauss-Seidel convergirá para um dado
sistema linear se a quantidade M, definida por:

M = max β i
1≤i ≤ n

for menor que 1 (M<1).

Exemplo:
Mostre que a solução do sistema linear dado pelas equações:
2 ⋅ x1 + x 2 − 0.2 ⋅ x3 + 0.2 ⋅ x 4 = 0.4
0.6 ⋅ x1 + 3 ⋅ x 2 − 0.6 ⋅ x3 − 0.3 ⋅ x 4 = −7.8
− 0.1 ⋅ x1 − 0.2 ⋅ x 2 + x3 + 0.2 ⋅ x 4 = 1.0
0.4 ⋅ x1 + 1.2 ⋅ x 2 + 0.8 ⋅ x3 + 4 ⋅ x 4 = −10.0
convergirá pelo método de Gauss-Seidel.

20
Para realizar essa verificação, vamos utilizar o critério de Sassenfeld. Inicialmente, é preciso
se calcular os valores das quantidades βi. No caso do sistema acima, elas serão dadas por:

1
β1 = ⋅ (1 + 0.2 + 0.2 ) = 0.7
2
1
β 2 = ⋅ (0.6 ⋅ 0.7 + 0.6 + 0.3) = 0.44
3
1
β 3 = ⋅ (0.1 ⋅ 0.7 + 0.2 ⋅ 0.44 + 0.2) = 0.358
1
1
β 4 = ⋅ (0.4 ⋅ 0.7 + 1.2 ⋅ 0.44 + 0.8 ⋅ 0.358) = 0.2736
4

Em seguida, é preciso verificar qual dessas quantidades tem o maior valor. Neste caso, será
a quantidade β1 que é igual a 0.7 (maior valor entre todos os βi). Portanto, como:

M = max β i = 0.7
1≤i ≤ 4

é menor que 1, sabemos que a solução desse sistema irá convergir usando o método de Gauss-
Seidel.

Critério das Linhas


Existe um outro critério que pode garantir a convergência do método de Gauss-Seidel para um dado
sistema, chamado de critério das linhas. Segundo esse critério, um determinado sistema irá
convergir pelo método de Gauss-Seidel, se:

∑a
j =1
ij < aii , para i=1, 2, 3, ..., n.
j ≠i

Exemplo:
O sistema do exemplo acima satisfaz o critério das linhas e essa verificação pode ser feita de
maneira quase imediata, observando-se que:

21
a11 = 2 > a12 + a13 + a14 = 1 + 0.2 + 0.2 = 1.4
a 22 = 3 > a 21 + a 23 + a 24 = 0.6 + 0.6 + 0.3 = 1.5
a 33 = 1 > a31 + a32 + a34 = 0.1 + 0.2 + 0.2 = 0.5
a 44 = 4 > a 41 + a 42 + a 43 = 0.4 + 1.2 + 0.8 = 2.4

É importante notar alguns detalhes sobre esses critérios. Ambos os critérios mencionados
acima são condições suficientes, porém não são necessárias para garantir a convergência da solução
de um sistema linear pelo método de Gauss-Seidel. Isso significa que um sistema pode não
satisfazer esses critérios e ainda convergir.
Por exemplo, um sistema pode não satisfazer o critério das linhas e satisfazer o critério de
Sassenfeld, o que garantirá sua convergência.

Exemplo:
Seja o sistema:
10 ⋅ x1 + x 2 = 23
6 ⋅ x1 + 2 ⋅ x 2 = 18
Note que esse sistema não satisfaz o critério das linhas, pois:
a 22 = 2 < a 21 = 6

porém, ele satisfaz o critério de Sassenfeld:


1
β1 = ⋅ 1 = 0.1
10
⇒ M = max β i = 0.3 < 1
1
β 2 = ⋅ (6 ⋅ 0.1) = 0.3
1≤i ≤ 4

2
que garantirá sua convergência.
Outra observação importante se refere à ordem com que as equações aparecem no sistema.
Apesar da ordem das equações não alterar a solução do sistema, ela pode alterar a convergência do
mesmo pelo método da Gauss-Seidel.

Exemplo:
Seja o sistema:

22
− 4 ⋅ x1 + 10 ⋅ x 2 = 19
5 ⋅ x1 + 3 ⋅ x 2 = 15

Na forma como ele está representado acima, ele não satisfaz o critério das linhas (verifique
isso), portanto sua convergência não é garantida. Porém, se trocarmos a ordem das duas equações, o
sistema satisfaz esse critério, e sua convergência pelo método de Gauss-Seidel é garantida
(verifique isso também).

23
Quinta Lista de Exercícios

1 ) No método de Gauss-Seidel, como em todo método iterativo, a convergência na


resolução do problema para a solução procurada não é sempre garantida. Que
condição um sistema linear deve satisfazer para que esse método convirja para a sua
solução?

2 ) Dado o sistema linear,


3 ⋅ x1 + x3 = 3
x1 − x 2 = 1
3 ⋅ x1 + x 2 + 2 ⋅ x3 = 9
Verifique se o método de Gauss-Seidel convergiria para o sistema acima:
(a) Segundo o critério das linhas;
(b) Segundo o critério de Sassenfeld;
(c) O que você pode concluir da solução dos dois itens anteriores?

3 ) Dado o sistema linear,


x1 + 2 ⋅ x 2 − x3 = 1
2 ⋅ x1 − x 2 = 1
− x 2 + 2 ⋅ x3 − x 4 = 1
− x3 + 2 ⋅ x 4 = 1
(a) O sistema irá convergir pelo método iterativo de Gauss-Seidel, isto é, ele satisfaz o critério
de Sassenfeld?
(b) Se as duas primeiras linhas forem trocadas, ele satisfaz o critério de Sassenfeld? O que se
pode afirmar sobre a convergência do sistema?
(c) Encontre sua solução através do método de Gauss-Seidel usando como estimativa inicial os
valores (x1 =0, x2 =0, x3 =0, x4 =0) e utilize como critério de parada Mk < 0,5.

24
Sexta Lista de Exercícios

1 ) O que é e para que serve a estratégia de pivoteamento?

2 ) Cite três características do Método de Gauss-Seidel que é comum a todo processo iterativo.

3 ) Dado o sistema linear,


2 ⋅ x1 − x 2 − x3 = −3
7 ⋅ x1 − 2 ⋅ x 2 + 4 ⋅ x3 = 9
3 ⋅ x1 + 4 ⋅ x 2 − 2 ⋅ x3 = 11
encontre sua solução através do método de eliminação de Gauss utilizando a estratégia do
pivoteamento.

4 ) Dado o sistema linear,


4 ⋅ x1 + x 2 + x3 = 5.94
− x1 + 5 ⋅ x 2 − x3 = −15.57
x1 + 2 ⋅ x 2 + 4 ⋅ x3 = 0.79

(d) Verifique que o sistema irá convergir pelo método iterativo de Gauss-Seidel, isto é, que ele
satisfaz o critério de Sassenfeld;
(e) Encontre sua solução através do método iterativo de Gauss-Seidel usando como estimativa
inicial os valores (x1 =0, x2 =0, x3 =0) e utilize como critério de parada a condição Mk < 0,5.

25
Referências Bibliográficas
RUGGIERO/LOPES - Cálculo Numérico. Makron Books
CHAPRA/CARRALE - Numerical Methods for Engineers. Ed. McGrawHill
CONTE - Elementos de Análise Numérica. Ed. Globo
BARROSO - Cálculo Numérico - Ed. Harper & How do Brasil
MARCELO G. MUNHOZ- Notas de Aula - FACENS

26
Apostila de Introdução
Aos Métodos Numéricos

PARTE III
2o Semestre - 2002

Profa. Salete Souza de Oliveira Buffoni


Índice
INTERPOLAÇÃO POLINOMIAL ....................................................................................3

INTRODUÇÃO ....................................................................................................................3
FORMA DE LAGRANGE .................................................................................................... 4
Interpolação para 2 pontos (n+1=2) - ajuste de retas (n=1).......................................... 5
Interpolação para 3 pontos (n+1=3) - ajuste de parábolas (n=2) ................................. 6

SÉTIMA LISTA DE EXERCÍCIOS ...................................................................................9

FORMA DE NEWTON ........................................................................................................10


Tabela de Diferenças Divididas..................................................................................... 10
Forma de Newton para o Polinômio Interpolador ........................................................ 11

OITAVA LISTA DE EXERCÍCIOS.................................................................................15

2
Interpolação Polinomial

Introdução
Vamos supor que temos um conjunto de dados {xi,f(xi)} tal como na tabela abaixo:
xi 0 1,5 3,0 4,5 6,0
f(xi) 0,001 0,016 0,028 0,046 0,057

Nosso problema é obter o valor de f(x) para um valor de x que não tenha sido medido, como
por exemplo, x=2.0.
Por exemplo, quando não temos muitos dados (que levaria a um mau ajuste de uma função)
e só queremos saber o valor de f(x) para um x intermediário entre duas medidas, isto é, xi<x<xi+1,
podemos usar as técnicas da interpolação.
Portanto, interpolar um ponto x a um conjunto de n+1 dados {xi,f(xi)}, significa
simplesmente, calcular o valor de f(x), sem conhecer a forma analítica de f(x) ou ajustar uma função
analítica aos dados.
A interpolação polinomial consiste em se obter um polinômio p(x) que passe por todos os
pontos do conjunto de (n+1) dados {xi,f(xi)}, isto é:
p(x0)=f(x0) (1)
p(x1)=f(x1)
...
p(xn)=f(xn)
(note que a contagem começa em zero, portanto temos n+1 pontos na expressão acima).
O polinômio p(x) é chamado de polinômio interpolador. É possível se demonstrar que
existe um único polinômio p(x) de grau menor ou igual a n que passa por todos os (n+1) pontos do
conjunto {xi,f(xi)}
Portanto, podemos escrever:

pn ( x 0 ) = a 0 + a1 ⋅ x 0 + a 2 ⋅ x 02 +L+ a n ⋅ x 0n = f ( x 0 )

pn ( x1 ) = a 0 + a1 ⋅ x1 + a 2 ⋅ x12 +L+ a n ⋅ x1n = f ( x1 )

...

pn ( x n ) = a 0 + a1 ⋅ x n + a 2 ⋅ x n2 +L+ a n ⋅ x nn = f ( x n )

3
Esse conjunto de equações corresponde a um sistema linear de n+1 equações e n+1
variáveis. Portanto, ele poderia ser resolvido diretamente. Essa é uma das formas de se obter o
polinômio interpolador.
Entretanto, existem outras formas, como a forma de Lagrange e a forma de Newton, que
veremos a seguir.

Forma de Lagrange
Introdução :

Sendo conhecidos os valores de uma função apenas em determinados pontos, a


INTERPOLAÇÃO é um procedimento que possibilita a estimativa de valores desconhecidos da
função, bem como auxilia na integraçãode uma função desconhecida ou de difícil integração.
Seja um conjunto de n+1 dados {xi,f(xi)}. Queremos encontrar um polinômio interpolador
p(x) que satisfaça a condição (1), isto é, passe por todos os pontos.
Uma possível forma para p(x) que satisfaça (1) é:
p( x ) = L0 ( x ) ⋅ f ( x 0 ) + L1 ( x ) ⋅ f ( x1 ) +L+ Ln ( x ) ⋅ f ( x n ) (2)
onde os Lk(x) são polinômios tais que:

Lk ( xi ) = δ ki (3)

sendo que:
0 se, k ≠ i
δki =  (4)
1 se, k = i
Portanto,
p( x 0 ) = L0 ( x 0 ) ⋅ f ( x 0 ) + L1 ( x 0 ) ⋅ f ( x1 ) +L+ Ln ( x 0 ) ⋅ f ( x n )
p( x 0 ) = 1 ⋅ f ( x 0 ) + 0 ⋅ f ( x1 ) +L+0 ⋅ f ( x n )
p( x 0 ) = f ( x 0 )
e,
p( x1 ) = L0 ( x1 ) ⋅ f ( x 0 ) + L1 ( x1 ) ⋅ f ( x1 ) +L+ Ln ( x1 ) ⋅ f ( x n )
p( x1 ) = 0 ⋅ f ( x 0 ) + 1 ⋅ f ( x1 ) +L+0 ⋅ f ( x n )
p ( x 1 ) = f ( x1 )
ou seja:
p( x i ) = f ( x i )
o que mostra que o polinômio interpolador p(x) passa exatamente sobre os pontos {xi,f(xi)} da tabela
dada.

4
Temos agora que encontrar os polinômios Lk(x), que satisfaçam (3). Uma função que
satisfaz a condição (3) é:
(x − x0 ) ⋅ (x − x1 ) ⋅ L ⋅ (x − x k − 1 ) ⋅ (x − x k + 1 ) ⋅ L ⋅ (x − x n )
Lk ( x ) =
(x k − x0 ) ⋅ ( x k − x1 ) ⋅ L ⋅ ( x k − x k − 1 ) ⋅ ( x k − x k + 1 ) ⋅ L ⋅ ( x k − x n )
que é fácil verificar, pois:

Lk ( x k ) = 1 e
Lk ( xi ) = 0 se, i ≠ k

De maneira compacta, podemos escrever o polinômio interpolador na Forma de Lagrange,


como:
n
pn ( x ) = ∑ Li ( x ) ⋅ f ( xi ) (5)
i =0

e,

∏ (x − x )
n

j
j =0
j ≠i
Li ( x ) =
∏(x )
n

i − xj
j =0
j ≠i

Interpolação para 2 pontos (n+1=2) - ajuste de retas (n=1)

xi x0 x1

f(xi) f(x0) f(x1)

De (5) :

1
p(x) = ∑Li (x).f (xi ) = L0 (x).f (x0 ) + L1 (x).f (x1 )
i=0
(6)
As funções Li (x) devem satisfazer (3), ou seja:

L0 (x0) =1 L1 (x0) =0
L0 (x1) =0 L1 (x1) =1 (7)

5
É fácil verificar que, as seguintes funções, satisfazem (7) :

x − x1 x − x0
L0 ( x ) = L1 ( x ) =
x0 − x1 x1 − x 0
(8)
De (8) em (6) :
 x − x1   x − x0 
p( x ) =   ⋅ f ( x0 ) +   ⋅ f ( x1 )
 x 0 − x1   x1 − x0 

Interpolação para 3 pontos (n+1=3) - ajuste de parábolas (n=2)

xi x0 x1 x2

f(xi) f(x0) f(x1) f(x2)

De (5):
2
p( x ) = ∑ Li ⋅ f ( xi ) = L0 ⋅ f (x 0 ) + L1 ⋅ f ( x1 ) + L2 ⋅ f ( x 2 ) (9)
i =0

onde:

L0 (x0) =1 L1 (x0) =0 L2 (x0) =0


L0 (x1) =0 L1 (x1) =1 L2 (x1) =0
L0 (x2) =0 L1 (x2) =0 L2 (x2) =1

Por construção:
(x − x1 ) ⋅ (x − x2 )
L0 =
(x0 − x1 ) ⋅ (x0 − x2 )

(x − x0 ) ⋅ (x − x 2 )
L1 =
(x1 − x0 ) ⋅ (x1 − x2 )

(x − x0 ) ⋅ (x − x1 )
L2 =
(x 2 − x0 ) ⋅ (x2 − x1 )

6
Portanto:

p ( x) =
(x − x1 ) ⋅ (x − x2 ) ⋅ f (x ) + (x − x0 ) ⋅ (x − x 2 ) ⋅ f (x ) + (x − x0 ) ⋅ (x − x1 ) ⋅ f (x )
(x0 − x1 ) ⋅ (x0 − x 2 ) 0
(x1 − x0 ) ⋅ (x1 − x2 ) 1
(x2 − x0 ) ⋅ (x2 − x1 ) 2

Exemplo:
Ajuste uma reta aos seguintes pontos:

x 2 4

f(x) 3,1 5,6

 x − x1   x − x0 
p( x ) =   ⋅ f ( x0 ) +   ⋅ f ( x1 )
 x 0 − x1   x1 − x0 
 x −4  x −2
p(x ) =   ⋅ 3.1 +   ⋅ 5.6 = −1.55 ⋅ ( x − 4 ) + 2.8 ⋅ ( x − 2)
2−4 4−2
p( x ) = 1.25 ⋅ x + 0.6

Ex.: Interpolação linear


Tabela
————————————
x | y
—————+——————
10 | 250 Qual o valor de y para x = 15?
20 | 432
30 | 500
————————————

+-

7
Interpolação linear entre 2 pontos conhecidos |(x , y )
| 1 1
| (x , y )
| 2 2
x - x +-
1
y = y + ———————— ( y - y )
1 x - x 2 1
2 1

15 - 10
y = 250 + ——————— (432 - 250) = 341
20 - 10

8
Sétima Lista de Exercícios

1 ) Qual a relação entre o número de pontos usados na interpolação e o grau do polinômio


interpolador que pode ser calculado?

2 ) Se você tiver um conjunto de 5 dados {(x0,f(x0), (x1,f(x1), (x2,f(x2), (x3,f(x3), (x4,f(x4),}, e deseja
fazer uma interpolação linear, isto é, encontrar uma reta que lhe permita obter o valor de f(x′), onde
x1<x′<x2:
a) Qual seria o grau do polinômio que você calcularia, isto é, quantos pontos você utilizaria?
b) E quais pontos da tabela você usaria?

3 ) A seguinte tabela informa o número de carros que passam por um determinado pedágio em um
determinado dia:
Horário 10:00 10:30 11:00 11:30 12:00 12:30
Número (em mil) 2.69 1.64 1.09 1.04 1.49 2.44

a) Faça um gráfico de horário vs. número de carros para verificar qual a tendência da curva.
b) Estime o número de carros que passariam pelo pedágio às 11:10, usando a forma de
Lagrange para encontrar um polinômio interpolador p(x) que estima o número de carros em
função do tempo. Use uma reta como função interpoladora.
c) Agora, faça a mesma estimativa, mas utilizando uma parábola como polinômio interpolador.

9
Forma de Newton

Tabela de Diferenças Divididas.


O próximo a método de interpolação a ser estudado é a “Forma de Newton”. No entanto, para que
possamos discutir este método temos que antes nos familiarizar com a construção da chamada
“Tabela de Diferenças Divididas”
Seja a tabela de valores:

x x0 x1 x2 x3
f(x) f(x0) f(x1) f(x2) f(x3)

Podemos construir a seguinte tabela:

x f(xi) f[xi, xi+1] f[xi, xi+1, xi+2] f[xi, xi+1, xi+2, xi+3]

x0 f(x0)
f[x0,x1]
f[x0,x1,x2]
x1 f(x1)
f[x1,x2] f[x0,x1,x2,x3]

x2 f(x2) f[x1,x2,x3]
f[x2,x3]

x3 f(x3)

onde:

f ( x1 ) − f ( x 0 )
[ ]
f x 0 , x1 =
x1 − x 0

f ( x 2 ) − f ( x1 )
[ ]
f x1 , x 2 =
x 2 − x1

f ( x3 ) − f ( x2 )
[ ]
f x2 , x3 =
x3 − x2

[ ] [
f x1 , x 2 − f x 0 , x1 ]
[ ]
f x 0 , x1 , x 2 =
x2 − x0

10
[ ] [
f x 2 , x 3 − f x1 , x 2 ]
[ ]
f x1 , x 2 , x 3 =
x 3 − x1

[ ] [
f x1 , x 2 , x 3 − f x 0 , x1 , x 2 ]
[ ]
f x 0 , x1 , x 2 , x 3 =
x3 − x0

Exemplo:

xi 0,1 0,4 0,7 1 1,2


f(xi) 0,813 0,536 0,682 1,25 1,864

A tabela de diferenças divididas é:

xi f(xi) f[xi , xi+1] f[xi , xi+1, xi+2] f[xi , xi+1 , xi+2 ,xi+3]
0,536 − 0,813
0,1 0,813 = −0,923 0,487− (− 0,923)
0, 4 − 0,1 = 2,350
0,7 − 0,1 2,343− 2,350
= −0,008
0,4 0,536 0, 682 − 0,536 1− 0,1
= 0, 487
0,7 − 0, 4
1,893− 0,487
0,7 0,682 = 2,343
1, 25 − 0 , 682
1 − 0,4
= 1,893
1 − 0,7
1 1,250 2,354− 2,343
3,07 − 1,893 = 0,014
1,864 − 1, 25
= 2,354 1,2 − 0,4
1,2 1,864 = 3, 07 1,2 − 0,7
1, 2 − 1

0,014− (−0,008)
f[xi , xi+1 , xi+2 , xi+3 , xi+4 ] = = 0,02
1,2 − 0,1

Forma de Newton para o Polinômio Interpolador


Para calcular a Forma de Newton do polinômio interpolador, vamos começar com o caso mais
simples: encontrar um polinômio de grau 0, p0(x), que interpola f(x) no ponto x0. Vamos partir da
diferença dividida f[x0,x], que é dada por:

f ( x) − f ( x0 )
[ ]
f x0 , x =
x − x0
(1)

Isolando-se f(x) da expressão acima, tem-se:

11
[ ]
f ( x) − f ( x0 ) = f x0 , x ⋅ ( x − x0 )

f ( x) = f ( x ) + f [ x , x] ⋅ ( x − x )
0 0 0 (2)

Da própria definição de polinômio interpolador, sabe-se que (ver expressão 1 da aula


anterior):
p0(x)=f(x0)
Portanto, a expressão (2) pode ser escrita como:

[ ]
f ( x ) = p0 ( x ) + f x 0 , x ⋅ ( x − x 0 ) (3)

A expressão acima não pode ser usada diretamente, pois não podemos calcular o valor
f[x0,x], já que não conhecemos o valor de f(x) em qualquer ponto x (veja expressão (1) acima). Fora
do ponto x0, sabemos que o polinômio interpolador é apenas uma aproximação de f(x), caso
contrário teríamos uma resposta exata e não precisaríamos da interpolação. Em outras palavras,
tem-se que:
p0(x)≈f(x), para x≠x0
Portanto, da expressão (3), concluímos que f[x,x0]⋅(x-x0) é simplesmente a diferença entre o
valor de f(x) (valor real da função) e o valor p0(x) que obtivemos com a interpolação. Em outras
palavras, esse termo é o erro no processo de interpolação, isto é:
E 0 ( x ) = f (x ) − p 0 ( x ) = f [x0 , x ] ⋅ ( x − x 0 ) (4)

Podemos realizar o mesmo exercício, partindo de uma diferença dividia de ordem maior, ou
seja f[x0,x1,x], que é dada por:
f (x ) − f (x0 )
− f [x1 , x0 ]
f [x0 , x ] − f [x1 , x0 ] x − x0
f [x0 , x1 , x ] = f [x1 , x 0 , x ] = = =
x − x1 x − x1
f ( x ) − f ( x0 ) − ( x − x0 ) ⋅ f [x1 , x0 ]
=
(x − x1 ) ⋅ (x − x0 )
Portanto, tem-se que:
f ( x ) − f ( x0 ) − ( x − x0 ) ⋅ f [x1 , x0 ] = ( x − x1 ) ⋅ ( x − x0 ) ⋅ f [x0 , x1 , x ]

e
f ( x ) = f ( x0 ) + ( x − x0 ) ⋅ f [x 0 , x1 ] + ( x − x1 ) ⋅ ( x − x0 ) ⋅ f [x0 , x1 , x ]

Podemos verificar que o polinômio interpolador de ordem 1, p1(x), é dado por:


p1 ( x ) = f ( x0 ) + ( x − x 0 ) ⋅ f [x0 , x1 ]

pois,
p1 ( x0 ) = f ( x0 ) + ( x0 − x 0 ) ⋅ f [x0 , x1 ] = f ( x 0 )

12
f ( x1 ) − f ( x0 )
p1 ( x1 ) = f ( x0 ) + ( x1 − x 0 ) ⋅ f [x0 , x1 ] = f ( x0 ) + ( x1 − x0 ) ⋅ = f (x1 )
x1 − x0
que são as condições fundamentais para se encontrar tal polinômio.
Portanto, o erro cometido ao se aproximar f(x) por p1(x) é:
E1 ( x ) = ( x − x0 ) ⋅ ( x − x1 ) ⋅ f [x0 , x1 , x ]

Podemos continuar indefinidamente, até encontrarmos o polinômio interpolador de uma


ordem n qualquer, aplicando sempre o mesmo raciocínio. A expressão geral para um polinômio
interpolador de ordem n será então:
p n (x ) = f ( x0 ) + (x − x0 ) ⋅ f [x 0 , x1 ] + ( x − x0 ) ⋅ ( x − x1 ) ⋅ f [x0 , x1 , x 2 ] + L +
+ ( x − x0 ) ⋅ ( x − x1 ) ⋅ K ⋅ (x − x n −1 ) ⋅ f [x0 , x1 , K, x n ]
e o erro é dado por:
E n ( x ) = ( x − x 0 ) ⋅ ( x − x1 ) ⋅ K ⋅ ( x − x n ) ⋅ f [x0 , x1 , K , x n , x ]

Exemplo:

x 0,2 0,5 0,9 1,5 2,0


f(x) 4,88 5,00 5,72 8,00 11,00

Encontre o polinômio interpolador p(x) usando a forma de Newton:

xi f(xi) f[xi , xi+1] f[xi , xi+1, xi+2]

0,2 4,88 5,00 − 4,88 1,8 − 0,4


= 0, 4 =2
0 ,5 − 0 , 2
0,5 5,00
5,72 − 5, 00
0,9 − 0,2
0
= 1,8
0 ,9 − 0 ,5 3,8 − 1,8
0,9 5,72 =2
1,5 − 0,5
8, 00 − 5, 72
= 3 ,8
1,5 8,00 1,5 − 0 ,9
6,0 − 3,8
=2 0
11, 00 − 8, 00 2,0 − 0,9
2,0 11,00 = 6,0
2 , 0 − 1,5

Usando (11):

13
p( x) = 4,88 + ( x − 0,2).04 + ( x − 0,2).( x − 0,5).2

p( x) = 4,88 + 0,4 x − 0,08 + ( x 2 − 0,5 x − 0,2 x + 0,1).2

p( x) = 4,88 + 0,4 x − 0,08 + 2 x 2 − x − 0,4 x + 0,2

p ( x) = 2 x 2 − x + 5

Note que usando a forma de Newton, p(xi) = f(xi)

14
Oitava Lista de Exercícios

1 ) Qual é a condição básica para se obter o polinômio interpolador?

2 ) Na fabricação de determinadas cerâmicas é muito importante saber as condições de temperatura


em que o produto foi assado no forno. Como não é possível medir a temperatura do forno a todo
instante, ela é medida em intervalos periódicos de tempo e esses dados são interpolados para o
instante em que cada peça foi “queimada” a fim de se conhecer a temperatura do forno nesse
instante. Em um dia de funcionamento do forno, os seguintes dados foram coletados:
Horário 7:00 10:00 13:00 16:00 19:00 21:00
Temperatura (102 oC) 2.32 2.51 2.63 2.55 2.41 2.28
a) Construa a tabela de diferenças divididas para esses pontos.
b) Estime a temperatura do forno ás 14:30 usando a forma de Newton para apenas dois
pontos.
c) Faça essa estimativa novamente, desta vez usando 3 pontos.

3 ) Dado o seguinte conjunto de dados,


xi -2.0 -1.4 0.5 1.8 3.3
f(xi) 0.4±0.1 2.9±0.2 4.2±0.2 1.4±0.3 -7.5±0.4

encontre o valor de f(x) para x=2.0, usando:


a) uma parábola do tipo g(x)=ax2+b ajustada aos dados;
b) um polinômio interpolador de ordem igual a 2, na forma de Lagrange;
c) um polinômio interpolador de ordem igual a 2, na forma de Newton;

15
Referências Bibliográficas
RUGGIERO/LOPES - Cálculo Numérico. Makron Books
CHAPRA/CARRALE - Numerical Methods for Engineers. Ed. McGrawHill
CONTE - Elementos de Análise Numérica. Ed. Globo
BARROSO - Cálculo Numérico - Ed. Harper & How do Brasil
MARCELO G. MUNHOZ- Apostila de Cálculo Numérico - FACENS

16

Você também pode gostar