Sunteți pe pagina 1din 49

lculo Nume

rico
Notas em Ca
Volume ???, 2016

Editores
Adilandri M
ercio Lobeiro (Editor Chefe)
Universidade Tecnol
ogica Federal do Parana - UTFPR
Campo Mour
ao, PR, Brasil

e-ISSN ????-????

ii

Agradecimentos
Estas notas seguem de muito perto a bibliografia referenciada e que correspondem
aos livros textos deste Curso. Sugere-se a sua aquisicao. O u
nico objetivo destas
notas e facilitar as atividades dos alunos em sala de aula, pois nao precisarao anotar
conte
udos e enunciados de exerccios. De forma que o aluno tem um maior conforto
em sala de aula e o professor podera explicar os temas de forma mais rapida. De
nenhuma maneira a leitura ou consulta da bibliografia esta descartada, isto e dever
do aluno.

Monitoria
Atendimento
Horarios

???
???

???
???

P.ALuno
Atendimento
Hor
arios

Terca
17:30-19:30

Sala
D001

Provas
Eventos
Primeira Prova
Segunda Prova
Reavaliac
ao

CN3XB (ID4A)
26/09/16
28/11/16
05/12/16

EA34D(IF4A)
26/09/16
28/11/16
05/12/16

iv

Conte
udo
Pref
acio

vii

1 Introdu
c
ao

ix

2 An
alise de Arredondamento em Ponto Flutuante
2.1 Introduc
ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Sistemas de N
umeros no Computador . . . . . . . . . . . . .
2.2.1 Representac
ao de um N
umero Inteiro . . . . . . . . .
2.2.2 Representac
ao de um n
umero real . . . . . . . . . . .
2.2.3 Mudanca de Base . . . . . . . . . . . . . . . . . . . . .
2.3 Representac
ao de N
umeros no Sistema F (, t, m, M ) . . . . .
2.3.1 Erro de Arredondamento e Aritmetica Computacional
2.3.2 Operac
oes Aritmeticas em Ponto Flutuante . . . . . .
2.4 Usando o MATLAB para a resolucao de exerccios . . . . . .
2.4.1 Mudanca de Base . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

1
1
2
2
2
4
5
5
8
11
11

3 Solu
c
oes de Equa
c
oes com Uma Vari
avel
3.1 Introduc
ao . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Metodo da Bissecc
ao . . . . . . . . . . . . . . . . . . .
3.3 Iterac
ao pelo Metodo do Ponto fixo . . . . . . . . . . .
3.4 Metodo de Newton-Raphson ou Metodo das Tangentes
3.5 Metodo da Secante ou Metodo de Newton Modificado
3.6 Metodo da Falsa Posic
ao . . . . . . . . . . . . . . . . .
3.7 Usando o MATLAB para a resolucao de exerccios . .
3.8 Metodo da Bissecc
ao . . . . . . . . . . . . . . . . . . .
3.9 Iterac
ao pelo Metodo do Ponto Fixo . . . . . . . . . .
3.10 Metodo de Newton-Raphson ou Metodo das Tangentes
3.11 Metodo da Secante ou Metodo de Newton Modificado
3.12 Metodo da Falsa Posic
ao . . . . . . . . . . . . . . . . .
3.13 Sistema N
ao Linear . . . . . . . . . . . . . . . . . . . .
3.13.1 Metodo de Newton . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

15
15
17
19
22
24
25
27
27
29
30
34
35
37
37

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

Pref
acio

vii

viii

Captulo 1

Introdu
c
ao
C
alculo Num
erico e a obtencao da solucao de um problema pela aplicacao de
metodo numerico; a soluc
ao do problema sera caracterizada, entao, por um conjunto
de n
umeros, exatos ou aproximados.
M
etodo Num
erico e um algoritmo composto por um n
umero finito de operacoes
envolvendo apenas n
umeros (operacoes aritmeticas elementares, calculo de funcoes,
consulta a uma tabela de valores, consulta a um grafico, arbitramento de um valor,
etc.).
A resoluc
ao de tais problemas envolve varias fases que podem ser assim estruturadas:
Problema Real
ou Problema
Fsico

Levantamento de
Dados

Construcao do
Modelo
Matematico

Escolha do
Metodo
Numerico
Adequado

Analise dos
Resultados
Obtidos

Implementacao
Computacional
deste Metodo

Se Necessario
Reformular o Modelo
Matematico e/ou
Escolhe Novo Metodo
Numerico

Figura 1.1: Modelo


Modelagem e a fase de obtencao do modelo matematico que descreve o comportamento do sistema fsico.
Resolu
c
ao e a fase de obtencao da solucao atraves da aplicacao de metodos
numericos (este e o objetivo de estudo do Calculo Numerico).
Posteriormente, estudaremos os erros que surgem da representacao de n
umeros
num computador e os erros resultantes das operacoes numericas efetuadas.
Campo Mourao, 08 de agosto de 2015.
Prof. Dr. Adilandri Mercio Lobeiro
ix

Captulo 2

An
alise de Arredondamento
em Ponto Flutuante
2.1

Introdu
c
ao

Neste captulo [2], chamamos atencao para o fato de que o conjunto dos n
umeros represent
aveis em qualquer m
aquina e finito, e portanto discreto, ou seja nao e possvel
representar em uma m
aquina todos os n
umeros de um dado intervalo [a, b]. A implicac
ao imediata desse fato e que o resultado de uma simples operacao aritmetica
ou o c
alculo de uma func
ao, realizadas com esses n
umeros, podem conter erros.
A menos que medidas apropriadas sejam tomadas, essas imprecisoes causadas, por
exemplo,
1. por simplificac
ao no modelo matematico (algumas vezes necessarias para se
obter um modelo matem
atico sol
uvel);
2. erro de truncamento (troca de uma serie infinita por uma finita);
3. erro de arredondamento (devido a propria estrutura da maquina);
4. erro nos dados (dados imprecisos obtidos de experimentos, ou arredondados
na entrada); etc,
podem diminuir e algumas vezes destruir, a precisao dos resultados [?].
Exemplo 2.1. Calcular a
area do disco de raio 100 m utilizando:
a) = 3, 14;
b) = 3, 1416;
c) = 3, 141592654.
possvel obter exatamente
Como justificar as diferencas entre os resultados? E
esta
area?
Os erros ocorridos dependem da representac
ao dos n
umeros na m
aquina utilizada. A representac
ao de um n
umero depende da base escolhida ou disponvel na
m
aquina em uso e do n
umero m
aximo de dgitos usados na sua representac
ao.
O n
umero , por exemplo, n
ao pode ser representado atraves de um n
umero
finito de dgitos decimais. No exemplo mostrado acima, o n
umero foi escrito como

Analisde de Arredondamento em Ponto Flutuante

3, 14; 3, 1416 e 3, 141592654 respectivamente nos casos (a), (b) e (c). Em cada um
deles foi obtido um resultado diferente, e o erro neste caso depende exclusivamente
da aproximaca
o escolhida para . Qualquer que seja o disco, a sua
area nunca ser
a
obtida exatamente, uma vez que e um n
umero irracional.
Assim, nosso objetivo aqui sera o de alertar o leitor para os problemas que
possam surgir durante a resolucao de um problema, bem como dar subsdios para
evit
a-los e para uma melhor interpretacao dos resultados obtidos.

2.2

Sistemas de N
umeros no Computador

Inicialmente, descreveremos como os n


umeros sao representados num computador.

2.2.1

Representac
ao de um N
umero Inteiro

Em princpio, a representac
ao de um n
umero inteiro no computador nao apresenta
qualquer dificuldade. Qualquer computador trabalha internamente com uma base
fixa , onde e um inteiro 2; e e escolhido como uma potencia de 2.
Assim, dado um n
umero inteiro n 6= 0, ele possui uma u
nica representacao:
n = (nk nk+1 n1 n0 ) = (nk k + n(k1) (k1) + + n1 1 + n0 0 ),
onde os ni , i = 0, 1, , k s
ao inteiros satisfazendo 0 ni < e nk 6= 0.
Por exemplo, na base = 10, o n
umero 2015 e representado por
2315

= |{z}
2 103 + |{z}
3 102 + |{z}
1 101 + |{z}
5 100 ,
n3

n2

n1

n0

e e armazenado como n3 n2 n1 n0 .

2.2.2

Representac
ao de um n
umero real

A representac
ao de um n
umero real no computador pode ser feita de duas maneiras
[4]:
a) Representa
c
ao em Ponto Fixo: Este foi o sistema usado, no passado, por
muitos computadores. Assim, dado um n
umero real, x 6= 0, ele sera representado em ponto fixo por:
n
X
x=
xi i ,
i=k

onde k e n s
ao inteiros satisfazendo k < n e, usualmente, k 0 e n > 0 e os
xi s
ao inteiros satisfazendo 0 xi < .
Por exemplo, na base = 10, o n
umero 1997, 16 e representado por:
1997, 16

=
=

1 103 + |{z}
9 102 + |{z}
9 101 + |{z}
7 100 + |{z}
1 101 + |{z}
6 102
|{z}
x3
2
P

x2

xi

x1

x0

i=3

e e armazenado como x3 x2 x1 x0 , x1 x2 onde = 10.

x1

x2

Introduc
ao

b) Representa
c
ao em Ponto Flutuante: Esta representacao, que e mais flexvel
que a representac
ao em ponto fixo, e universalmente utilizada nos dias atuais.
Dado um n
umero real, x 6= 0, este sera representado em ponto flutuante1 por:
x = d e ,
onde e a base do sistema de numeracao, d e a mantissa e e e o expoente. A
mantissa e um n
umero em ponto fixo, isto e:
d=

n
X

di i ,

i=k

onde, frequentemente, nos grandes computadores, k = 1, tal que se x 6= 0,


ent
ao d1 6= 0; 0 di < , i = 1, 2, t, com t a quantidade de dgitos
significativos ou precis
ao do sistema, 1 d < 1 e m e M .
Observac
oes:
1. d1 6= 0 caracteriza o sistema de n
umeros em ponto flutuante normalizado.
2. o n
umero zero pertence a qualquer sistema e e representado com mantissa
igual a zero e e = m.
Exemplo 2.2. Escrever os n
umeros abaixo, onde todos est
ao na base = 10, em
ponto flutuante na forma normalizada.
1. x1 = 5, 172;
2. x2 = 0, 35;
3. x3 = 0, 0123;
4. x4 = 5391, 3;
5. x5 = 0, 0003.
Agora, para representarmos um sistema de n
umeros em ponto flutuante normalizado, na base , com t dgitos significativos e com limites do expoente m e M ,
usaremos a notac
ao: F (, t, m, M ).
Assim um n
umero em F (, t, m, M ) sera representado por:
0, d1 d2 dt e ,
onde d1 6= 0 e m e M .
Exemplo 2.3. Considere o sistema F (10, 3, 2, 2). Represente nesse sistema os
n
umeros do Exemplo 2.2.
Podemos ent
ao definir formalmente dgitos significativos de um n
umero.
Defini
c
ao 2.1 (Dgitos Significativos). Seja a base do sistema de n
umeros em
ponto flutuante. Dgitos significativos de um n
umero x, s
ao todos os algarismos de
0 a 1, desde que x esteja representado na forma normalizada.
1 Ponto flutuante(do ingl
es flouting poit) ou vrgula flutuante
e um formato de representac
ao
digital de n
umeros reais, que
e usado nos computadores.

Analisde de Arredondamento em Ponto Flutuante

Para exemplificar as limitac


