Escolar Documentos
Profissional Documentos
Cultura Documentos
UFF Metodos Numericos
UFF Metodos Numericos
INTRODUO AOS
MTODOS
NUMRICOS
Prof. Diomar Cesar Lobo
Trabalho original preparado por: Prof. Ionildo Jos Sanches e Prof. Digenes Lago Furlan
Universidade Federal do Paran. Departamento de Informtica CI-202
URL: http://www.professores.uff.br/diomar_cesar_lobao
SUMRIO
1
INTRODUO .....................................................................................................................................4
CONCEITO DE ERRO........................................................................................................................5
2.1
2.2
2.3
2.4
2.5
2.6
INTRODUO .....................................................................................................................................5
ERROS NA FASE DE MODELAGEM ......................................................................................................5
ERROS NA FASE DE RESOLUO ........................................................................................................5
ERROS ABSOLUTOS E RELATIVOS ......................................................................................................5
ERRO DE ARREDONDAMENTO............................................................................................................6
ERRO DE TRUNCAMENTO...................................................................................................................7
INTRODUO .....................................................................................................................................9
SISTEMA DE NUMERAO ...............................................................................................................10
3.2.1
3.2.2
3.2.3
3.3
3.4
4
INTRODUO ...................................................................................................................................17
4.1.1
4.1.2
4.1.3
4.1.4
4.2
4.2.1
4.2.2
4.2.3
4.3
Exemplos...............................................................................................................................................33
4.7.1
4.8
Consideraes finais.............................................................................................................................29
Exemplos...............................................................................................................................................29
Condies de Newton-Raphson-Fourier...............................................................................................30
4.6.1
4.7
4.5.1
4.5.2
4.5.3
4.6
4.4.1
4.4.2
4.4.3
4.5
4.3.1
4.3.2
4.3.3
4.4
Exemplos...............................................................................................................................................34
4.8.1
4.8.2
4.8.3
Introduo.............................................................................................................................................35
Localizao de Razes...........................................................................................................................35
Determinao das Razes Reais............................................................................................................37
4.8.4
INTRODUO ...................................................................................................................................41
5.1.1
5.2
5.3
INTERPOLAO ..............................................................................................................................66
6.1
INTRODUO ...................................................................................................................................66
6.1.1
6.2
6.3
6.7.1
6.7.2
6.7.3
6.7.4
6.8
Obteno da Frmula...........................................................................................................................72
Exemplos: .............................................................................................................................................73
6.6.1
6.6.2
6.6.3
6.7
Obteno da Frmula...........................................................................................................................69
Exemplos...............................................................................................................................................69
6.4.1
6.4.2
6.5
6.6
Obteno da Frmula...........................................................................................................................67
Exemplos...............................................................................................................................................68
6.3.1
6.3.2
6.4
Conceito de Interpolao......................................................................................................................66
6.2.1
6.2.2
6.8.1
6.8.2
6.8.3
6.8.4
Spline Linear.........................................................................................................................................81
Spline Quadrtica.................................................................................................................................84
Spline Cbica Natural ..........................................................................................................................87
Consideraes Gerais sobre Interpolao ...........................................................................................93
7.1.1
7.1.2
5.4.1
5.4.2
5.4.3
5.4.4
5.4.5
5.4.6
5.4.7
5.3.1
5.4
5.2.1
5.2.2
5.2.3
5.2.4
INTEGRAO NUMRICA..........................................................................................................103
8.1
INTRODUO .................................................................................................................................103
8.1.1
8.2
8.2.1
8.3
8.3.1
8.3.2
8.4
8.4.1
8.4.2
Exemplos.............................................................................................................................................106
INTRODUO .................................................................................................................................112
TIPOS DE EQUAES DIFERENCIAIS ...............................................................................................112
9.2.1
9.2.2
9.3
9.4
9.5
9.6
9.6.1
Mtodo de Euler..................................................................................................................................117
9.7 ANLISE DO ERRO PARA O MTODO DE EULER NA SOLUO NUMRICA DO PROBLEMA DE VALOR
INICIAL ....................................................................................................................................................120
9.8 MTODO DE EULER MODIFICADO..................................................................................................121
9.8.1
9.8.2
9.8.3
9.8.4
9.8.5
9.8.6
Mtodo Heum......................................................................................................................................124
Mtodo Runge-Kutta...........................................................................................................................127
Derivao do Mtodo de Runge-Kutta de Segunda Ordem................................................................128
Mtodo de Heun..................................................................................................................................128
Mtodo de Euler Modificado ..............................................................................................................129
Mtodo de Ralston ..............................................................................................................................129
9.13
10
Mtodos Explcitos..............................................................................................................................134
Algoritmos de Adans-Bashforth de ordem m ......................................................................................134
Mtodos Implcitos..............................................................................................................................134
Algoritmos de Adans-Moulton de ordem m ........................................................................................134
Passos para se obter y n +1 ..................................................................................................................135
1 Introduo
Clculo Numrico a obteno da soluo de um problema pela aplicao de mtodo numrico; a
soluo do problema ser caracterizada, ento, por um conjunto de nmeros, exatos ou aproximados.
Mtodo Numrico um algoritmo composto por um nmero finito de operaes envolvendo
apenas nmeros (operaes aritmticas elementares, clculo de funes, consulta a uma tabela de valores,
consulta a um grfico, arbitramento de um valor, etc.).
Problema
Fsico
Modelagem
Modelo
Matemtico
Resoluo
Soluo
2 Conceito de Erro
2.1
Introduo
A noo de erro est presente em todos os campos do Clculo Numrico. De um lado, os dados,
em si, nem sempre so exatos e, de outro lado, as operaes sobre valores no exatos propagam esses
erros a seus resultados. Finalmente, os prprios mtodos numricos, freqentemente mtodos
aproximados, buscam a minimizao dos erros, procurando resultados o mais prximo possvel do que
seriam valores exatos.
Erro a diferena entre o valor exato e o valor apresentado.
No prximo captulo, sobre representao de nmeros reais, iremos analisar vrias situaes em
que ocorrem erros, quando utilizamos o computador para realizar os clculos. A seguir, analisaremos os
erros que ocorrem durante as fases de modelagem e resoluo e tambm sobre erros de arredondamento e
erros de truncamento.
2.2
: distncia percorrida
: distncia inicial
: velocidade inicial
: tempo
: acelerao
N = N + EAN
EAN = N N
Erro absoluto
Por exemplo, sabendo-se que (3.14, 3.15) tomaremos para um valor dentro deste intervalo e
teremos, ento, |EA| = | - | < 0.01.
Erro Relativo definido como o erro absoluto dividido pelo valor aproximado:
ER N
EAN
N'
N N'
N'
Erro Relativo
claro que EAN s poder ser determinado se N for exatamente conhecido; como isso raro, em
clculos numricos costuma-se trabalhar com uma limitao mxima para o erro, ao invs do prprio
(indicando-se, ento, | E | < , onde o limite).
Por exemplo, se = 3876.373 e s desejamos a parte inteira , o erro absoluto ser:
= | ' | = 0.373
Se fizermos o mesmo com o nmero = 1.373, teremos:
= | ' | = 0.373
Obviamente, o efeito de aproximao de muito maior do que em , mas o erro absoluto o
mesmo nos dois casos. O erro relativo, entretanto, pode traduzir perfeitamente este fato, pois:
0,373
0,373
=
0,000096 < 10-4
=
0,373 < 5*100
3876
1
2.5
Erro de Arredondamento
Ao se aplicar um mtodo numrico, os erros devidos aos valores iniciais, intermedirios e finais
conduzem a um erro global (diferena entre o exato e o obtido) tambm chamado de arredondamento.
Erros iniciais so os cometidos no arredondamento dos dados iniciais. Os erros intermedirios so
decorrentes dos erros cometidos durante a aplicao do mtodo numrico e os erros finais decorrentes da
apresentao final do resultado.
O uso deste critrio limita o erro a meia unidade da ltima casa conservada:
E=
Os valores aproximados obtidos podem ser inferiores (valor aproximado por falta) ou superiores
(valor aproximado por excesso) aos exatos; 1.41 o valor aproximado, por falta, de 2 ; 1.26 o valor de
3
2 , aproximado por excesso.
Para concluir este item de erro de arredondamento, deve-se ressaltar a importncia de se saber o
nmero de dgitos significativos do sistema de representao da mquina que est sendo utilizada para
que se tenha a noo da preciso do resultado obtido.
Alm da preciso decimal, o clculo do chamado psilon da mquina nos d uma idia da
exatido da mquina.
O da mquina o menor nmero de ponto flutuante, tal que: 1 + > 1. Alguns mtodos para
clculo de no do seu valor exato, mas isto nem sempre necessrio, pois o que importa a sua ordem
de grandeza.
O programa abaixo, escrito na linguagem Matlab, calcula uma aproximao do da mquina:
Eps=1.0;
while (Eps + 1 > 1)
Eps = Eps / 2.0;
sprintf('A maquina acha que %1.25f%s',Eps,'
end;
vale zero!')
vale zero!
2.6
Erro de Truncamento
So erros provenientes da utilizao de processos que deveriam ser infinitos ou muito grandes
para a determinao de um valor e que, por razes prticas, so truncados.
Estes processos infinitos so muito utilizados na avaliao de funes matemticas, tais como,
exponenciao, logaritmos, funes trigonomtricas e vrias outras que uma mquina pode ter.
Exemplo: Uma mquina poderia calcular a funo seno(x) e exponencial(x) utilizando as seguintes
tcnicas:
3
5
7
x
x
x
seno(x) = x
+
+ ...
3!
5!
7!
ex = 1 +
x
+
2!
x +
x
+ ...
3!
Fazendo truncamento:
seno(x) x
x
+
3!
5!
x
x
+ ... + ( 1)n
7!
n!
ex 1 +
x +
x
+
2!
x
x
+ ... +
3!
n!
Introduo
{{
{ {
Complexos (2+3-1 )
Irracionais (; 2 )
Nmeros
Reais
Inteiros (-1004; 2)
Racionais
Fracionrios
Algumas das propriedades bsicas da aritmtica real no valem mais quando executadas no
computador, pois, enquanto na matemtica alguns nmeros so representados por infinitos dgitos, no
computador isso no possvel, pois uma palavra de memria finita e a prpria memria tambm.
Exemplos:
2,
3, e
1
.
3
10
sero convertidos para o sistema decimal e, finalmente, sero transmitidos ao usurio. Todo este processo
de converso uma fonte de erros que afetam o resultado final dos clculos.
Na prxima seo, iremos estudar os processos de converso de nmeros do sistema decimal para
o sistema binrio e vice-versa. Estudaremos tambm a forma de armazenamento feita pelos computadores
digitais.
3.2
Sistema de Numerao
Existem vrios sistemas numricos, dentre os quais destacam-se o sistema decimal (base 10), o
octal (base 8) e o hexadecimal (base 16).
Em um sistema numrico com base , existem dgitos e o maior 1. De um modo geral, um
nmero na base , (ajaj-1...a2a1a0), 0 ak ( 1), k = 1, 2, ..., j, pode ser escrito na forma polinomial:
No sistema de numerao usual, o sistema decimal, usamos dez dgitos 0, 1, ..., 9. Um nmero
maior que 9 representado usando uma conveno que atribui significado posio ou lugar ocupado por
um dgito. Por exemplo, em virtude das posies ocupadas pelos dgitos individuais no nmero 2015, este
nmero tem significado numrico calculado como:
2015 = 2*103 + 0*102 + 1*101 + 5*100 = 2000 + 0 + 10 + 5 = 2015
Notamos que um nmero expresso como uma soma de potncias de 10 multiplicadas por
coeficientes apropriados. No sistema decimal, 10 a base do sistema. Existem 10 dgitos, o maior sendo
9. Em um sistema numrico com base , existem dgitos e o maior -1.
3.2.2
11
19
LSB 1
2
9
1
2
4
0
2
2
0
2
1
1
2
0
MSB
19(10) = 10011(2)
O bit menos significativo de um nmero binrio recebe a notao de LSB (Least Significant Bit) e
o bit mais significativo de MSB (Most Significant Bit).
3.2.3.1
r1 = r; k = 1
Passo 1:
Calcule 2rk.
Se 2rk = 1, faa: dk = 1,
caso contrrio, faa: dk = 0
Passo 2:
Passo 3:
k = k + 1.
Volte ao passo 1.
Observar que o algoritmo pode ou no terminar aps um nmero finito de passos. Para r =
(0.125)10 teremos: r1 = 0.125.
k = 1 2r1 = 0.25
d1 = 0
r2 = 0.25 d1 = 0.25
k = 2 2r2 = 0.5
d2 = 0
12
r3 = 0.5
k = 3 2r3 = 1.0
d3 = 1
r4 = 0
Temos ento 0.12510 = 0.0012, sendo portanto a representao binria finita. J para r = 0.110,
teremos: r1 = 0.1
k = 1 2r1 = 0.2
d1 = 0
r2 = 0.2
k = 2 2r2 = 0.4
d2 = 0
r3 = 0.4
k = 3 2r3 = 0.8
d3 = 0
r4 = 0.8
k = 4 2r4 = 1.6
d4 = 1
r5 = 0.6
k = 5 2r5 = 1.2
d5 = 1
r6 = 0.2 = r2
Como r6 = r2, teremos que os resultados para k de 2 e 5 se repetiro e ento: r10 = r6 = r2 = 0.2 e
assim indefinidamente.
Conclumos que: (0.1)10 = (0.00011001100110011...)2 e, portanto, o nmero (0.1)10 no tem
representao binria finita.
O fato de um nmero no ter representao finita no sistema binrio pode acarretar a ocorrncia de
erros aparentemente inexplicveis em clculos efetuados em sistemas computacionais binrios.
Um computador que opera no sistema binrio ir armazenar uma aproximao para (0.1)10, uma
vez que possui uma quantidade fixa de posies para guardar os dgitos de mantissa de um nmero, e esta
aproximao ser usada para realizar os clculos. No se pode, portanto, esperar um resultado exato.
Podemos agora entender melhor por que o resultado da operao:
1000
S=
01.
n=1
no obtido corretamente num computador. Supondo uma mquina digital que trabalhe com apenas 9
dgitos na mantissa, o nmero (0.1)10 seria armazenado como (0.000110011)2 e este nmero representa
exatamente (0.099609375)10. Portanto, todas as operaes que envolvem (0.1)10 seriam realizadas com
esta aproximao. Veremos na prxima seo a representao de nmeros em aritmtica de ponto
flutuante com o objetivo de se entender melhor a causa de resultados imprecisos em operaes numricas.
1000
x=0;
for i=1:1000
x = x + 0.1;
sprintf('x = %0.20f', x)
end
13
3.3
d1
x=
d2
d3
dt
+ ... +
onde:
: a base em que a mquina opera;
di: so nmeros inteiros contidos no intervalo 0 di ( - 1); i = 1, 2, ..., t; d1 0;
e: representa o expoente de e assume valores entre I e S;
I, S: limite inferior e limite superior, respectivamente, para a variao do expoente.
d1
1
d2
d3
dt
chamada de mantissa e a parte do nmero que representa
t
+ ... +
2
2
10
5
3
10
3
3.141510 = 0.31415 101 = 1
10
10
10
4
3
10
10
5
5
10
10
0
2
1
3
2
1
* 23
2
Exemplo 2: Numa mquina de calcular cujo sistema de representao utilizado tenha =2, t = 10, I = 15
e S = 15, o nmero 2510 e 3.510 assim representado:
2510 = 110012 = 0.11001 * 25 = 0.11001 * 2101 sendo (5)10 = (101) 2
1
0
0
1
0
0
0
0
0
1
101
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 * 2
2
2
2
2
2
2
2
2
2
2
14
0101
expoente
Cada dgito chamado de bit, portanto, nesta mquina so utilizados 10 bits para a mantissa, 4
para o expoente e mais um bit para o sinal da mantissa (se bit=0 positivo, se bit=1 negativo) e um bit para
o sinal do expoente, resultando, no total, 16 bits, que so assim representados:
2510 =
0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1
Valor da Mantissa
Expoente
Sinal da Mantissa
Sinal Exp.
Logo, os nmeros que podem ser representados nesta mquina estariam contidos no intervalo
[32736; 32736].
Nesta mquina, ainda, o valor zero seria representado por:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
O prximo nmero positivo representado seria:
0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1
0.1 * 2-15 = 0.000015259
O subsequente seria:
0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1
0.1000000001 * 2-15 = 0.000015289
Atravs desses exemplos pode-se concluir que o conjunto dos nmeros representveis neste
sistema um subconjunto dos nmeros reais, dentro do intervalo mostrado anteriormente.
Considere, por exemplo, uma mquina que opera no sistema:
= 10;
t = 3;
e [-5,5].
15
Tipo
float
double
long double
N de bits
32
64
80
Intervalo
Inicio
Fim
3.4E38
1.7E308
3.4E4932
3.4E+38
1.7E+308
3.4E+4932
O tipo long double o tipo de ponto flutuante com maior preciso. importante observar que os
intervalos de ponto flutuante, na tabela acima, esto indicados em faixa de expoente, mas os nmeros
podem assumir valores tanto positivos quanto negativos.
3.4
Propagao de Erros
Durante as operaes aritmticas de um mtodo, os erros dos operandos produzem um erro no
resultado da operao; sendo A, a, B, b os valores exatos e aproximados, respectivos, e Ea e Eb, os erros
dos operandos.
A + B = (a + Ea) + (b + Eb) = a + b + Ea + Eb
A B = (a + Ea) (b + Eb) = a b + Ea Eb
EAA+B = Ea + Eb
EAA-B = Ea Eb
16
Exemplo: Suponha-se que as operaes abaixo sejam processadas em uma mquina com 4 dgitos
significativos e fazendo-se: x1 = 0.3491*104 e x2 = 0.2345*100 tem-se:
(x2 + x1) x1 = (0.2345*100 + 0.3491*104) 0.3491*104
= 0.3491*104 0.3491*104
= 0.0000
x2 + (x1 x1) = 0.2345*100 + (0.3491*104 0.3491*104)
= 0.2345 + 0.0000
= 0.2345
Os dois resultados so diferentes, quando no deveriam ser, pois a adio uma operao
distributiva. A causa desta diferena foi um arredondamento feito na adio (x2 + x1), cujo resultado tem 8
dgitos. Como a mquina s armazena 4 dgitos, os menos significativos foram desprezados.
Ao se utilizar mquinas de calcular deve-se estar atento a essas particularidades causadas pelo erro
de arredondamento, no s na adio, mas tambm nas outras operaes.
17
Introduo
Seja F(x) uma funo real definida num intervalo [a, b]. Chama-se raiz(es) desta funo em [a, b]
a todo (csi) (a, b) tal que F() = 0, como mostra a figura abaixo.
y
f(x)
a
0
4.1.1
x 0
y
x
= lim
x a
f ( x ) f (a )
xa
lim
x 0
f ( a + x ) f ( a )
x
Tipos de Mtodos
Pode-se dizer que so dois os mtodos para se achar a(s) raiz(es) de uma equao:
Mtodo direto: quando fornece soluo em apenas um nico passo. Esta raiz exata, a menos de
erros de arredondamento.
Exemplo: Seja F(x) = x2 3x + 2. A soluo direta pode ser obtida atravs da frmula de Baskara com a
b b2 4ac
expresso: X =
, que ter como conjunto soluo {1, 2}.
2a
a = 1; b = -3; c = 2;
delta = b*b - 4*a*c;
if (delta >= 0)
Mtodo iterativo ou indireto: um processo de clculo infinito, recursivo, em que o valor obtido
a cada passo depende de valores obtidos em passos anteriores. Este tipo de mtodo, na maioria das vezes,
no obtm soluo exata para as razes, mas sim uma soluo aproximada dentro de uma faixa de erro
considerada aceitvel.
importante salientar, que normalmente, os mtodos iterativos so mais precisos quando
executados em um computador que permite agilizar os clculos matemticos, obtendo assim uma melhor
preciso.
18
Exerccio: Calcular
4 e de
+ x n 1
x
, para n = 1, 2, 3, ...
x n = n 1
2
onde: x: o nmero a ser calculado a raiz
x0: uma atribuio inicial qualquer diferente de zero (por exemplo, x0 = 1).
Como vimos anteriormente, o clculo das duas razes de uma equao do segundo grau, colocada
sob a forma ax2 + bx + c = 0, so facilmente obtidas pela frmula de Baskara. Entretanto, se colocarmos
uma expresso em que aparea uma equao transcendente, a soluo j no to simples, como
demonstram os exemplos abaixo:
ex + x = 0
cos(x) x = 0
ln(x) + x 2 = 0
Mesmo um polinmio de grau maior que trs j no tem uma soluo algbrica simples como a da
equao do segundo grau, a no ser em casos particulares. Vamos analisar como enfrentar esse problema,
to comum em diversas reas da engenharia, da economia, das cincias, da fsica, entre tantas outras.
Essas equaes, com enorme freqncia, nos levam a razes reais no racionais que, ao serem
representadas no computador, necessariamente, o sero de forma aproximada, pelas razes j expostas no
captulo anterior, tendo em vista que necessitariam de infinitos dgitos, em suas mantissas, para serem
representadas.
Alm disso, em geral, estamos interessados em obter esses valores, essas razes, com uma
determinada preciso, com um erro tolervel, com algumas casas decimais, sem a pretenso de obter
valores exatos. Isso mais do que suficiente, para a maioria dos problemas prticos encontrados.
Os mtodos numricos a serem apresentados, partindo de valores inicialmente propostos, buscam
aprimorar esses valores, diminuindo os erros, aproximando-se, assim, dos valores das razes procuradas,
at que os erros sejam aceitveis, podendo-se garantir que sejam erros inferiores a valores pr-definidos.
Para se calcular uma raiz duas etapas devem ser seguidas:
Isolar a raiz, ou seja, achar um intervalo [a, b], o menor possvel, que contenha uma e somente
uma raiz da equao f(x) = 0;
Melhorar o valor da raiz aproximada, isto , refin-la at o grau de exatido requerido. Com a
abordagem iterativa precisamos determinar um intervalo inicial para construirmos a seqncia
{xi} e teremos que a raiz x' ser dada por:
x ' = lim xi
i
Alm disto, temos que estipular critrios de parada, pois na pratica no calcularemos infinitos
termos, mas apenas o suficiente para atingirmos a exatido desejada.
4.1.3
Isolamento de Razes
Nesta fase feita uma anlise terica e grfica da funo f(x). Para tal fim, usa-se freqentemente
um importante teorema da lgebra.
Teorema: Se uma funo f(x) contnua num intervalo [a, b] assume valores de sinais opostos nos
19
pontos extremos deste intervalo, isto , f(a). f(b) < 0, ento o intervalo conter, no mnimo, uma raiz da
equao f(x) = 0; em outras palavras haver, no mnimo, um nmero (a, b) tal que f() = 0.
4.1.3.1
Na seo anterior vimos como delimitar as razes reais de F(x) = 0. Agora iremos verificar quantas
razes existem no intervalo delimitado. Os mtodos a seguir do uma boa indicao sobre o nmero de
razes do intervalo.
Teorema de Bolzano: Seja F(x) = 0 uma equao algbrica com coeficientes reais e x (a, b):
Se F(a).F(b) < 0, ento existe um nmero impar de razes reais (contando suas
multiplicidades) no intervalo (a, b).
Se F(a).F(b) > 0, ento existe um nmero par de razes reais (contando suas multiplicidades)
ou no existe razes reais no intervalo (a, b).
Refinamento
Depois de isolar a raiz no intervalo [a, b], passa-se a calcul-la atravs de mtodos numricos.
Como veremos adiante, estes mtodos devem fornecer uma seqncia {xi} de aproximao, cujo limite
a raiz exata . Em cada aproximao xn, da raiz exata , usa-se um destes critrios e compara-se o
resultado com a tolerncia pr-fixada.
A verificao, de que xn est "suficientemente" prxima da raiz, pode ser feita de dois modos
diferentes (que podem levar a resultados diferentes):
| f(xn) |
| x n 1 |
4.1.4
20
Mtodo de Newton-Raphson;
Mtodo da Iterao Linear.
Mtodo da Bisseo
Seja f(x) uma funo contnua no intervalo [a, b] e seja uma raiz desta funo, sendo que (a,
b), tal que f() = 0.
y
f(b)
f(x)
x1
x4 x
a
0
x2
f(a)
Dividindo o intervalo [a, b] ao meio, obtm-se x1, havendo, pois, dois subintervalos, [a, x1] e [x1,
b], a ser considerados. Se f(x1) = 0, ento = x1; caso contrrio, a raiz estar no subintervalo onde a
funo tem sinais opostos nos pontos extremos, ou seja, se f(a). f(x1) < 0 ento [a, x1], seno f(a). f(x1)
> 0 e [x1, b].
O processo se repete at que se obtenha uma aproximao para a raiz exata , ou seja, que o
critrio de parada seja satisfeito. Ento, por induo, temos:
Algoritmo:
xn =
a+b
,
2
para n = 1, 2, 3, ...
Critrio de Parada:
f ( x n ) erro
ou
| b a | erro
Restrio: necessrio conhecer um intervalo que contenha o valor desejado .
4.2.1
Considerando uma preciso e um intervalo inicial [a, b] possvel saber, a priori, quantas
iteraes sero efetuadas pelo mtodo da bisseo at que se obtenha | b a | , usando o algoritmo
deste mtodo.
Vimos que:
b a k 1 b0 a 0
bk a k = k 1
=
2
2k
21
b0 a 0
< 2k
Consideraes Finais
4.2.3
Exemplos
Exemplo 1: Encontrar a raiz da funo f(x) = x.ln(x) 3.2 contida no intervalo [2, 3], com erro 10-2.
a+b
a) Algoritmo: x n =
2
b) Escolha do intervalo:
f(2) = 1.81371
f(3) = 0.09584
[2, 3]
c) Valor do erro:
erro 10-2
d) Iteraes:
a
2
2.5
2.75
2.875
2.9375
2.9375
Xn
2.5
2.75
2.875
2.9375
2.96875
2.953125
b
3
3
3
3
3
2.96875
f(a)
1.81371
0.90927
0.41810
0.16385
0.03467
0.03467
f(xn)
0.90927
0.41810
0.16385
0.03467
0.03042
0.00217
| xn a |
0.5
0.25
0.125
0.0625
0.03125
0,015625
= | f(xn) |
0.90927
0.41810
0.16385
0.03467
0.03042
0.00217
e) Resposta:
A raiz desejada = 2,953125
Exerccio 1: Encontrar a raiz de f(x) = x2 3, contida no intervalo [1; 2], com erro 10-2.
Resposta:
22
Exerccio 2: Encontrar a raiz da funo f(x) = x2 + ln(x) contida no intervalo [0.5, 1], com erro 10-2.
A raiz desejada = 0.65625
Resposta:
Exerccio 3: Encontrar a primeira raiz positiva da funo f(x) = e-x sen(x), com erro 10-2.
A raiz desejada = 0.59375
Resposta:
4.3
a f ( b) + b f ( a )
f (b) + f ( a )
af (b) bf ( a )
f (b) f ( a )
af (b) bf ( a ) af (a ) + af ( a )
f (b) f ( a )
= a
(b a ). f ( a )
, para n = 1, 2, 3, ...
f (b) f ( a )
Graficamente, este mtodo procura particionar o intervalo [a, b], na interseo da reta que une os
pontos (a, f(a)) e (b, f(b)) com o eixo x. Este ponto representado como xn. Escolhe-se ento um novo
subintervalo conforme for a variao do sinal da curva f.
O mtodo da falsa posio aplicado na figura abaixo mostra que f(x1).f(a) < 0, com isso, o novo
intervalo que contm pelo menos uma raiz real dado por (a, x1). Continuando o processo, determinamos
o ponto x2 e verifica-se, agora, que f(x2).f(x1) < 0, da o processo segue tendo o intervalo (x1, x2).
Aps encontrar o ponto x1, devemos verificar, como no caso da bisseo, se a raiz est entre o
intervalo (a, x1) ou (x1, b). Se f(a).f(x1) < 0, ento teremos b = x1, caso contrrio teremos a = x1. A partir
da o processo se repete at que o critrio de parada seja satisfeito.
y f(b')
f(b)
f(x)
a x2
0
x1
f(a)
23
O algoritmo deste mtodo tambm pode ser encontrado atravs da anlise dos tringulos formados
pela reta (a, f(a)) e (b, f(b)) com o eixo x. Seja o tringulo f(a)x1a e o tringulo f(a)f(b)f(b), ento, pela
propriedade da semelhana de tringulos temos:
x a
ba
f (b) f ( a )
ba
(b a )( f ( a ))
=
= 1
x1 a =
x1 a
f (a )
f (b) f ( a ) f ( a )
f (b) f ( a )
x1 = a
(b a )( f ( a ))
f (b) f ( a )
Se f(a).f(x1) < 0, ento teremos b = x1, seno a = x1. A partir da o processo se repete at que o
critrio de parada seja satisfeito.
Ento, por induo temos:
Algoritmo:
=a
(b a ). f ( a )
f (b) f ( a )
Para n = 1, 2, 3, ...
Critrio de Parada:
Restrio:
necessrio conhecer um intervalo que contenha o valor desejado .
4.3.1
Casos especiais
Se f(x) contnua no intervalo [a, b] com f(a).f(b) < 0 ento o mtodo da falsa posio gera uma
seqncia convergente.
Se uma funo cncava ou convexa em [a, b], ou seja, a segunda derivada existe em [a, b] e
f(x) no muda de sinal nesse intervalo, ento no mtodo da falsa posio teremos sempre uma das
extremidades fixa. Este caso especial tambm chamado de Mtodo das Cordas. A figura abaixo mostra
graficamente os quatro casos que podem ocorrer:
f "( x ) > 0
f ( a ) < 0 e f (b) > 0
b ponto fixo
f "( x ) > 0
f ( a ) > 0 e f (b) < 0
a ponto fixo
24
f(x)
y
f(a)
f(b)
f(x)
x1
a
0
x2
x2
x1
b
x
f(a)
f(b)
f "( x ) < 0
f ( a ) < 0 e f (b) > 0
f "( x ) < 0
a ponto fixo
b ponto fixo
y
f(a)
f(x)
f(b)
f(x)
a
x2
x1
x1
f(a)
x2
x
f(b)
Consideraes finais
4.3.3
Se o ponto fixo existir e for razoavelmente prximo da raiz, o mtodo tem boa convergncia;
caso contrrio, pode ser mais lento que a bisseo.
Exemplos
Exemplo 1: Determinar pelo mtodo da falsa posio a menor raiz positiva da funo de quarto grau f(x)
= x4 26x2 + 24x + 21 at que o erro absoluto seja igual ou inferior a 0.01. Os clculos devem ser
efetuados com 2 casas decimais e com arredondamento.
(b a ). f ( a )
f (b) f ( a )
4
2
f(x) = x 26x + 24x + 21
f(x) = 4x3 52x + 24
f(x) = 12x2 52
a) Algoritmo:
=a
b) Escolha do intervalo:
Em primeiro lugar, deve-se procurar o intervalo onde possivelmente esteja a primeira raiz
positiva. Atravs da anlise do valor da funo nos primeiros pontos do eixo dos x temos que:
f(0) = 21, f(1) = 20, f(2) = 19, logo, entre (1, 2) existe uma raiz positiva.
c) Valor inicial:
a=1
f(1) = 40
b=2
f(2) = 4
25
temos f(x) < 0, f(a) > 0 e f(b) < 0, portanto, b ponto fixo.
d) Valor do erro:
erro 10-2
e) Iteraes:
x1 = 1
( 2 1)( f (1))
(1)( 20)
20
= 1
= 1
= 1,51
( f ( 2) f (1))
( 19 20)
39
( 2 1,51)( f (1,51))
(0,49)( 3,16)
(1,55)
= 1,51
= 151
.
= 1,58
( f (2) f (1,51))
19 ( 3,16)
22,16
( 2 1,58)( f (1,58))
(0,42)(0,24)
0,10
= 1,58
= 1,58
= 1,59
( f (2) f (1,58))
19 (0,24)
19,24
Exerccio 1: Calcular a raiz aproximada para a equao f(x) = cos(x) + x, com 0.001.
Resposta:
Exerccio 2: Calcular a raiz negativa para a funo f(x) = ex + x, com o erro 0.01. Sabe-se que a raiz
est contida no intervalo [1, 0].
Resposta:
4.4
Por um artifcio algbrico, pode-se transformar f(x) = 0 em duas funes que lhe sejam
equivalentes.
y = x
f(x) = 0
y = g (x)
onde g(x) chamada de funo de iterao.
26
y
y=x
y=g(x)
f(x)
0
Sendo x0 a primeira aproximao da raiz , calcula-se g(x0). Faz-se ento, x1 = g(x0), x2 = g(x1), x3
= g(x2) e assim sucessivamente.
Ento, por induo, temos:
Algoritmo:
x n = g ( x n 1 )
Critrio de Parada:
para n = 1, 2, 3, ...
| xn xn-1 | erro
Melhor extremo:
Empiricamente, sabe-se que o mtodo tem sucesso quando | g'(x) | < 1 em todo intervalo.
O extremo mais rpido para iniciar o mtodo aquele para o qual o mdulo da primeira
derivada menor.
Se | g'(a) | < | g'(b) | ento x0 = a, seno x0 = b.
4.4.1
Casos de convergncia
x3 + 3
5
g(x) = (5 x 3)
g(x) =
5x 3
x2
g(x) =
3
x2 5
Como podemos ter vrias funes g(x), vamos estabelecer algumas condies para que os
resultados sejam satisfatrios.
Vamos observar graficamente o problema e verificar que h funes g(x) que no so indicadas
para a escolha.
Convergncia monotnica
0 < g(x) < 1
Convergncia oscilante
1 < g(x) < 0
27
y
y=x
y=x
y=g(x)
y=g(x)
0
0
x0
x1
x2
x0 x x
2 4
Divergncia oscilante
g(x) < 1
Divergncia monotnica
g(x) > 1
y
y=g(x)
x3 x1
y=x
y=x
y=g(x)
0
x2
x1
x0
x4 x2 x0 x1x3
Consideraes finais
A maior dificuldade neste mtodo encontrar uma funo de iterao que satisfaa condio
de convergncia;
Teste de | g'(x) | < 1 pode levar a um engano se x0 no estiver suficientemente prximo da raiz.
A velocidade de convergncia depender de | g'() |: quanto menor este valor maior ser a
convergncia;
Devemos observar que o teste de erro ( | xn xn-1 | erro ) no implica necessariamente que |
xn | erro, conforme vemos na figura abaixo:
y
y=x
y=g(x)
4.4.3
xn xn-1
Exemplos
Exemplo 1: Dada a funo f(x) = x2 + 3x 40, obter sua raiz contida no intervalo [4.5, 5.5], pelo MIL,
com um erro 10-4.
a) Algoritmo: x n = g ( x n 1 )
b) Escolha da funo de iterao:
y=x
28
y=
x 40
3
y' =
2x
3
divergncia oscilante
y=
40
x+3
y' =
40
( x + 3) 2
convergncia oscilante
y' =
3
2 40 3x
convergncia oscilante
y=
40 3 x
40 3 x
y'(4.5) = 0.2914
y' =
3
2 * 40 3 x
y'(5.5) = 0.3094
x0 = 4.5
d) Valor do erro:
erro 10-4
e) Iteraes:
x1 = 5.14782
x2 = 4.95546
x3 = 5.01335
x4 = 4.99599
x5 = 5.00120
x6 = 4.99964
x7 = 5.00011
x8 = 4.99997
x9 = 5.00000
f) Resposta:
A raiz desejada = 5.00000
Exerccio 1: Dada a funo f(x) = x2 + 3x cos(x) 2.45, obter sua raiz contida no intervalo [0.5, 1],
pelo MIL, com um erro 10-2.
Resposta:
4.5
x2
0
f(a)
b=x0
x1
x'1
29
Interpretao geomtrica do mtodo de Newton
f ' ( x0 ) =
f ( x0 )
f ( x0 )
x1 = x0
x0 x1
f ' ( x0 )
Se x1 x0 erro , ento x1 a raiz desejada, seno deve-se calcular x2, que obtido com base no
mesmo raciocnio anterior: x 2 = x1
f ( x1 )
.
f ' ( x1 )
Se x 2 x1 erro , ento x2 a raiz desejada, seno deve-se calcular x3, ..., xn, at que
f ( x n 1 )
,
f ' ( x n 1 )
para n = 1, 2, 3, ...
Critrio de Parada:
x n x n 1 erro
Restrio:
necessrio conhecer um intervalo que contenha o valor desejado .
Melhor extremo:
Para decidir qual o melhor extremo do intervalo (a, b) a iniciar o mtodo, basta verificar
qual dos extremos possui funo e segunda derivada com mesmo sinal:
f(xi). f''(xi) > 0
4.5.1
Consideraes finais
4.5.2
Exemplos
Exemplo 1: Calcular a raiz positiva da equao f(x) = 2x sen(x) 4 = 0, com erro 10-3, usando o
mtodo de NR.
f ( x n 1 )
a) Algoritmo: x n = x n 1
f ' ( x n 1 )
f(x) = 2x sen(x) 4
f(x) = 2 cos(x)
f''(x) = sen(x)
b) Escolha do intervalo:
f(2) = 0.9093
f(2). f(3) < 0
f(3) = 1.8589
[2, 3]
30
erro 10
-3
e) Iteraes:
x1 = 3
f (3)
1.8589
= 3
= 2.3783
f ' (3)
2.9900
f (2.3783)
0.0653
= 2.3783
= 2.3543
f ' ( 2.3783)
2.7226
f (2.3543)
0.0002
= 2.3543
= 2.3542
f ' ( 2.3543)
2.7058
Exerccio 3: Seja a funo f(x) = sen(x) tg(x). Deseja-se saber uma das razes desta funo, sabendo-se
que est contida no intervalo (3, 4). Todos os clculos devem ser realizados com 4 casas decimais com
arredondamento e erro no superior a 0.001.
f(x) = sen(x) tg(x)
f'(x) = cos(x) sec2(x)
f''(x) = sen(x) 2sec2(x) tg(x)
Resposta: A raiz desejada = 3.1416
4.5.3
Condies de Newton-Raphson-Fourier
Segundo Newton, para haver a convergncia uma raiz em seu mtodo, bastaria que o intervalo
(a, b) em anlise fosse suficientemente pequeno. Contudo, Raphson e Fourier concluram que um
intervalo pequeno aquele que contm uma e somente uma raiz. Com isso, algumas condies foram
estabelecidas para que tal exigncia fosse vlida:
31
1) Se f(a). f(b) > 0, ento existe um nmero par de razes reais (contando suas multiplicidades) ou
no existe razes reais no intervalo (a, b) (Teorema de Bolzano);
2) Se f(a).f(b) < 0, ento existe um nmero mpar de razes reais (contando suas multiplicidades)
no intervalo (a, b) (Teorema de Bolzano);
3) Se f'(a). f'(b) > 0, ento o comportamento da funo neste intervalo poder ser apenas
crescente ou apenas decrescente, e nunca os dois se alternando;
4) Se f'(a). f'(b) < 0, ento a funo ter o comportamento de ora crescer ora decrescer;
5) Se f"(a). f"(b) > 0, ento a concavidade no muda no intervalo em anlise;
6) Se f"(a). f"(b) < 0, ento a concavidade muda no intervalo em anlise.
Portanto, haver convergncia uma raiz no intervalo (a, b) se e somente se:
f(a). f(b) < 0,
Exemplo 2: Seja a funo f(x) = x2 9.5x + 8.5, obter a raiz contida no intervalo [8, 9]. Os clculos
devem ser realizados com 4 decimais com arredondamento e erro no superior a 0,001.
f ( x n 1 )
a) Algoritmo : x n = x n 1
f ' ( x n 1 )
2
f(x) = x 9.5x + 8.5
f(x) = 2x 9.5
f(x) = 2
b) Escolha do intervalo:
f(8) = 3.5;
f(8). f(9) < 0
f(9) = 4
[8, 9]
d) Valor do erro:
erro 10-3
e) Iteraes:
f (9)
4
=9
= 8.5294
f ' ( 9)
8 .5
| x1 x0 | = | 8.5294 9 | = 0.4706 > erro
=9
= 8.5294
= 8.5001
f (8.5294)
0.2214
= 8.5294
= 8.5001
f ' (8.5294)
7.5588
| x2 x1 | = | 8.5001 8.5294 | = 0.0293 > erro
f (8.5001)
0.0008
= 8.5001
= 8.5000
f ' (8.5001)
7.5002
| x3 x2 | = | 8.5000 8.5001 | = 0.0001 < erro
f) Resposta:
A raiz desejada = 8.5000
32
Exerccio 4: Calcular a raiz da equao f(x) = x3 x + 1 = 0, contida no intervalo [2, 1], com um erro
10-3.
f(x) = x3 x + 1
f(x) = 3x2 1
f(x) = 6x
Resposta:
4.6
Mtodo da Secante
Uma grande desvantagem do mtodo de Newton a necessidade de se obter a derivada f(x) e
calcular o seu valor numrico a cada iterao.
Para contornar este problema podemos substituir o clculo da primeira derivada f(xn) pelo
quociente das diferenas, usando assim, um modelo linear baseado nos dois valores calculados mais
recentemente:
f ( x n ) f ( x n 1 )
f ' ( xn )
x n x n 1
onde xn e xn-1 so duas aproximaes para a raiz.
Substituindo o valor aproximado da derivada acima, a funo de iterao fica:
xn + 1 = x
xn + 1 = x
f ( xn)
f ( xn) f ( xn 1)
xn xn 1
( xn xn 1). f ( xn)
f ( xn) f ( xn 1)
, para n = 1, 2, 3, ...
Para iniciar o mtodo necessitamos de duas aproximaes (x0 e x1) para a raiz.
y
f(x)
f(x1)
xo
x2
x3
x4
x1
f(x0)
Neste mtodo partimos das duas aproximaes iniciais x0 e x1 e determinamos a reta que passa
pelos pontos (x0, f (x0)) e (x1, f (x1)). A interseco desta reta com o eixo x fornece o ponto x2. Em seguida
calculado uma nova aproximao para a raiz a partir dos pontos (x1, f(x1)) e (x2, f (x2)). O processo se
repete at que seja satisfeito o critrio de parada.
Observe que neste mtodo no necessitamos da caracterstica que fundamental no mtodo da
33
falsa posio que exige que f(xn). f(xn-1) < 0. importante salientar tambm que a raiz no necessita estar
entre as duas aproximaes iniciais (x0 e x1).
A convergncia deste mtodo mais rpido que o mtodo da bisseo e o da falsa posio,
contudo, pode ser mais lento que o mtodo de Newton-Raphson.
Algoritmo:
xn+1 = xn
( xn xn 1 ). f ( xn )
f ( xn ) f ( xn 1 ) ,
Critrio de parada:
4.6.1
para n = 1, 2, 3, ...
| xn+1 xn | erro
Exemplos
Exemplo 1: Calcular a raiz da funo f(x) = x2 + x 6, sendo x0 = 1.5, x1 = 1.7 e o erro 10-2.
a) Algoritmo : x n +1 = x n
b) Valor inicial:
x0 = 1.5
( xn xn 1 ). f ( xn )
f ( xn ) f ( xn 1 )
x1 = 1.7
c) Valor do erro:
erro 10-2
d) Iteraes:
(0.2)( 1.41)
( 0.282)
= 1 .7
= 2.0357
f (1.7) f (1.5)
1.41 ( 2.25)
0.84
| x2 x1 | = | 2.0357 1.7 | = 0.3357 > erro
e) Resposta:
= 2.0000 a raiz procurada.
Exerccio 1: Calcular a raiz da funo f(x) = 3x cos(x), sendo x0 = 0, x1 = 0.5 e o erro 10-4. Efetue os
clculos com 5 casas decimais com arredondamento.
Resposta:
34
4.7
Mtodo Misto
O mtodo misto, consiste na aplicao seqencial dos mtodos NR e Falsa Posio, nesta ordem.
O mtodo NR aplicado no primeiro passo, sempre a partir do melhor extremo. Ento, com o novo
resultado obtido x1N , determina-se qual valor dos extremos do intervalo ser substitudo ( f(a). f( x1N ) < 0
b = x1N , seno a = x1N ) e ento aplica-se o mtodo da Falsa Posio. O resultado obtido em x mF ser
utilizado na prxima iterao pelo mtodo NR, mas antes feito o teste do erro para verificar o critrio de
parada.
Assim, por induo, seguem-se as iteraes seguintes. Quando o critrio de parada for satisfeito,
tira-se a mdia aritmtica simples do resultado da ltima iterao de ambos os mtodos e obtm-se a
resposta desejada.
Algoritmo:
xm =
x mN + x mF
,
2
para m = 1, 2, 3, ...
Critrio de parada:
| x mF x mN | erro
4.7.1
Exemplos
Exemplo 1: Determinar pelo mtodo misto, a raiz da funo f(x) = 10sen(x) + cos(x) 10x contida no
intervalo [0.5, 1], com tolerncia de 2*10-4 e clculos com 4 casas decimais com arredondamento.
x N + x mF
a) Algoritmo: x m = m
2
f(x) = 10sen(x) + cos(x) 10x
f(x) = 10cos(x) sen(x) 10
f"(x) = (10)sen(x) cos(x)
b) Valor do erro:
erro 0.0002
c) Escolha do intervalo:
f(0.5) = 0.6718
f(1) = 1.0450
d) Iteraes:
Melhor extremo:
f(0.5) = 0.6718
f"(0.5) = 5.6718
x1N = 1
f(1) = 1.0450
f"(1) = 8.9550
x 0N = 1
f (1)
( 1.0450)
= 1
= 0.8078
f (1)
( 5.4384)
extremo trocar:
a = 0.5
x1F = 0.5
35
f (0.7488)
(0.0521)
= 0.7488
= 0.7643
f (0.7488)
(3.3557)
extremo trocar:
a = 0.7488
x 2F = 0.7488
e) Resposta:
0.7641 + 0.7643
= 0.7642
=
2
Exerccio 1: Dada a funo f(x) = x2 + 3x cos(x) 2.45, obter sua raiz contida no intervalo [0.5, 1] pelo
mtodo misto, com erro 10-3 e clculos com 4 decimais com arredondamento.
f(x) = x2 + 3x cos(x) 2.45
f'(x) = 2x + 3+ sen(x)
f"(x) = 2 + cos(x)
Resposta:
4.8
4.8.1
0.82 + 0.82
= 0.8200
2
Embora qualquer um dos mtodos estudados anteriormente possam ser usados para encontrar zeros
de um polinmio de qualquer grau, o fato de os polinmios aparecerem com tanta freqncia em
aplicaes faz com que seja dedicada uma ateno especial.
Normalmente, um polinmio de grau n escrito na forma:
Pn = a 0 + a1 x + a 2 x 2 + K + a n x n
para an0
Sabemos da lgebra elementar como obter os zeros de um polinmio do segundo grau P2(x), ou
seja, n = 2. Existem frmulas fechadas, semelhantes frmula para polinmios de grau 2, mas bem mais
complicadas, para zeros de polinmios de grau 3 e 4. Agora, para n 5, em geral, no existem frmulas
explcitas e somos forados a usar mtodos iterativos para encontrar os zeros dos polinmios.
Muitos dos teoremas da lgebra so teis na localizao e classificao dos tipos de zeros de um
polinmio. O estudo ser dividido em localizao de razes e determinao das razes reais.
4.8.2
Localizao de Razes
Vejamos alguns teoremas que sero teis para efetuar a localizao de razes.
36
se v p = 0, p = 2
v = 2 p:
ou
se v p = 2, p = 0
b) P5(x) = + 3x5 2x3 + 4x2 x 1
+
1
+
1
se v p = 0, p = 3
ou
v = 3 p:
se v p = 2, p = 1
c) P7(x) = + x7 + 1
+
0
v = 0 e p: {v p 0 p = 0}.
Para determinar o nmero de razes reais negativas, neg, tomamos Pn(x) e usamos a mesma regra
para razes positivas:
a) P5(x) = + 3x5 2x4 x3 + 2x + 1
P5(x) = 3x5 2x4 + x3 2x + 1
+
1
+
1
se v neg = 0, neg = 3
v = 3 neg:
ou
se v neg = 2, neg = 1
b) P5(x) = + 3x5 2x3 + 4x2 x 1
37
5
P5(x) = 3x + 2x + 4x + x 1
se v neg = 0, neg = 2
ou
v = 2 neg:
se v neg = 2, neg = 0
c) P7(x) = + x7 + 1
P7(x) = x7 + 1
+
1
Neste caso, vimos que no existe zero positivo. Temos ainda P7(0) = 1 0. Temos ento que, v =
1 e neg: {v neg = 0 neg = 1}, ou seja, Pn(x) = 0, no tem raiz real positiva, o zero no raiz e tem
apenas uma raiz real negativa donde tem trs razes complexas conjugadas.
4.8.3
:
:
Para se calcular o valor numrico de P4(x) em x = c, basta fazer sucessivamente:
b4 = a4
b3 = a3 + b4 c
38
b2 = a2 + b3 c
b1 = a1 + b2 c
b0 = a0 + b1 c
P(c) = b0.
Portanto, para Pn(x) de grau n qualquer, calculamos Pn(c) calculando as constantes bj, j = n, n 1,
..., 1, 0 sucessivamente, sendo:
bn = an
bj = aj + bj+1c
j = n 1, n 2, ..., 1, 0
P4(x) = 4a 4 x 3 + 3a3 x 2 + 2a 2 x + a1 .
Usando os valores de aj do clculo anterior e dado que j conhemos b0, b1, b2, b3 e b4:
P4(x) = 4a 4 x 3 + 3a3 x 2 + 2a 2 x + a1
= 4b4 c 3 + 3(b3 b4 c)c 2 + 2(b2 b3 c)c + (b1 b2 c)
= 4b4 c 3 3b4 c 3 + 3b3 c 2 2b3 c 2 + 2b2 c + b1 b2 c
Assim, P4(x) = b4 c 3 + b3 c 2 + b2 c + b1
Aplicando o mesmo esquema anterior, teremos:
c4 = b4
c3 = b3 + c4c
c2 = b2 + c3c
c1 = b1 + c2c
Calculamos, pois, os coeficientes cj, j = n, n 1, ..., 1 da seguinte forma:
cn = bn
cj = bj + cj+1c
j = n 1, n 2, ..., 1
Exemplo 1: Dada a equao polinomial x5 3.7x4 + 7.4x3 10.8x2 + 10.8x 6.8 = 0, temos que:
39
P5(1) = 2.1
P5(2) = 3.6
Ento, existe uma raiz no intervalo (1, 2).
Partindo de x0 = 1.5 e considerando 0.02, o Mtodo de Newton para polinmios fornece:
a5 = 1
a4 = 3.7
a3 = 7.4
a2 = 10.8
a1 = 10.8
a0 = 6.8
b5 = 1
b4 = 3.7 + 1(1.5) = 2.2
b3 = 7.4 2.2(1.5) = 4.1
b2 = -10.8 + 4.1(1.5) = 4.65
b1 = 10.8 4.65(1.5) = 3.825
b0 = -6.8 + 3.825(1.5) = 1.0625
P(1.5) = 1.0625
x1 = x0
c5 = 1
c4 = -2.2 + 1(1.5) = 0.7
c3 = 4.1 0.7(1.5) = 3.05
c2 = -4.65 + 3.05(1.5) = 0.075
c1 = 3.825 0.075(1.5) = 3.7125
P'(1.5) = 3.7125
P (1.5)
(-1,0625)
= 1.5 (0.2862) = 1.7862
= 1.5
P ' (1.5)
(3.7125)
b5 = 1
b4 = 3.7 + 1(1.7862) = 1.9138
b3 = 7.4 1.9138(1.7862) = 3.98158
b2 = 10.8 + 3.98158(1.7862) = 3.68812
b1 = 10.8 3.68812(1.7862) = 4.21228
b0 = 6.8 + 4.21228(1.7862) = 0.72398
P(1.7862) = 0.72398
x2 = x1
c5 = 1
c4 = 1.9138 + 1(1.7862) = 0.1276
c3 = 3.98158 0.1276(1.7862) = 3.75366
c2 = 3.68812 + 3.75366(1.7862) = 3.01667
c1 = 4.21228 + 3.01667(1.7862) = 9.60065
P'(1.7862) = 9.60065
P (1.7862)
(0.72398)
= 1.7862
= 1.7862 (0.07541) = 1.71079
P' (1.7862)
(9.60065)
b5 = 1
b4 = 3.7 + 1(1.71079) = 1.98921
b3 = 7.4 1.98921(1.71079) = 3.99688
b2 = 10.8 + 3.99688(1.71079) = 3.96218
b1 = 10.8 3.96218(1.71079) = 4.02154
b0 = 6.8 + 4.02154(1.71079) = 0.08001
c5 = 1
c4 = 1.98921 + 1(1.71079) = 0.27842
c3 = 3.99688 0.27842(1.71079) = 3.52056
c2 = 3.96218 + 3.52056(1.71079) = 2.06077
c1 = 4.02154 + 2.06077(1.71079) = 7.54707
40
P(1.71079) = 0.08001
x3 = x2
P'(1.71079) = 7.54707
P (1.71079)
(0.08001)
= 1.71079
= 1.71079 (0.01060) = 1.70019
P' (1.71079)
(7.54707)
Exerccio 1: Calcular a raiz positiva do polinmio P(x) = 2x3 2x2 + 3x 1, com erro <= 10-4, pelo
mtodo de Newton para polinmios.
P'(x) = 6x2 4x + 3
A raiz procurada : 0.39661
41
5 Sistemas Lineares
5.1
Introduo
Sistemas Lineares so sistemas de equaes com m equaes e n incgnitas formados por
equaes lineares. Um sistema linear com m equaes e n incgnitas escrito usualmente na forma:
a x + a x +L+ a x = b
12
2
n
1
1n
11 1
a21 x1 + a22 x 2 + L + a x n = b2
2n
................................................
a m1 x1 + a m2 x 2 + L + a mn x n = bm
onde
aij : coeficientes
xj : incgnitas
bi : constantes
1 i m, 1 j n
j = 1, 2, ..., n
i = 1, 2, ..., m
A resoluo de um sistema linear consiste em calcular os valores de xj, j = 1, 2, ..., n, caso eles
existam, que satisfaam as m equaes simultaneamente.
Usando notao matricial, o sistema linear pode ser representado por AX = B, onde
a21 a 22 L a 2 n b2
M=
.................................
a m1 a m2 L a mn bn
chamada matriz completa ou matriz aumentada do sistema.
a 21 a22 L a2 n
A=
a matriz dos coeficientes
............................
a m1 a m2 L a mn
x1
X = x 2 o vetor das incgnitas, e
M
x n
b1
B = b2 o vetor constante (termos independentes).
M
bm
5.1.1
42
5.2
5.2.1
Regra de Cramer
Seja um sistema linear com nmero de equaes igual ao nmero de incgnitas (um sistema n x
n), sendo D o determinante da matriz A, e Dx1, Dx2, Dx3, ..., Dxn os determinantes das matrizes obtidas
trocando em M, respectivamente, a coluna dos coeficientes de x1, x2, x3, ..., xn pela coluna dos termos
independentes, temos que:
O sistema S ser compatvel e ter soluo nica se, e somente se, D 0. Neste caso a nica
soluo de S dada por:
x1 = D x1 ,
D
x2 = D x 2 ,
D
x3 = D x 3 ,
D
, xn = D xn
D
...
A aplicao da Regra de Cramer exige o clculo de n + 1 determinantes ( det A e det Ai, 1 i n);
para n = 20 o nmero total de operaes efetuadas ser 21 * 20! * 19 multiplicaes mais um nmero
semelhante de adies. Assim, um computador que efetue cerca de 100 milhes de multiplicaes por
segundo levaria 3 x 105 anos para efetuar as operaes necessrias.
Com isso, a regra de Cramer invivel em funo do tempo de computao para sistemas muito
grandes.
5.2.1.1
Exemplos
x1 + x 2 + x 3 = 1
2 x1 x 2 + x 3 = 0
x + 2x x = 0
2
3
1
Calculando os determinantes D, Dx1, Dx2 e Dx3 temos:
D = 2 1
1
1 =7
1
1
Ento, x1 = D x1 =
,
D
7
1 3 5
x : , , T
7 7 7
Dx1 = 0 1
1
1 = 1
1
3
x2 = D x 2 = ,
D
7
1 1
1 =3
1 0 1
Dx2 = 2 0
Dx3 = 2 1 0 = 5
5
x3 = D x 3 =
e a soluo do sistema
D
7
43
x1 + 2 x 2 + x 3 = 3
3x1 x 2 x 3 = 2
O mtodo da eliminao de Gauss consiste em transformar o sistema linear original num outro
sistema linear equivalente com matriz dos coeficientes triangular superior, pois estes so de resoluo
imediata. Dizemos que dois sistemas lineares so equivalentes quando possuem a mesma soluo. O
determinante de sistemas lineares equivalentes so iguais.
Com (n 1) passos o sistema linear AX = B transformado num sistema triangular equivalente:
UX = C, o qual se resolve facilmente por substituies.
Vamos calcular a soluo de AX = B em trs etapas:
Seja o sistema linear AX = B, onde A: matriz n x n, triangular superior, com elementos da diagonal
diferentes de zero. Escrevendo as equaes deste sistema, temos:
a x + a x + a x + L +
12
2
13 3
11 1
a22 x2 + a23 x3 + L +
a33 x3 + L +
a x =b
a x =b
a x =b
1n
2n
3n
M
ann x n = bn
44
xn =
xn-1 pode ento ser obtido da penltima equao:
xn-1 =
bn
a nn
bn1 a n1,n x n
a n1,n1
Estratgias de Pivoteamento
mik = - aik
kk
Exemplos
x1 + 2 x 2 + x3 = 3
2 x1 + x 2 x3 = 0
3x1 x 2 x3 = 2
45
3
1 2 1
M = 2 1 1 0
3 1 1 2
2 etapa: Triangulao:
Iremos se referir as equaes como: E1 (primeira equao), E2 (segunda equao) e assim por
diante. O componentes x indica o piv.
1
E 3 E 3 3 E1
0
E 2 E 2 2 E1
0
3 3 6
7 4 11
2
1
7
E3 = E3 E2 0
3
0
2
3
0
3
3 6
3
3
1
3 etapa: Retro-substituio:
Da terceira linha temos: 3x3 = 3 x3 = 1
Substituindo x3 na segunda linha temos: 3x2 3(1) = 6 x2 = 1
Substituindo x3 e x2 na primeira linha temos: 1x1 + 2(1) + 1(1) = 3 x1 = 0
A soluo deste sistema x : ( 0, 1, 1)T
0 x1 + 1x 2 2 x3 = 0
1x1 3 x 2 1x3 = 2
1x + 4 x 1x = 2
1
2
3
5.2.3
Mtodo de Jordan
Consiste em aplicar operaes elementares sobre as equaes do sistema linear dado at que se
obtenha um sistema diagonal equivalente.
5.2.4
Exemplos
46
x1 + x 2 + 2 x 3 = 4
2 x 1 x 2 x 3 = 0
x 1 x 2 x 3 = 1
1 1 1 1
2 etapa: Diagonalizao:
1
E 2 E 2 2 E1
E 3 E 3 E1
0
3 5 8
2 3 5
1
4
1 0 1
1
3
3
+
E1 E1
E 2 0 3 0 3
3
0 0 1
1
E 2 E 2 + 15E 3
3
3
2
E3 = E3 E2 0
3
0
5
1
3
8
1
3
E1 E1 E 3
1 0 0 1
1
E 2 E 0 1 0 1
3 2
0
0
1
1
E 31 3E 3
5.3
Fatorao LU-Crout-Cholesky-Doolitle
A base do mtodo chamado Fatorao ou Decomposio LU, est apoiada na simplicidade de
resoluo de sistemas triangulares.
Seja o sistema linear Ax = b
O processo de fatorao para resoluo deste sistema consiste em decompor a matriz A dos
coeficientes em um produto de dois ou mais fatores e, em seguida, resolver uma sequncia de sistemas
lineares que nos conduzir a soluo do sistema linear original.
Tal processo geral de eliminao conhecida como mtodo de Crout (ou Cholesky para o caso particular
de matrizes simtricas positivas definidas). A matriz A pode ser decomposta no produto A=LU, onde L
uma matriz triangular inferior e U uma matriz triangular superior, quando a matriz for no singular (Det
(A) 0). Alm disso, se atribuirmos valores fixos aos elementos da diagonal, seja de L (lii = 1 no Mtodo
de Doolitle) ou em U (uii = 1 no Mtodo de Crout), esta decomposio ser nica.
Suponhamos que seja possvel fatorar a matriz A dos coeficientes num produto de uma matriz
triangular inferior com diagonal unitria L e uma matriz triangular superior U, isto :
47
A = LU
Nestas condies, o sistema Ax = b pode ser reescrito na forma LUx = b, o que permite o
desmembramento em dois sistemas triangulares
Ly = b
Ux = y
Resolvendo o primeiro sistema, calculamos y que, usado no segundo sistema, fornecer o vetor
procurado x.
Dessa maneira, conhecidas L e U, o sistema ser resolvido com 2n2 operaes (dois sistemas
2n 3
triangulares), o que representa um ganho substancial comparado com as
operaes do mtodo da
3
eliminao de Gauss.
5.3.1
Os fatores L e U podem ser obtidos atravs de frmulas para os elementos lij e uij, ou ento, podem
ser construdos usando a idia bsica do mtodo da Eliminao de Gauss.
Veremos a seguir como obter L e U atravs do processo de Gauss.
Dada uma matriz quadrada A de ordem n, seja Ak a matriz constituda das primeiras k linhas e
colunas de A. Suponha que det(Ak) 0 para k = 1, 2, ..., (n 1). Ento, existe uma nica matriz triangular
inferior L = (mij), com mii = 1, 1 i n, e uma nica matriz truangular superior U = (uij) tais que LU = A.
Ainda mais, det(A) = u11u22...unn.
Para a soluo de Ax = b, pode-se decompor A segundo o Mtodo de Crout, da seguinte maneira:
a11
a
21
a31
a12
a 22
a32
a13 M b1 l11
a 23 M b2 = l 21
a33 M b3 l 31
0
l 22
l32
0 1 u12
0 0 1
l 33 0 0
u13
u 23
1
a11
a
21
a31
a12
a 22
a32
a13 M b1 l11
a 23 M b2 = l 21
a33 M b3 l 31
0
l 22
l 32
0 1 u12
0 0 1
l 33 0 0
u13 M y1
u 23 M y 2
1 M y 3
l11 = a 11
l 21 = a 21
l 31 = a 31
l 22 = a 22 l 21u12
l 32 = a 32 l 31 u 12
y1 = b1 / l11
l ij u ij
,
e y i em termos dos
48
y 2 = (b2 l 21c1 ) / l 22
l 33 = a 33 l 31u13 l 32 u 23
y3 = (b3 l 31c1 l 32 c 2 ) / l 33
Note que o clculo de y pode ser feito da mesma forma que o clculo de u.
A sequncia de operaes :
1). Calcular a primeira coluna de L, calcular a primeira linha de U e y1;
2). Calcular a segunda coluna de L, calcular a segunda linha de U e y2;
e assim sucessivamente.
Os valores de x so obtidos por substituio sucessiva a partir de y (U.x = y)
x3 = y 3
x 2 = y 2 u 23 x3
x1 = y1 u13 x3 u12 x 2
Note que, o vetor c tambm pode ser obtido do sistema parcial L.y = b por substituies
sucessivas.
Sugere-se usar o processo "tipo escada" para armazenar L e U na mesma rea de memria, o que
torna o processo mais eficiente,
a11
a
21
a31
a12
a 22
a32
u13 M y1
u 23 M y 2
l33 M y 3
l i1 = a i1
i = 1,2,3,...,n
j = 2,3,...,n+1
x1 + 2 x 2 x3 = 2
2 x1 + 3 x 2 2 x3 = 3
x1 2 x 2 + x3 = 0
1 2 1
Seja A = 2 3 2
1 2 1
Calculando os mij e uij, usando o processo de Gauss sem estratgia de pivoteamento parcial. Para
49
triangular A, temos:
Etapa 1:
Piv = a11( 0) = 1
Multiplicadores:
m21 =
(0)
a 21
2
=
=2
(0)
1
a11
m31 =
(0)
a 31
1
= =1
(0)
1
a11
Ento:
E1 E1
E 2 E 2 2 E1
E 3 E 3 E1
(1)
= 0
0
1 0
4 2
2
(1)
(1)
Uma vez que os elementos a 21
e a 31
so nulos, podemos guardar os multiplicadores nestas
posies, ento:
(1)
1 2 1
= 2 1 0
1 4 2
Etapa 2:
(1)
Piv = a 22
= 1
Multiplicadores:
m32 =
(1)
a 32
4
=
=4
(1)
1
a 22
Ento:
E1 E1
E2 E2
E 3 E 3 4E 2
(2)
(2)
1
= 0
0
2
1
0
1
0
2
1 2 1
= 2 1 0
1 4 2
Os fatores L e U so:
1 0 0
L = 2 1 0
1 4 1
1 2 1
U = 0 1 0
0 0 2
50
1 0 0 y1 2
2 1 0 . y = 3
2
1 4 1 y 3 0
ou
y1 = 2
2 y1 + y 2 = 3
y1 + 4 y 2 + y 3 = 0
y1 = 2; y2 = 1; y3 = 2
y = (2, 1, 2)T
1 2 1 x1 2
0 1 0 . x = 1
2
0 0 2 x3 2
x1 + 2 x 2 x3 = 2
x 2 = 1
2 x 3 = 2
ou
x3 = 1; x2 = 1; x1 = 1
3x1 + 2 x 2 + 4 x3 = 1
x1 + x 2 + 2 x3 = 2
4 x1 + 3 x 2 + 2 x3 = 3
2 x 1 x 2 x 3 = 0
x 1 x 2 x 3 = 1
5.4
5.4.1
a x + a x + ... + a x = b
a x + a x +... + a x = b
11
12
1n
21
22
2n
1
2
...
a x +a x
n1
n2
+ ... + ann x n = bn
51
a
a
11
22
a
a
21
12
31
+ ... + an1
32
+ ... + an2
a
+ a
a
a
ou
...
22
a
a
nn
11
21
a
+a
n1
12
+ ... +
23
a
+ ... + a
2n
n2
+ ... +
nn1
13
1n
...
nn
1n
2n
+ ... + an 1n
Ento, isola-se em cada uma das equaes ordenadamente, uma das incgnitas.
(1)
( 0)
( 0)
11
(1)
2
( 0)
( 0)
22
...
x
(0 )
1
x ,x
onde,
(0)
2
(1)
n
(0)
(0)
nn
(0)
Condies de Parada:
Se para todo
5.4.1.1
( j)
n
( j 1)
xn
erro , ento
( j)
so as solues do sistema.
Exemplos
Exemplo 1: Resolver por Gauss-Jacobi, com 4 decimais com arredondamento e erro menor ou igual a
0,01 o sistema abaixo:
x + 8y z = 16
6x y + z = 7
x + y+ 5z = 18
a) Verificao da convergncia:
6x y + z = 7
x + 8y z = 16
x + y + 5z = 18
b) Isolamento das incgnitas:
1
x= (7+yz)
6
1
y = ( 16 x + z )
8
1
z = ( 18 x y )
5
c) Atribuio inicial:
x(0) = 0
y(0)=0
z(0)=0
d) Iteraes:
1
1
( 7 + y(0) z(0) ) = ( 7 + 0 0 ) = 1,1667
6
6
1
1
y(1) = ( 16 x(0) + z(0) ) = ( 16 - 0 + 0 ) = 2
8
8
x(1) =
52
z(1) =
1
1
( 18 x(0) y(0) ) = ( 18 0 0 ) = 3,6
5
5
1
( 7 + 2 3,6 ) = 0,9
6
1
y(2) = ( 16 1,1667 + 3,6 ) = 2,3042
8
1
z(2) = ( 18 1,1667 2 ) = 2,9667
5
x(2) =
1
( 7 + 2,3042 2,9667 ) = 1,0562
6
1
y(3) = ( 16 0,9 + 2,9667 ) = 2,2583
8
1
z(3) = ( 18 0,9 2,3042 ) = 2,9592
5
x(3) =
1
( 7 + 2,2583 2,9592 ) = 1,0498
6
1
y(4) = ( 16 1,0562 + 2,9592 ) = 2,2379
8
1
z(4) = ( 18 1,0562 2,2583 ) = 2,9371
5
x(4) =
1
( 7 + 2,2379 2,9371 ) = 1,0501
6
1
y(5) = ( 16 - 1,0498 + 2,9371 ) = 2,2359
8
1
z(5) = ( 18 1,0498 2,2379 ) = 2,9425
5
x(5) =
Exerccio 1: Dado o sistema, pede-se sua soluo por Gauss-Jacobi, com 4 decimais com
arredondamento e erro menor ou igual a 0,02.
10x + y + z = 12
x + 5y+ 9z = 15
2x +8y 4z = 6
A soluo deste sistema : (0,9975; 1,0051; 0,9916)T
5.4.2
xi
bi aij x j )
ii
j =1
j i
53
( k 1)
2
11
(k )
1
= ( b1 a12 x
22
(k )
2
= ( b2 a21 x1
(k )
n
= ( bn an1 x1
a x
a x
a13 x
( k 1)
3
( k 1)
a23 x 3
( k 1)
an 2 x 2
... a1n x
( k 1)
n
( k 1)
... a2 n x n
( k 1)
( k 1)
... ann 1 x n 1 )
...
a x
nn
( k 1)
DX
(k )
B (S+ I ) X
( k 1)
D D X = D B D (S + I ) X
X = D (S + I ) X
+D B
1
(k )
(k )
( k 1)
(k )
J X
( k 1)
( k 1)
+E
onde
J = D (S+ I )
E =D B
1
5.4.2.1
Exemplos
a) Verificao da convergncia:
4x y + z = 19
x + 3y z = 14
x + y 5z = -6
b) Obteno do Algoritmo:
0 0 0
0 1 1
I = 1 0 0 S = 0 0 1
1 1 0
0 0 0
,
,
1
4
1
=
D 0
0
Ento,
0
1
3
0
1
5
4 0 0
= 0 3 0
0 0 5
,
19
= 14
6
,
54
1
0
4
1
= 0
3
0
0
1
4
=0
0 0 1 1 0
0 1 0 1 = 1
3
1 1 1
0 1
5
5
4
0
1
5
1
4
1
3
0
0 19 19
4
0 14 = 14
3
1 6 6
5
5
0
1
3
0
Ento,
(k )
X = 13
1 5
4
0
1
5
1
19
4
4
1 ( k 1) + 14
3 X
6 3
0
5
c) Atribuio inicial:
0
(0)
X = 0
0
d) Iteraes:
4,750
5,617
4,850
4,951
5,031
(1)
( 2)
( 3)
(4)
(5)
X = 3,991
X X = 0,004 < erro
3,005
0,003
A soluo deste sistema : (4,998; 3,991; 3,005)T
Derivado do mtodo de Gauss-Jacobi, este mtodo utiliza a cada iterao os valores j prontos na
prpria iterao, para tentar assegurar convergncia mais rpida, ou seja,
55
(k )
( k 1)
(b1 a12 x2
( k 1)
a13 x3
( k 1)
a14 x4
( k 1)
... a1n x n
11
x
x
(k )
2
(k )
3
=
=
(k )
( k 1)
a 24 x4
( k 1)
... a2 n x n
22
( k 1)
(b2 a21 x1 a 23 x3
( k 1)
(k )
( k 1)
... a3n x n
33
...
(k )
n
(k )
(k )
(k )
nn
(k)
i
ii
5.4.3.1
( bi aij x j
j =1
j i
(k ) i > j
)
( k 1) i < j
Exemplos
Exemplo 1: Resolver por Gauss-Seidel, com 4 decimais com arredondamento e erro menor ou igual a
0,005 o sistema abaixo.
x + 8y z = 16
6x y + z = 7
x + y+ 5z = 18
a) Verificao da convergncia:
6x y + z = 7
x + 8y z = 16
x + y + 5z = 18
b) Isolamento das incgnitas:
1
x= (7+yz)
6
1
y = ( 16 x + z )
8
1
z = ( 18 x y )
5
c) Atribuio inicial:
x(0) = 0
y(0)=0
z(0)=0
d) Iteraes:
1
( 7 + 0 0 ) = 1,1667
6
1
y(1) = ( 16 1,1667 + 0 ) = 1,8542
8
1
z(1) = ( 18 1,1667 1,8542 ) = 2,9958
5
x(1) =
x(2) =
1
( 7 + 1,8542 2,9958 ) = 0,9764
6
56
1
( 16 - 0,9764 + 2,9958 ) = 2,2524
8
1
z(2) = ( 18 0,9764 2,2524 ) =2,9542
5
y(2) =
1
( 7 + 2,2524 2,9542 ) = 1,0497
6
1
y(3) = ( 16 - 1,0497 + 2,9542 ) = 2,2381
8
1
z(3) = ( 18 1,0497 2,2381 ) = 2,9424
5
x(3) =
1
( 7 + 2,2381 2,9424 ) = 1,0493
6
1
y(4) = ( 16 - 1,0493 + 2,9424 ) = 2,2366
8
1
z(4) = ( 18 1,0493 2,2366 ) = 2,9428
5
x(4) =
Exerccio 1: Resolver por Gauss-Seidel, com 4 decimais com arredondamento e erro menor ou igual a
0,01 o sistema abaixo.
7x + y z = 13
x + 8y + z = 30
2x y + 5z = 21
A soluo deste sistema : (2,0001; 3,0003; 4,0000)T
5.4.4
( k 1)
a13 x 3
( k 1)
11
(k )
1
= b1 a12 x 2
22
(k )
2
= b2 a21 x1 a23 x 3
(k )
n
a x
a x
( k 1)
(k )
... a1n x n
( k 1)
... a2n x n
...
a x
nn
(k )
(k )
(k )
DX
(k )
B I X
(k )
( k 1)
(D + I ) X( ) =
k
(
B S X
k 1)
(k )
(k )
= ( D + I ) 1 B ( D + I ) 1 S
1
= ( D + I ) S X
( k 1)
+ (D + I ) B
( k 1)
57
(k )
=G
( k 1)
+F
onde,
G
F
5.4.4.1
= ( D + I ) 1 S
= ( D + I ) 1 B
Exemplos
a) Verificao da convergncia:
5x y = 19
x + 6y = -21
b) Obteno do Algoritmo:
5 0
=
0 6
0 0
=
1 0
0 1
=
0 0
19
=
21
Ento,
1
1
0 0 1 0
5
5
=
=
130 1 6 0 0 0 130
1
= 5
1 30
0 19 19
5
=
1 21 62
6
15
Logo,
(k )
1
19
0
( k 1)
5
5
=
X
+
62
0 1 30
15
c) Atribuio inicial:
0
(0)
X = 0
d) Iteraes:
(1)
( 4)
3,800
2,973
3,001
3,000
( 2)
( 3)
( 4)
=
X =
X =
X =
4,133
3,996
4,000
4,000
( 3)
0,001
=
< erro
0,000
58
5.4.5
Onde:
L Matriz Triangular Inferior
D Matriz Diagonal
U Matriz Triangular Superior
0
a
21
L = a 31
M
a n1
0
0
L
0
0
L
a32 0
L
M
M
O
a n 2 L a nn1
0
0
0
M
0
d11
0
D= 0
M
0
0
d 22
0
M
0
0
0
d 33
M
L
L 0
0 a12
0 0
L 0
L 0 U = 0 0
O M
M M
0 0
0 d nn
(L + D + U )x = b
Lx + Dx + U x = b
D x = b (L + U ) x
x = D 1 b D 1 L x D 1U x
x
( k +1)
= D 1 b D 1 L x
( k +1)
D 1U x
(k )
a13
a 23
0
M
L
L a1n
L a 2 n
L
M
O a n 1n
0
0
59
5.4.5.1
2 2
1
x1( k +1) = (3 x 2( k ) )
1
1
x 2( k +1) = (3 + 3 x1( k +1) )
3
Para k=0 e x
(0)
= [0 0]T :
(1)
= [3 2]T :
( 2)
= [1 4 ]T :
3
x1(1) = 3
x 2(1) = 2
Para k=1 e x
x1( 2) = 1
x 2( 2) = 4
Para k=2 e x
x1(3) = 5
x
( 3)
2
3
= 14
9
3 ]T .
2
Esse processo iterativo at convergncia pode ser interpretado geomtricamente num grafico com a
componente x1 na abscissa e a componente x 2 na ordenada.
8
x2
7
x1+x2=3
6
5
4
3
(1,2)
(3,2)
2
(4/3,5/3)
(1,4/3)
x1-3x2=-3
(0,0)
(0,3)
x1
-1
-2
-5
-4
-3
-2
-1
60
(o )
(1)
, x , x
( 2)
, ......, x
(k )
est convergindo
Observao 2: A sequncia gerado pelo Mtodo de Gauss-Seidel depende fortemente da disposio das
equaes. Esta observao pode ser melhor entendida modificando a ordem das equaes do exemplo
anterior.
Considere o mesmo Sistema Linear anterior, porm modificando a ordem das equaes:
x1 3 x 2 = 3
x1 + x 2 = 3
O esquema iterativo utilizando o Mtodo de Gauss-Seidel dado por:
x1( k +1) = (3 + 3x 2( k ) )
x 2( k +1) = (3 x1( k +1) )
Para k=0 e x
(0)
= [0 0]T :
(1)
= [3 6]T :
x1(1) = 3
x 2(1) = 6
Para k=1 e x
x1(1) = 15
x 2(1) = 12
8
x2
7
(-3,6)
......(6,15)
6
5
x1+x2=3
4
3
x1-3x2= -3
2
1
x
-2
-5
5.4.5.2
-4
-3
x1
(0,0)
(0,-3)
-1
-2
-1
61
Critrio de Linhas
Seja o sistema linear A x = b , com A dimenso n n e seja:
a kj
j =1
j k
k =
a kk
(k )
(0)
5.4.5.3
Critrio de Sassenfeld
1 =
e para j = 2,3,.............n :
j =
a j1 1 + a j 2 2 + .............. + a jj 1 j 1 + a jj +1 + ...... + . a j1
a jj
Define-se = max j .
j =1, n
Se < 1 , ento o Mtodo de Gauss-Seidel gera uma sequncia convergente para a soluo do sistema,
qualquer que seja o vetor inicial. Alm disso, quanto menor for o valor de mais rpida a
convergncia.
Exemplo: Verificar as condies de convergncia do Mtodo de Gauss-Seidel no sistema abaixo:
2 x1 + x 2 + 3 x3 = 3
x 2 + x3 = 1
x1 +
a) Critrio de Linhas
1+ 3
1 =
= 2 > 1 no satisfaz.
2
b) Critrio de Sassenfeld
3x3 = 3
62
1 =
1+ 3
= 2 > 1 no satisfaz.
2
3x3 = 3
x 2 + x3 = 1
2 x1 + x 2 + 3 x3 = 3
a) Critrio de Linhas
0+3
1 =
= 3 > 1 no satisfaz.
1
b) Critrio de Sassenfeld
0+3
1 =
= 3 > 1 no satisfaz.
1
Tentativa 2: Troca-se a primeira coluna pela terceira coluna na equao anterior.
3 x3 + 0 x 2 + x1 = 3
x3 x 2 + 0 x1 = 1
3 x3 + x 2 + 2 x1 = 3
a) Critrio de Linhas
1
1 = = 0.33 < 1 satisfaz.
3
1
1
2 = = 1 no satisfaz.
b) Critrio de Sassenfeld
1
1 = = 0.33 < 1 satisfaz.
3
1
2 = 3 = 0.33 < 1 satisfaz.
1
1
1
1
3 + 1
3 = 4 < 1 satisfaz.
3 = 3
2
6
Com a ltima modificao o sistema passa a ser convergente para qualquer vetor inicial.
Modificaes desse tipo so puramente acadmicas e so difceis de serem realizadas em sistemas reais.
Principalmente pelas dimenses dos problemas, resultando num grande esforo computacional, e das
incertezas quanto a sua eficincia.
Exemplo : Verifique a convergncia do sistema abaixo pelo critrio de linhas e Sassenfeld.
63
2 x1 + x 2 = 3
x1 + x 2 = 4
Critrio de Linhas
1
2 No satisfaz
2 = 1
1 =
Critrio de Sassenfeld
1 =
1
2
1
2 =1
2 =
1
2
1
Satisfaz
1
(bi aij x (jk +1) aij x (jk ) )
a ii
j <i
j >i
64
5.4.7
Teorema
Seja b n e A = ( M N ) n no singular. Se M no-singular e o raio espectral de
(0)
( k +1)
= Nx
(k )
+ b converge para
( M 1 N ) = max{ : ( M 1 N )}
Para o Mtodo de Gauss-Jacobi:
(L + D + U ) x = b
Lx + Dx + U x = b
D x = b (L + U )x
Dx
( k +1)
= b (L + U ) x
(k )
M =D
N = ( L + U )
( k +1)
= b U x
(k )
M = ( L + D)
N = U
5.4.7.1
Ax = b
Mtodos Diretos:
1.
2.
3.
4.
Mtodos Iterativos:
65
1. Provavelmente mais eficientes para sistemas de grande porte, principalmente com a utilizao de
computao de alto desempenho (vetorial e paralela);
2. Tem convergncia assegurada apenas sob certas condies;
3. Conserva a esparsidade da matriz de coeficientes;
4. Os mtodos de G-J e G-s requerem 2n 2 operaes por iteraes;
5. Poucas vantagens adicionais so conseguidas em solues para vetores independentes adicionais com
a matriz de coeficientes mantida constante, como no caso da fatorao LU;
6. Carregam menos erros de arredondamento no processo, tendo em vista que a convergncia uma vez
assegurada independe da aproximao inicial. Somente os erros da ltima iterao afetam a soluo.
66
6 Interpolao
6.1
Introduo
A interpolao outra das tcnicas bem antigas e bsicas do clculo numrico. Muitas funes so
conhecidas apenas em um conjunto finito e discreto de pontos de um intervalo [a, b], como, por exemplo,
a tabela abaixo que relaciona calor especfico da gua e temperatura:
Xi
x0
x1
x2
x3
x4
x5
x6
x7
20
25
30
35
40
45
50
55
Temperatura (C)
Calor especfico
0.99907 0.99852 0.99826 0.99818 0.99828 0.99849 0.99878 0.99919
Tabela 1 - Calor especfico da gua.
A partir desses dados suponhamos que se queira calcular:
a) o calor especfico da gua a 32.5 C
b) a temperatura para a qual o calor especfico 0.99837.
A interpolao tem o objetivo de nos ajudar na resoluo deste tipo de problema, ou em casos em
que possumos um conjunto de valores obtidos atravs de alguns experimentos.
Interpolar uma funo f(x) consiste em aproximar essa funo por uma outra funo g(x),
escolhida entre uma classe de funes definida a priori e que satisfaa algumas propriedades. A funo
g(x) ento usada em substituio funo f(x).
A necessidade de se efetuar esta substituio surge em vrias situaes, como por exemplo:
a) quando so conhecidos somente os valores numricos da funo por um conjunto de pontos
(no dispondo de sua forma analtica) e necessrio calcular o valor da funo em um ponto no tabelado
(como o caso do exemplo anterior).
b) quando a funo em estudo tem uma expresso tal que operaes como a diferenciao e a
integrao so difceis (ou mesmo impossveis) de serem realizadas. Neste caso, podemos procurar uma
outra funo que seja uma aproximao da funo dada e cujo manuseio seja bem mais simples.
As funes que substituem as funes dadas podem ser de tipos variados, tais como: polinomiais,
trigonomtricas, exponenciais e logartmicas. Ns iremos considerar apenas o estudo das funes
polinomiais.
6.1.1
Conceito de Interpolao
x xi, i = 0, 1, 2, ..., 7
Para resolver (a) tem-se que fazer uma interpolao. E, sendo assim, determina-se o polinmio
interpolador, que uma aproximao da funo tabelada. Por outro lado, para resolver (b), deve-se
realizar uma extrapolao.
Consideremos (n + 1) pontos distintos: x0, x1, x2, ..., xn, chamados ns da interpolao, e os
valores de f(x) nesses pontos: f(x0), f(x1), f(x2), ..., f(xn).
A forma de interpolao de f(x) que veremos a seguir consiste em se obter uma determinada
67
g(x)
(x0, f(x0))
(x1, f(x1))
(x2, f(x2))
(x3, f(x3))
(x5, f(x5))
(x4, f(x4))
x0
x1 x2
x3
x4
x5
f(x)
6.2
6.2.1
Interpolao Linear
Obteno da Frmula
Dados dois pontos distintos de uma funo y = f(x) : (x0, y0) e (x1, y1), deseja-se calcular o valor de
y para um determinado valor de x entre x0 e x1, usando a interpolao polinomial.
O polinmio interpolador uma unidade menor que o nmero de pontos conhecidos. Assim
sendo, o polinmio interpolador nesse caso ter grau 1, isto ,
P1(x) = a1x + a0
Para determin-lo, os coeficientes a0 e a1 devem ser calculados de forma que tenha:
P1(x0) = f(x0) = y0
P1(x1) = f(x1) = y1
ou seja, basta resolver o sistema linear abaixo:
a 1 x 0 + a 0 = y 0
a1 x 1 + a 0 = y 1
onde a1 e a0 so as incgnitas e
x 0 1
A=
x1 1
O determinante da matriz A diferente de zero, sempre que x0 x1, logo para pontos distintos o
sistema tem soluo nica.
O polinmio interpolador P1(x) = a1x + a0 tem como imagem geomtrica uma reta, portanto
estaremos aproximando a funo f(x) por uma reta que passa pelos dois pontos conhecidos (x0, y0) e (x1,
68
y1).
A figura abaixo mostra, geometricamente, os dois pontos, (x0, y0) e (x1, y1), e a reta que passa por
eles.
p1(x)
y1
y0
6.2.2
x0
x1
Exemplos
Exemplo 1: Seja a funo y = f(x) definida pelos pontos (0.00; 1.35) e (1.00; 2.94). Determinar
aproximadamente o valor de f(0.73).
P1(x) = a1x + a0 o polinmio interpolador de 1 grau que passa pelos pontos dados. Ento
teremos:
a) Pontos utilizados:
(0.00;1.35) e
(1.00; 2.94)
a0 = 1.35
a1 = 1.59
c) Polinmio interpolador:
P1(x) = 1.59x + 1.35 (equao da reta que passa pelos pontos dados)
d) Resposta:
P1(0.73) = 1.59 0.73 + 1.35
P1(0.73) = 2.51
O resultado obtido acima est afetado por dois tipos de erros:
a) Erro de arredondamento (EA) - cometido durante a execuo das operaes e no caso de um
resultado ser arredondado.
b) Erro de truncamento (ET) - cometido quando a frmula de interpolao a ser utilizada
escolhida, pois a aproximao de uma funo conhecida apenas atravs de dois pontos dados feita por
um polinmio de 1 grau.
Exerccio 1: Dada a funo f(x) = 10x4 + 2x + 1 com os valores de f(0.1) e f(0.2) determinar P1(0.15) e o
erro absoluto cometido.
Polinmio interpolador:
P1(0.15) = 1.3085
EA = 0.0034375
Exerccio 2: Calcular o calor especfico aproximado da gua a 32,5 C, usando os valores da tabela 1.
Usando as temperaturas 30 C e 35 C.
69
Polinmio interpolador:
P1(32.5) = 0.99822
6.3
6.3.1
Interpolao Quadrtica
Obteno da Frmula
Se conhecermos trs pontos distintos de uma funo, ento o polinmio interpolador ser:
x02 x 0 1
V = x12 x1 1
x 22 x 2 1
Como os pontos so distintos, ento o sistema ter soluo nica.
6.3.2
Exemplos
Exemplo 1: Utilizando os valores da funo seno, dados pela tabela abaixo, determinar a funo
2
2 sen x
quadrtica que se aproxima de f(x) =
, trabalhando com trs casas decimais.
x +1
x
0
sen(x)
0
1
2
2
2
a) Pontos utilizados:
( 0; 0 )
( /6; 0.328 )
f(x)
0.000
0.328
0.560
( /4; 0.560 )
P 2(0) = a 2 02 + a1 0 + a 0 = 0
2
P 2( 6 ) = a 2 6 + a1 6 + a 0 = 0.328
P 2( ) = a 2 2 + a1 + a 0 = 0.560
4
4
()
()
()
()
70
a1 = 0.452
a0 = 0
c) Polinmio interpolador:
P2(x) = 0.333 x 2 + 0.452x
Exemplo 2: Determinar o valor de f(0.2) e o erro absoluto ocasionado pela aplicao da interpolao
quadrtica, no clculo deste valor, usando os valores tabelados da funo f(x) = x2 2x + 1. Utilizar duas
casas decimais.
x
0.5
0.3
0.1
a) Pontos utilizados:
( 0.5; 0.25 )
( 0.3; 0.49 )
f(x)
0.25
0.49
0.81
( 0.1; 0.81 )
71
Exerccio 1: Usando trs pontos da Tabela 1, determinar o calor especfico aproximado da gua a 31 C
Pontos utilizados: (20; 0.99907), (30; 0.99826) e (40; 0.99828)
Polinmio interpolador:
P2(x) = 0.00000415x2 0.0002885x + 1.00318
P2(31) = 0.99822
6.4
Interpolao de Lagrange
As interpolaes vistas anteriormente so casos particulares da interpolao de Lagrange. Vamos
estudar agora o polinmio interpolador de grau menor ou igual a n, sendo dados n + 1 pontos distintos.
Teorema: Sejam (xi, yi), i = 0, 1, 2, ..., n, n + 1 pontos distintos, isto , xi xj para i j. Existe um
nico polinmio P(x) de grau menor ou igual a n, tal que P(xi) = yi, para todo i.
O polinmio P(x) pode ser escrito na forma:
Pn(x) = a0 + a1x + a2x2 + ... + anxn
ou
Pn(x) =
a x
i =0
P(x) , no mximo, de grau n, se an 0 e, para determin-lo, deve-se conhecer os valores de a0, a1,
..., an. Como Pn(x) contm os pontos (xi, yi), i = 0, 1, ..., n, pode-se escrever que Pn(xi) = yi.
Com isso temos:
a + a x + a x 2 +...+ a x n = y
1 0
2
0
n
0
0
0
2
n
a0 + a1 x1 + a 2 x1 +...+ a n x1 = y1
................................................
2
n
+
+ a2 x n +...+ a n x n = y
a
a
x
0
1
n
n
Resolvendo o sistema acima, determina-se o polinmio Pn(x). Para provar que tal polinmio
nico, basta que se mostre que o determinante da matriz A, dos coeficientes das incgnitas do sistema,
diferente de zero. A matriz A :
1 x x 2 ... x n
0
0
0
2
n
...
1
x1
A = x1 x1
............................
2
n
1 x n x n ... x n
Mas o determinante da matriz A conhecido como determinante das potncias ou de
Vandermonde e, da lgebra Linear, sabe-se que seu valor dado por:
det(A) =
(x x ) .
i
i> j
(x x )
i
i> j
= (x1 x0) (x2 x0) (x2 x1) (x3 x0) (x3 x1) (x3 x2) =
72
= (1)(2)(3)(1)(2)(1) = 12
Este valor igual ao determinante da matriz:
1
1
1
6.4.1
1 1 1
0 0 0
3 9 27
2 4 8
Obteno da Frmula
Pn(xi) =
y
k =0
Lk ( x i ) = yiLi(xi) = yi
Pn(x) =
y
k =0
onde Lk(x) =
( x xj )
k xj )
(x
j =0
j k
Lk ( x )
73
n
( x xj )
Pn(x) = y k
, a frmula da interpolao lagrangeana.
j = 0 ( xk xj )
k =0
j k
6.4.2
Exemplos:
Exemplo 1: No caso da interpolao linear, visto anteriormente, temos dois pontos distintos: (x0, f(x0)) e
(x1, f(x1)) com n igual a 1.
a) Pontos utilizados:
(0.00; 1.35) e (1.00; 2.94)
b) Clculo dos coeficientes:
P1(x) = y0L0(x) + y1L1(x), onde
( x x1)
( x 0 x1)
( x x 0)
L1(x) =
( x1 x 0)
L0(x) =
Assim, P1(x) = y0
( x x1)
( x x 0)
+ y1
( x 0 x1)
( x1 x 0)
que exatamente a equao da reta que passa por (x0, f(x0)) e (x1, f(x1)).
c) Polinmio interpolador:
( x 1)
( x 0)
P1(x) = 1.35
+ 2.94
= 1.35x + 1.35 + 2.94x = 1.59x + 1.35
(0 1)
(1 0)
que a mesma expresso obtida no exemplo 1 de interpolao linear.
Exerccio 1: Determinar o polinmio de interpolao de Lagrange para a funo conhecida pelos pontos
tabelados abaixo e o resultado em P(0.5):
i
0
1
2
Resposta:
xi
0
1
2
yi
0
1
4
Exerccio 2: Determinar o polinmio interpolador de Lagrange para a funo conhecida pelos pontos da
tabela abaixo:
i
0
1
2
3
Resposta:
P3(x) = x3 4x + 1
xi
1
0
2
3
yi
4
1
1
16
74
6.5
G0
CTE
P0(x) = a0
Polinmio de grau 1:
Polinmio grau 0 Polinmio grau 1
+
G1
passando por x0
CTE
Polinmio de grau 2:
+
G2
+
passando por x0
passando por x0 e por x1
CTE
M
Polinmio de grau n:
Pn(x) = a0 + a1.(x x0) + a2.(x x0).(x x1) + ... + an.(x x0).(x x1).(x x2) ... (x xn-1)
Impondo que Pn(x) passe por todos os n + 1 pontos da tabela, temos que:
Pn(x0) = f(x0)
Pn(x1) = f(x1)
Pn(x2) = f(x2)
M
Pn(xn) = f(xn)
Validade:
x = x0 P 0 ( x0 ) = a 0 =
x=
f (x )
0
x1 P1 ( x1) = a0 + a1 ( x1 x0) =
f (x ) a
1
=
1
f (x ) a
a
x x
0
=
1
f (x ) P (x )
x x
0
75
x=
f (x ) a
2
=
2
f (x ) P (x )
( x x )( x x )
2
x = x P ( x ) = a + a ( x x ) + ... + a ( x x )...( x x
f (x ) P (x )
=
a ( )...( )
x x x x
n
n 1
n 1
)=
n 1
f (x )
n
xi
f(xi)
3
4
1
4
2
6
1 Hiptese:
x = x P ( x ) = 8
0
2 Hiptese:
x = x a
1
f ( x ) P ( x ) = 4 + 8 = 2
3 + 5
x x
0
P1 ( x ) = 8 + 2( x + 5) = 2 x + 2
3 Hiptese:
x = x a
2
=
2
f (x ) P (x ) = 4 4 = 0
( x x )( x x ) (1 + 5)(1 + 3)
1
P2 ( x ) = 2 x + 2
4 Hiptese:
x=
x 3 a3 =
f (x ) P (x )
66
=
=0
( x x )( x x )( x x ) ( 2 + 5)( 2 + 3)( 2 1)
3
P3 ( x ) = 2 x + 2
6.6
6.6.1
Seja f(x) uma funo tabelada em n + 1 pontos distintos x0, x1, x2, ... xn. Definimos o operador
diferenas divididas por:
f[x0] = f(x0)
f [ x1 ] f [ x0 ]
f ( x1 ) f ( x0 )
f[x0,x1] =
=
x1 x0
( x1 x0 )
f [ x1 , x 2 ] f [ x0 , x1 ]
f[x0,x1,x2] =
x 2 x0
M
f [ x1 , x 2 ...x n ] f [ x0 , x1 ...x n 1 ]
f[x0,x1,x2, ... xn] =
x n x0
76
Dizemos que f[x0,x1,x2,...xk] a diferena dividida de ordem k da funo f(x) sobre os k + 1 pontos.
Conhecidos os valores que f(x) assume nos pontos distintos x0, x1, x2, ... xn, podemos construir a
tabela:
xi
x0
x1
x2
...
xn-2
xn-1
xn
6.6.2
Ordem 0
f[x0]
f[x1]
f[x2]
...
f[xn-2]
f[xn-1]
f[xn]
Ordem 1
f[x0,x1]
f[x1,x2]
f[x2,x3]
...
f[xn-2,xn-1]
f[xn-1,xn]
Ordem 2
f[x0,x1,x2]
f[x1,x2,x3]
f[x2,x3,x4]
...
f[xn-2,xn-1,xn]
....
Ordem n
f[x0,x1,x2 ... xn]
...
Pode-se provar que as diferenas divididas satisfazem a propriedade de ser simtrico nos
argumentos.
Exemplo:
f[x0,x1] =
f [ x1 ] f [ x0 ]
f [ x0 ] f [ x1 ]
=
= f[x1,x0]
x1 x0
x0 x1
Exemplos
Exemplo 1: Obter f(0.5) usando um polinmio interpolador de Newton do segundo grau (3 pontos).
Considere a seguinte tabela:
1
2
xi
F(xi)
0
1
1
2
2
5
3
10
x0
x1
x2
x3
x4
X
1
0
1
2
3
77
onde:
f[x0] = f(x0) = 2
f[x1] = f(x1) = 1
f[x2] = f(x2) = 2
f[x3] = f(x3) = 5
f[x4] = f(x4) = 10
f [ x1 ] f [ x0 ]
f ( x1 ) f ( x0 ) 1 2
=
=
= 1
0 +1
x1 x0
( x1 x0 )
f [ x 2] f [ x1] 2 1
f[x1,x2] =
=
=1
1 0
x 2 x1
52
f [ x3] f [ x2]
f[x2,x3] =
=
=3
2 1
x3 x 2
f [ x4] f [ x3] 10 5
f[x3,x4] =
=
=5
3 2
x4 x3
f[x0,x1] =
f [ x1 , x 2 ] f [ x0 , x1 ] 1 + 1
=
=1
1+1
x 2 x0
f [ x 2 , x 3] f [ x1 , x 2]
31
f[x1,x2,x3] =
=
=1
20
x 3 x1
f [ x3 , x4] f [ x2 , x3] 5 3
f[x2,x3,x4] =
=
=1
3 1
x4 x2
f[x0,x1,x2] =
f [ x1 , x 2 , x 3] f [ x0 , x1 , x 2] 1 1
=
=0
2 +1
x 3 x0
11
f [ x 2 , x 3 , x 4] f [ x1 , x 2 , x 3]
f[x1,x2,x3, x4] =
=
=0
3 0
x 4 x1
f[x0,x1,x2,x3] =
f[x0,x1,x2,x3,x4] =
f [ x1 , x 2 , x 3 , x 4] f [ x0 , x1 , x 2 , x 3]
00
=
=0
3+1
x 4 x0
b) Polinmio interpolador:
P2(x) = 2 1(x + 1) + 1(x + 1)(x 0)
P2(x) = 2 (x + 1) + x (x + 1)
P2(x) = 2 x 1 + x2 + x
P2(x) = x2 + 1
c) Resposta:
P2(0.5) = (0.5)2 + 1 = 1.25
Exemplo 2: Obter f(40) usando um polinmio interpolador de Newton de grau 3 (4 pontos). Considere a
seguinte tabela:
xi
F(xi)
30
0.5
35
0.574
45
0.707
50
0.766
55
0.819
78
X
30
35
45
50
x0
x1
x2
x3
Ordem 0
0.5
0.574
0.707
0.766
Ordem 1
0.0148
0.0133
0.0118
Ordem 2
0.0001
0.0001
Ordem 3
0
Como o polinmio obtido no ter grau 3, devemos escolher um novo conjunto de pontos:
X
30
35
45
55
x0
x1
x2
x3
Ordem 0
0.5
0.574
0.707
0.819
b) Polinmio interpolador:
P3(x) = 0.5 + 0.0148(x 30) 0.0001(x 30)(x 35) 0.0000002(x 30)(x 35)(x 45)
c) Resposta:
P3(40) = 0.5 + 0.0148(10) 0.0001(10)(5) 0.0000002(10)(5)(5)
P3(40) = 0.64305
Exerccio 1: Obter f(0.47) usando um polinmio interpolador de Newton do segundo grau (3 pontos).
Considere a seguinte tabela:
xi
F(xi)
0.2
0.16
0.34
0.22
0.4
0.27
0.52
0.29
0.6
0.32
0.72
0.37
Exerccio 2: Obter f(0.5) usando um polinmio interpolador de Newton do quarto grau (5 pontos).
Considere a seguinte tabela:
xi
F(xi)
1
1
0
1
1
0
2
1
3
2
Polinmio interpolador:
1
1
1
P4(x) = 1 + 0.(x + 1) + (x + 1)(x) + (x + 1)(x)(x 1) + (x + 1)(x)(x 1)(x 2)
2
6
24
P4(0.5) = 1 0.375 0.0625 0.02344 = 0.53906
6.7
Interpolao de Gregory-Newton
Muitas vezes so encontrados problemas de interpolao cuja tabela de pontos conhecidos tem
valores que so igualmente espaados, ou seja:
x1 x0 = x2 x1 = x3 x2 = ... = xn xn-1 = h
79
f(x) = f(x)
1f(x) = f(x + h) f(x)
2f(x) = 1f(x + h) 1f(x)
...
nf(x) = n-1f(x + h) n-1f(x)
0
xi
x0
x1
x2
...
xn-2
xn-1
xn
6.7.2
Ordem 0
f(x0)
f(x1)
f(x2)
...
f(xn-2)
f(xn-1)
f(xn)
Ordem 1
1f(x0)
1f(x1)
1f(x2)
...
1
f(xn-2)
1f(xn-1)
Ordem 2
2f(x0)
2f(x1)
2f(x2)
...
2
f(xn-2)
...
Ordem n
nf(x0)
...
n f ( x0 )
.
n!h n
Prova:
f[x0] = f(x0)
f [ x1 ] f [ x0 ]
f ( x1 ) f ( x0 )
f ( x0 + h) f ( x0 )
f ( x0 )
f[x0,x1] =
=
=
=
x1 x0
( x1 x0 )
h
h
f ( x1 ) f ( x0 )
f [ x1 , x 2 ] f [ x0 , x1 ]
2 f ( x0 )
h
h
f[x0,x1,x2] =
=
=
x 2 x0
2h
2h 2
M
e por induo podemos mostrar que esta regra valida para valores maiores que 2.
6.7.3
Exemplos
Exemplo 1: Obter f(0.5) usando um polinmio interpolador de Gregory-Newton (G-N) do segundo grau
(3 pontos). Considere a seguinte tabela:
80
1
2
xi
f(xi)
0
1
1
2
2
5
3
10
a) Tamanho do intervalo:
h=1
b) Clculo dos coeficientes de Pn(x):
X
1
0
1
2
3
x0
x1
x2
x3
x4
c) Polinmio interpolador:
1
2
P2(x) = 2 + (x + 1) +
(x + 1)(x)
2
1
2 1
P2(x) = 2 (x + 1) + x (x + 1)
P2(x) = 2 x 1 + x2 + x
P2(x) = x2 + 1
d) Resposta:
P2(0.5) = (0.5)2 + 1 = 1.25
0.01
1.01
0.03
1.09
0.05
1.25
0.07
1.49
1
0
2
0.6931
3
1.0986
4
1.3863
6.8
Uma funo spline intervalar um polinmio constitudo sobre certas condies de continuidade.
81
6.8.1
Spline Linear
( xi , y i , i = 1, 2, L, n)
si ( x) = a i x + bi , for x [xi , xi +1 ] , i = 1, 2, L, n 1
(1.1)
s ( x ) = y i si ( xi +1 ) = y i +1
A condio C0, i i
e
produz 2(n 2) equaes para os pontos interior ao domnio
de x. Acrescentada a estas condies duas condies nos pontos extremos do domnio de x so
estabelecidas produzindo um total de 2n 2 equaes concordar com 2n 2 incgnitas:
a i , bi , i = 1, 2, L, n 1
. Aplicando essas condies obtm-se:
s i ( x) = y i
x xi +1
x xi
y yi
+ y i +1
= y i + i +1
( x xi ), x [xi , xi +1 ]
xi xi +1
xi +1 xi
xi +1 xi
(1.2)
x5
x0
+2
= 2.5 x , x [0, 5]
05
50
s 2 ( x) = 2
x7
x5
1
= 1.5 x + 9.5 , x [5, 7]
57
75
s 3 ( x ) = 1
x8
x7
2
= x + 6 , x [7, 8]
78
87
s 4 ( x ) = 2
x 10
x8
+ 20
= 11x 90 , x [8, 10]
8 10
10 8
82
Linear Spline Interpolation
20
data points
linear spline
interp1: linear
15 interp1: MATLAB function.
Type "help interp1" in MATLAB
window for its usage and options.
10
-5
5
x
10
83
end;
end;
% Calcule y(XX) eq(1.2).
f = y(m)*(xx-x(m+1))/(x(m)-x(m+1)) ...
+y(m+1)*(xx-x(m))/(x(m+1)-x(m));
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
0.5
1.5
2.5
x
3.5
4.5
84
6.8.2
Spline Quadrtica
for x [xi , xi +1 ] , i = 1, 2, L , n 1
si ( xi +1 ) = s i+1 ( xi +1 ), i = 1, 2, L, n 2
(2.1)
(2.2)
(2.3)
Dos trs requerimentos acima, existem 3n-4 condies. Porm as splines quadrticas requer um total de
3n-3 condies, de forma que h necessidade de uma condio a ser adicionada. Usualmente usa-se,
s1(x1) = 0 como condio. Com isso se obtm a ento chamada spline natural quadrtica. Certamente
outras condies podem ser usadas, tal como s1(x1) = sn-1(xn ).
Para determinar a equao da spline, primeiro denote di = si (xi ), ento desde que s(x) uma spline
linear para o conjunto de dados (xi, di, i = 1,2, , n), obtm-se
si ( x) = d i +1
x xi
x x (d i +1 d i ) x d i +1 xi + d i xi +1
+ d i i +1
=
xi +1 xi
xi +1 xi
xi +1 xi
d i +1 d i
( x xi ) + d i
xi +1 xi
aqual uma equao linear para a inclinao (slope).
Integrando em x, obtm-se
d di
si ( x) = i +1
( x xi ) 2 + d i ( x xi ) + y i
2( xi +1 xi )
=
(2.4)
si ( xi ) = y i
(2.5)
A eq(2.5) descreve um esquema recursivo. Se d1 conhecido, ento di+1 pode ser calculado pela eq(2.5).
Varias condies podem ser aplicadas para obter d1:
Para a ento chamada Spline Natural, d1 = 0 .
(2.6)
85
n 1
ni +1 yi +1 yi
d
=
(
1
)
,
n
par
1
n1
x
n i +1 yi +1 yi
n
i =2
i
+
1
i
(1) d1
d1 = d n = 2 (1)
xi+1 xi
i =2
sem solucao,
n impar
(2.7)
Esta condio no pode ser aplicada quando n um nmero impar.
86
Examplo 2.1. Dado os mesmo dados do examplo 1.1, calcule a spline quadrtica.
Usando a spline natural quadrtica, onde d1 = 0, ento se obtm
d2 = 2
20
1 2
0 = 0.8, d 3 = 2
0.8 = 3.8
50
75
d4 = 2
2 +1
20 + 2
+ 3.8 = 1.8, d 5 = 2
1.8 = 20.2
87
10 8
s1 ( x) =
0 .8 0
( x 0) 2 + 0( x 0) + 0 = 0.08 x 2 ,
2(5 0)
s 2 ( x) =
3 .8 0 .8
( x 5) 2 + 0.8( x 5) + 2 = 1.15 x 2 + 12.3 x 289.5, x [5, 7]
2(7 5)
s3 ( x) =
1 .8 + 3 .8
( x 7) 2 3.8( x 7) 1 = 2.8 x 2 9.4 x + 162.8, x [7, 8]
2(8 7)
s 4 ( x) =
20.2 1.8
( x 8) 2 + 1.8( x 8) 2 = 4.6 x 2 71.8 x + 273.6, x [8, 10]
2(10 8)
x [0, 5]
Os resultados das splines devido condio d1 = d2, so plotados na figura 2.1. Prximo x = 0, a spline
natural tem uma curva achatada devido derivada zero em x = 0. A outra spline tem uma inclinao
linear no primeiro intervalo. Para todos os intervalos de dados, estas duas splines so diferentes, embora
as diferenas sejam pequenas.
Quadratic Spline Interpolation
20
data points
natural quadratic spline
quadratic spline with d1=d2
15
10
-5
5
x
10
87
0.5
-0.5
-1
-1.5
-2
0.5
1.5
2.5
x
3.5
4.5
6.8.3
se
s [x1 , x n ];
( j)
[x , x ]
(2) s , j = 0, 1, 2, L , k 1 so todas funes contnuos no 1 n onde s(j) a j-sima derivada;
[x , x ]
(3) s um polinmio de grau k em cada intervalo i i +1 .
Se k = 3 , a spline chamada de spline cbica. As curvaturas dadas pelas derivadas segundas podem ser
x
aproximadas por funes lineares em um intervalo e denotando os valores nos pontos i como
ei = si( xi ), i = 1, 2, L , n
, elas podem ser aproximadas pelo polinmio interpolador de Lagrange no
88
conjunto de dados
( xi , ei , i = 1, 2, L, n)
si( x) = ei +1
. Contudo
x xi
x x
+ ei i +1
, i = 1, 2, L , n 1
xi +1 xi
xi +1 xi
(3.1)
s i ( x) =
ei +1
e
( x xi ) 3 + i ( xi +1 x) 3 + c( x xi ) + d ( xi +1 x)
6hi
6hi
(3.2)
c=
y i +1 ei +1 hi
y eh
; d= i i i
hi
6
hi
6
(3.3)
A qual conduz a
s i ( x) =
ei +1
e
y
e h
y eh
( x xi ) 3 + i ( xi +1 x) 3 + ( i +1 i +1 i )( x xi ) + ( i i i )( xi +1 x)
6hi
6hi
hi
6
hi
6
(3.4)
si ( x) =
ei +1
e
y
e h
y eh
( x xi ) 2 i ( xi +1 x) 2 + ( i +1 i +1 i ) ( i i i )
2hi
2hi
hi
6
hi
6
si ( xi ) =
ei 2
y
e h
y eh
e h eh
hi + ( i +1 i +1 i ) ( i i i ) = i +1 i i i + bi
2hi
hi
6
hi
6
6
3
onde
bi =
y i +1 y i
, i = 1, 2, L , n 1
hi
(3.5)
Tambm
si1 ( xi ) =
Fixando
ei
y
eh
y
e h
e h
eh
hi21 + ( i i i 1 ) ( i 1 i 1 i 1 ) = i 1 i 1 + i i 1 + bi 1
2hi 1
hi 1
6
hi 1
6
6
3
si ( xi ) = si1 ( xi ) para todos os pontos no interior do intervalo, obtm-se
hi 1ei 1 + 2(hi 1 + hi )ei + hi ei +1 = 6(bi bi 1 ), i = 2, 3, L , n 1
(3.6)
e
Um sistema linear tridiagonal de equaes em termos das incgnitas i s. Existem n incgnitas e n 2
equaes. Duas condies adicionais so necessrias para determinar as splines cbicas. Quando elas so
89
e1 = en = 0
, as splines resultantes so chamadas de spline cbica natural. Essas equaes podem ser
rearranjadas como:
e1 = 0
hi 1ei 1 + u i ei + hi ei +1 = vi
i = 2, 3, L, n 1
en = 0
(3.7)
onde
u i = 2(hi 1 + hi )
vi = 6(bi bi 1 )
i = 2, 3, L, n 1
(3.8)
Example 3.1. Dado os pontos do exemplo 1.1, obter a spline natural cbica.
Para calcular a 2 derivadas, primeiro determine
h1 = 5, h2 = 2, h3 = 1, h4 = 2
b1 = 0.4, b2 = -1.5, b3 = -1, b4 = 11
14 2 0 e2 11.4
2 6 1 e3 = 3.0
0 1 6 e 72.0
Os valores de e2, e3, e e4 pode ser obtido usando o algoritmo de Thomas. Estes valores juntamente com
e1= e5 = 0 fornecem:
e2 =-0.67211538461538, e3 =-0.99519230769231, e4 =12.33173076923077
As splines cbicas natural so plotadas na figure 3.1. As funes Matlab spline e interp1 com as
opes corretas so usadas para produzir as mesmas splines. Duas outras condies so adicionadas
nestas funes Matlab como segue
90
15
10
-5
5
x
10
91
Cubic Spline Interpolation
1.5
data points
natural cubic spline
interp1:spline
spline
0.5
-0.5
-1
-1.5
0
0.5
1.5
2.5
x
3.5
4.5
92
%-------------------------------------------------------[xs]=triDiag(n-2,sub,super,dia,rhs);
e(2:n-1)=xs;
%-------------------------------------------------------% Calcular intervalo onde xx reside
for i = 1:n-1;
if (xx>=x(i)) & (xx<=x(i+1));
m=i;
break;
end;
end;
%
hm=x(m+1)-x(m);
xt1=xx-x(m);
xt2=x(m+1)-xx;
% Calcule y(XX) cubic spline usando eq(3.4).
f = (e(m+1)*xt1^3+e(m)*xt2^3)/(6.0*hm) ...
+xt1*( y(m+1)/hm-hm*e(m+1)/6.0 ) ...
+xt2*( y(m)/hm-hm*e(m)/6.0 );
function [xs]=triDiag(dim,sub,super,diag,rhs)
for i=1:dim-1 %Elimination
m=sub(i)/diag(i);
diag(i+1)=diag(i+1)-m*super(i);
rhs(i+1)=rhs(i+1)-m*rhs(i);
end
x(dim)=rhs(dim)/diag(dim); %Back Substitution
for i=dim-1:-1:1
x(i)=(rhs(i)-super(i)*x(i+1))/diag(i);
end
xs=x;
93
plot(a,c1,'k'); % Plot points due to cubic_spline
plot(a,c3,'k:'); % Plot points due to interp1's spline
plot(a,c4,'k+'); % Plot points due to spline function
end;
legend('data points','natural cubic spline', ...
'interp1:spline','spline',0) % Create legend
xlabel('x'), ylabel('y'),title('Cubic Spline Interpolation'); % Title for plot
grid;
end;
6.8.4
Splines de crescente ordem so obtidas aumentando a ordem de continuidade nos pontos atravs
de todos os intervalos, splines quadrtica requer que as primeiras derivadas sejam satisfeitas nos pontos
de extremos dos intervalos, splines cbica requer as derivadas segundas, etc. Splines de ordem maior que
3 so raramente usadas em aplicaes prticas. Porm o aumento da ordem paga o esforo para ger-la?
Observando os grficos estes revelam que para ordem maior que 1 h oscilaes atravs dos
dados. A comparao das splines mostrada nas figuras 4.1 e 4.2. possvel observer que as splines
quadrticas, em geral, oscilam mais que as splines cbicas quando comparadas com as splines lineares.
Ento aumentando a ordem nem sempre aumenta as oscilaes. Ento qual spline escolher?
A Seleo de uma spline apropriada depende da aplicao. Se procura interpolar os dados por si
s, talvez a spline linear a melhor escolha. Se os dados forem de natureza cbica a spline cbica ser a
melhor escolha. Se desejar conhecer derivadas dos dados, uma spline linear gera saltos nos pontos,
portanto algum grau de suavidade seria desejvel. Ento novamente, a escolha dever ser feita em funo
da aplicao. Em projetos, as splines permitem suavizao local atravs dos dados e a spline cbica a
escolha usual.
Como as splines se comparam aos polinmios interpolantes de Hermite que tambm tratam de
derivadas? muito importante entender o seguinte conceito: splines concordam atravs das condies de
derivadas nos pontos extremos dos intervalos, no derivadas dos dados por si s. Em outras palavras,
splines so funes discretas as quais aproximam os dados preenchendo os dados nos intervalos: as
condies de suavidade nos pontos de juno so asseguradas assim como nos pontos gerados no interior
do intervalo. Por outro lado, a interpolao de Hermite requer derivadas de dados, isto , as derivadas so
partes dos dados, i.., posio, velocidade, acelerao. A nica relao entre spline e interpolao de
Hermite que ambos so polinmios.
Figura
4.1
Comparao
de Spline.
Spline Comparison
20
data points
natural cubic spline
natural quadratic spline
linear spline
15
10
-5
5
x
10
94
Figura
4.2
Comparao
Spline.
Spline Comparison
1.5
data points
natural cubic spline
natural quadratic spline
linear spline
0.5
-0.5
-1
-1.5
-2
0.5
1.5
2.5
x
3.5
4.5
95
7 Ajuste de Curvas
Uma das formas de se trabalhar com uma funo definida por uma tabela de valores a
interpolao polinomial. Contudo, a interpolao no aconselhvel quando:
a) preciso obter um valor aproximado da funo em algum ponto fora do intervalo de
tabelamento, ou seja, quando se quer extrapolar.
b) Os valores tabelados so resultados de algum experimento fsico ou de alguma pesquisa,
porque, nestes casos, estes valores podero conter erros inerentes que, em geral, no so
previsveis.
Surge ento a necessidade de se ajustar a estas funes tabeladas uma funo que seja uma "boa
aproximao" para os valores tabelados e que permita extrapolar com certa margem de segurana.
O problema do ajuste de curvas no caso em que temos uma tabela de pontos (x1, f(x1)), (x2, f(x2)),
..., (xm, f(xm)) com x1, x2, ..., xm, pertencentes a um intervalo [a, b], consiste em: escolhidas n funes
g1(x), g2(x), ..., gn(x), contnuas em [a, b], obter n constantes 1, 2, ..., n tais que a funo (x) = 1g1(x)
+ 2g2(x) + ... + ngn(x) se aproxime ao mximo de f(x).
Genericamente, no caso linear, estaremos supondo que os dados sero aproximados por uma
funo do tipo:
f(x) (x) = 1g1(x) + 2g2(x) + ... + ngn(x)
onde as funes g1(x), g2(x), ..., gn(x) so preestabelecidas.
Dizemos que este um modelo matemtico linear porque os coeficientes a determinar, 1, 2, ...,
n, aparecem linearmente, embora as funes g1(x), g2(x), ..., gn(x) possam ser funes no lineares de x,
como por exemplo, g1(x) = ex, g2(x) = (x2 + 2), g3(x) = sen(x), etc.
A escolha das funes pode ser feita observando o grfico dos pontos conhecidos ou baseando-se
em fundamentos tericos do experimento que nos forneceu a tabela.
Portanto, dada uma tabela de pontos (x1, f(x1)), (x2, f(x2)), ..., (xm, f(xm)), deve-se, em primeiro
lugar, colcoar estes pontos num grfico cartesiano. O grfico resultante chamado diagrama de
disperso. Atravs deste diagrama pode-se visualizar a curva que melhor se ajusta aos dados.
1
1.0
2.1
2
0.75
1.3
3
0.5
1.1
4
0.25
0.2
5
0
0
6
0.25
0.5
7
0.5
0.6
-1
-0.5
0.5
1.5
8
0.75
1.5
9
1.0
2.2
96
Portanto, natural escolher apenas uma funo g1(x) = x2 e procurar ento (x) = x2 (equao
geral de uma parbola passando pela origem).
Se considerarmos uma experincia onde foram medidos vrios valores de corrente eltrica que
passa por uma resistncia submetida a vrias tenses, colocando os valores correspondentes de corrente e
tenso em um grfico, poderemos ter:
V
Vq
V0
i0
iq
neste caso, existe uma fundamentao terica relacionando a corrente com a tenso V = Ri, isto , V
uma funo linear de i.
Assim, g1(x) = i e (i) = g1(i)
O problema determinar qual parbola com equao x2 se ajusta melhor ao primeiro grfico e
qual reta, passando pela origem, melhor se ajusta ao segundo grfico.
No caso geral, escolhidas as funes g1(x), g2(x), ..., gn(x) temos de estabelecer o conceito de
proximidade entre as funes (x) e f(x) para obter as constantes 1, 2, ..., n.
Uma maneira impor que o desvio (f(xi) (xi)) seja mnimo, para i = 1, 2, ..., m. veremos a
seguir o mtodo conhecido como Mtodo dos Quadrados Mnimos.
7.1
A questo encontrar qual esta reta, ou seja, quais so os valores de 1 e 2 que ajustam os
pontos conhecidos.
Num outro exemplo, vamos procurar valores para 1, 2 e 3 que tornam a funo:
(x) = 1 + 2x + 3x2
97
Sejam dados os pontos (x1, f(x1)), (x2, f(x2)), ..., (xm, f(xm)) e as n funes g1(x), g2(x), ..., gn(x)
escolhidas de alguma forma. Considerando que o nmero de pontos m, tabelados, sempre maior ou igual
a n o nmero de funes escolhidas ou o nmero de coeficientes i a se determinar.
Nosso objetivo encontrar os coeficientes 1, 2, ..., n tais que a funo (x) = 1g1(x) + 2g2(x)
+ ... + ngn(x) se aproxime ao mximo de f(x).
Seja dk = f(xk) (xk) o desvio em xk. O conceito de proximidade que dk seja mnimo para todo k
= 1, 2, ..., m. No mtodo dos quadrados mnimos consiste em escolher os aj's de tal forma que a soma dos
quadrados dos desvios seja mnima.
7.1.1
Dada uma tabela com m valores (xi, f(xi)), i = 1, 2, ..., m, queremos encontrar a reta que melhor
ajusta esta tabela, no sentido dos quadrados mnimos. Como o ajuste ser feito por uma reta, tomaremos
g1(x) = 1 e g2(x) = x., isto :
f(x) (x) = 1 + 2x
O resduo para cada par (1, 2) e para cada x ser r(1, 2; x) = f(x) 1 2x. Assim, pelo
mtodo dos quadrados mnimos devemos procurar 1 e 2 que minimizam a funo:
<r, r> (1, 2) = < f(x) 1 2x, f(x) 1 2x> =
( f (x )
i =1
2 xi ) .
2
Do Clculo Diferencial sabe-se que a condio necessria do ponto crtico que as derivadas nele
se anulem, esto :
<r, r> =
<r, r> = 0
1
2
ou ainda, procedidas as respectivas derivaes na expresso <r, r> temos:
m
2 ( f ( x i ) 1 2 x i ) = 0
i =1
2 ( f ( xi ) 1 2 xi )xi = 0
i =1
Aps o desenvolvimento, estas duas equaes formam um sistema linear com as incgnitas 1 e
2, que podem ser reescrito na forma:
m
i =1
i =1
i =1
f ( xi ) 1 2 xi = 0
i =1
i =1
i =1
xi f ( xi ) 1 xi 2 xi2 = 0
ou
m
m1 + 2 xi =
i =1
f (x )
i =1
98
m
i =1
i =1
1 xi + 2 xi2 =
x
i =1
f ( xi )
A soluo deste sistema pode ser obtida pelo mtodo da Eliminao de Gauss. Atravs das
substituies retroativas obtm-se:
m
1 =
i =1
m
f ( xi ) xi 2
i =1
m
2 =
m xi f ( x i ) x i f ( x i )
i =1
i =1
i =1
m x xi
i =1
i =1
m
2
i
Assim, a soluo do sistema de equaes lineares 1 e 2 dados pelas equaes acima, e com
estes valores os resduos apresentam o seu menor valor.
Como este mtodo consiste em achar o mnimo de uma funo quadrtica, ele conhecido como
mtodo dos mnimos quadrados.
Exemplo 1: Ajustar os dados da tabela abaixo a uma reta de modo que o resduo seja o menor possvel.
i
xi
f(xi)
1
1.3
2.0
2
3.4
5.2
3
5.1
3.8
4
6.8
6.1
5
8.0
5.8
x
i =1
2
i
x
i =1
m
i =1
m
x
i =1
b) Resoluo do sistema:
Assim, os valores de 1 e 2 da melhor reta (no sentido dos quadrados mnimos) so obtidos pelo
sistema:
5 1 + 24.6 2 = 22.9
99
f ( x ) x
i
i =1
1 =
i =1
m
m
22.9 (24.6)(0.5224)
22.9 12.851
=
= 2,0098
5
5
m xi f ( x i ) x i f ( x i )
2 =
i =1
i =1
i =1
m xi2 xi
i =1
i =1
m
(5)(127.54) (24.6)(22.9)
637.7 563.34
74.36
=
=
= 0.5224
2
747.5 605.16 142.34
(5)(149.5) (24.6)
i
xi
f(xi)
(xi)
r(xi)
1
1.3
2.0
2.68892
0.68892
2
3.4
5.2
3.78596
1.41404
3
5.1
3.8
4.67404
0.87404
4
6.8
6.1
5.56212
0.53788
5
8.0
5.8
6.189
0.389
r
i =1
( xi ) = 3.6787
1
2
3
4
5
0
0.25
0.5
0.75
1.00
1.0000 1.2840 1.6487 2.1170 2.7183
i =1
7.1.2
( xi ) = 0.039198
Ajuste Polinomial
O ajuste linear simples um caso especial do ajuste polinomial. A equao geral do ajuste
polinomial dada por:
(x) = 1 + 2x + 3x2 + ... + n+1xn
100
i =1
m
x
i =1
m
x
i =1
2
i
3
i
i =1
m
i =1
i =1
m
m
n
i
x
i =1
2
i
i =1
3
i
4
i
i =1
m
m
i =1
2
i
M
n +1
i
1 m
f ( xi )
i =1
mi =1
m
n +1 2
xi
xi f ( xi )
i =1
i =1
m
m
2
n+2
=
x
.
x
f
(
x
)
i i
i
3
i =1
i =1
M M
M
m
m n
2n
xi
xi f ( xi )
i =1
n i =1
m
x
i =1
M
n+2
i
n
i
1
2
30.5
2
1.5
20.2
3
0
3.3
4
1
8.9
5
2.2
16.8
6
3.1
21.4
m
m
x
i
i =1
m
xi2
i =1
m
i =1
m
x
i =1
m
2
i
x
i =1
2 1
x
f ( xi )
i =1
mi =1
m
3
xi . 2 = xi f ( xi )
i =1
i =1
m
m
xi4 xi2 f ( xi )
3 i =1
i =1
m
xi
3
i
x
i =1
2
i
3
i
4
i
x
i =1
m
x
i =1
m
x
i =1
m
i =1
m
x
i =1
101
m
x
i =1
2
i
128.416
b) Resoluo do sistema:
O sistema :
2.8
21.7 1 6.9
6
2.8
21.7
30.064 . 2 = 203.5
1
2
30.5
29.566
0.934
2
1.5
20.2
21.7625
1.5625
3
0
3.3
2.018
1.282
4
1
8.9
8.09
0.81
5
6
2.2
3.1
16.8
21.4
16.99352 21.36158
0.19352 0.03842
i =1
( xi ) = 5.652312337
1
1.0
2.05
2
0.75
1.153
3
0.6
0.45
4
0.5
0.4
5
0.3
0.5
6
0
0
7
0.2
0.2
8
0.4
0.6
9
0.5
0.512
10
0.7
1.2
11
1
2.05
a partir do diagrama de disperso, deve ser ajustada por uma parbola passando pela origem, ou seja, f(x)
= (x) = 3x2 (neste caso temos apenas uma funo g(x) = x2).
Temos ento o sistema abaixo:
m
m
x
i
i =1
m
xi2
i =1
m
i =1
m
x
i =1
m
2
i
x
i =1
2 0
x
f ( xi )
i =1
mi =1
m
3
xi . 0 = xi f ( xi )
i =1
i =1
m
m
xi4 xi2 f ( xi )
3 i =1
i =1
m
xi
3
i
102
ou seja,
m
xi2 3 =
i =1
m
3
i
3 =
4
i
3 =
i =1
m
i =1
f (x )
i
i =1
m
2
i
i =1
m
i =1
f ( xi )
f ( xi )
x
i =1
4
i
x
i =1
2
i
f ( xi ) = (2.05) + (0.6486) + (0.162) + (0.1) + (0.145) + (0) + (0.008) + (0.096) + (0.128) + (0.588)
+ (2.05) = 5.8756
Assim, a nossa equao 2.84643 = 5.8756 3 =
5.8756
= 2.0642
2.8464
Portanto, (x) = 2.0642x2 a parbola que melhor se aproxima, no sentido dos quadrados
mnimos, da funo tabelada.
1
0.75
1.3
2
0.5
1.1
3
0.25
0.2
4
0
0
r
i =1
( xi ) = 0.25095238095238
5
0.25
0.5
6
0.5
0.6
7
0.75
1.5
103
8 Integrao Numrica
8.1
Introduo
Do ponto de vista analtico existem diversas regras, que podem ser utilizadas na prtica. Contudo,
embora tenhamos resultados bsicos e importantes para as tcnicas de integrao analtica, como o
Teorema Fundamental do Clculo Integral, nem sempre podemos resolver todos os casos. No podemos
sequer dizer que para uma funo simples a primitiva tambm ser simples, pois f(x) = 1/x, que uma
funo algbrica racional, possui uma primitiva que no o ; a sua primitiva a funo ln(x) que
transcendente.
Quando no conseguirmos calcular a integral por mtodos analticos, mecnicos ou grficos, ento
podemos recorrer ao mtodo algortmico. Em algumas situaes, s podemos usar o mtodo numrico.
Por exemplo, se no possuirmos a expresso analtica de f, no podemos, em hiptese nenhuma, usar
outro mtodo que no o numrico. A integrao numrica pode trazer timos resultados quando outros
mtodos falham.
A soluo numrica de uma integral simples comumente chamada de quadratura.
Sabemos do Clculo Diferencial e Integral que se f(x) uma funo contnua em [a, b], ento esta
funo tem uma primitiva neste intervalo, ou seja, existe F(x) tal que f(x) dx = F(x) + C, com F(x) =
f(x); demostra-se que, no intervalo [a, b],
b
f ( x )dx = F (b) F (a )
a
tais mtodos, embora variados, no se aplicam a alguns tipos de integrandos f(x), no sendo conhecidas
suas primitivas F(x); para tais casos, e para aqueles em que a obteno da primitiva, embora vivel,
muito trabalhosa, podem-se empregar mtodos para o clculo do valor numrico aproximado de
b
f ( x )dx .
a
A aplicao de tais mtodos obviamente necessria no caso em que o valor de f(x) conhecido
apenas em alguns pontos, num intervalo [a, b], ou atravs de um grfico.
b
Lembrando que
f ( x )dx = lim f ( xi )xi (Riemann), onde xi [xi-1, xi] partes de [a, b], com
n i =1
f ( x )xi
i
i =1
b
f ( x )dx .
a
b
f ( x )dx
representa,
numericamente, a rea da figura delimitada por y = 0, x = a, x = b e y = f(x), como mostra a figura abaixo:
104
y
y=f(x)
A=
f ( x )dx
a
Quando f(x) no for somente positiva, pode-se considerar f(x) em mdulo, para o clculo da rea,
conforme figura abaixo:
y
y=f(x)
A
c
0
A=
f ( x ) + | f ( x )| dx
a
ou
A = | f ( x )| dx
A idia bsica da integrao numrica a substituio da funo f(x) por um polinmio que a
aproxime razoavelmente no intervalo [a, b]. Assim o problema fica resolvido pela integrao de
polinmios, o que trivial de se fazer. Com este raciocnio podemos deduzir frmulas para aproximar
b
f ( x )dx .
a
i = 0, 1, ..., n.
8.1.1
Frmulas de Newton-Cotes
Nas frmulas de Newton-Cotes a idia de polinmio que aproxime f(x) razoavelmente que este
polinmio interpole f(x) em pontos de [a, b] igualmente espaados. Consideremos a partio do intervalo
[a, b] em subintervalos, de comprimento h, [xi, xi+1], i = 0, 1, ..., n-1. Assim xi+1 xi = h = (b a)/n.
As frmulas fechadas de Newton-Cotes so frmulas de integrao do tipo xo = a, xn = b e
xn
f ( x )dx =
x0
Ai f ( xi) ,
sendo os coeficientes Ai
i =0
105
8.2
f ( x )dx
R1
R2
R3
R1
R2
(a)
R1
R3
(b)
R2
R3
(c)
No primeiro caso, figura (a), a rea de cada retngulo f(xi) hi; no segundo caso f(xi+1)hi e no
ltimo f((xi + xi+1)/2) hi. Em qualquer caso a soma das reas dos retngulos ser uma aproximao para
b
f ( x )dx .
a
Subdividindo o intervalo [a, b] em n subintervalos, pela regra dos retngulos, que ser indicado
por R(h), dada pelas frmulas:
n 1
f ( x ).hi
, ou
f (x
, ou
R(hn) =
i =0
n 1
R(hn) =
i =0
n 1
R(hn) =
i +1
).hi
xi + xi +1
.hi
2
f
i =0
b a
. Ento :
n
n 1
R(hn) = h f ( xi )
i =0
ou
n 1
R(hn) = h f ( xi +1 )
i =0
ou
106
x + xi +1
R(hn) = h f i
i =0
n 1
Em geral, quando utilizarmos a regra dos retngulos iremos efetuar os clculos atravs do caso (c),
n 1
x + xi +1
.
ou seja, R(hn) = h f ( xi ) , sendo xi = i
2
i =0
8.2.1
Exemplos
1
Exemplo 1: Calcular
1+ x
a) Nmero de intervalos:
n = 10
b) Tamanho do intervalo
b a
h=
= (1 0) / 10 = 0.1
n
c) iteraes:
i
0
1
2
3
4
5
6
7
8
9
xi
(0 + 0.1) = 0.05
(0.1 + 0.2) = 0.15
(0.2 + 0.3) = 0.25
(0.3 + 0.4) = 0.35
(0.4 + 0.5) = 0.45
(0.5 + 0.6) = 0.55
(0.6 + 0.7) = 0.65
(0.7 + 0.8) = 0.75
(0.8 + 0.9) = 0.85
(0.9 + 1) = 0.95
f( xi )
0.0499
0.1467
0.2353
0.3118
0.3742
0.4223
0.4569
0.4800
0.4935
0.4993
3.4699
d) mtodo analtico:
1
1
x
1
1
2
dx
=
ln(
1
+
)
= (ln(2) ln(1)) = 0,34657 .
x
0 1 + x2
2
0 2
Exemplo 2: Quando no for possvel conhecer f(xi) pode-se usar f( xi ) = (f(xi-1) + f(xi))/2, para o clculo
anterior, ter-se-ia:
a) Nmero de intervalos:
n = 10
b) Tamanho do intervalo:
b a
h=
= (1 0) / 10 = 0.1
n
c) iteraes:
107
i
1
0
1
2
3
4
5
6
7
8
9
f(xi)
0
0.0990
0.1923
0.2752
0.3448
0.4000
0.4412
0.4698
0.4878
0.4972
0.5000
f( xi )
0.0495
0.1457
0.2338
0.3100
0.3724
0.4206
0.4555
0.4788
0.4925
0.4986
3.4574
Exerccio 1: Calcular
x dx , para n = 8.
3
1 1
x4
3
dx
=
= = 0.
1 x
4
4 4
1
1
mtodo analtico:
8.3
f ( x)dx
Assim, IT =
b = x1
x1
( x x0 )
( x x1 )
p
(
x
)
dx
=
f ( x1 )dx = IT
1
h f ( x0 ) +
h
a= x0
x0
h
[ f ( x0 ) + f ( x1 )] , que a rea do trapzio de altura h = x1 x0 e bases f(x0) e f(x1).
2
f(xi+1)
P 1(x)
f(x)
xi
xi+1
108
A rea de cada trapzio (f(xi) + f(xi+1))/2 hi. A soma destas reas ser uma aproximao para
b
f ( x )dx .
a
8.3.1
Dividindo o intervalo [a, b] em n subintervalos, pela regra dos trapzios, o resultado, que ser
indicado por T(h), dada pela frmula:
n 1
T (hn ) = (
i =0
f ( xi ) + f ( xi +1 )
).hi
2
b a
. Ento :
n
n 1
T (hn ) = h (
i =0
T (hn ) =
8.3.2
f ( xi ) + f ( xi +1 )
)
2
ou
h
[ f ( x0 ) + 2 f ( x1 ) + 2 f ( x2 ) + ... + 2 f ( xn1 ) + f ( xn )]
2
Exemplos
3, 6
Exemplo 1: Calcular
x dx
3, 0
i
0
1
2
3
4
5
6
xi
3.0
3.1
3.2
3.3
3.4
3.5
3.6
f(xi)
0.3333
0.3226
0.3125
0.3030
0.2941
0.2857
0.2778
ci
1
2
2
2
2
2
1
h
[ f ( x0 ) + 2 f ( x1 ) + 2 f ( x2 ) + ... + 2 f ( x5 ) + f ( x6 )]
2
0 .1
(3.6469) = 0,182345
T(0.1) =
2
T ( h6 ) =
ci. f(xi)
0.3333
0.6452
0.6250
0.6060
0.5882
0.5714
0.2778
3.6469
109
d) mtodo analtico:
3, 6
3, 6
1
dx
=
ln(x
)
]
= ln(3.6) ln(3.0) = 0.18232156
3,0 x
3, 0
1
Exerccio 1: Calcular (2 x + 3)dx pela regra dos trapzios e, depois, analiticamente. Considere n = 1 e 4
0
1
(8) = 4
2
1
mtodo analtico:
(2 x + 3)dx = x
0
+ 3x
= 1 + 3 (0 + 0) = 4
Como a regra dos trapzios aproxima por uma reta e a funo integranda f(x) = 2x + 3 (uma
reta), o valor da integral obtido exato.
2
Exerccio 2: Calcular
x ln( x)dx
depois, analiticamente.
T(1) =
1
(1.3863) = 0.6932
2
T(0.5) =
0 .5
(2.6027) = 0.6507
2
T(0.25) =
0.25
(5.1191) = 0,6399
2
T(0.125) =
0.125
(10.1951) = 0,6372
2
2
mtodo analtico:
x ln( x )dx =
1
2
2
2
2
x ln( x ) x 2 2 x ln( x ) x 2
] =
]1 = = 0.63629436
2
4 1
4
8.4
Regra de Simpson
A regra de Simpson obtida aproximando-se f por um polinmio interpolador de 2 grau, ou seja,
uma parbola.
Numericamente: Novamente podemos usar a frmula de Lagrange para estabelecer a frmula de
integrao resultante da aproximao de f(x) por um polinmio de grau 2. Seja p2(x) o polinmio que
interpola f(x) nos pontos x0 = a, x1 = x0 + h e x2 = x0 + 2h = b:
p 2( x ) =
Assim,
( x x1)( x x 2)
( x x 0)( x x 2)
( x x 0)( x x1)
f ( x 0) +
f ( x1) +
f ( x 2)
( h)( 2 h)
( h)( h)
(2 h)( h)
110
b
x2
x2
x2
x2
x2
f ( x 0)
f ( x1)
f ( x 2)
( x x1)( x x 2)dx 2 ( x x 0)( x x 2)dx +
( x x 0)( x x1)dx
2
2 h x0
2 h2 x0
h x0
Resolvendo as integrais obtemos a regra de Simpson:
x2
x f ( x )dx 3 [ f ( x ) + 4 f ( x ) + f ( x )] = Is
0
x0=a
x2=b
x1
h
Aplicando a regra de Simpson repetidas vezes no intervalo [a, b] = [x0, xn]. Vamos supor que x0,
x1, ..., xn so pontos igualmente espaados, h = xi+1 xi, e n par (isto condio necessria pois cada
parbola utilizar trs pontos consecutivos). Assim teremos:
b
f ( x )dx
a
8.4.2
S ( hn ) =
h
[ f ( x0 ) + 4 f ( x1 ) + 2 f ( x2 ) + 4 f ( x3 ) + 2 f ( x4 ) + ... + 4 f ( x n1 ) + f ( xn )]
3
Exemplos
1
a) Nmero de intervalos:
n = 10
b) Tamanho do intervalo:
b a
h=
= (1 0) / 10 = 0.1
n
c) iteraes:
i
0
1
xi
0.0
0.1
f(xi)
1
1.1052
ci
1
4
ci. f(xi)
1
4.4208
111
2
3
4
5
6
7
8
9
10
S ( h10) =
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
1.2214
1.3499
1.4918
1.6487
1.8221
2.0138
2.2255
2.4596
2.7183
2
4
2
4
2
4
2
4
1
2.4428
5.3996
2.9836
6.5948
3.6442
8.0552
4.4510
9.8384
2.7183
51.5487
0,1 0,0
[ e + 4 e0,1 + 2 e0, 2 + 4 e0, 3 +...+2 e0,8 + 4 e0, 9 + e1,0] = 1,71829
3
d) mtodo analtico:
1
e dx = e ] = e e
x
= 2,7182818 1 = 1,7182818
0
1
1
dx , considerando n = 10.
2
1
+
x
0
S ( h10) =
0,1
[ f ( x 0) + 4 f ( x1) + 2 f ( x 2) + 4 f ( x 3) +...+2 f ( x 8) + 4 f ( x 9) + f ( x10)] = 3,14157
3
1
mtodo analtico:
1
1
dx
=
4(
arctg
(x
)
]
) = 4.(arctg(1) arctg(0)) = 3.14159265
2
1
+
x
0
0
4
2
Exerccio 2: Calcular
x ln( x )dx
analiticamente.
S(0.5) =
0 .5
(3.8191) = 0,6365
3
S(0.25) =
0.25
(7.6355) = 0.63629167
3
S(0.25) =
0.125
(15.2711) = 0,63629583
3
2
mtodo analtico:
x ln( x )dx =
1
2
2
2
2
x ln( x ) x 2 2 x ln( x ) x 2
] =
]1 = = 0.63629436
2
4 1
4
1
x
0
S (0.5) =
0 .5
4
[1 + 4(1.25) + 2] = = 1.33333...
3
3
112
1
mtodo analtico:
x2 + 1 dx =
0
3
3
3
1
4
x
1
0
+ x ] = ( + 1) ( + 0) = = 1.33333...
0
3
3
3
3
Como a regra de Simpson se aproxima por uma parbola e, sendo f(x) = x2 + 1 uma parbola, o
valor da integral obtido exato independente do nmero de subintervalos utilizado no clculo.
1.1.1.1.2
1.1.1.1.1
V(t)=sin(3,5t)
i(t)
1.1.1.1.3
9.2
9.2.1
113
dy
= x+ y
dx
dy
= x2 + y 2
dt
d2y
dt
+ (1 y 2 )
9.2.2
dy
+y=0
dt
2u
x 2
9.3
2u
y 2
=0
u funo de x e y; x e y so variveis independentes.
Determinadas equaes diferenciais podem ser solucionadas de forma simblica, cuja soluo uma
expresso literal. Isto nem sempre possvel. Neste caso, a soluo a utilizao de integrao numrica,
como ser visto na sequncia.
Exemplo :
dy
=y
dx
dy
= dx
y
dy
= dx
y
ln( y ) + c1 = x + c 2
y ( x) = e x + c = ae x
Observe que a soluo da equao diferencial resulta numa famlia de curvas que dependem da constante
a, como pode ser visto na figura abaixo. Uma soluo particular pode ser obtida a partir das condies
iniciais do problema. A especificao de uma condio inicial define uma soluo entre a famlia de
curvas.
114
45
40
y (x)
35
30
25
20
15
10
5
x
0
-1
2
Suponha no exemplo dado que o problema tem como soluo inicial y (0) = 1 . Portanto:
-0.5
0.5
1.5
y ( x) = ae x ae 0 = 1 a = 1
x
A soluo y ( x) = 1 e a soluo para a condio inicial dada.
Quando as condies iniciais esto associadas a um nico valor da varivel independente, define-se como
um problema de valor inicial (PVI). Quando as condies iniciais esto associadas mais de um valor da
varivel independente, define-se como um problema de valor de contorno (PVC). Normalmente,
problemas tendo como varivel independente o tempo, so problemas de valor inicial.
9.4
A ordem da equao determinada pela derivada de maior ordem. Seja o exemplo de uma equao
diferencial ordinria de ordem n:
y ( n ) ( x) = f [ x, y ' ( x), y ' ' ( x),......., y ( n 1) ( x)]
9.5
Uma equao ordinria de ordem superior pode ser reduzido a um sistema de equaes diferenciais de
primeira ordem. A reduo feita a partir da definio de variveis auxiliares.
Seja a equao diferencial de ordem m com tambm m condies iniciais:
y ( m ) ( x) = f [ x, y ( x), y ' ( x), y ' ' ( x),......., y ( m1) ( x)]
y ( x 0 ) = c1
y ' ( x0 ) = c2
M
y ( m 1) ( x 0 ) = c m
Esta equao pode ser transformada em um sistema de equaes diferenciais com m equaes, como
descreve-se abaixo:
115
z1 ( x ) = y ( x )
z1' ( x) = y ' ( x) = z 2 ( x)
z 2' ( x) = y " ( x) = z 3 ( x)
z 3' ( x) = y ''' ( x) = z 4 ( x)
M
z m' 1 ( x) = y ( m1) ( x) = z m ( x)
z m' ( x) = y ( m ) ( x) = f [ x, y ( x), y ' ( x), y ' ' ( x),......., y ( m 1) ( x)]
'
"
z 2 ( x) = y ( x) = z 3 ( x) = f 2 ( x, z1 , z 2 ,..., z m )
'
'' '
z 3 ( x) = y ( x) = z 4 ( x) = f 3 ( x, z1 , z 2 ,..., z m )
M
z ' ( x) = y ( m 1) ( x) = z ( x) = f ( x, z , z ,..., z )
m 1
m
m 1
1
2
m
z 2 ( x0 ) = y ' ( x0 ) = c2
z 3 ( x0 ) = y " ( x0 ) = c3
z 4 ( x 0 ) = y '' ' ( x 0 ) = c 4
M
z m ( x 0 ) = y ( m 1) ( x 0 ) = c m
Este artifcio deve sempre ser utilizado quando da soluo de equaes diferenciais por mtodos
numricos, pois s pode-se integrar numericamente equaes de primeira ordem. Observe que o sistema
de equaes modela o comportamento dinmico do problema.
Exemplo 8.2: Reduzir as Equaes Diferenciais Ordinrias (EDOs) a sistemas de EDOs de primeira
ordem.
''
'
'
a) y ( x) = 3 y ( x) 2 y ( x) , y (0) = 1 e y (0) = 0
z1 ( x ) = y ( x )
z1' ( x) = y ' ( x) = z 2 ( x)
z 2' ( x) = y " ( x) = 3 y ' ( x) 2 y = 3 z 2 2 z1
Resultando no sistema:
116
= z 2 ( x ) = f 1 ( x, z 1 , z 2 )
z 2' ( x) = 3 z 2 2 z1 = f 2 ( x, z1 , z 2 )
z 1 ( 0) = 1 z 2 ( 0) = 0
z1' ( x)
'' '
''
'
2
2
2
b) y + ( x + 1) y + cos( x) y ( x 1) y = x + y sin( x + y )
y (0) = 1,1 y ' (0) = 2,2 y '' (0) = 3,3
z1 = y
z1' = y ' = z 2
z 2' = y " = z 3
z 3' ( x) = y ''' ( x) = ( x + 1) z 3 cos( x) z 2 + ( x 2 1) z1 + x 2 + z1 2 sin( x + z1 )
Resultando no sistema:
z1' = y ' = z 2 = f 1 ( x, z1 , z 2 , z 3 )
'
"
z 2 = y = z 3 = f 2 ( x, z 1 , z 2 , z 3 )
2
'
' ''
2
2
z 3 ( x) = y ( x) = ( x + 1) z 3 cos( x) z 2 + ( x 1) z1 + x + z1 sin( x + z1 ) = f 3 ( x, z1 , z 2 , z 3 )
z1 (0) = 1,1 z 2 (0) = 2,2 z 3 (0) = 3,3
9.6
y (x)
y(xn)
X
y(x3)
y(x0)
X
y(x1)
X
y(x2)
x
x0
x1
x2
x3
....
xn
de Valor
117
Com a soluo numrica de uma equao diferencial, obtm-se uma aproximao para os valores
y ( x 0 ), y ( x1 ), y ( x 2 ), y ( x 3 ),......, y ( x n )
, ou seja:
x
.........
x1
x2
x3
xn
y
.........
y1
y2
y3
yn
y ( x j ), j = 1,2,..., n
Considera-se que a notao
indica a soluo exata da EDO nos pontos
y , j = 1,2,...., n
x1 , x 2 , x 3 ,..., x n
,e j
indica a soluo aproximada obtida por mtodo numrico.
Na soluo numrica no se determina a expresso literal da funo y (x) , mas aproximaes para pontos
da funo y (x) . Com os valores aproximados obtidos, pode-se plotar a curva. Em aplicaes da
engenharia, normalmente estuda-se o comportamento dinmico de determinadas variveis, portanto
necessita-se a evoluo das variveis em funo da varivel independente. Com a curva plotada, pode-se
estudar esta evoluo.
9.6.1
Mtodo de Euler
y(x)
y (x)
y ( x1 )
y0
y1
x0
x1
h = x1 pode-se
x0
A partir da equao diferencial,
observar que a derivada da funo y (x) em um ponto qualquer x
x
f ( x0 , y0 )
] , pode-se
dada por f(x,y). Conhecendo-se a derivada da funo y (x) no ponto 0 , ou seja [
estimar o valor da funo y (x) no ponto x1 por meio de relaes trigonomtricas:
118
y = y1 y 0
h = x1 x 0
tg ( ) = f ( x 0 , y 0 ) =
y1 y 0
x1 x 0
f ( x0 , y 0 ) =
y1 y 0
h
y1 = y 0 + hf ( x 0 , y 0 )
Esta relao pode ser generalizada para um ponto i qualquer, resultando na forma de recorrncia
para soluo de equaes diferenciais pelo Mtodo de Euler:
y i = y i 1 + hf ( x i 1 , y i 1 )
Exemplo: Achar aproximaes para a soluo o problema de valor inicial, na malha [0,1] e h=0,1, dado
por:
y ' = x y + 2 para y (0) = 2
A soluo desta equao resulta em uma funo y (x) , como mostrada na figura abaixo.
3
y (x)
2.5
1.5
0.5
x
0
0
0.2
0.4
0.6
0.8
Resolvendo esta equao atravs do Mtodo de Euler, iremos determinar aproximaes para pontos de
y (x) .
x0 = 0
y0 = 2
119
y 2 = 2,01
y 3 = 2,029
y 4 = 2,0561
3
soluo numrica
soluo exata
2.5
1.5
0.5
0
0
Na
0.2
0.4
0.6
0.8
xj
yj
y( x j )
y j y( x j )
0
1
2
3
4
5
6
7
8
9
10
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1,0
2,0000000
2,0000000
2,0100000
2,0290000
2,0561000
2,0904900
2,1314410
2,1782969
2,2304672
2,2874205
2,3486784
2,0000000
2,0048370
2,0187310
2,0408180
2,0703200
2,1065310
2,1488120
2,1965850
2,2493290
2,3065700
2,3678790
0,000000
-0,004837
-0,008731
-0,011818
-0,014220
-0,016041
-0,-17371
-0,018288
-0,018862
-0,019149
-0,019201
120
9.7
Soluo da
EDO em
y1
y( x0 )
y( x 2 )
y ( x3 )
y ( x1 )
x1
x0
Erro
x2
x3
Soluo
y(x) do PVI
Sol.
da
EDO em
y (x )
h2 ''
y ( )
2!
x j 1 < < x j
O valor de desconhecido, entretanto, pode-se definir um majorante para o erro de truncamento local.
Se y (x) possui derivada contnua num intervalo fechado
est sendo feita a discretizao, ento existe:
M k +1 = max y ( k +1) ( x)
x [ x n , x n +1 ]
[ x n , x n +1 ]
121
Assim:
y ( 2) ( ) M 2
[ x n , x n +1 ]
M 2h2
2!
Observe que o erro de truncamento local proporcional ao passo de integrao ao quadrado. O erro
acumulado tambm pode ser limitado por um majorante:
ET ( x k +1 )
y1 , y 2 ,......., y n
sejam as aproximaes geradas pelo Mtodo de Euler. Se f(x,y) for contnua para todo x
no intervalo [a,b] e todo y no intervalo (, ) e ainda existem as constantes L e C, tais que:
f ( x, y ( x))
L
x
e
y ' ' ( x) C
Pode-se observar que para a determinao dos erros de truncamento local e acumulado, necessita-se do
valor maxmo da segunda derivada de y(x), o que restringe sua utilizao na prtica. Tambm
importante observar-se que o erro tende a zero quando h tende a zero.
Determine o limite do erro acumulado nos pontos da malha [0,1], com h = 0,1 , quando da soluo da
equao diferencial pelo Mtodo de Euler, e compare com o erro real calculado no Exemplo 8.3.
9.8
122
y(x)
y (x)
y ( x i +1 )
yi
y i +1
Reta
x+
y i +1 / 2
x i +1 / 2
xi
x i +1 / 2 = x i +
Tangente
ponto
x i +1
h
2
no
y i +1 / 2
h
2
x
y
Com os valores i +1 / 2 e i +1 / 2 , determina-se a reta tangente no meio do intrvalo:
y i' +1 / 2 = f ( x i +1 / 2 , y i +1 / 2 )
Esse valor assumido representar uma inclinao mdia do intervalo inteiro. Assim, determina-se o valor
x
de y no ponto i +1 :
y i +1 = y i + f ( x i +1 / 2 , y i +1 / 2 ) h = y i + y i' +1 / 2 h
Observe que a diferena em relao ao Mtodo de Euler normal a utilizao da inclinao no meio do
intervalo.
Exemplo: Repita o exemplo anterior, utilizando o Mtodo de Euler Modificado.
y ' = x y + 2 para y (0) = 2
malha [0,1], h=0,1. Os resultados parciais so apresentados a seguir de acordo com a sequncia:
x j +1 / 2 = x j +
h
2
y j +1 / 2 = y j + f ( x j , y j )
h
2
y j +1 = y j + f ( x j +1 / 2 , y j +1 / 2 ) h = y j + y 'j +1 / 2 h
x j +1 = x j + h
res = y j y ( x j )
123
xj
Exato
y( x j )
0
1
2
3
4
5
6
7
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
2,0000000
2,0048370
2,0187310
2,0408180
2,0703200
2,1065310
2,1488120
2,1965850
Euler
yj
Erro
y j y( x j )
Euler Mod.
yj
Erro
y j y( x j )
2,0000000
2,0000000
2,0100000
2,0290000
2,0561000
2,0904900
2,1314410
2,1782969
0,000000
-0,004837
-0,008731
-0,011818
-0,014220
-0,016041
-0,-17371
-0,018288
2,0000000
2,0050000
2,0190250
2,0412176
2,0708019
2,1070757
2,1494035
2,1972102
0,0000000
0,0001629
0,0002940
0,0003996
0,0004819
0,0005447
0,0005915
0,0006252
124
8
9
10
0,8
0,9
1,0
9.8.1
2,2493290
2,3065700
2,3678790
2,2304672
2,2874205
2,3486784
-0,018862
-0,019149
-0,019201
2,2499752
2,3072276
2,3685409
0,0006425
0,0006576
0,0006619
Mtodo Heum
y i0+1 = y i + f ( x i , y i ) h
y i +1
para indicar que apenas uma estimativa, que ser utilizada para
x
a determinao da inclinao no ponto i +1 , ou seja:
y ' i +1 = f ( x i +1 , y i0+1 )
Tangente no Fim do
Intervalo
f ( x i +1 , y i0+1 )
Tangente no Incio do
Intervalo
f ( xi , y i )
y i0+1
Tangente
Intervalo
Mdia
do
[ f ( x i +1 , y i0+1 ) + f ( x i , y i )] / 2
yi
y(x)
x i +1
xi
Com o valor da inclinao no final do intervalo, pode-se determinar o valor da inclinao mdia do
intervalo, por meio da mdia aritmtica:
Inclinao Mdia =
[f (x , y ) + f (x
i
i +1 ,
y i0+1 )
125
[f (x , y ) + f (x
i
i +1 ,
y i0+1 )
] h
Observe que o clculo do valor da funo no fim do intervalo pode ser repetido at que se alcance uma
determinada convergncia, ou seja:
f ( x i , y i ) + f ( x i +1 , y i1+1 )
y i2+1 = y i +
h
2
f ( x i , y i ) + f ( x i +1 , y i3+1 )
3
y i +1 = y i +
h
2
M
f ( x i , y i ) + f ( x i +1 , y ik+11 )
y ik+1 = y i +
h
2
O Mtodo de Heun se enquadra nos chamados mtodos previsor x corretor. Faz-se uma estimativa com o
previsor e se melhora a estimativa atravs do corretor. O corretor pode ser repetido at uma convergncia
determinada.
Previsor:
y i0+1 = y i + f ( x i , y i ) h
Corretor:
y i1+1
= yi
[f (x , y ) + f (x
+
i
i +1 ,
y i0+1 )
] h
Exemplo: Repita o exemplo 8.3, utilizando o Mtodo de Heun, com uma iterao de correo.
y ' = x y + 2 para y (0) = 2
malha [0,1], h=0,1. Os resultados parciais so apresentados a seguir de acordo com a sequncia:
y i0+1 = y i + f ( x i , y i ) h
x i +1 = x i + h
y i1+1 = y i +
[f (x , y ) + f (x
i
i +1 ,
y i0+1 )
] h
126
j = 1 y0 = 2 x = 0.10000000000000
y1 = 2.00500000000000 erro = 1.629999999996912e-004
j = 2 y0 = 2.01450000000000 x = 0.20000000000000
y1 = 2.01902500000000 erro = 2.940000000002385e-004
j = 3 y0 = 2.03712250000000 x = 0.30000000000000
y1 = 2.04121762500000 erro = 3.996250000004586e-004
j = 4 y0 = 2.06709586250000 x = 0.40000000000000
y1 = 2.07080195062500 erro = 4.819506250002270e-004
j = 5 y0 = 2.10372175556250 x = 0.50000000000000
y1 = 2.10707576531563 erro = 5.447653156251953e-004
j = 6 y0 = 2.14636818878406 x = 0.60000000000000
y1 = 2.14940356761064 erro = 5.915676106407197e-004
j = 7 y0 = 2.19446321084958 x = 0.70000000000000
y1 = 2.19721022868763 erro = 6.252286876300417e-004
j = 8 y0 = 2.24748920581887 x = 0.80000000000000
y1 = 2.24997525696230 erro = 6.462569623049141e-004
j = 9 y0 = 2.30497773126607 x = 0.90000000000000
y1 = 2.30722760755089 erro = 6.576075508859525e-004
xj
Exato
y( x j )
0
1
2
3
0
0,1
0,2
0,3
2,0000000
2,0048370
2,0187310
2,0408180
Euler
yj
Erro
y j y( x j )
Heun
yj
Erro
y j y( x j )
2,0000000
2,0000000
2,0100000
2,0290000
0,000000
-0,004837
-0,008731
-0,011818
2,0000000
2,0050000
2,0190250
2,0412176
0,0000000
0,0001629
0,0002940
0,0003996
127
4
5
6
7
8
9
10
0,4
0,5
0,6
0,7
0,8
0,9
1,0
2,0703200
2,1065310
2,1488120
2,1965850
2,2493290
2,3065700
2,3678790
2,0561000
2,0904900
2,1314410
2,1782969
2,2304672
2,2874205
2,3486784
-0,014220
-0,016041
-0,-17371
-0,018288
-0,018862
-0,019149
-0,019201
2,0708019
2,1070757
2,1494033
2,1972102
2,2499752
2,3072276
2,3685409
0,0004819
0,0005476
0,0005915
0,0006252
0,0006462
0,0006576
0,0006619
Exemplo 8.6: Repita o exemplo 8.3, utilizando o Mtodo de Heun, com trs iterao de correo.
y ' = x y + 2 para y (0) = 2
malha [0,1], h=0,1. Os resultados so apresentados na tabela a seguir:
Exato
j
xj
y( x j )
Heun
( 1 Corr.)
yj
0
1
2
3
4
5
6
7
8
9
10
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1,0
2,0000000
2,0048370
2,0187310
2,0408180
2,0703200
2,1065310
2,1488120
2,1965850
2,2493290
2,3065700
2,3678790
2,0000000
2,0050000
2,0190250
2,0412176
2,0708019
2,1070757
2,1494033
2,1972102
2,2499752
2,3072276
2,3685409
9.8.2
Erro
Erro
y j y( x j )
Heun
(3 Corr.)
yj
0,0000000
0,0001629
0,0002940
0,0003996
0,0004819
0,0005476
0,0005915
0,0006252
0,0006462
0,0006576
0,0006619
2,0000000
2,0047625
2,0185951
2,0406342
2,0700980
2,1062796
2,1485390
2,1962975
2,2490314
2,3062667
2,3675749
0,0000000
-0,0000745
-0,0001358
-0,0001837
-0,0002219
-0,0002513
-0,0002729
-0,0002874
-0,0002975
-0,0003032
-0,0003040
y j y( x j )
Mtodo Runge-Kutta
( x i , y i , h) = a1 k1 + a 2 k 2 + ............... + a n k n
k1 = f ( x i , y i )
k 2 = f ( x i + p1 h, y i + q11 k1 h)
k 3 = f ( x i + p 2 h, y i + q 21 k1 h + q 22 k 2 h)
M
k n = f ( x i + p n 1 h, y i + q ( n 1)1 k1 h + q ( n 1) 2 k 2 h + .......... + q ( n 1)( n 1) k n 1 h)
128
9.8.3
y i +1 = y i + (a1 k1 + a 2 k 2 ) h
k1 = f ( x i , y i )
k 2 = f ( x i + p1 h, y i + q11 k1 h)
(1)
(2)
(3)
y i +1
em Srie de Taylor:
h2
= yi + f ( xi , y i ) h + f ( xi , y i )
2!
'
(4)
(5)
y i +1 = y i + f ( x i , y i ) h + +
x y dx 2!
(6)
A estratgia do Mtodo de runge-Kutta atravs de manipulaes algbricas, tornar as expresses (1) e
(6) equivalentes. Expande-se a expresso (3) em Srie de Taylor:
f
f
f ( x i + p1 h, y i + q11 k1 h) = f ( x i , y i ) + p1 h + q11 k1 h + (h 2 )
x
y
(7)
Substituindo (7) em (1):
y i +1 = y i + a1 hf ( xi , y i ) + a 2 hf ( x i , y i ) + a 2 p1 h 2
Reagrupando os termos:
y i +1 = y i + [a1 f ( x i , y i ) + a 2 f ( x i , y i )]h + [a 2 p1
f
f
+ a 2 q11 h 2 f ( x i , y i ) + (h 3 )
x
y
(8)
f
f
+ a 2 q11 f ( x i , y i ) ]h 2 + (h 3 )
x
y
(9)
2
1
=
2
Observe que tem-se trs equaes e quatro incgnitas, portanto tem-se infinitas solues. Portanto
existem infinitos formulaes para o Mtodo de Runge-Kutta de Segunda Ordem.
importante realar que o Mtodo de Heun com uma iterao de correo e o Mtodo de Euler
Modificado podem ser classificados como Mtodos de Runge-Kutta de Segunda Ordem.
9.8.4
Mtodo de Heun
129
Assumindo :
a1 = a 2 = 1
2
p1 = q11 = 1
1
1
y i +1 = y i + ( k1 + k 2 ) h
2
2
k1 = f ( x i , y i )
k 2 = f ( x i + h, y i + k 1 h )
Assumindo :
a1 = 0
a2 = 1
p1 = q11 = 1
y i +1 = y i + k 2 h
k1 = f ( x i , y i )
h
h
k 2 = f ( x i + , y i + k1 )
2
2
O Mtodo de Runge-Kutta mais conhecido o Mtodo de Ralston. Este mtodo propicia um limite
mnimo para o erro de truncamento dos algoritmos de Runge-Kutta de Segunda Ordem.
9.8.6
Mtodo de Ralston
Assumindo :
a1 = 1
3
a2 = 2
3
p1 = q11 = 3
1
2
y i +1 = y i + ( k1 + k 2 ) h
3
3
k1 = f ( x i , y i )
k 2 = f ( xi +
3
3
h, y i + hk1 )
4
4
130
3
2
Exemplo: Integre a funo f ( x, y ) = 2 x + 12 x 20 x + 85 de x = 0 at x = 4 , passo de integrao
h = 0,5 com as trs verses do Mtodo de Runge-Kutta de Segunda Ordem. Condies Iniciais: Para
x = 0, y =1
Mtodo de Heun
1
1
y i +1 = y i + ( k1 + k 2 ) h
2
2
k1 = f ( x i , y i )
k 2 = f ( x i + h, y i + k 1 h )
1
1
y1 = y 0 + ( k1 + k 2 ) h
2
2
k1 = f ( x 0 , y 0 ) = 2 0 3 + 12 0 2 20 0 + 8,5 = 8,5
k1 = f ( x 0 , y 0 ) = 2 0 3 + 12 0 2 20 0 + 8,5 = 8,5
h
h
0,5
0,5
k 2 = f ( x 0 + , y 0 + k1 ) = f (0 +
,1 +
8,5) = f (0,25, 3,125) =
2
2
2
2
= 2 0,25 3 + 12 0,25 2 20 0,25 + 8,5 = 4,21875
y1 = y 0 + k 2 h = 1 + 4,21875 0,5 = 3,109375
Mtodo de Ralston:
1
2
y i +1 = y i + ( k1 + k 2 ) h
3
3
k1 = f ( x i , y i )
3
3
h, y i + hk1 )
4
4
1
2
y1 = y 0 + ( k1 + k 2 ) h
3
3
k1 = f ( x 0 , y 0 ) = 2 0 3 + 12 0 2 20 0 + 8,5 = 8,5
3
3
3
3
k 2 = f ( x i + h, y i + hk1 ) = f (0 + 0,5, 1 + 0,5 8,5) = f (0,375, 4,1875) =
4
4
4
4
3
2
= 2 0,375 + 12 0,375 20 0,375 + 8,5 = 2,582031
k 2 = f ( xi +
131
1
2
1
2
y1 = y 0 + ( k1 + k 2 ) h = 1 + ( 8,5 + 2,582031) 0,5 = 3,27734375
3
3
3
3
Na tabela a seguir mostra-se o resultado para os passos de integrao seguintes:
x
0,0
0,5
1,0
1,5
2,0
2,5
3,0
3,5
4,0
9.9
y exato
1,00000
3,21875
3,00000
2,21875
2,00000
2,71875
3,00000
4,71875
3,00000
Heun
1,00000
3,43750
3,37500
2,68750
2,50000
3,18750
4,37500
4,93750
3,00000
Erro (%)
0,0
6,8
12,5
21,1
25,0
17,2
9,4
4,6
0,0
Euler Mod.
1,00000
3,10937
2,81250
1,98437
1,75000
2,48437
3,81250
4,60937
3,00000
Erro (%)
0
3,4
6,3
10,6
12,5
8,6
4,7
2,3
0
Ralston
1,00000
3,27734
3,10156
2,34765
2,14062
2,85546
4,11718
4,80078
3,03125
Erro (%)
0
1,8
3,4
5,8
7,0
5,0
2,9
1,7
1,0
De forma semelhante ao que se fez para o Mtodo de Runge_Kutta de Segunda Ordem, pode-se
determinar para ordens mais elevadas.
As formulaes no so nicas. Apresenta-se a seguir uma dasformulao mais utilizadas:
1
y i +1 = y i + [ (k1 + 4k 2 + k 3 )] h
6
k1 = f ( x i , y i )
1
1
k 2 = f ( x i + h, y i + k 1 h )
2
2
k 3 = f ( x i + h, y i hk1 + 2hk 2 )
1
y1 = y 0 + [ (k1 + 2k 2 + 2k 3 + k 4 )] h
6
k1 = f ( x 0 , y 0 ) = 2 0 3 + 12 0 2 20 0 + 8,5 = 8,5
132
1
1
h, y 0 + hk1 ) = f (0 + 0,5 0,5, 1 + 0,5 0,5 8,5) = f (0,25, 3,125) =
2
2
3
2
= 2 0,25 + 12 0,25 20 0,25 + 8,5 = 4,21875
1
1
k 3 = f ( x 0 + h, y 0 + hk 2 ) = f (0 + 0,5 0,5, 1 + 0,5 0,5 4,21875) = f (0,25, 2,054) =
2
2
3
2
2 0,25 + 12 0,25 20 0,25 + 8,5 = 4,21875
k 4 = f ( x 0 + h, y 0 + hk 3 ) = f (0 + 0,5, 1 + 0,5 4,21875) = f (0,5, 3,1093) =
k 2 = f ( x0 +
y (x)
y(x)
y0
y1
x1
x0
Estimativa a partir de
um
nico
ponto
h = x1 x 0
133
y ( x)
y(x)
y1
y3
y0
yn
x0
Estimado a partir de
informaes conhecidas de
n pontos anteriores
x1 x 2 .... x n
dy
= f ( x, y )
dx
xn +1
y ( x)dx = f ( x, y )dx
'
xn
xn
y ( x n +1 ) y ( x n ) =
x n +1
f ( x, y)dx
xn
y ( x n +1 ) = y ( x n ) +
xn +1
f ( x, y)dx
xn
xn +1
f ( x, y)dx
xn
numrica.
134
xn +1
Pm ( x)dx
xn
m=1:
y n +1 = y n + h f ( x n , y n )
m=2:
y n +1 = y n +
h
[3 f ( x n , y n ) f ( x n 1 , y n 1 )]
2
m=3:
y n +1 = y n +
h
[23 f ( x n , y n ) 16 f ( x n 1 , y n 1 ) + 5 f ( x n 2 , y n 2 )]
12
m=4:
y n +1 = y n +
h
[55 f ( x n , y n ) 59 f ( x n1 , y n1 ) + 37 f ( x n 2 , y n 2 ) 9 f ( x n3 , y n3 )]
24
xn +1
Pm ( x)dx
xn
A idia dos mtodos implcitos a utilizao como um algoritmo corretor. Como visto
no Mtodo de Heun.
Utiliza-se um algoritmo previsor, que pode ser algoritmos da famlia AdansBashfoth, e se corrige com um mtodo implcito.
m=1:
y n +1 = y n + h f ( x n +1 , y n +1 )
135
m=2:
y n +1 = y n +
h
[ f ( x n+1 , y n+1 ) + f ( x n , y n )]
2
m=3:
y n +1 = y n +
h
[5 f ( x n+1 , y n+1 ) + 8 f ( x n , y n ) f ( x n 1 , y n 1 )]
12
m=4:
y n +1 = y n +
h
[9 f ( x n+1 , y n+1 ) + 19 f ( x n , y n ) 5 f ( x n1 , y n1 ) + f ( x n 2 , y n 2 )]
24
V Testar se
+1)
(k )
y (k
n +1 y n +1
y n( k+)1
y' =
y y
= f (t , y ) 1 t 2 , y (1) = 1 e h = 0,1
t t
136
y 3(0) = y 2 +
h
[23 f (t 2 , y 2 ) 16 f (t1 , y1 ) + 5 f (t 0 , y 0 )]
12
h
[23 f (1,20,1,0150) 16 f (1,10, 1,0043) + 5 f (1,1)] = 1,0294
12
y 3(0) = 1,0150 +
h
5 f (t 3 , y 3( 0) ) + 8 f (t 2 , y 2 ) f (t1 , y1 )
12
y 3(1) = 1,0150 +
h
[5 f (1,30, 1,0294) + 8 f (1,20, 1,0150) f (1,10,1,0043)] = 1,0299
12
y 3( 2) = 1,0150 +
h
[5 f (1,30, 1,0299) + 8 f (1,20, 1,0150) f (1,10,1,0043)] = 1,0298
12
y 3(3) = 1,0150 +
h
[5 f (1,30, 1,0298) + 8 f (1,20, 1,0150) f (1,10,1,0043)] = 1,0298
12
1.00
1.10
1.20
1.30
1.40
1.50
1.60
1.70
1.80
1.90
2.00
yi
1.0000
1.0043
1.0150
1.0298
1.0476
1.0673
1.0885
1.1107
1.1337
1.1573
1.1813
y exato
1.0000
1.0043
1.0150
1.0298
1.0475
1.0673
1.0884
1.1107
1.1337
1.1572
1.1812
137
1.2
1.18
1.16
1.14
1.12
1.1
1.08
1.06
1.04
1.02
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
dy1
= f 1 ( x, y1 , y 2 ,......, y n )
dx
dy 2
= f 2 ( x, y1 , y 2 ,......, y n )
dx
M
dy n
= f n ( x, y1 , y 2 ,......, y n )
dx
A soluo de um sistema desta natureza requer o valor inicial em x = x 0 para as n
variveis y.
Todos os mtodos vistos podem ser utilizados na soluo. O procedimento para a
soluo do sistema envolve a soluo do passo de cada equao antes de passar-se ao passo
seguinte.
Exemplo: Solucione o sistema de equaes diferenciais usando o Mtodo de Euler, integrando
de x = 0 a x = 2 , com passo h = 0,5 e condies iniciais em x = 0 dadas por y1 = 4 e y 2 = 6 .
138
dy1
= 0,5 y1 = f 1 ( x, y1 , y 2 )
dx
dy 2
= 4 0,3 y 2 0,1 y1 = f 2 ( x, y1 , y 2 )
dx
xj
y1, j
y 2, j
0,5
y1,1
y 2,1
1,0
y1, 2
y 2, 2
1,5
y1,3
y 2,3
2,0
y1, 4
y 2, 4
Para j = 1 e x1 = 0,5
y1,1 = y1,0 + f 1 ( x 0 , y1,0 , y 2,0 ) h = 4 + (0,5 4) 0,5 = 3
y 2,1 = y 2, 0 + f 2 ( x 0 , y1,0 , y 2,0 ) h = 6 + (4 0,3 6 0,1 4) 0,5 = 6,9
Para j = 2 e x1 = 1,0
y1, 2 = y1,1 + f 1 ( x1 , y1,1 , y 2,1 ) h = 3 + (0,5 3) 0,5 = 2,25
y 2, 2 = y 2,1 + f 2 ( x1 , y1,1 , y 2,1 ) h = 6,9 + (4 0,3 6,9 0,1 3) 0,5 = 7,715
Para j = 3 e x1 = 1,5
y1,3 = y1, 2 + f 1 ( x 2 , y1, 2 , y 2, 2 ) h = 2,25 + (0,5 2,25) 0,5 = 1,6875
139
Para j = 4 e x1 = 2,0
y1, 4 = y1,3 + f 1 ( x 3 , y1,3 , y 2,3 ) h = 1,6875 + (0,5 1,6875) 0,5 = 1,265625
y 2, 4 = y 2,3 + f 2 ( x 2 , y1,3 , y 2,3 ) h = 8,44525 + (4 0,3 8,44525 0,1 1,6875) 0,5 = 9,0940875
xj
y1, j
y 2, j
0,5
3,0000000
6,9000000
1,0
2,2500000
7,7150000
1,5
1,6875000
8,4452500
2,0
1,2656250
9,0940875
xj
y1, j
y 2, j
0,5
y1,1
y 2,1
1,0
y1, 2
y 2, 2
1,5
y1,3
y 2,3
140
2,0
y1, 4
y 2, 4
1
1
h, y i + hk1 )
2
2
k 3 = f ( xi +
1
1
h, y i + hk 2 )
2
2
k 4 = f ( x i + h, y i + hk 3 )
sequncia:
Para i = 1,2,...., m determina-se:
k1,i = f i ( x j , y1, j , y 2, j , y m, j )
1
1
1
1
h, y1, j + hk1,1 , y 2, j + hk1, 2 ,....., y m, j + hk1, m )
2
2
2
2
1
1
1
1
h, y1, j + hk 2,1 , y 2, j + hk 2, 2 ,....., y m, j + hk 2, m )
2
2
2
2
141
1
1
1
h, y1, j + hk1,1 , y 2, j + hk1, 2 )
2
2
2
k 2, 2 = f 2 ( x j +
1
1
1
h, y1, j + hk1,1 , y 2, j + hk1, 2 )
2
2
2
k 3,1 = f 1 ( x j +
1
1
1
h, y1, j + hk 2,1 , y 2, j + hk 2, 2 )
2
2
2
k 3, 2 = f 2 ( x j +
1
1
1
h, y1, j + hk 2,1 , y 2, j + hk 2, 2 )
2
2
2
k 4,1 = f 1 ( x j +
1
h, y1, j + hk 3,1 , y 2, j + hk 3, 2 )
2
k 4, 2 = f 2 ( x j +
1
h, y1, j + hk 3,1 , y 2, j + hk 3, 2 )
2
1
1
1
h, y1, 0 + hk1,1 , y 2, 0 + hk1, 2 ) = f 1 (0,25, 3,5, 6,45) = 1,75
2
2
2
k 2, 2 = f 2 ( x 0 +
1
1
1
h, y1,0 + hk1,1 , y 2,0 + hk1, 2 ) = f 2 (0,25, 3,5, 6,45) = 1,715
2
2
2
142
k 3,1 = f 1 ( x 0 +
1
1
1
h, y1,0 + hk 2,1 , y 2, 0 + hk 2, 2 ) = f 1 (0,25, 3,5625, 6,4285) = 1,7813
2
2
2
k 3, 2 = f 2 ( x 0 +
1
1
1
h, y1,0 + hk 2,1 , y 2,0 + hk 2, 2 ) = f 2 (0,25, 3,5625, 6,4285) = 1,7151
2
2
2
k 4,1 = f 1 ( x 0 +
1
h, y1,0 + hk 3,1 , y 2,0 + hk 3, 2 ) = f 1 (0,25, 3,109375, 6,8575625) = 1,5547
2
k 4, 2 = f 2 ( x 0 +
1
h, y1,0 + hk 3,1 , y 2,0 + hk 3, 2 ) = f 2 (0,25, 3,109375, 6,8575625) = 1,6318
2
143
xj
y1, j
y 2, j
4,0000
6,0000
0,5
3,1152
6,8577
1,0
2,4262
7,6321
1,5
1,8895
8,3269
2,0
1,4716
8,9469
1.1.1.1.4
S
V(t)=sin(3,5t)
i(t)
1.1.1.1.6
di (t ) 1
+ i (t )dt
dt
C
Derivando a equao:
dV (t )
di(t )
d 2 i(t ) 1
=R
+L
+ i(t )
dt
dt
C
dt 2
Substituindo a expresso da tenso e rearranjando a equao, tem-se:
d 2 i (t )
dt
+2
di (t )
+ 2i(t ) = 3,5 cos(3,5t )
dt
144
3,5
3,5
cos(3,5t ) = z 2 (t ) z1 (t ) +
cos(3,5t )
2
2
3,5
cos(3,5t ) = f 2 (t , z1 (t ), z 2 (t ))
2
z 1 ( 0) = 0
z 2 ( 0) = 0
0.00
0.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
0.90
1.00
1.10
1.20
1.30
1.40
1.50
1.60
1.70
1.80
1.90
2.00
2.10
z1 (t ) = i(t ) z 2 (t ) = i ' (t )
0.0000
0.0084
0.0313
0.0644
0.1018
0.1374
0.1654
0.1808
0.1803
0.1626
0.1285
0.0811
0.0249
-0.0342
-0.0899
-0.1364
-0.1687
-0.1835
-0.1796
-0.1578
-0.1213
-0.0747
0.0000
0.1628
0.2886
0.3625
0.3758
0.3274
0.2238
0.0783
-0.0908
-0.2621
-0.4139
-0.5270
-0.5866
-0.5847
-0.5205
-0.4008
-0.2393
-0.0546
0.1317
0.2979
0.4246
0.4972
145
2.20 -0.0240
0.5076
2.30
0.0247
0.4552
2.40
0.0652
0.3470
2.50
0.0927
0.1966
2.60
0.1037
0.0227
2.70
0.0971 -0.1530
2.80
0.0738 -0.3090
2.90
0.0367 -0.4259
3.00 -0.0096 -0.4892
3.10 -0.0591 -0.4911
3.20 -0.1057 -0.4311
3.30 -0.1435 -0.3163
3.40 -0.1676 -0.1605
3.50 -0.1749
0.0176
3.60 -0.1641
0.1963
3.70 -0.1363
0.3540
3.80 -0.0946
0.4716
3.90 -0.0438
0.5348
4.00
0.0102
0.5359
4.10
0.0613
0.4746
4.20
0.1033
0.3584
4.30
0.1316
0.2012
4.40
0.1428
0.0219
4.50
0.1359 -0.1579
4.60
0.1120 -0.3165
4.70
0.0740 -0.4348
4.80
0.0268 -0.4986
4.90 -0.0237 -0.5004
5.00 -0.0712 -0.4400
Os valores so plotados na figura:
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
0.5
1.5
2.5
3.5
4.5
146
10 Utilizando o MATLAB
Familiarizao com o ambiente de trabalho e assimilao dos comandos principais.
A ferramenta de suporte computacional utilizada ao longo deste curso ser o MATLAB.
1. Sintaxe de comandos
Utilize a funo helpwin <comando>
2. Operaes aritmticas
adio
subtrao
multiplicao
diviso
potenciao
+
*
/
^
147
=
[]
()
.
,
;
%
:
Comando de atribuio
Delimitar elementos de matrizes e vetores
Alternar a ordem de precedncia das expresses aritmticas
Ponto decimal
Separa argumentos de funes e elementos matrizes e vetores
Finalizador de linha com supresso de impresso
Comentrio
Gerao de um vetor com intervalos definidos
Arco-coseno
Arco-seno
atan
Arco-tangente
cos
Coseno
cosh
Coseno hiperbolico
exp
Exponencial com base e
log
Logaritmo natural
log10
Logaritmo decimal
rand
Gera nmeros aleatrios com distribuio uniforme
randn
Gera nmeros aleatrios com distribuio normal
rat
Aproximao racional
round
Arredonda o nmero para o inteiro mais prximo
sign
Retorna 1 se for positivo e 0 se for negativo
sin
Seno
sinh
Seno hiperblico
sqrt
Raiz quadrada
tan
Tangente
tanh
Tangente hiperblica
O MATLAB trabalha com ngulos em radianos.
6. Operaes com vetores
Os vetores devem ser declarados em colchetes:
u = [1 2 3 4]
u=
1
148
A operao com apenas um elemento do vetor pode ser feita, especificando o elemento a ser tratado:
z(3) = z(3)+1
z=
4
Multiplicao de vetores
Diviso direita de vetores
Diviso esquerda de vetores
Exponenciao
Ex.:
mult = u.*z
mult =
4
10
21
28
149
mean(x)
ans =
5
7. Operaes com matrizes
A matriz pode ser definida de maneira semelhante aos vetores, diferenciando-se apenas na necessidade da
digitao de um ; para a separao das diferentes colunas:
a = [1 2 3 ;4 5 6;7 8 9]
a=
1
4
7
2
5
8
3
6
9
2
5
2
5
1
Nas operaes de adio e subtrao os elementos de uma matriz so somados ou subtrados com o seu
correspondente na outra matriz, quando matrizes de mesmo tamanho. A multiplicao e a diviso por
escalares efetuado elemento a elemento da matriz.
div = a*3
div =
150
3
12
21
6 9
15 18
24 27
4 9
25 36
64 81
A multiplicao de matrizes s pode acontecer se o nmero de colunas de uma matriz for igual ao nmero
de linhas da outra.
size(a)
ans =
3
size(div)
ans =
3
mult = a*div
mult =
90 108 126
198 243 288
306 378 450
A fim de mostrar diviso de matrizes, vamos definir duas novas matrizes:
x = [15 10 8;7 1 0;2 5 1];
y = [3 -1 2;-5 1 1;0 3 4];
div = x/y
div =
-2.0213 -4.2128
-0.5745 -1.7447
-1.8511 -1.5106
4.0638
0.7234
1.5532
divinv = x\y
divinv =
-0.7033 0.0239
0
-0.0766 0.8325 1.0000
1.7895 -1.2105 -1.0000
151
576
1305
2034
684
1548
2412
4
5
6
7
8
9
8. Nmeros Complexos
A parte imaginria do nmero complexo pode ser simbolizada pelas letras i e j indistintamente.
Ex.:
z1 = 3+4i
z1 =
3.0000 + 4.0000i
O conjugado do nmero complexo pode ser obtido utilizando a funo conj:
z2 = conj(z1)
z2 =
3.0000 - 4.0000i
As operaes com nmeros complexos utilizam os operadores usuais. A potenciao, como visto com as
matrizes, correspondente multiplicao sucessiva do nmero por ele mesmo.
Funes teis para trabalhar com nmeros complexos:
real
152
imag
abs
angle
9. Polinmios
Seja o polinmio:
X3 3x2 +4x-4
No MATLAB ele definido da seguinte forma:
poli = [1 -3 4 -4]
poli =
1
-3
-4
4.0000 -4.0000
11
-1
-2
-2
R=
0
153
16
14
12
10
0.5
1.5
2.5
3.5
4.1686
hold on;
t = 0:.1:5;
S = polyval(poly,t);
plot(t,S);
4.5
154
18
16
14
12
10
0.5
1.5
2.5
3.5
4.5
Grficos em 2D
Os principais comandos utilizados para a criao de grficos so:
plot
title
xlabel
ylabel
text
gtext
grid
A formatao de cor e estilo da linha podem ser facilmente ajustados atravs de argumentos do comando
plot.
Cor da Linha
Caracter
y
m
c
r
g
b
w
k
Cor
amarela
margenta
cyan
vermelha
verde
azul
branca
preta
Estilo da Linha
Caracter
.
o
x
+
*
:
--
Estilo
ponto
crculo
marca x
mais
asterisco
slido
pontilhado
tracejado
Operador
<
<=
>
Descrio
Menor que
Menor ou igual
Maior que
155
>=
==
~=
Maior ou igual
Igual
Diferente
Operador
&
|
~
Descrio
AND
OR
NOT
Rotinas
For <cond>
end
while <cond>
end
if <cond>
elseif
end
if <cond>
else
end
break
return
pause
Descrio
Gera um loop enumervel
Gera um loop enquanto uma condio (<cond>) for verdadeira
Comando executvel condicional
Essas rotinas associadas aos inmeros recursos oferecidos pelo MATLAB, propiciam ao usurio,
desenvolver desde simples programas at os mais sofisticados.
x T y = xi y i
i =1
cij =
aik bkj
k =1
156
s
1 bit
e
11 bits
f
52 bits
Objetivo 7: Arquivos M-file. Embora voc possa trabalhar inteiramente nas linhas de comando do
MATLAB, voc tambm pode armazenar em arquivos externos. Esses arquivos so equivalentes a
programas, funes, subrotinas e procedimentos de outras linguagens. Os arquivos M-file so criados a
partir do editor do MATLAB. Abaixo apresenta-se um arquivo para o clculo da raiz quadrada de um
nmero real maior ou igual a zero. Coloque este arquivo no formato M-file e execute-o.
function [x,iter]=sqrtn(a,tol)
%sqrtn Raiz quadrada de um nmero real maior que zero pelo Mtodo de Newton.
% x=sqrtn(z,tol) calcula a raiz do nmero real a utilizando o Mtodo de Newton
% a assumido ser maior ou igual a zero
% tol a tolerncia de convergencia (default eps) - eps - epsilon da mquina
% [x,iter]=sqrtn(a,tol) retorna tambm o nmero de iteraes (iter) para a con% vergncia.
if nargin<2,tol=eps;end
x=a;
iter=0;
xdiff=inf;
fprintf(' k
x_k
erro relativo\n')
while xdiff>tol
iter=iter+1;
xold=x;
x=(x+a/x)/2;
xdiff=abs(x-xold)/abs(x);
fprintf('%2.0f: %20.16e %9.2e\n',iter,x,xdiff)
if iter>50
error('No convergiu apos 50 iteraes')
end
end
157
158
Se y=1
f ( x) = 1
Caso contrrio
f ( x) = ( y 1) / ln( y )
Fim
i
Calcule tambm para x = 10 com i variando de -5 a -16 com passo 1.
Analise o resultado e verifique o que est acontecendo.
159
Referncias Bibliogrficas
[1] BARROSO, Lenidas C. et. al., Clculo Numrico (com Aplicaes), 2a edio, Editora Harbra, So
Paulo, 1987.
[2] CLAUDIO, Dalcidio M., MARINS, Jussara M., Clculo Numrico Computacional, 2a edio, Atlas,
1994
[3] SANTOS, Vitoriano R. B., Curso de Clculo Numrico, 4a edio, LTC, 1982.
[4] RUGGIERO, Mrcia A. G., LOPES, Vera Lcia R., Clculo Numrico: Aspectos Tericos e
Computacionais, 2a edio, Makron Books, So Paulo, 1996.
[5] CAMPOS, R. J. A., Clculo Numrico Bsico. 1 edio, Atlas, 1978
[6] CAMARGO, W. C. M., Apostila de Clculo Numrico. Departamento de Informtica. UFPR.