Escolar Documentos
Profissional Documentos
Cultura Documentos
Notas de Aula:
Revisão
ORIENTAÇÕES
Prezado aluno, seguem as notas de aula de nosso curso até aqui. É importante
lembrar que elas são um resumo com os principais pontos abordados em sala e o
seu caráter sintético, portanto, abstrai e não substitui as demonstrações vistas em
sala e as implementações em linguagem específica praticadas no laboratório.
Problema Levantamento
Real de dados
Mesmo que todas as fases do fluxograma acima tenham sido realizadas corretamente,
ainda podem-se obter resultados finais totalmente diferentes do que se esperava. Estes
resultados dependem também:
da precisão dos dados de entrada;
da forma com que os dados são representados na maquina;
das operações numéricas realizadas.
I – 3140000m 2
II – 3141600m 2
III – 3141592,65m 2
a j j a j 1 j 1 ... a1 1 a0 0
Desta forma, ficará mais simples analisar uma forma de converter um número do sistema
binário para o sistema decimal. Vejamos como converter o número (110111) 2 :
(110111) 2 1.25 1.2 4 0.23 1.2 2 1.21 1.2 0
Exemplo (3) Converter os números abaixo do sistema binário para o sistema decimal.
(a) (10111) 2
(b) (1101) 2
Solução:
Vamos agora criar um algoritmo para esta conversão. Considere, por exemplo, o número
(1101) 2 , isto é, (1101) 2 1.23 1.2 2 0.21 1.2 0 .
Pode-se criar um algoritmo de forma genérica para esta conversão. De modo geral, a
representação de um número (a j a j 1 ...a1a0 ) 2 na base 10, que denotaremos por b0 é obtida
da seguinte forma:
bj a j
b j 1 a j 1 2b j
b j 2 a j 2 2b j 1
b1 a1 2b2
b0 a a 2b1
De modo geral, ao considerarmos um número N qualquer na base 10, N Z , e sua
representação binária dada por (a j a j 1 ...a1a0 )10 , podemos utilizar o seguinte algoritmo,
onde a cada k, se obtém o dígito binário a k . Vejamos:
Passo 0: Para k 0 , temos N k N .
Passo 1: Obtenha q k e rk tais que N k 2.qk rk .
Faça a k rk
Passo 2: Se q k 0 , pare.
Caso contrário, faça N k 1 qk .
Faça k k 1 e volte para o Passo 1.
Onde,
: base em que a máquina opera;
t : número de dígitos da mantissa;
0 d j 1, com j 1,2,..., t e d1 0 ;
e : expoente no intervalo [e1 , e2 ] , com e1 0, e2 1 e e1 , e2 Z .
Em qualquer máquina, poucos números reais são representados exatamente, e, portanto, a
representação de um número real será feita por truncamento ou arredondamento. Vejamos
um exemplo:
G {x IR | m | x | M } .
I – x G : x 235,89
II – | x | m : x 0,354.10 9
III – | x | M : x 0,621.10 7
Observações:
EAx x x .
Definição: Erro relativo é a razão entre o erro absoluto e o valor aproximado, ou seja,
EAx x x
ER x
x x
Graficamente, os zeros reais de funções reais são representados pelas abscissas dos pontos
onde uma curva intercepta o eixo-x.
Na maioria destes métodos, partiremos de uma aproximação inicial para o zero e em
seguida refinaremos essa aproximação através de processos iterativos. Por esse motivo, os
métodos contêm duas fases:
Nesta fase é feita uma análise teórica e gráfica da função f (x) . É importante frisar que o
sucesso da Fase II depende muito da precisão desta primeira análise.
Uma forma de se isolar as raízes de f (x) usando os resultados anteriores é tabelar f (x)
para vários valores de x e analisar as mudanças de sinal de f (x) e o sinal da derivada nos
intervalos em que f (x) mudou de sinal.
x -90 -9 -5 -3 -1 0 1 2 3 4
f (x) - - - - + + + - - + + +
Como f (x) é contínua em IR , de acordo com as variações de sinal, podemos concluir que
cada um dos intervalos I1 [5,3] , I 2 [0,1] e I 3 [2,3] contém pelo menos uma raiz
em f (x) . E ainda, como f (x) é polinomial, podemos afirmar que cada intervalo contém
uma única raiz.
Mas este processo pode ser bastante trabalhoso, uma vez que se podem fazer diversas
tentativas até se encontrar as mudanças de sinal. Por isso, vamos estudar outros resultados
teóricos para obtenção de raízes de funções. Mas estes resultados são úteis apenas para
funções polinomiais.
Com ai IR e a n 0 tem exatamente n raízes, reais ou complexas, desde cada raiz seja
contada de acordo com sua multiplicidade.
Cada iteração utiliza resultados das iterações anteriores e efetua determinados testes que
permitem verificar se foi atingido um resultado próximo o suficiente do resultado esperado,
e estes métodos iterativos fornecem apenas uma aproximação para a solução exata.
Para saber que tipo de teste efetuar para verificar se x k está suficientemente próximo da
raiz exata é necessário saber o que é raiz aproximada, pois existem duas interpretações para
raiz aproximada que nem sempre levam ao mesmo resultado:
(i) | x |
(ii) | f ( x ) |
Resposta: Uma forma é reduzir o intervalo que conte a raiz a cada iteração. Ao se
conseguir um intervalo [a, b] tal que:
[a, b]
, então x [a, b] , | x | . Portanto, x [a, b] pode ser tomado como x .
b a
Nem sempre é possível ter as exigências (i) e (ii) satisfeitas simultaneamente, por isso os
métodos numéricos são desenvolvidos de forma a satisfazer pelo menos um destes critérios.
OBS: Em programas computacionais, além do teste de parada usado para cada método,
deve-se ter o cuidado de estipular um número máximo de iterações para se evitar que o
programa entre em “looping” devido a erros no próprio programa ou a inadequação do
método usado para o problema em questão.
Objetivo: reduzir a amplitude do intervalo que a raiz está até se atingir à precisão desejada:
(b a) , e, para isso faz-se divisões sucessivas de [a, b] pela metade.
Graficamente,
ITERAÇÕES:
f (a0 ) 0 (a0 , x0 )
a b0
x0 0 f (b0 ) 0 a1 a0
2 f ( x ) 0 b x
0 1 0
f (a1 ) 0 ( x1 , b1 )
a b
x1 1 1 f (b1 ) 0 a 2 x1
2 f ( x ) 0 b b
1 2 1
f (a 2 ) 0 ( x 2 , b2 )
a b2
x2 2 f (b2 ) 0 a3 x 2
2 f ( x ) 0 b b
2 3 2
Exemplo (11) Aplicar o Método da Bissecção para f ( x) x 3 9 x 3 no intervalo [0,1]
com precisão 10 3 .
Solução:
II – Método de Newton-Raphson
Antes de estudarmos este método é importante sabermos um pouco sobre sua origem. Este
método foi criado para na tentativa de acelerar o Método do Ponto Fixo (MPF), uma vez
que o MPF é mais importante nos conceitos que são introduzidos em seu estudo do em que
sua eficiência computacional.
Para estudar o MPF devemos considerar uma função f (x) contínua no intervalo [a, b] , que
contém uma raiz da equação f ( x) 0 . Este método consiste em transformar f (x) em uma
equação equivalente x (x) e a partir de uma aproximação inicial x 0 gerar uma
sequência {x k } de aproximações para pela relação xk 1 ( xk ) , pois a função (x) é
tal que f ( ) 0 se e somente se ( ) . Desta forma o problema muda, ou seja, ao
invés de encontrarmos uma raiz para f (x) , devemos encontrar uma raiz para (x) .
Uma função (x) que satisfaz a condição anterior é chamada de função de iteração para a
equação f ( x) 0 .
Pelo exemplo, podemos notar que dada uma equação f ( x) 0 , existem infinitas funções
de iteração (x) para a equação f ( x) 0 .
Agora que conhecemos um pouco sobre o MPF, poderemos voltar ao estudo do Método de
Newton-Raphson. O Método de Newton-Raphson faz, na tentativa de garantir e acelerar a
convergência do MPF, a escolha de uma função de iteração (x) tal que ' ( ) 0 .
Então, dada a função f ( x) 0 e partindo da forma geral para (x) , queremos obter a
função A(x) tal que ' ( ) 0 .
( x) x A( x) f ( x)
' ( x) 1 A' ( x) f ( x) A( x) f ' ( x)
' ( ) 1 A' ( ) f ( ) A( ) f ' ( ) ' ( ) 1 A( ) f ' ( ).
Assim,
1
' ( ) 0 1 A( ) f ' ( ) 0 A( ) ,
f ' ( )
1
donde, tomamos A( x) .
f ( x)
f ( x)
Então, dada f (x) , a função de iteração ( x) x será tal que ' ( ) 0 , pois como
f ' ( x)
podemos verificar:
[ f ' ( x)]2 f ( x) f ' ' ( x) f ( x) f ' ' ( x)
' ( x) 1
[ f ' ( x)]2 [ f ' ( x)]2
OBS: Em geral, afirma-se que o Método de Newton converge desde que x 0 seja escolhido
“suficientemente próximo” da raiz , isto, devido ao fato das hipóteses do teorema da
convergência do MPF estão satisfeitas.
Podemos observar que de início existe uma divergência da região onde estão as raízes, mas,
a partir de x 7 , os valores aproximam-se cada vez mais de 3 . A causa da divergência inicial
é que x 0 está próximo de 3 que é uma raiz de f ' ( x) e esta aproximação gera
x1 1,6666667 3 que é outro zero de f ' ( x) , pois
f ' ( x) 3 x 2 9 f ' ( x) 0 x 3
Exemplo (16) Aplicar o Método de Newton-Raphson para encontrar a raiz da função
f ( x) x 2 9 x 3 , com x0 0,5 , 10 4 e, sabendo-se que (0,1) .
Solução:
Iterações x f (x)
0 0,5 0,1375.10
1 0,333333333 0,373703.10 1
2 0,337606838 0,1834054.10 4
Assim,
x 0,337606838 e f (x ) 1,834054.10 5 .
Capitulo 3 – Resoluções de Sistemas Lineares
Passo 2:
Use a11 como pivô para eliminar x1 de todas as equações exceto a primeira.
Isto é:
Para i = 2 até n faça
Li = -ai1 * L1 + a11 * Li
fimPara
Passo 3:
Examine cada nova equação L:
a) Se L tem a forma 0x1 + 0x2+0x3 + ... +0xn = 0, ou se L é múltiplo de outra
equação, retire L do Sistema.
Passo 4:
Repita os Passos 1, 2 e 3 com o sistema formado por todas as equações a
partir da primeira.
Passo 5:
Continue o processo até que o sistema esteja na forma escalonada ou que
apareça uma equação degenerada tal como em (b) do Passo 3.
Método Babilônico:
Sendo:
L: Matriz triangular inferior com diagonal unitária.
D: Matriz diagonal
U: Matriz triangular superior com diagonal unitária.
Passo 0:
Criar uma matriz L singular a partir do tamanho de A.
Passo 1:
Multiplicar a primeira linha de L pela primeira coluna de LT e isolar l11.
(l11)2 = a11. Logo é fácil obter o valor do elemento l11 como sendo a raiz
quadrada de a11.
Passo 2:
Passo 3:
Repetir o passo anterior, multiplicando a primeira linha de L, pelas terceira,
quarta, até a n-éssima coluna de LT.
l31 = a13/l11
l41 = a14/l11
ln1 = a1n/l11
yi = ( bi - ∑𝒊−𝟏
𝒋=𝟏 lijyj)/ lii i = { 1, 2, …, n}
Método de Jacobi
Assim: Ax = b equivale a:
(D + E + F) x = b
Dx + (E+F)x = b
Assim: Ax = b equivale a:
(D + E + F) x = b
(D + E)x + Fx = b
k k-1
Portanto: x = Sx + d.
k k-1
Ou, se preferir sem calcular a inversa: (D+E)x = -Fx b
4. 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 é estimar o valor de f(x) para um valor de x que não tenha sido
medido, como por exemplo, x=2.0.
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).
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)
p(x1)=f(x1) (5.1)
...
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)} (ver o livro texto Noções de Cálculo Numérico para
uma demonstração dessa proposição).
Forma de Lagrange
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 ( x0 ) L1 ( x) f ( x1 ) Ln ( x) f ( xn ) (5.2)
onde os Lk(x) são polinômios tais que:
Lk xi ki (5.3)
sendo que:
0 se, k i
ki (5.4)
1 se, k i
Portanto,
p( x 0 ) L0 ( x 0 ) f ( x 0 ) L1 ( x 0 ) f ( x1 ) Ln ( x 0 ) f ( x n )
p( x 0 ) 1 f ( x 0 ) 0 f ( x1 ) 0 f ( x n )
p( x 0 ) f ( x 0 )
e,
p( x1 ) L0 ( x1 ) f ( x 0 ) L1 ( x1 ) f ( x1 ) Ln ( x1 ) f ( x n )
p( x1 ) 0 f ( x 0 ) 1 f ( x1 ) 0 f ( x n )
p( x1 ) f ( x1 )
ou seja:
p( xi ) f ( xi )
o que mostra que o polinômio interpolador p(x) passa exatamente sobre os pontos {xi,f(xi)}
da tabela dada.
Temos agora que encontrar os polinômios Lk(x), que satisfaçam (3). Uma função
que satisfaz a condição (3) é:
x x x x x x x x x x
k 1 k 1
Lk ( x )
0 1 n
x x x x x x x x x x
k 0 k 1 k ki 1 k ki 1 k n
Lk x k 1 e
Lk xi 0 se, i k
e,
x x
n
j
j 0
j i
Li x
x
n
i xj
j 0
j i
Exemplo:
Ajuste uma reta aos seguintes pontos:
x 2 4
x x1 x x0
px f x0 f x1
x0 x1 x1 x0
x 4 x 2
p x 3.1 5.6 1.55 x 4 2.8 x 2
24 42
px 1.25 x 0.6
Forma de Newton
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 x0
f x0 , 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 , x2 f x0 , x1
f x0 , x1 , x2
x2 x0
f x 2 , x 3 f x1 , x2
f x1 , x 2 , x 3
x3 x1
f x1 , x2 , x3 f x0 , x1 , x2
f x0 , x1 , x2 , x3 x3 x0
0,536 0,813
0,923
0,487 0,923
0,1 0,813
0, 4 0,1
2,350
0,7 0,1 2,343 2,350
0,008
1 0,1
0,4 0,536 0,682 0,536
0, 487
0,7 0, 4
1,893 0,487
2,343
0,7 0,682 1 0,4
1, 25 0,682
1,893
1 0,7
1,250
2,354 2,343
1 0,014
3,07 1,893 1,2 0,4
2,354
1, 2 0,7
1,864 1, 25
3,07
1,2 1,864 1, 2 1
0,014 (0,008 )
f[xi , xi+1 , xi+2 , xi+3 , xi+4 ] =1,2 0,1 0,02
f x f x0
f x0 , x x x0
(5.10)
p0(x)=f(x0) (5.12)
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 de f(x) em qualquer ponto x (veja expressão (5.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:
pois,
p1 x0 f x0 x0 x0 f x0 , x1 f x0 (5.20)
f x1 f x0
p1 x1 f x0 x1 x0 f x0 , x1 f x0 x1 x0 f x1 (5.21)
x1 x0
Exemplo: Dado:
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
0,4
1,8 0,4
0,5 0,2
2
0,9 0,2
0,5 5,00
5,72 5,00
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 (5.9):
p( x) 2 x 2 x 5