oes da maquina, consideremos agora o seguinte exemplo.
Exemplo 2.4. Seja f (x) uma func
ao contnua real definida no intervalo [a, b],
a < b, e sejam f (a) < 0 e f (b) > 0. Ent
ao de acordo com o teorema do valor
intermedi
ario, existe x, a < x < b tal que f (x) = 0. Dada f (x) = x3 3, determinar
x tal que f (x) = 0, para isso utilize uma m
aquina e considere F (10, 10, 10, 10).
Exerccio 2.1. Considere o sistema F (10, 4, 4, 4). Represente neste sistema os
n
umeros:
1. x1 = 4321, 24;
2. x2 = 0, 0013523;
3. x3 = 125, 64;
4. x4 = 57481, 23;
5. x5 = 0, 00034.
Exerccio 2.2. Represente no sistema F (10, 3, 1, 3) os n
umeros do Exerccio 2.1.

2.2.3

Mudanca de Base

Como j
a dissemos anteriormente, a maioria dos computadores trabalham na base
onde e um inteiro 2; e e normalmente escolhido como uma potencia de 2.
Assim um mesmo n
umero pode ser representado em mais de uma base. Alem disso,
sabemos que, atraves de uma mudan
ca de base, e sempre possvel determinar a
representac
ao em uma nova base. Veremos entao, atraves de exemplos, como se faz
mudanca de base.
Exemplo 2.5. Mudar a representac
ao dos n
umeros:
a) 1101 da base 2, para a base 10. Neste caso, o procedimento e multiplicar cada
algarismo do n
umero na base 2 por potencias crescentes de 2, da direita para
a esquerda, e somar todas as parcelas.
b) 0, 110 da base 2, para a base 10. Neste caso, o procedimento e multiplicar cada
algarismo do n
umero na base 2, ap
os a vrgula, por potencias decrescentes de
2, da esquerda para a direita, e somar todas as parcelas.
c) 13 da base 10, para a base 2. Neste caso, o procedimento e dividir o n
umero por
2. A seguir, continuar dividindo o quociente por 2, ate que o u
ltimo quociente
seja igual a 1. O n
umero na base 2 ser
a ent
ao obtido tomando-se o u
ltimo
quociente e todos os restos ds divis
oes anteriores.
d) 0, 75 da base 10, para a base 2. Neste caso, o procedimento e multiplicar a parte
decimal por 2. A seguir continuar multiplicando a parte decimal do resultado
obtido por 2. O n
umero na base 2 ser
a ent
ao obtido tomando-se a parte inteira
do resultado de cada multiplicaca
o.
e) 3, 8 da base 10, para a base 2. Neste caso, o procedimento e transformar a parte
inteira seguindo o item c e a parte decimal seguindo o item d.

Introduc
ao

No exemplo 2.5, mudamos a representacao de n


umeros na base 10 para a base
2 e vice-versa. O mesmo procedimento pode ser utilizado para mudar da base 10
para uma outra base qualquer e vice-versa. A pergunta que surge naturalmente e:
qual o procedimento para representar um n
umero que esta numa dada base 1 em
uma outra base 2 , onde 1 6= 2 6= 10? Nesse caso, devemos seguir o seguinte
procedimento: inicialmente, representamos o n
umero que esta na base 1 , na base
10 e, a seguir, o n
umero obtido na base 10, na base 2 .
Exemplo 2.6. Dado o n
umero 12, 20 que est
a na base 4, represent
a-lo na base 3.
Exerccio 2.3. Considere os seguintes n
umeros: x1 = 34, x2 = 0, 125 e x3 =
33, 023 que est
ao na base 10. Escreva-os na base 2.
Exerccio 2.4. Considere os seguintes n
umeros: x1 = 110111, x2 = 0, 01011 e
x3 = 11, 0101 que est
ao na base 2. Escreva-os na base 10.
Exerccio 2.5. Considere os seguintes n
umeros: x1 = 33, x2 = 0, 132 e x3 =
32, 013 que est
ao na base 4. Escreva-os na base 5.

2.3

Representa
c
ao de N
umeros no Sistema F (, t, m, M )

Sabemos que os n
umeros reais podem ser representados por uma reta contnua.
Entretanto, em ponto flutuante podemos representar apenas pontos discretos na
reta real. Para ilustrar este fato consideremos o seguinte exemplo.
Exemplo 2.7. Quantos e quais n
umeros podem ser representados no sistema F (2, 3, 1, 2)?
Exemplo 2.8. Considerando o mesmo sistema do Exemplo 2.7, represente os
n
umeros: x1 = 0, 38, x2 = 5, 3 e x3 = 0, 15 dados na base 10 2 .
Exerccio 2.6. Considere o sistema F (3, 3, 2, 1).
a) Quantos e quais n
umeros podemos representar neste sistema?
b) Represente no sistema os n
umeros: x1 = (0, 40)10 , x2 = (2, 8)10 .
Exerccio 2.7. Considere o sistema F (2, 5, 3, 1).
a) Quantos e quais n
umeros podemos representar neste sistema?
b) Qual o maior n
umero na base 10 que podemos representar neste sistema (sem
fazer arredondamento)?

2.3.1

Erro de Arredondamento e Aritm


etica Computacional

A aritmetica utilizada por uma calculadora ou por um computador e diferente


daquela empregada nos cursos de algebra e de calculo. Por
exemplo, consideramos
como verdadeiras afirmac
oes como 2 + 2 = 4, 4 4 = 16, ( 3)2 = 3. Ja na aritmetica
computacional padr
ao, as duas primeiras assertivas sao verdadeiras, mas a terceira
nem sempre e! Por que? [1]
Um erro de arredondamento e produzido quando uma calculadora ou um computador e utilizado para realizar calculo com n
umeros reais. O erro ocorre porque
2 Observe que apenas o primeiro n
umero pode ser representado no sistema, pois para o segundo
teremos overflow e, para o terceiro, underflow.

Analisde de Arredondamento em Ponto Flutuante

a aritmetica utilizada pela m


aquina utiliza apenas n
umeros com um n
umero finito
de dgitos, o que faz como que os calculos sejam executados com valores aproximados dos n
umeros verdadeiros envolvidos. Em um computador tpico, apenas um
subconjunto relativamente pequeno do campo dos n
umeros reais e utilizado para a
representac
ao de todos os n
umeros reais. Esse subconjunto contem apenas n
umeros
racionais, tanto positivos como negativos, e armazena a porcao fracionaria juntamente com uma porc
ao exponencial [2].
Em 1985, o IEEE (Institute for Eletrical and Electronic Engineers) publicou um
relat
orio intitulado Binary Floating Point Arithmetic Standard 754-1985 (Normas
para ponto flutuante bin
ario 754-1985). Foram especificados formatos para precisao
simples, dupla e expandida, e essas normas sao geralmente seguidas por todos fabricantes de microcomputadores que se utilizam de hardware para ponto flutuante.
Por exemplo, o co-processador numerico dos PCs utiliza uma representacao de 64
bits (dgitos bin
arios) para um n
umero real, chamada de real extenso. O primeiro
bit e um indicador de sinal, designado por s. Esse dgito e seguido por uma parte
exponencial c de 11 bits, chamada caracterstica, e uma parte fracionaria d de 52
bits bin
arios denominada mantissa. A base para o expoente e 2.
Temos que 52 dgitos bin
arios correspondem a algo entre 16 e 17 dgitos decimais,
desta forma pode-se assumir que um n
umero representado nesse sistema tem uma
precis
ao de pelo menos 16 dgitos decimais. A parte decimal de 11 dgitos binarios
oferece um campo de valores de 0 a 211 1 = 2047. Entretanto, a utilizacao de
apenas n
umeros inteiros positivos para o expoente nao permite uma representacao
adequada de n
umeros de pequena magnitude. Para que n
umeros com pequena
magnitude possam ser igualmente representaveis, o valor 1023 e subtrado do valor
da caracterstica, de modo que a parte exponencial vai, na verdade, de -1023 e 1024
[2].
Para economizar espaco de armazenamento e fornecer uma representacao u
nica
para cada n
umero com ponto flutuante, torna-se necessario uma normalizacao. A
utilizac
ao desse sistema d
a uma n
umero com ponto flutuante da forma [6]
(1)s 2c1023 (1 + f ) .
Exemplo 2.9. Dado o n
umero de m
aquina
0 10000000011 1011100100010000000000000000000000000000000000000000
escreva ele na forma decimal. Encontre o n
umero imediatamente inferior em linguagem da m
aquina e o n
umero imediatamente superior.
O uso de dgitos bin
arios tende a tornar menos evidente as dificuldades de computac
ao que aparecem quando um conjunto finito de n
umeros em linguagem de
m
aquina e utilizado para representar todos os n
umeros reais. Para examinar esses
problemas, assumiremos como hipotese simplificadora que os n
umeros em linguagem
de m
aquina s
ao representados na forma normalizada de ponto flutuante decimal [3]
y

= 0, d1 d2 dt 10n

onde 1 d1 9 e 0 di 9 para cada i = 2, 3, , t. N


umeros nessa forma sao
chamados de n
umeros de m
aquina decimais de t dgitos.
Qualquer n
umero real positivo dentro do campo de variacao numerica das maquinas
pode ser normalizado na notac
ao
y

0, d1 d2 dt dt+1 dt+2 10n .

Introduc
ao

O formato de ponto flutuante de y e obtido limitando-se a mantissa de y em t dgitos


decimais. Existem duas maneiras de se obter essa limitacao. Um metodo, chamado de truncamento, consiste em simplesmente cortar os dgitos dt+1 , dt+2 , ,
obtendo-se
y

0, d1 d2 dt 10n .

O outro metodo, chamado de arredondamento, adiciona 510n(t+1) a y e trunca


o resultado para se obter um n
umero no formato
y

0, 1 2 t 10n .

Assim sendo, quando fazemos o arredondamento se dt+1 5, adicionamos 1 a dt


para obter y, isto e, arredondamos para cima (ou seja, para mais). Quando dt+1 < 5,
smplesmente cortamos fora todos os dgitos seguintes aos t primeiros algarismos,
portanto arredondamos para baixo. Se arredondamos para baixo, entao i = di
para i = 1, 2, , t. Entretanto, se arredondamos para cima, os algarismos podem
mudar.
Exemplo 2.10. Escreva o valor do n
umero = 3, 14159265 em notac
ao de
ponto flutuante com cinco dgitos, utilizando-se do metodo de corte e do metodo de
arredondamento.
O erro resultante da substituicao do n
umero real por sua notacao em ponto flutuante e chamado de erro de arredondamento (a respeito de qual seja o metodo
utilizado, de truncamento ou de arredondamento). A definicao a seguir descreve
dois metodos para se medir os erros de aproximacao [2].
Defini
c
ao 2.2 (Erro). Se p e uma aproximaca
o para p, o Erro Absoluto (EAp )
e
EAp

|p p |

ERp

|pp |
|p|

e o Erro Relativo (ERp ) e


,

admitindo-se que p 6= 0.
Exemplo 2.11. Suponhamos que voce tenha a tarefa de medir os comprimentos
de uma ponte e de um rebite e que conseguiu 9999 e 9 cm, respectivamente. Se os
valores verdadeiros forem 10000 e 10 cm, respectivamente, calcule:
1. o Erro Absoluto;
2. o Erro Relativo.
Defini
c
ao 2.3 (Dgitos Significativos). O n
umero p e dito pr
oximo de p, t dgitos
significativos, se t for o maior inteiro n
ao negativo para o qual [5]
|pp |
|p|

< 0, 5 10t .

Exemplo 2.12. Determine o Erro Absoluto (EAp ), o Erro Relativo (ERp ) e o


n
umero de dgitos significativos nas aproximac
oes:
1. p = 3, 141592 e p = 3.14;
2. p = 1000000 e p = 999996;
3. p = 0, 000012 e p = 0, 000009;

Analisde de Arredondamento em Ponto Flutuante

2.3.2

Operac
oes Aritm
eticas em Ponto Flutuante

Considere uma m
aquina qualquer e uma serie de operacoes aritmeticas. Pelo fato
do arredondamento ser feito ap
os cada operacao temos, ao contrario do que e valido
para n
umeros reais, que as operacoes aritmeticas (adicao, subtracao, divisao e multiplicac
ao) n
ao s
ao nem associativas e nem distributivas. Ilustraremos esse fato
atraves de exemplos [?].
Exemplo 2.13. Efetue as operac
oes abaixo fazendo arredondamento de tres dgitos
em ponto flutuante ap
os cada operac
ao.
1. (11, 4 + 3, 18) + 5, 05 e 11, 4 + (3, 18 + 5, 05);


3,18
e
2. 3,1811,4
5,05
5,05 11, 4;
3. 3, 18 (5, 05 + 11, 4) e 3, 18 5, 05 + 3, 18 11, 4.
Exemplo 2.14. Considerando o Sistema F (10, 3, 10, 10), some 1/3 dez vezes consecutivas usando arredondamento.
Exemplo 2.15. Seja P (x) = x3 3x2 + 3x 1 e Q(x) = ((x 3)x + 3)x 1. Com
base no F (10, 3, 10, 10) calcule P (2, 19) e Q(2, 19). Compare os resultados com o
valor verdadeiro, P (2, 19) = Q(2, 19) = 1, 685159, calculando o erro absoluto.
Observando os tres u
ltimos exemplos, vemos que erros consideraveis podem
ocorrer durante a execuc
ao de um algoritmo. Isso se deve ao fato de que existem
limitac
oes da m
aquina e tambem que os erros de arredondamento sao introduzidos
a cada operac
ao efetuada. Em consequencia, podemos obter resultados diferentes
mesmo utilizando metodos numericos matematicamente equivalentes.
Assim, devemos ser capazes de conseguir desenvolver um algoritmo tal que os
efeitos da aritmetica discreta do computador permaneca inofensivo quando um
grande n
umero de operac
oes s
ao executadas [?].
Cancelamento
O cancelamento ocorre na subtracao de dois n
umeros quase iguais. Vamos supor
que estamos operando com aritmetica de ponto flutuante. Sejam x e y dois n
umeros
com expoente e. Quando formamos a diferenca x y ela tambem tera o expoente e.
Se normalizarmos o n
umero obtido, veremos que devemos mover os dgitos para a
esquerda de tal forma que o primeiro seja diferente de zero. Assim, uma quantidade
de dgitos iguais a zero aparecem no final da mantissa do n
umero normalizado.
Estes zeros n
ao possuem significado algum. Veremos este fato atraves de exemplos.
Exemplo 2.16. Compare osresultadosdos c
alculos f (9875)
e g(9875)
utilizando o

F(10,10,10,10) onde f (x) = x + 1 x e g(x) = 1/( x + 1 + x). Onde obtem


melhor aproximac
ao?
Exemplo 2.17. A f
ormula quadr
atica afirma que as razes de ax2 + bx + c = 0,
quando a 6= 0, s
ao
x1 =

b+ b2 4ac
2a

x2 =

b b2 4ac
.
2a

(2.3.1)

Tambem, as razes x1 e x2 de uma equac


ao geral quadr
atica est
ao relacionadas
aos coeficientes pelo fato de que:
x1 + x2 = b/a

x1 x2 = c/a.

(2.3.2)

Introduc
ao

Use a aritmetica de arredondamento, com quatro algarismos, e as f


ormulas (2.3.1)
e (2.3.2) para determinar a aproximac
ao mais precisa para as razes da equaca
o
x2 1634x + 2 = 0, no sistema F (10, 10, 10, 10).
Nos exemplos dados foi razoavelmente facil resolver o problema do cancelamento.
Entretanto, cabe salientar, que nem sempre existe uma maneira trivial de resolver
problemas ocasionados pelo cancelamento.
LISTA DE EXERCICIOS
Exerccio 2.8. Considere os seguintes n
umeros: x1 = 27, x2 = 0, 138 e x3 =
45, 128 que est
ao na base 10. Escreva-os na base 2.
Exerccio 2.9. Considere os seguintes n
umeros: x1 = 13, x2 = 0, 143 e x3 =
23, 314 que est
ao na base 5. Escreva-os na base 2.
Exerccio 2.10. Dado os n
umeros (13, 44)5 , (122, 35)6 , (31, 202)4 . Existe algum
com representac
ao exata no sistema F (2, 10, 10, 10)?
Exerccio 2.11. Considere o sistema F (2, 8, 4, 4) e os n
umeros x1 = 0, 10110011
22 e x2 = 0, 10110010 27 . Qual dos dois n
umeros representa melhor (2, 8)10 ?
Exerccio 2.12. Considere o sistema F (2, 2, 2, 3)
a) Exiba todos os n
umeros represent
aveis neste sistema e coloque-os sobre um eixo
ordenado.
b) Qual o maior n
umero na base 10 que pode ser colocado nesse sistema sem fazer
arredondamento?
c) Qual o menor n
umero positivo na base 10 que pode ser representado neste sistema
sem fazer arredondamento?
Exerccio 2.13.
Considere o sistema F (2, 8, 10, 10). Represente no sistema os
ao na base 10. Existe algum
n
umeros x1 = 8, x2 = e2 , x3 = 3, 57, onde todos est
com representac
ao exata neste sistema?
Exerccio 2.14. Utilize a regra de formaca
o de n
umeros com formato de 64 bits
para encontrar o equivalente na forma decimal dos seguintes n
umeros dados em
formato de m
aquina com ponto flutuante:
1. 0100000010101001001100000000000000000000000000000000000000000000;
2. 1100000010101001001100000000000000000000000000000000000000000000;
3. 0011111111110101001100000000000000000000000000000000000000000000;
4. 0011111111110101001100000000000000000000000000000000000000000001;
Exerccio 2.15. Determine o Erro Absoluto (EAp ), o Erro Relativo (ERp ) e o
n
umero de dgitos significativos nas aproximac
oes:
1. p = , p = 22/7;
2. p = e, p = 2, 718;
3. p = e10 , p = 22000;

10

Analisde de Arredondamento em Ponto Flutuante


4. p = 8!, p = 39900.

Exerccio 2.16. Considere o sistema F (10, 3, 5, 5). Efetue as operac


oes indicadas:
1. (1, 386 0, 987) + 7, 6485 e 1, 386 (0, 987 7, 6485);
 


2,038
2. 1,3382,038
e 1,338
4,577
4,577 4,577 .
Exerccio 2.17. Seja P (x) = 2, 3x3 0, 6x2 + 1, 8x 2, 2. Deseja-se obter o valor
de P (x) para x = 1, 61.
1. Calcule P (1, 61) com todos os algarismos da sua calculadora, sem efetuar
arredondamento.
2. Calcule P (1, 61) considerando o sistema F (10, 3, 4, 3). Faca arredondamento
a cada operac
ao efetuada.
Exerccio 2.18. Seja P (x) = x3 6, 1x2 + 3, 2x + 1, 5 e Q(x) = ((x 6, 1)x +
3, 2)x + 1, 5. Com base no F (10, 3, 10, 10) calcule P (4, 71) e Q(4, 71). Compare os
resultados com o valor verdadeiro, P (4, 71) = Q(4, 71) = 14, 263899, calculando o
erro absoluto.
Exerccio 2.19. Efetue as operac
oes indicadas, utilizando aritmetica de ponto flutuante com tres algarismos significativos.
a) (19, 3 1, 07) 10, 3 e 19, 3 (1, 07 + 10, 3);
b) 27, 2 1, 3 327, 0 0, 00251;
c)

10, 1 3, 1 8, 2
;
14, 1 + 7, 09 3, 22

d) (367, 0 + 0, 6) + 0, 5 e 367, 0 + (0, 6 + 0, 5);


P100
e)
i=1 0, 11. Compare seu resultado com 100 0, 11.
Exerccio 2.20. Deseja-se calcular
10
X
2
S=
k2
k=1

no sistema F (10, 3, 5, 4), usando arredondamento em todas as operac


oes. Assim,
efetue a soma:
a) da direita para a esquerda,
b) da esquerda para a direita.
Os valores obtidos em (a) e (b) s
ao iguais?
Exerccio 2.21. Usando arredondamento para quatro dgitos significativos, efetue
as operaco
es indicadas e escreva o resultado na forma normalizada.
a) 0, 5971 103 + 0, 4268 100 ;
b) 0, 5971 101 0, 5956 102 ;
c)

0, 5971 103
;
0, 4268 101

Introduc
ao

11

d) (0, 5971 103 ) (0, 4268 100 ).


Exerccio 2.22. considere o sistema F (3, 3, 2, 2). Dizer quais das seguintes afirmac
oes
s
ao verdadeiras. Para as que forem falsas, dizer como seria o correto.
a) No sistema dado, podemos representar 181 n
umeros.
b) A representaca
o de (0, 342)10 no sistem dado e 0, 101 30 .
c) A representaca
o (15, 342)10 no sistema dado e 0, 102 33 .
d) O maior n
umero positivo deste sistema e 0, 111 102 .
e) O menor n
umero positivo do sistema e 0, 100 32 .
f ) O n
umero (38)10 n
ao pode ser representado no sistem dado.
Exerccio 2.23. Calcule

701

700

usando seis algarismos significativos em todas as operac


oes. O resultado que voce
obteve possui seis algarismos significativos corretos? Voce saberia obter o resultado
com o m
aximo de algarismos significativos corretos?
Exerccio 2.24. Calcule as razes da equac
ao
x2 60x + 1 = 0
usando quatro algarismos significativos em todas as operac
oes. O resultado das
razes que voce obteve possui quatro algarismos significativos corretos? Voce saberia
o que fazer para obte-las com o m
aximo de algarismos significativos?
Exerccio 2.25. Compare os
alculos f(700) e g(700)
utilizando o
resultados
dos c

F(10,6,10,10) onde f (x) = x + 1 x e g(x) = 1/( x + 1 + x). Onde obtem


melhor aproximac
ao?
Exerccio 2.26. Utilizando a notac
ao com arredondamento para quatro dgitos,
encontre as razes da equac
ao
x2 + 62, 10x + 1 = 0,
sabendo que as razes s
ao aproximadamente
x1 = 0, 01610723

2.4
2.4.1

x2 = 62, 08390 .

Usando o MATLAB para a resoluc


ao de exerccios
Mudanca de Base

O softwere MATLAB possui comandos que realizam a Mudanca de Base, porem


para utiliz
a-los, o n
umero o qual deseja-se mudar de base deve ser um inteiro naonegativo menor do que 252 . Os comandos existentes sao:

12

Analisde de Arredondamento em Ponto Flutuante

Comando: dec2bin(d)
Este comando e utilizado para realizar a mudanca de um n
umero d na base 10 para
a base 2. Para us
a-lo basta digitar o comando na Command Window do software
colocando o n
umero o qual deseja-se mudar de base entre parenteses.
Exemplo 2.18. Representar o n
umero 23 na base 10, na base 2:

Figura 2.1: Exemplo do comando dec2bin(d)


Comando: bin2dec(binarystr)
O comando bin2dec e utilizado para mudar um n
umero na base 2 para a base 10.
O binarystr (n
umero bin
ario) deve ser digitado entre aspas simples () dentro
do parenteses, pois o software reconhecera este n
umero como uma string formado
apenas pelos n
umeros 0 e 1.
Desta forma n
ao e possvel realizar a mudanca de base de n
umeros decimais
como 0.1100 na base 2 para a base 10, pois o ponto nao pertence ao conjunto de
strings que formam um n
umero binario. Para usa-lo basta digitar o comando na
Command Window do software colocando o n
umero o qual deseja-se mudar de base
entre parenteses.
Exemplo 2.19. Representar o n
umero 010111 na base 2, na base 10:

Figura 2.2: Exemplo do comando bin2dec(binarystr)


Comando: base2dec(strn, base)
Este comando realiza a mudanca de base de um n
umero em uma base qualquer para
a base 10. Para isto, deve-se digita-lo na Command Window do software e entrar
com o n
umero (strn) que se deseja mudar para a base 10, entre aspas simples (),
e com a base (base) na qual o n
umero esta.
Assim como no n
umero bin
ario, nao se pode realizar a mudanca de base de um
n
umero decimal, como por exemplo 3.8, pois o ponto nao pertence ao conjunto de
strings que formam um n
umero em qualquer base.
Exemplo 2.20. Representar o n
umero 212 na base 3, na base 10:

Introduc
ao

13

Figura 2.3: Exemplo do comando base2dec(strn, base)


Comando: dec2base(d,base)
O comando dec2base(d, base), muda um n
umero na base 10 para uma base qualquer.
Para us
a-lo, digita-se o comando na Command Window do software e entra-se com
o n
umero (d) na base 10 e com a base para qual o n
umero sera convertido.
Exemplo 2.21. Representar o n
umero 23 na base 10, na base 4:

Figura 2.4: Exemplo do comando dec2base(d,base)


Exerccio 2.27 (Computacional). Usando o MatLab calcule as somas

100
P

0, 1 e

i=1
100
P

0, 25. Explique porque a primeira soma da um valor aproximado e a segunda da

i=1

o valor correto [5].

14

Analisde de Arredondamento em Ponto Flutuante

Captulo 3

Solu
co
es de Equa
c
oes com
Uma Vari
avel
3.1

Introdu
c
ao

Neste captulo consideraremos um dos problemas mais importantes das aproximacoes


numericas, o problema de se encontrar as razes. Esse processo envolve calcular a
raiz, ou soluc
ao, de uma equacao da forma f (x) = 0 para uma dada funcao f .
A ttulo de exemplo, consideremos a situacao onde o crescimento de uma populac
ao pode ser modelado durante pequenos perodos de tempo, assumindo-se que
a populac
ao cresca continuamente no tempo em uma taxa proporcional ao n
umero
de indivduos existente no instante inicial. Se assumirmos que N (t) indica o n
umero
dos integrantes da populac
ao no instante de tempo t, e que indica a taxa de crescimento constante da populac
ao, esta satisfara, entao, a equacao diferencial
dN (t)
= N (t).
dt
A soluc
ao dessa equac
ao e N (t) = N0 et , onde N0 indica a populacao inicial. Esse
modelo exponencial e v
alido apenas quando a populacao e considerada isoladamente,
sem considerar-se o aumento por imigracao. Se a imigracao e permitida em uma
taxa constante , ent
ao a equacao diferencial se torna
dN (t)
= N (t) + ,
dt
cuja soluc
ao e
N (t) = N0 et +


t
e 1 .

onde N0 indica a populac


ao inicial.
Suponha que uma certa populacao contenha inicialmente 1000000 de indivduos,
que 435000 indivduos imigrem para essa comunidade no primeiro ano e que 1564000
indivduos estejam presentes nela ao final desse primeiro ano. Para determinar a
taxa de crescimento dessa populacao, devemos encontrar o valor de na equacao
1564000 = 1000000e +


435000
e 1 .

16

Analisde de Arredondamento em Ponto Flutuante

Os metodos numericos discutidos neste captulo sao utilizados para obter solucoes
aproximadas para equac
oes desse tipo, quando a solucao exata nao pode ser obtida
por metodos diretos.
Defini
c
ao 3.1 (Zero de uma funcao). Seja f (x) uma func
ao real definida num
intervalo [a, b]. Chama-se zero desta funca
o em [a, b] (ou, raiz da equac
ao f (x) = 0)
a todo p [a, b] tal que f (p) = 0, como mostra a Figura 3.1.

Figura 3.1: Zero de uma funcao


Pode-se dizer que s
ao dois os metodos para se achar a(s) raiz(es) de uma equacao:
Metodo direto: quando fornece solucao em apenas um u
nico passo. Esta raiz
e exata, a menos de erros de arredondamento.
Metodo iterativo ou indireto: e um processo de calculo infinito, recursivo,
em que o valor obtido a cada passo depende de valores obtidos em passos
anteriores. Este tipo de metodo, na maioria das vezes, nao obtem solucao
exata para as razes, mas sim uma solucao aproximada dentro de uma faixa
de erro considerada aceit
avel.
Exemplo 3.1 (Metodo Direto). Dada f (x) = x2 3x + 2 encontre as razes da
equac
ao f (x) = 0, utilizando a f
ormula do exemplo 2.17.
O c
alculo das duas razes de uma equacao do segundo grau, colocada sob a forma
ax2 + bx + c = 0, s
ao facilmente obtidas atraves do exemplo (2.17 ). Entretanto, se
colocarmos uma express
ao em que apareca uma equacao transcendente, a solucao
j
a n
ao e t
ao simples, como vimos no incio do captulo.
Mesmo um polin
omio de grau maior que tres ja nao tem uma solucao algebrica
simples como a da equac
ao do segundo grau, a nao ser em casos particulares. Vamos
analisar como enfrentar esse problema, tao comum em diversas areas da engenharia,
da economia, das ciencias, da fsica, entre tantas outras.
Essas equac
oes, com enorme frequencia, nos levam a razes reais nao racionais
que, ao serem representadas no computador, necessariamente, o serao de forma
aproximada, pelas raz
oes j
a expostas no captulo anterior, tendo em vista que necessitariam de infinitos dgitos, em suas mantissas, para serem representadas.
Alem disso, em geral, estamos interessados em obter esses valores, essas razes,
com uma determinada precis
ao, com um erro toleravel, com algumas casas decimais,
sem a pretens
ao de obter valores exatos. Isso e mais do que suficiente, para a maioria
dos problemas pr
aticos encontrados.
Os metodos numericos a serem apresentados, partindo de valores inicialmente
propostos, buscam aprimorar esses valores, diminuindo os erros, aproximando-se,
assim, dos valores das razes procuradas, ate que os erros sejam aceitaveis, podendose garantir que sejam erros inferiores a valores pre-definidos.
Para se calcular uma raiz duas etapas devem ser seguidas:

Introduc
ao

17

Isolar a raiz, ou seja, achar um intervalo [a, b], o menor possvel, que contenha
uma raiz da equac
ao f (x) = 0;
Melhorar o valor da raiz aproximada, isto e, refina-la ate o grau de exatidao
requerido. Com a abordagem iterativa precisamos determinar um intervalo
inicial para construirmos a sequencia {pn }
a dada
n=1 e teremos que a raiz p ser
por:
p = lim pn
n

Alem disto, temos que estipular criterios de parada, pois na pratica nao calcularemos infinitos termos, mas apenas o suficiente para atingirmos a exatidao desejada.

3.2

M
etodo da Bissecc
ao

A primeira tecnica, baseada no Teorema do Valor Intermediario, e chamada de


M
etodo da Bissec
c
ao, ou de Pesquisa Bin
aria.
Teorema 3.1 (Teorema do Valor Intermediario). Se f for contnua em [a, b] e se
for um n
umero real compreendido entre a f (a) e f (b), ent
ao existe pelo menos
um n
umero c em [a; b] para o qual f (c) = .
Teorema 3.2 (Teorema do Anulamento ou de Bolzano). Se f for contnua em [a; b]
e se f (a) e f (b) tiverem sinais contr
arios, ent
ao existir
a pelo menos um p [a; b]
tal que f (p) = 0.
Suponha que a func
ao f satisfaca o Teorema de Bolzano, ou seja, f e contnua
[a; b] com f (a) f (b) < 0, logo existe um n
umero p em [a; b] tal que f (p) = 0.
Embora o procedimento funcione tambem quando ha mais de uma raiz no intervalo
[a; b], assumimos, para simplificacao, que a raiz nesse intervalo e u
nica.
O metodo exige uma contnua diminuicao do intervalo [a; b] a outros iguais `a
metade do anterior e, em cada passo, localizar qual dos meio-intervalos contem a
raiz p da equac
ao.
Observa
c
ao 3.1.
1. Quando a func
ao f e contnua no intervalo [a; b] denota-se
por f C 0 [a, b].
2. Dado [a; b] o ponto p = (a + b)/2 e chamado de ponto medio de [a; b]. Computacionalmente e importante utilizar a f
ormula a + (b a)/2 para calcular o
ponto medio do intervalo [a; b] ao inves (a + b)/2. Como exemplo, calcule o
ponto medio do intervalo [0, 513; 0, 521] no sistema F (10, 3, 10, 10).
Para iniciar o metodo da biseccao, considera-se a1 = a e b1 = b, e toma-se p1
como o ponto medio do intervalo [a; b]; isto e
p1 = a1 +

a1 + b1
b1 a1
=
2
2

Se f (p1 ) = 0, ent
ao p = p1 , e teremos encontrado a solucao. Se f (p1 ) 6= 0, entao
f (p1 ) tem o mesmo sinal de f (a1 ) ou de f (b1 ). Quando f (p1 ) e f (a1 ) tem o mesmo
sinal, p (p1 ; b1 ), e fazemos a2 = p1 e b2 = b1 . Quando f (p1 ) e f (a1 ) tem sinais
opostos, p (a1 ; p1 ), e fazemos a2 = a1 e b2 = p1 . Reaplicamos entao o processo
ao intervalo [a2 ; b2 ].
Criterios de parada, ou seja, metodos para interromper o processo:

18

Analisde de Arredondamento em Ponto Flutuante


1. For dado o n
umero m
aximo de iteracoes;
2. Se for dado um n
umero  tal que:
(a) |bn an | <  (Criterio de Parada no eixo x);
(b) |f (pn )| <  (Criterio de Parada no eixo y);
(c) |pn pn1 | < ;
(d)

|pn pn1 |
|pn |

< , pn 6= 0.

Exemplo 3.2. Dada a func


ao f definida por f (x) = x3 + 4x2 10, encontre a raiz
da equac
ao f (x) = 0 no intervalo [1; 2] tal que |bn an | <  = 0.01.
Teorema 3.3. Suponha que f C[a, b] e f (a) f (b) < 0. Considerando uma
precis
ao (toler
ancia)  e o intervalo inicial [a; b], ent
ao o metodo da Bissecc
ao gera
uma sequencia de intervalos {[an ; bn ]}
que
cont
e
m
o
valor
de
p
correspondente
n=1
ao zero de f , onde
bn an

ba
2n1

< .

Observa
c
ao 3.2 (Precis
ao  no comprimento do intervalo). Se f satisfaz o teorema
3.3 ent
ao o n
umero de iterac
oes n (menor inteiro) que ser
ao efetuadas pelo metodo
ate que se obtenha |b a| <  e dado por
n

>

1+

log(ba)log()
.
log 2

Teorema 3.4. Suponha que f C[a; b] e f (a) f (b) < 0. O metodo da Bissecc
ao
gera uma sequencia {pn }
que
se
aproxima
do
valor
de
p
correspondente
ao
zero
n=1
de f , com
|pn p|

ba
2n

Observa
c
ao 3.3 (Precis
ao  na convergencia da sequencia). Se f satisfaz o teorema
3.4 ent
ao o n
umero de iterac
oes n (menor inteiro) que ser
ao efetuadas pelo metodo
ate que se obtenha |pn p| <  e dado por
n

>

log(ba)log()
.
log 2

Como
|pn p|

ba
2n

a sequencia converge para p com uma taxa de convergencia O



pn = p + O 21n

1
2n

, isto e,

No decorrer do texto, a n
ao especificacao da precisao, significa precisao na convergencia da sequencia.
Exemplo 3.3. Determine o n
umero de iterac
oes necess
ario para resolver a equac
ao
x3 + 4x2 10 = 0 para todo x [1, 2], com:

Introduc
ao

19

1. Precis
ao  = 102 na convergencia da sequencia, ou seja, |pn p| < 102 .
2. Precis
ao  = 102 no comprimento do intervalo, ou seja, |bn an | < 102 .
Exerccio 3.1. Justifique que a func
ao:


(x + 1)
+ 0, 148x 0, 9062 = 0
f (x) = cos
8
possui uma raiz no intervalo [1, 0] e outra no intervalo [0, 1].
Exerccio 3.2. Use o metodo da Bissecc
ao para encontrar p3 para f (x) =
em [0; 1].

xcos x

Exerccio 3.3. Utilize o metodo da Bissecc


ao para encontrar uma soluc
ao com
precis
ao de 103 para x = tan x no intervalo [4; 4, 5].
Exerccio 3.4. Utilize o metodo da Bissecc
ao para encontrar soluc
oes com precis
ao
de 102 para x3 7x2 + 14x 6 = 0 nos seguintes intervalos:
1. [0; 1];
2. [1; 3, 2];
3. [3, 2; 4];
Exerccio 3.5. Use o Teorema 3.4 para encontrar um limite para o n
umero de
iterac
oes necess
ario para obter, com uma aproximac
ao de precis
ao de 104 , a
soluc
ao de x3 x 1 = 0 que se encontra no intervalo [1; 2]. Encontre um valor aproximado para a raiz com esse grau de precis
ao.

3.3

Itera
c
ao pelo M
etodo do Ponto fixo

Um n
umero p e Ponto Fixo (PF) para uma funcao g se g(p) = p.
Nesta sec
ao consideraremos o problema de encontrar solucoes para o problema
do ponto fixo, e a conex
ao entre os problemas do ponto fixo e os problemas de
encontrar as razes que queremos resolver.
Dado um problema de se encontrar a raiz f (p) = 0, podemos definir g como um
ponto fixo em p, da seguinte forma
g(x)

= x f (x).

Ainda que o problema que desejamos resolver esteja em encontrar uma forma
para o c
alculo das razes de uma funcao, o metodo do ponto fixo e mais facil de
examinar, e certas escolhas de pontos fixos levam a tecnicas muito poderosas para
o c
alculo das razes.
Primeiramente, e necess
ario que estejamos habituados com esse novo tipo de
problema, bem como decidir quando uma funcao tem um ponto fixo e como os
pontos fixos podem ser aproximados com uma precisao especificada.
Exemplo 3.4. Verifique que a func
ao g(x) = x2 2 para x [2; 3] tem pontos
fixos em x = 1 e x = 2. Encontre a func
ao f e suas raizes.
O seguinte teorema fornece condicoes suficientes para a existencia e a unicidade
de um ponto fixo.

20

Analisde de Arredondamento em Ponto Flutuante

Teorema 3.5 (Condic


ao suficiente para a existencia do Ponto Fixo). a) Se g C[a; b]
e g(x) [a; b], para todo x [a; b], ent
ao g tem um ponto fixo em [a; b].
b) Se, adicionalmente, g 0 (x) existe em (a; b) e uma constante k < 1 existe, tal que
|g 0 (x)|

k ,

para todo x (a, b), ent


ao o ponto fixo em [a, b] e u
nico.
Teorema 3.6 (Teorema do Valor Extremo). Se a funca
o g for contnua no intervalo
fechado [a, b], ent
ao g ter
a um valor m
aximo absoluto e um valor mnimo absoluto
em [a, b]
1. g(x) [a; b]

Observa
c
ao 3.4.
a) g(a) [a; b];
b) g(b) [a; b];

c) Encontre x [a; b] onde g 0 (x) = 0, depois verifique g(x) [a; b];


d) Encontre x [a; b] onde n
ao existe g 0 (x), depois verifique g(x) [a; b];
2. g C[a; b]
3. |g 0 (x)| < 1
Exemplo 3.5. Verifique se a func
ao g(x) = (x2 1)/3 onde x [1; 1] tem um
ponto fixo. Caso exista, verifica se e u
nico para x [1; 1]. Encontre o ponto fixo
de g.
As hip
oteses do Teorema 3.5 sao suficientes, mas nao necessarias para garantir
um u
nico ponto fixo.
Para obter o valor aproximado do ponto fixo de uma funcao g, escolhermos uma
aproximac
ao inicial p0 e geramos a sequencia {pn }
n=0 fazendo pn = g(pn1 ) para
cada n 1. Se a sequencia converge para p e g e contnua, entao


p = lim pn = lim g(pn1 ) = g lim pn1 = g(p) ,
n

e obtemos uma soluc


ao para x = g(x). Essa tecnica e chamada de m
etodo de
itera
c
ao do ponto fixo, ou itera
c
ao funcional.
Observa
c
ao 3.5. Vimos que a equac
ao x3 + 4x2 10 = 0 tem uma u
nica raiz
no intervalo [1, 2]. H
a muitas maneiras de se mudar essa equac
ao para a forma de
ponto fixo x = g(x) utilizando manipulaco
es algebricas simples. Por exemplo,
1. x = g1 (x) = x x3 4x2 + 10;
10
x

2. x = g2 (x) =
3. x = g3 (x) =
4. x = g4 (x) =

1
2

4x

1/2

10 x3
10
4+x

5. x = g5 (x) = x

1/2

1/2

x3 +4x2 10
3x2 +8x ;

Introduc
ao

21

Teorema 3.7 (Teorema do Ponto Fixo). Seja g C[a, b] tal que g(x) [a, b] para
todo x [a, b]. Suponha, adicionalmente, que g 0 (x) existe em (a, b) e que uma
constante 0 < k < 1 exista, com
|g 0 (x)|

k ,

para todo x (a, b). Ent


ao, para qualquer n
umero p0 em [a, b], a sequencia definida
por
pn = g(pn1 )

n1 ,

converge para o ponto fixo u


nico p em [a, b].

Figura 3.2: Convergencia no Metodo do Ponto Fixo


Observa
c
ao 3.6.
A maior dificuldade neste metodo e encontrar uma func
ao
de iterac
ao que satisfaca `
a condic
ao de convergencia.
A velocidade de convergencia depender
a de |g 0 ()|: quanto menor este valor
maior ser
a a covergencia;
O extremo mais r
apido para iniciar o metodo e aquele para o qual o m
odulo
da primeira derivada e menor.
Se |g 0 (a)| < |g 0 (b)| ent
ao x0 = a, sen
ao x0 = b.
Exemplo 3.6. Analise a convergencia das func
oes
1. x = g1 (x) = x x3 4x2 + 10;
1/2
2. x = g2 (x) = 10
;
x 4x
3. x = g3 (x) =
4. x = g4 (x) =

1
2

10 x3
10
4+x

1/2

1/2

22

Analisde de Arredondamento em Ponto Flutuante


5. x = g5 (x) = x

x3 +4x2 10
3x2 +8x ;

Exerccio 3.6. Utilize manipulac


oes algebricas para mostrar que cada uma das
func
oes a seguir tem um ponto fixo em p precisamente quando f (p) = 0, para
f (x) = x4 + 2x2 x 3.
1. g1 (x) = (3 + x 2x2 )1/4 ;
2. g2 (x) =

x+3x4
2

3. g3 (x) =

x+3
x2 +2

4. g4 (x) = x

1/2

1/2

x4 +2x2 x3
4x3 +4x1 ;

Exerccio 3.7. Utilize o metodo de iterac


ao de ponto fixo para determinar uma
soluc
ao com precis
ao de 102 para x4 3x2 33 = 0 no intervalo [2, 3], ou seja,
|pN pN 1 | < 0, 01. Utilize p0 = 2.
Exerccio 3.8. Utilize o metodo de iterac
ao de ponto fixo para determinar uma
soluc
ao com precis
ao de 102 para 2 sin x + x = 0 no intervalo [1, 2], ou seja,
|pN pN 1 | < 0, 01. Utilize p0 = 1.

3.4

M
etodo de Newton-Raphson ou M
etodo das
Tangentes

O metodo de Newton (ou Newton-Raphson) e um dos mais poderosos metodos


numericos conhecidos para resolver o problema de se encontrar as razes de uma
func
ao. Introduziremos o metodo de Newton baseado no polinomio de Taylor.
Suponha que f C 2 [a, b]. Seja x
[a, b] uma aproximacao de p tal que f 0 (
x) 6= 0
e |p x
| e pequeno. Considere o polinomio de Taylor de primeiro grau para f(x)
expandido em torno de x
,
f (x)

f (
x) + (x x
)f 0 (
x) +

(x
x)2 00
f ((x))
2

onde (x) est


a entre x e x
. Como f (p) = 0, essa equacao, com x = p, resulta em
0

x) +
f (
x) + (p x
)f 0 (

(p
x)2 00
f ((p))
2

A derivada do metodo de Newton e obtida assumindo-se que, desde que |p x


|
e pequeno, o termo envolvendo (p x
)2 e muito menor. E portanto
f (
x) + (p x
)f 0 (
x) .

0
Resolvendo para p temos
p

f (
x)
f 0 (
x)

Essa relac
ao estabelece o cenario para a aplicacao do metodo de Newton, que
comeca com uma aproximac
ao inicial p0 e gera a sequencia {pn }
n=0 fazendo
pn

pn1

f (pn1 )
f 0 (pn1 )

para n 1 .

(3.4.1)

Introduc
ao

23

A Figura ilustra como as aproximacoes sao obtidas utilizando-se sucessivas tangentes.

Figura 3.3: Convergencia no Metodo de Newton Raphson


Iniciando-se com a aproximacao inicial p0 , a aproximacao p1 e o valor em que
a linha da tangente ao gr
afico de f em (p0 , f (p0 )) intercepta o eixo dos x. A
aproximac
ao p2 e o valor em que a reta tangente ao grafico de f em (p1 , f (p1 ))
corta o eixo dos x, e assim por diante.
As desigualdades utilizadas como tecnica de parada que e dada no metodo da
Bissecc
ao s
ao aplic
aveis ao metodo de Newton. Isto e, deve selecionar uma toler
ancia  > 0 e construir p1 , , pN ate que
|pN pN 1 | <
|pN pN 1 |
|pN |

<

;

(3.4.2)

 , pN 6= 0 .

(3.4.3)

ou
|f (pN )| <

 .

(3.4.4)

O metodo de Newton e uma tecnica de iteracao funcional na forma pn = g(pn1 ),


para o qual
pn = g(pn1 )
Observa
c
ao 3.7.
desejado ;

= pn1

f (pn1 )
f 0 (pn1 )

, n1 .

(3.4.5)

necess
E
ario conhecer um intervalo que contenha o valor

Para decidir qual o melhor extremo do intervalo (a, b) a iniciar o metodo, basta
verificar qual dos extremos possui func
ao e segunda derivada com mesmo sinal:
f (xi ) f 00 (xi ) > 0 para i = {extremos do intervalo}.
Requer o conhecimento da forma analtica de f 0 (x), mas sua convergencia e
extraordin
aria.
A derivac
ao da serie de Taylor, feita com aplicacao do metodo de Newton, mostra
a import
ancia de uma aproximacao inicial precisa. A suposicao crucial para essa
aplicac
ao e que o termo envolvendo (p x)2 e, por comparacao com |p x|, tao
pequeno que ele pode ser cancelado. Isso sera claramente falso, a menos que x
seja uma boa aproximac
ao de p. Se p0 nao esta suficientemente proximo da raiz
verdadeira, h
a poucas raz
oes para acreditar que o metodo de Newton vai convergir
em direc
ao a raiz. Entretanto, em alguns casos, mesmo uma aproximacao inicial
pobre vai produzir convergencia.
O seguinte teorema de convergencia para o metodo de Newton ilustra a import
ancia te
orica da escolha de p0 .

24

Analisde de Arredondamento em Ponto Flutuante

Teorema 3.8. Seja f C 2 [a, b]. Se p [a, b] e tal que f (p) = 0 e f 0 (p) 6= 0, ent
ao

existe um > 0 tal que metodo de Newton gera uma sequencia {pn }n=1 converge
para p para qualquer aproximac
ao p0 [p , p + ].
Exemplo 3.7. Aplique o metodo de Newton para encontrar a raiz da equac
ao
f (x) = cos x x no intervalo [0, /4].
Exerccio 3.9. Seja f (x) = x2 6 e p0 = 1. Use o metodo de Newton para achar
p2 .
Exerccio 3.10. Use o metodo de Newton para encontrar soluco
es com precis
ao de
104 , ou seja |pN pN 1 | < 0, 0001, para os seguintes problemas:
1. x3 2x2 5 = 0, [1, 4];
2. x3 + 3x2 1 = 0, [3, 2];
3. x cos x = 0, [0, /2];
4. x 0, 8 0, 2 sin x = 0, [0, /2].
Exerccio 3.11. Determinar, usando o metodo de Newton, a menor raiz positiva
da equaca
o 4 cos(x) ex = 0 no intervalo [0; 1] com erro relativo inferior a 102 ,
ou seja, |pN pN 1 |/|pN | < 0, 01.
Exerccio 3.12. A equac
ao de Kepler, usada para determinar
orbitas de satelites,
e dada por M = x E sin x. Dado que E = 0, 2 e M = 0, 5, obtenha a raiz a raiz da
equac
ao de Kepler usando o Metodo de Newton com erro relativo inferior a 102 ,
ou seja, |pN pN 1 |/|pN | < 0, 01.
Exerccio 3.13. Voce est
a projetando um tanque esferico para armazenar
agua para
uma pequena vila em uma regi
ao em desenvolvimento. O volume do lquido que ele
armazena pode ser calculado por V = h2 [3R h]/3 , onde V e o volume [m3 ],
h e a profundidade da
agua no tanque [m], R e o raio do tanque [m]. Se R = 3 m
ate qual profundidade o tanque deve ser enchido para armazenar 30 m3 ? Use tres
iterac
oes do metodo de Newton-Raphson para determinar sua resposta. Use tres
iterac
oes do metodo da falsa posic
ao para determinar sua resposta. Determine o
erro percentual depois de cada iterac
ao.

3.5

M
etodo da Secante ou M
etodo de Newton Modificado

O metodo de Newton e uma tecnica extremamente poderosa, mas tem uma fraqueza:
a necessidade de se conhecer o valor da derivada de f em cada aproximacao. Frequentemente, f 0 (x) apresenta muito mais dificuldades e necessita de mais operacoes
aritmeticas para ser calculada do que f (x).
Para evitar o problema do c
alculo da derivada no metodo de Newton, introduzimos uma pequena variac
ao. Por definicao,
f 0 (pn1 )

lim

xpn1

f (x)f (pn1 )
xpn1

Fazendo x = pn2 , temos


f 0 (pn1 )

f (pn2 )f (pn1 )
pn2 pn1

f (pn1 )f (pn2 )
pn1 pn2

Introduc
ao

25

Utilizando essa aproximac


ao pra f 0 (pn1 ) na formula de Newton, temos que
pn

= pn1

f (pn1 )(pn1 pn2 )


f (pn1 )f (pn2 )

, n2 .

Essa tecnica e chamada de M


etodo da Secante, a qual, pode ser escrita como
pn

pn1 f (pn2 )pn2 f (pn1 )


f (pn2 )f (pn1 )

, n2 .

pn

pn2 f (pn1 )pn1 f (pn2 )


f (pn1 )f (pn2 )

, n2 .

ou

Figura 3.4: Interpretacao Geometrica do Metodo da Secante


Exemplo 3.8. Aplique o Metodo da Secante em f (x) = cos x x com p0 = 0 e
p1 = /4 para x [0; /4].
Exerccio 3.14. Seja f (x) = x3 cos(x). Com p0 = 1 e p1 = 0, determine p3
utilizando o metodo da secante.

3.6

M
etodo da Falsa Posic
ao

O M
etodo da Falsa Posi
c
ao (tambem chamado de Regula Falsi ou Regra Falsa)
gera aproximac
oes da mesma maneira que o metodo da Secante, mas tambem inclui
um teste para se assegurar que a raiz esteja dentro de um intervalo delimitado por
iterac
oes sucessivas.
Inicialmente, escolhe-se as aproximacoes iniciais p0 e p1 com f (p0 ) f (p1 ) < 0.
A aproximac
ao p2 e escolhida da mesma maneira que no metodo da Secante, como
sendo o valor em que o segmento que une os pontos (p0 , f (p0 )) e (p1 , f (p1 )) corta
o eixo dos x. Para decidir que segmento da secante deve ser usado para calcular
p3 checamos f (p2 ) f (p1 ). Se o valor e negativo, entao p1 e p2 delimitam uma
raiz, e escolhemos p3 como o ponto de interseccao do segmento unindo (p1 , f (p1 ))
e (p2 , f (p2 )) e o eixo dos x, e entao substitumos os valores em p0 e P1 . De modo
similar, uma vez que p3 e encontrado, o sinal de f (p3 ) f (p2 ) determina se usaremos
p2 e p3 ou p3 e p1 para calcular p4 . No u
ltimo caso, uma reatualizacao dos ndices de
p2 e p1 e realizada. Essa reatualizacao garante que a raiz esteja dentro do intervalo
entre os valores de iterac
oes sucessivas.
Exemplo 3.9. Aplique o Metodo da Posic
ao Falsa em f (x) = cos x x com p0 = 0
e p1 = /4 para x [0, /4].
Exerccio 3.15. Seja f (x) = x2 6. Com p0 = 3 e p1 = 2, ache p3 .
1. Use o metodo da Secante;
2. Use o metodo da Falsa posic
ao;

26

Analisde de Arredondamento em Ponto Flutuante


3. Que metodo d
a um resultado mais pr
oximo de

6?

Exerccio 3.16. O polin


omio de 4 grau
f (x) = 230x4 + 18x3 + 9x2 221x 9
tem dois zeros reais, um em [1, 0] e o outro em [0, 1]. Tente encontrar o valor
aproximado desses zeros com uma precis
ao de 106 utilizando o
1. Metodo da Falsa Posic
ao;
2. Metodo da Secante;
3. Metodo de Newton.
Exerccio 3.17. Utilize cada um dos seguintes metodos para encontrar uma soluc
ao
em [0.1; 1] com precis
ao de 104 para 600x4 550x3 + 200x2 20x 1 = 0.
1. metodo da Bissecc
ao;
2. metodo de Newton;
3. metodo da Secante;
4. metodo da Falsa Posic
ao.
Exerccio 3.18. O valor acumulado em uma poupanca com base em pagamento
regulares pode ser determinado a partir da equa
c
ao da anuidade antecipada,
P
[(1 + i)n 1].
i
Nessa equac
ao, A e a quantia na conta, P e a quantia depositada de forma regular
e i e a taxa de juros por perodo para n perodos de dep
osito. Um engenheiro
gostaria de ter uma poupanca de R$ 750.000, 00 ao se aposentar, depois de 20 anos
de trabalho e pode depositar R$ 1500, 00 por mes para esse fim. Qual e a taxa de
juros mnima com a qual essa quantia pode ser investida, supondo que os juros
sejam compostos mensalmente?
A=

Exerccio 3.19. Os Problemas que envolvema quantia necess


aria para pagar uma
hipoteca por um perodo fixo de tempo utilizam a f
ormula
P
[1 (1 + i)n ],
i
conhecida como equa
c
ao da anuidade ordin
aria. Nessa equac
ao, A e o total
da hipoteca, P e o valor de cada pagamento e i e a taxa de juros por perodo, para
n perodos de pagamento. Suponha que seja necess
ario fazer uma hipoteca de uma
casa por perodo de 30 anos, no valor de R$ 135.000,00, e o tomador do emprestimo
possa dispor de no m
aximo R$ 1.000,00 por mes. Qual a m
axima taxa de juros que
o tomador do emprestimo pode pagar?
A=

Exerccio 3.20. Determine uma aproximac


ao para , usando o Metodo de Newton
com erro relativo inferior a 104 , ou seja, |pN pN 1 |/|pN | < 0, 0001, para a
equac
ao da populac
ao

435000
e 1 .
1564000 = 1000000e +

discutida na introduc
ao deste captulo. Utilize esse valor para calcular a populac
ao
no fim do segundo ano, supondo que a taxa de imigrac
ao durante o ano permaneca
em 435000 indivduos por ano.

Introduc
ao

3.7

27

Usando o MATLAB para a resoluc


ao de exerccios

Nesta sec
ao ser
ao apresentados implementacoes basicas de algoritmos dos metodos
apresentados para a soluc
ao de equacoes de uma variavel. Para utiliza-los basta
seguir as seguintes intruc
oes:
Passo 1:Abrir o software MatLab;
Passo 2:Na janela Current Folder selecione a basta que contem os arquivos
dos algorimos em extens
ao .m;
Passo 3:Ao abrir a pasta selecione o algoritmo a ser utilizado.
Passo 4:Ao dar duplo clique no arquivo sera aberta uma janela de edicao
(Editor);
Passo 5:Para executar o arquivo clique em Run.

Figura 3.5: Como executar um algoritmo.

3.8

M
etodo da Bissecc
ao

Com o algoritmo a seguir e possvel determinar a aproximacao para a raiz de um


func
ao f , para utiliz
a-lo basta conhecer a funcao (f ) a qual deseja-se determianar
a raiz, o intervalo [a,b] em que a raiz estara contida e a tolerancia (delta), ou seja,
o valor utilizado como criterio de parada do metodo.

28

Analisde de Arredondamento em Ponto Flutuante


Arquivo: bisseccao.m
Listing 3.1: Algoritmo para o Metodo da Bisseccao
%U i v e r s i d a d e T e c n o l o g i c a F e d e r a l do Parana
%Campus Campo Moura o
%Programa de Apoio ao Recurso D i g i t a l

%Algoritmo para o Metodo da B i s s e c c a o


function [ ] = bisseccao ()
%Entradas
syms x %r e c e b e a f u n c
a o no formato s i m b o l i c o
f = i n p u t d l g ( { f ( x)= } , Func a o ) ; %f e a f u n c a o em formato s t r i n g f
a = i n p u t d l g ( { a : } , I n t e r v a l o ) ; %a e o extremo e s q u e r d o do i n t e r v a l o
b = i n p u t d l g ( { b : } , I n t e r v a l o ) ; %b e o extremo d i r e i t o do i n t e r v a l o
d e l t a = i n p u t d l g ( { d e l t a : } , T o l e r a n c i a ) ; %d e l t a e a t o l e r a n c i a
a = str2num ( a { 1 } ) ; %str2num c o n v e r t e uma s t r i n g em um n
u mero ;
b = str2num ( b { 1 } ) ;
d e l t a = str2num ( d e l t a { 1 } ) ;
uF = matlabFunction ( sym ( f ) , vars , [ x ] , f i l e , fx ) ; %matlabFunction
%t r a n f o r m a a f u n c
a o s i m b o l i c a em f u n c a o nume rica
ya = f e v a l ( uF , a ) ;
yb = f e v a l ( uF , b ) ;
i f ya yb > 0
c =0;
e r r =0;
yc =0;
d i s p ( f ( a ) f ( b ) >0 )
return ;
end
max1 = 1 + round ( ( l o g ( ba ) l o g ( d e l t a ) ) / l o g ( 2 ) ) ; %n
u mero de i t e r a c o e s
f o r i = 1 : max1
c=(a+b ) / 2 ;
yc=f e v a l ( uF , c ) ;
i f yc==0
a=c ;
b=c ;
e l s e i f yb yc>0
b=c ;
yb=yc ;
else
a=c ;
ya=yc ;
end
i f ba < d e l t a
break ;

Introduc
ao

29

end
end
c=(a+b ) / 2 ;
e r r=abs ( ba ) ;
r e l e r r=e r r / abs ( b ) ;
yc=f e v a l ( uF , c ) ;
%S ad a s
f p r i n t f ( Func
ao : )
d i s p ( f ) %f u n c
ao
f p r i n t f ( Aproximac
a o para a r a i z da f u n c a o : )
d i s p ( c ) %c e a aproximac a o para o z e r o
f p r i n t f ( Erro r e l a t i v o para a r a i z aproximada : )
d i s p ( r e l e r r ) %r e l e r r e a e s t i m a t i v a do e r r o r e l a t i v o para c
f p r i n t f ( Valor da f u n c a o a p l i c a d o na r a i z aproximada : )
d i s p ( yc ) %yc = f ( c )
end

3.9

Itera
c
ao pelo M
etodo do Ponto Fixo

A seguir apresenta-se o algoritmo utilizado na aplicacao do Metodo do Ponto Fixo


para encontrar a raz de uma funcao f , para utiliza-lo e necessario conhecer a funcao
na forma de ponto fixo (g(x)), alem do ponto inicial de iteracao (p0), a tolerancia
(tol) utilizada como criterio de parada e estimar um n
umero maximo de iteracoes
(max1) utilizado para a execuc
ao do algoritmo quando este entra no laco f or.
Arquivo: pontofixo.m
Listing 3.2: Algoritmo para Iteracao pelo Metodo do Ponto Fixo
%U i v e r s i d a d e T e c n o l o g i c a F e d e r a l do Parana
%Campus Campo Moura o
%Programa de Apoio ao Recurso D i g i t a l
%Algoritmo para o Metodo do Ponto Fixo .
function [ ] = ponto fixo ()

%Entradas
syms x %r e c e b e a f u n c
a o no formato s i m b o l i c o .
g = i n p u t d l g ( { g ( x)= } , Func a o ) ; %f e a f u n c a o em formato s t r i n g g .
p0 = i n p u t d l g ( { p0 : } , Ponto i n i c i a l da i t e r a c a o ) ;
t o l = i n p u t d l g ( { t o l : } , T o l e r a n c i a ) ; %t o l e a t o l e r a n c i a .
max1 = i n p u t d l g ( { max1 : } , T o l e r a n c i a ) ; %n
u mero maximo de i t e r a c o e s .
p0 = str2num ( p0 { 1 } ) ; %str2num c o n v e r t e uma s t r i n g em um n
u mero .
t o l = str2num ( t o l { 1 } ) ;
max1 = str2num ( max1 { 1 } ) ;
uG = matlabFunction ( sym ( g ) , vars , [ x ] , f i l e , gx ) ; %matlabFunction
%t r a n f o r m a a f u n c
a o s i m b o l i c a em f u n c a o nume rica .

30

Analisde de Arredondamento em Ponto Flutuante

P( 1 ) = p0 ;
f o r k=2:max1
P( k ) = f e v a l (uG, P( k 1 ) ) ;
e r r = abs (P( k ) P( k 1 ) ) ;
r e l e r r = e r r / ( abs (P( k ) ) ) ;
p = P( k ) ;
i f ( err < tol ) | ( relerr < tol )
break
end
end
i f k == max1
d i s p ( o n
u mero m
aximo de i t e r a c o e s f o i e x c e d i d o )
else
f p r i n t f ( Func
ao : )
d i s p ( g ) %f u n c
ao
f p r i n t f ( Aproximac
a o para a r a i z : )
d i s p ( p ) %p e a aproximac a o para a r a i z .
f p r i n t f ( Erro r e l a t i v o para a r a i z aproximada : )
d i s p ( r e l e r r ) %r e l e r r e a e s t i m a t i v a do e r r o r e l a t i v o para p .
f p r i n t f ( N
umero de i t e r a c o e s r e a l i z a d a s : )
d i s p ( k ) %k e o n
u mero de i t e r a c o e s .
end

3.10

M
etodo de Newton-Raphson ou M
etodo das
Tangentes

No algoritmo para este metodo deve-se determinar primeiramente a derivada da


func
ao a qual deseja-se encontrar a raz e o ponto inicial de iteracao de acordo com
os criterios do metodo para que ocorra a convergencia. Assim como no Metodo do
Ponto fixo, deve-se entrar com um valor maximo de iteracoes (max1) para execucao
do algoritmo. Ser
ao apresentados tres algoritmos que utilizam criterios de parada
diferentes.
O primeiro utiliza como criterio de parada o erro absoluto, desta forma ao inserir
os par
ametros de entrada ser
a solicitado o valor da tolerancia delta.
Arquivo: newtonerroabsoluto.m
Listing 3.3: Algoritmo para o Metodo de Newton-Raphson - Erro Absoluto
%U i v e r s i d a d e T e c n o l o g i c a F e d e r a l do Parana
%Campus Campo Moura o
%Programa de Apoio ao Recurso D i g i t a l
%Algoritmo para o NewthonRaphson u t i l i z a n d o como c r i t e r i o de parada o e r r o
%a b s o l u t o .
function [ ] = newton erro absoluto ()
%Entrada
syms x %r e c e b e a f u n c
a o no formato s i m b o l i c o .

Introduc
ao

31

f = i n p u t d l g ( { f ( x)= } , Func a o ) ; %f e a f u n c a o em formato s t r i n g f .


g = i n p u t d l g ( { g ( x)= } , Derivada da Func a o ) ; %g e a d e r i v a d a da f u n c
ao
%no formato s t r i n g g .
p0 = i n p u t d l g ( { p0 : } , Valor i n i c i a l ) ; %ponto i n i c i a l da i n t e r a c a o .
d e l t a = i n p u t d l g ( { d e l t a : } , T o l e r a n c i a ) ; %d e l t a e a t o l e r a n c i a .
max1 = i n p u t d l g ( { max1 : } , T o l e r a n c i a ) ; %n
u mero maximo de i t e r a c o e s .
p0 = str2num ( p0 { 1 } ) ; %str2num c o n v e r t e uma s t r i n g em um n
u mero .
d e l t a = str2num ( d e l t a { 1 } ) ;
max1 = str2num ( max1 { 1 } ) ;
uF = matlabFunction ( sym ( f ) , vars , [ x ] , f i l e , fx ) ; %matlabFunction
%t r a n f o r m a a f u n c
a o s i m b o l i c a em f u n c a o nume rica .
d f = matlabFunction ( sym ( g ) , vars , [ x ] , f i l e , gx ) ; %d e r i v a d a da f u n c
ao f .

f o r k = 1 : max1
p1 = p0 f e v a l ( uF , p0 ) / f e v a l ( df , p0 ) ;
e r r = abs ( p1 p0 ) ;
r e l e r r=e r r / abs ( p1 ) ;
p0=p1 ;
y=f e v a l ( uF , p0 ) ;
i f e r r <d e l t a
break ;
end
end
i f k == max1
d i s p ( O n
u mero m
aximo de i t e r a c o e s f o i e x c e d i d o )
else
%S ad a s
f p r i n t f ( Func
ao : )
d i s p ( f ) %f u n c
ao
f p r i n t f ( Aproximac
a o para a r a i z : )
d i s p ( p0 ) %p0 e a aproximac a o de NewtonRapshon para a r a i z .
f p r i n t f ( Erro r e l a t i v o para a r a i z c a l c u l a d a : )
d i s p ( r e l e r r ) %r e l e r r e a e s t i m a t i v a do e r r o r e l a t i v o para p0 .
f p r i n t f ( Valor da f u n c
a o a p l i c a d o na r a i z c a l c u l a d a : )
d i s p ( y ) %y e o v a l o r da f u n c a o a p l i c a d a na r a i z c a l c u l a d a , f ( p0 ) .
f p r i n t f ( N
umero de i t e r a c o e s r e a l i z a d a s : )
d i s p ( k ) %k e o n
u mero de i t e r a c o e s .
end
O segundo utiliza como criterio de parada o erro relativo, sendo solicitado como
par
ametro de entrada uma tolerancia delta.
Arquivo: newtonerrorelativo.m
Listing 3.4: Algoritmo para o Metodo de Newton-Raphson - Erro Relativo
%U i v e r s i d a d e T e c n o l o g i c a F e d e r a l do Parana
%Campus Campo Moura o
%Programa de Apoio ao Recurso D i g i t a l
%Algoritmo para o NewthonRaphson u t i l i z a n d o como c r i t e r i o de parada o e r r o

32

Analisde de Arredondamento em Ponto Flutuante

%r e l a t i v o .
function [ ] = newton erro relativo ()
%Entrada
syms x %r e c e b e a f u n c
a o no formato s i m b o l i c o
f = i n p u t d l g ( { f ( x)= } , Func a o ) ; %f e a f u n c a o em formato s t r i n g f
g = i n p u t d l g ( { g ( x)= } , Derivada da Func a o ) ; %g e a d e r i v a d a da f u n c
ao
%no formato s t r i n g g .
p0 = i n p u t d l g ( { p0 : } , Valor i n i c i a l ) ; %ponto i n i c i a l da i n t e r a c a o
d e l t a = i n p u t d l g ( { d e l t a : } , T o l e r a n c i a ) ; %d e l t a e a t o l e r a n c i a
max1 = i n p u t d l g ( { max1 : } , T o l e r a n c i a ) ; %n
u mero maximo de i t e r a c o e s .
p0 = str2num ( p0 { 1 } ) ; %str2num c o n v e r t e uma s t r i n g em um n
u mero ;
d e l t a = str2num ( d e l t a { 1 } ) ;
max1 = str2num ( max1 { 1 } ) ;
uF = matlabFunction ( sym ( f ) , vars , [ x ] , f i l e , fx ) ; %matlabFunction
%t r a n f o r m a a f u n c
a o s i m b o l i c a em f u n c a o nume rica .
d f = matlabFunction ( sym ( g ) , vars , [ x ] , f i l e , gx ) ; %d e r i v a d a da f u n c
ao f

f o r k = 1 : max1
p1 = p0 f e v a l ( uF , p0 ) / f e v a l ( df , p0 ) ;
e r r = abs ( p1 p0 ) ;
r e l e r r=e r r / abs ( p1 ) ;
p0=p1 ;
y=f e v a l ( uF , p0 ) ;
i f r e l e r r <d e l t a
break ;
end
end
i f k == max1
d i s p ( O n
u mero m
aximo de i t e r a c o e s f o i e x c e d i d o )
else
%S ad a s
f p r i n t f ( Func
ao : )
d i s p ( f ) %f u n c
ao
f p r i n t f ( Aproximac
a o para a r a i z : )
d i s p ( p0 ) %p0 e a aproximac a o de NewtonRapshon para a r a i z .
f p r i n t f ( Erro r e l a t i v o para a r a i z aproximada : )
d i s p ( r e l e r r ) %r e l e r r e a e s t i m a t i v a do e r r o r e l a t i v o para p .
f p r i n t f ( Valor da f u n c
a o a p l i c a d o na r a i z aproximada : )
d i s p ( y ) %y e o v a l o r da func a o , f ( p )
f p r i n t f ( N
umero de i t e r a c o e s r e a l i z a d a s : )
d i s p ( k ) %k e o n
u mero de i t e r a c o e s .
end
Por fim, o terceiro utiliza como criterio de parada a funcao aplicada na aproximac
ao para a raz, desta forma sera solicitado como dado de entrada a tolerancia
epsilon.

Introduc
ao

33

Arquivo: newtonfuncaoaplicada.m
Listing 3.5: Algoritmo para o Metodo de Newton-Raphson - Funcao Aplicada
%U i v e r s i d a d e T e c n o l o g i c a F e d e r a l do Parana
%Campus Campo Moura o
%Programa de Apoio ao Recurso D i g i t a l
%Algoritmo para o NewthonRaphson u t i l i z a n d o como c r i t e r i o de parada a
%f u n c
a o a p l i c a d a na aproximac a o para r a i z .
function [ ] = newton funcao aplicada ()

%Entrada
syms x %r e c e b e a f u n c
a o no formato s i m b o l i c o .
f = i n p u t d l g ( { f ( x)= } , Func a o ) ; %f e a f u n c a o em formato s t r i n g f .
g = i n p u t d l g ( { g ( x)= } , Derivada da Func a o ) ; %g e a d e r i v a d a da f u n c
a o no format
p0 = i n p u t d l g ( { p0 : } , Valor i n i c i a l ) ; %ponto i n i c i a l da i n t e r a c a o .
e p s i l o n = i n p u t d l g ( { e p s i l o n : } , T o l e r a n c i a ) ; %e a t o l e r a n i a nos v a l o r e s da f u n c
a
max1 = i n p u t d l g ( { max1 : } , T o l e r a n c i a ) ; %n
u mero maximo de i t e r a c o e s .
p0 = str2num ( p0 { 1 } ) ; %str2num c o n v e r t e uma s t r i n g em um n
u mero ;
e p s i l o n = str2num ( e p s i l o n { 1 } ) ;
max1 = str2num ( max1 { 1 } ) ;
uF = matlabFunction ( sym ( f ) , vars , [ x ] , f i l e , fx ) ; %matlabFunction
%t r a n f o r m a a f u n c
a o s i m b o l i c a em f u n c a o nume rica
d f = matlabFunction ( sym ( g ) , vars , [ x ] , f i l e , gx ) ; %d e r i v a d a da f u n c
ao f

f o r k = 1 : max1
p1 = p0 f e v a l ( uF , p0 ) / f e v a l ( df , p0 ) ;
e r r = abs ( p1 p0 ) ;
r e l e r r=abs ( e r r /p1 ) ;
p0=p1 ;
y=f e v a l ( uF , p0 ) ;
i f abs ( y)< e p s i l o n
break ;
end
end
i f k == max1
d i s p ( O n
u mero m
aximo de i t e r a c o e s f o i e x c e d i d o )
else
%S ad a s
f p r i n t f ( Func
ao : )
d i s p ( f ) %f u n c
ao
f p r i n t f ( Aproximac
a o para a r a i z : )
d i s p ( p0 ) %p0 e a aproximac a o de NewtonRapshon para a r a i z .
f p r i n t f ( Erro r e l a t i v o para a r a i z c a l c u l a d a : )
d i s p ( r e l e r r ) %r e l e r r e a e s t i m a t i v a do e r r o r e l a t i v o para p
f p r i n t f ( Valor da f u n c a o a p l i c a d o na r a i z c a l c u l a d a : )
d i s p ( y ) %y e o v a l o r da func a o , f ( p0 ) .

34

Analisde de Arredondamento em Ponto Flutuante

f p r i n t f ( N
umero de i t e r a c o e s r e a l i z a d a s : )
d i s p ( k ) %k e o n
u mero de i t e r a c o e s .
end

3.11

M
etodo da Secante ou M
etodo de Newton
Modificado

Neste algoritmo j
a n
ao e necess
ario conhecer a derivada da funcao a qual deseja-se
encontrar a raz, porem alem do ponto inicial de iteracao (p0) e preciso inserir como
dado de entrada uma outra aproximacao para raz, no caso p1. Tambem deve-se
entrar com o valor de uma tolerancia epsilon a qual esta relacionada aos valores
da func
ao e uma outra toler
ancia delta que sera o criterio de parada, podendo-se
atribuir um mesmo valor para as tolerancias, alem do n
umero maximo de iteracoes
(max1).
Arquivo: secante.m
Listing 3.6: Algoritmo para o Metodo da Secante ou Metodo de Newton Modificado
%U i v e r s i d a d e T e c n o l o g i c a F e d e r a l do Parana
%Campus Campo Moura o
%Programa de Apoio ao Recurso D i g i t a l
%Algoritmo para o NewthonRaphson M o d i f i c a d o Metodo da S e c a n t e .
function [ ] = secante ()
%Entrada
syms x %r e c e b e a f u n c
a o no formato s i m b o l i c o .
f = i n p u t d l g ( { f ( x)= } , Func a o ) ; %f e a f u n c a o em formato s t r i n g f .
p0 = i n p u t d l g ( { p0 : } , Valor i n i c i a l 1 ) ; %aproximac a o i n i c i a l para a r a i z .
p1 = i n p u t d l g ( { p1 : } , Valor i n i c i a l 2 ) ; %aproximac a o i n i c i a l para a r a i z .
d e l t a = i n p u t d l g ( { d e l t a : } , T o l e r a n c i a ) ; %d e l t a e a t o l e r a n c i a .
max1 = i n p u t d l g ( { max1 : } , T o l e r a n c i a ) ; %n
u mero maximo de i t e r a c o e s .
p0 = str2num ( p0 { 1 } ) ; %str2num c o n v e r t e uma s t r i n g em um n
u mero .
p1 = str2num ( p1 { 1 } ) ;
d e l t a = str2num ( d e l t a { 1 } ) ;
max1 = str2num ( max1 { 1 } ) ;
uF = matlabFunction ( sym ( f ) , vars , [ x ] , f i l e , fx ) ; %matlabFunction
%t r a n f o r m a a f u n c
a o s i m b o l i c a em f u n c a o nume rica .

f o r k=1:max1
p2=p1f e v a l ( uF , p1 ) ( p1p0 ) / ( f e v a l ( uF , p1) f e v a l ( uF , p0 ) ) ;
e r r=abs ( p2 p1 ) ;
r e l e r r=e r r / ( abs ( p2 ) ) ;
p0=p1 ;
p1=p2 ;
y=f e v a l ( uF , p1 ) ;
i f relerr < delta

Introduc
ao

35
break

end
end
i f k == max1
d i s p ( O n
u mero m
aximo de i t e r a c o e s f o i e x c e d i d o )
else
%S ad a s
f p r i n t f ( Func
ao : )
d i s p ( f ) %f u n c
ao
f p r i n t f ( Aproximac
a o para a r a i z : )
d i s p ( p1 ) %p1 e a aproximac a o de NewtonRapshon para a r a i z .
f p r i n t f ( Erro r e l a t i v o para a r a i z c a l c u l a d a : )
d i s p ( r e l e r r ) %r e l e r r e a e s t i m a t i v a do e r r o r e l a t i v o para p
f p r i n t f ( Valor da f u n c a o a p l i c a d o na r a i z c a l c u l a d a : )
d i s p ( y ) %y e o v a l o r da func a o , f ( p1 ) .
f p r i n t f ( N
umero de i t e r a c o e s r e a l i z a d a s : )
d i s p ( k ) %k e o n
u mero de i t e r a c o e s .
end

3.12

M
etodo da Falsa Posic
ao

O algoritmo para este metodo tem como parametros de entrada a funcao f a qual
deseja-se determinar a raz, o intervalo [a,b] no qual esta contida a raz, a tolerancia
(epsilon) e o n
umero m
aximo de iteracoes (max1). O criterio de parada utilizado
e a func
ao aplica na aproximacao da raz, se este valor for menor que a tolerancia
adotada a aproximac
ao para a raz foi encontrada.
Arquivo: falsaposicao.m
Listing 3.7: Algoritmo para o Metodo da Falsa Posicao
%U i v e r s i d a d e T e c n o l o g i c a F e d e r a l do Parana
%Campus Campo Moura o
%Programa de Apoio ao Recurso D i g i t a l
%Algoritmo para o Metodo da F a l s a P o s i c a o .
function [ ] = falsa posicao ()

%Entradas
syms x %r e c e b e a f u n c
a o no formato s i m b o l i c o
f = i n p u t d l g ( { f ( x)= } , Func a o ) ; %f e a f u n c a o em formato s t r i n g f .
a = i n p u t d l g ( { a : } , I n t e r v a l o ) ; %a e o extremo e s q u e r d o do i n t e r v a l o .
b = i n p u t d l g ( { b : } , I n t e r v a l o ) ; %b e o extremo d i r e i t o do i n t e r v a l o .
e p s i l o n = i n p u t d l g ( { e p s i l o n : } , T o l e r a n c i a ) ; % e a t o l e r a n i a nos v a l o r e s da f u n c
max1 = i n p u t d l g ( { max1 : } , T o l e r a n c i a ) ; %n
u mero maximo de i t e r a c o e s .
a = str2num ( a { 1 } ) ; %str2num c o n v e r t e uma s t r i n g em um n
u mero .
b = str2num ( b { 1 } ) ;
e p s i l o n = str2num ( e p s i l o n { 1 } ) ;

36

Analisde de Arredondamento em Ponto Flutuante

max1 = str2num ( max1 { 1 } ) ;


uF = matlabFunction ( sym ( f ) , vars , [ x ] , f i l e , fx ) ; %matlabFunction
%t r a n f o r m a a f u n c
a o s i m b o l i c a em f u n c a o nume rica .

ya=f e v a l ( uF , a ) ; % o comando f e v a l a p l i c a a f u n c a o nos p o n t o s a e b .


yb=f e v a l ( uF , b ) ;
%c =0;
i f ya yb>0
d i s p ( Note que f ( a ) f ( b ) >0 )
c =0;
e r r =0;
yc =0;
return ;
end
f o r k=1:max1
c=(byaayb ) / ( yayb ) ; %f o i t i r a d o o mnimo da f u n c a o da fo mula de
%r e c o r r e n c i a do metodo de NewtonRaphson M o d i f i c a d o .
yc=f e v a l ( uF , c ) ;
i f yc==0
break ;
e l s e i f yb yc>0
b=c ;
yb=yc ;
else
a=c ;
ya=yc ;
end
i f abs ( yc)< e p s i l o n
break
end
end

%S ad a s
f p r i n t f ( Func
ao : )
d i s p ( f ) %f u n c
ao
f p r i n t f ( A aproximac
a o para a r a i z e : )
d i s p ( c ) %c e a aproximac a o a r a i z .
f p r i n t f ( Valor da f u n c a o a p l i c a d o na r a i z c a l c u l a d a : )
d i s p ( yc ) %yc e o v a l o r da f u n c a o a p l i c a d a na r a i z c a l c u l a d a , f ( p0 ) .
f p r i n t f ( N
umero de i t e r a c o e s r e a l i z a d a s : )
d i s p ( k ) %k e o n
u mero de i t e r a c o e s .
end

Introduc
ao

3.13

37

Sistema N
ao Linear

Sem perda de generalidade, consideraremos o caso de duas equacoes a duas incognitas,


isto e, sistemas n
ao lineares da forma:

f (x, y) = 0
(3.13.6)
g(x, y) = 0.
Geometricamente, as razes deste sistema sao os pontos do plano (
x, y), onde as
curvas definidas por f e g se interceptam.

3.13.1

M
etodo de Newton

O metodo de Newton para sistemas nao lineares pe definido por:

i
h
y gfy

xk+1 = xk f gJ(f,g)
i(xk ,yk )
h
gfx f gx

yk+1 = yk J(f,g)

(3.13.7)

(xk ,yk )

com J(f, g) = fx gy fy gx .
Exemplo 3.10. Determinar uma raiz do sistema n
ao linear:
 2
x + y2 = 2
x2 y 2 = 1

(3.13.8)

com precis
ao de 103 , usando o metodo de Newton e considerando (x0 , y0 ) =
(1.2, 0.7).

38

Analisde de Arredondamento em Ponto Flutuante

Bibliografia
[1] BARROSO, L. C. C
alculo Numerico (com aplicac
oes). Sao Paulo: Harbra Editora Ltda, 1987.
[2] BURDEN, R.; FAIRES, J. An
alise Numerica. 3. ed. Sao Paulo: Pioneira Thomson Learning, 2003.
[3] CHAPRA, S. C.; CANALE, R. P. Metodos Numericos para Engenharia. Sao
Paulo: Mc Graw Hill, 2008.
[4] FRANCO, N. B. C
alculo Numerico. Sao Paulo: Pearson Prentice Hall, 2006.
[5] MATHEWS, J. H.; FINK, K. D. Numerical Methods Using MatLab. 1. ed. Borre:
Prentice Hall Upper Saddle Biver NJ 07458, 1999.
[6] RUGGIERO, M. A. G.; LOPES, V. L. R. C
alculo numerico: aspectos te
oricos e
computacionais. S
ao Paulo: Makron Books, 1997.

39

S-ar putea să vă placă și