Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autor:
e-mail: sergio.peters@ufsc.br
Florianpolis, 2014.
1
1. SISTEMAS DE NUMERAO
1.1 - INTRODUO
Atualmente o sistema padronizado de representao de quantidades para o uso e a
comunicao entre as pessoas o sistema decimal. Entretanto, para facilitar a representao fsica, a
definio das operaes aritmticas e a comunicao entre as mquinas digitais, necessrio fazer
uso de outros sistemas de representao.
Como premissa bsica, conceitua-se nmero como a representao simblica de
determinada quantidade matemtica e base de um sistema de numerao a quantidade de smbolos
distintos utilizados nesta representao. Desta forma, um nmero real qualquer X na base pode ser
algebricamente representado atravs de:
X = (a1 a2 . . . ak , ak+1 ak+2 . . . a k+n)
(1)
X = a i
i =1
k i
+ a k + j j
j=1
(2)
, , , , , , , , ,
Historicamente estes nmeros tem diversas hipteses sobre sua origem::
a) Nmero de ngulos existentes no desenho de cada algarismo;
b) Nmero de traos contidos no desenho de cada algarismo;
c) Nmero de pontos de cada algarismo;
d) Nmero de dimetros e arcos de circunferncia contidos no desenho de cada algarismo;
e) Figuras desenhadas a partir dos traos de um quadrado e suas diagonais.
ii). Faz uso do zero. O zero, aceito com muita relutncia, o indicador da ausncia de certas
potncias da base na representao de um nmero na forma fatorada;
iii). Adota o princpio da posicionalidade. No sistema posicional o valor de cada smbolo relativo, isto
, depende da sua posio no nmero.
0
0
1
1
2
10
3
11
4
100
5
101
6
110
7
111
8
1000
9
1001
10
1010
.
.
19
10011
.
.
10
527 | 16
15 32 | 16
0 2
0,06250
x2
0,12500
0,125
x 2
0,250
0,25
x2
0,50
0,5
x2
1,0
= (0,00001)2
Ex. 12: (0,1)10 = ( )2
5
0,1
x 2
0,2
0,2
x2
0,4
0,4
x 2
0,8
0,8
x2
1,6
0,6
x2
1,2
0,2
x2
0,4
0,4
x2
0,8
0,8
x2
1,6
0,6
x2
1,2
0,2
x2
0,4
...
(0,00011 0011...)2
dzima peridica
-4
Ento: (0,1)10 = (0,00011001100110011...)2 (0,0001100110011)2 2 .(1,100110011)2
(0,1)10 (0,099975585)10 dgitos desprezados (arredondamento) por limitao de
armazenamento no registro binrio (10 bits significativos)
Devemos notar neste exemplo que, na converso das bases, parte dos dgitos da
representao binria so descartados, por limitao do nmero de dgitos representveis, o que
gera um erro de arredondamento.
Exerccios:
Exerccio - Efetuar as seguintes converses de base:
a)
b)
c)
d)
(10,57)10
(10,1011)2
(513,98)10
(A,0F)16
=
=
=
=
(
(
(
(
)2
)10
)16
)10
ai i!
10 a parte inteira e
(Xi)F! = (an an-1 ... a1)F! = i = n
m
a i (i + 1)!
a parte fracionria
(X-i)F! = (0, a-1 a-2 ... a-m)F! = i =1
Lembre-se que:
(4321)F! ter como seu sucessor (10000)F!
(119)10
(120)10
Ex. 14:
(A1,B)16 = ( )2
Como:
(A)16 = (1010)2
(1)16 = (0001)2
(B)16 = (1011)2
temos:
(A1,B)16 = (1010 0001 , 1011)2
(10001 , 01001 1001 1001 ...)2 = ( )16
0x27 + 0x26 + 1x25 + 1x24 + 0x23 + 0x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 + 0x2-3 + 0x2-4
(0x23 + 0x22 + 1x21 + 1x20) (24)1 + (0x23 + 0x22 + 0x21 + 1x20) (24)0 + ( 0x23 + 1x22 + 0x21 + 0x20) (24)-1
161
160
16-1
logo
3x161 + 1x16 + 4x16 = (31,4)16
Obs.: Nas converses diretas entre as bases binria e hexadecimal (ou entre as bases binria e
octal), no h perda de dgitos (arredondamento). Mas nas converses de base decimal para base
7
binria, ou para base hexadecimal, ou para base octal, podemos perder dgitos significativos. Por
exemplo:
(17,3)10 = (11,4CCC ...)16 = ( )10
= 1 . 161 + 1 . 160 + 4 . 16-1 + 12 . 16-2 + 12 . 16-3 + ...
Assim,
(17,3)10 = (11,4CCCC...)16 (11,4CC)16
(17,296875)10
(5 significativos)
Exerccios:
1.4 - Converter os nmeros para as bases na ordem indicada:
a) (10111,1101)2 = ( )16 = ( )10
b) (BD,0E)16 = ( )10 = ( )2
c) (41,1)10 = ( )2 = ( )16
Obs.: Verifique se houve perda de dgitos significativos em alguma das converses, considerando um
nmero limitado de dgitos representveis.
1,0.10-99 = 0,000.....00001
Por outro lado, em uma representao em Ponto Flutuante, esta calculadora cientfica
funciona com pouco mais de dez dgitos, incluindo posies reservadas ao expoente.
Ento, em uma representao em Ponto Flutuante, onde a vrgula flutua segundo um certo
padro, temos a seguinte representao genrica na base :
X = [ d1/ + d2/2 + d3/3 + ... + dt/t ] . exp
ou
X = (0,d1 d2 d3 ... dt) . exp
onde
di = nmeros inteiros contidos em 0 di ( - 1) (i = 1, 2, ... , t) que constituem a mantissa.
Obs.: necessrio algum tipo de normalizao para padronizao da mantissa, no caso adota-se d1
0.
exp = expoente de , assume valores limites I (Inferior) e S (Superior) onde
I exp S.
t = nmero de dgitos significativos do sistema de representao, chamado de preciso da
mquina.
s1
t dgitos significativos
sinal da mantissa
s2
sinal do expoente
expoente
Convenciona-se que:
Se s1 = 0 nmero positivo.
Se s1 = 1 nmero negativo.
s2 idem.
No registro total tem-se:
1
0
0
0
0
0
0
0
0
0
1
1
1
1 1
Lembre-se de que toda representao na mquina de 16 bits usa normalizao com
padro d1 0.
m.p. = +(0,1)2 . 2-15 = (2-1 . 2-15)10 = (2-16)10 = (0,0000152587)10
b) Maior positivo representvel (M.P.):
0
M.P. = +(0,1111111111)2 . 215 = (2-1 + 2-2 + 2-3 + ... + 2-10 ) . 215 = (32736)10 (1 . 215)
Obs.: Os limites de representao dos nmeros negativos so simtricos aos limites positivos
apresentados.
10
Na reta real temos a seguinte representao para F(2, 10, -15, +15):
- M.P.
- m.p.
m.p.
M.P.
regio de overflow
regio de underflow
regio de overflow
Obs.:
regio de underflow: {x | - mp < x < mp}
regio de overflow: {x | x < - MP e x > MP}
c) Representao do zero:
obtida com mantissa nula e o menor expoente representvel (I).
Ex. 18: Representar o zero em F(2,10,-15,+15).
0
expoente mnimo
Devemos lembrar que este o nico nmero escrito no normalizado, pois sua mantissa
zero.
No exemplo 20, a seguir, pode-se visualizar o que poderia acontecer se o expoente do zero
fosse diferente do limite inferior I.
Ex. 19: Simular a operao de adio: 0,000135 + 0 na mquina F(10,4,-10,+10)
a
b
1) Considerando a representao do zero com expoente nulo (b = 0,0000 . 100):
a = 0,1350 . 10-3
b = 0,0000 . 100
a = 0,000135 . 100
b = 0,0000 . 100
a + b = 0,0001 . 100 = 0,1000 . 10-3
2) Considerando a representao do zero com expoente mnimo I (b = 0,0000 . 10-10):
a = 0,1350 . 10-3
b = 0,0000 . 10-10
a = 0,1350 . 10-3
b = 0,0000 . 10-3
a + b = 0,1350 . 10-3 = a
Neste segundo caso o zero representado pela mquina digital representa corretamente o elemento
neutro da operao de adio.
11
1111
2 positivo 0 10...
= (0,0000152885)10
0 1
1111
Ex. 21: Caso uma operao aritmtica gere o nmero (0,00001527)10, como ele ser representado?
Como o valor acima no tem representao binria exata, ele ser representado pelo valor discreto
mais prximo, no caso (0,0000152587)10 que o menor positivo representvel (mp).
Pode-se notar que a distribuio de nmeros representveis de F(, t, I, S) no uniforme
em , e que para cada potncia da base existe uma quantidade fixa de nmeros representveis
dada por:
NC = ( - 1) . t - 1
Ex. 22: Em F(2, 3, -1, +2) temos as seguintes representaes possveis:
a) mantissas possveis:
0,100
0,101
0,110
0,111
b) expoentes possveis:
2-1
20
2+1
2+2
p = +15 = + (1111)2
I + p = - (15)10 + p = - (1111)2 + p = - (1111)2 + (1111)2 = (00000)2
S + p = +(15)10 + p = + (1111)2 + p = + (1111)2 + (1111)2 = (11110)2
5 bits
Como I e S tm agora o mesmo sinal, (+), podemos usar todos os registros binrios
reservados ao expoente, inclusive a posio do sinal, para representar o expoente polarizado (sem o
sinal). Assim, os limites polarizados do expoente so:
I = (00000)2 = (0)10
S = (11110)2 = (30)10
Podemos aqui aproveitar melhor os 5 bits reservados ao expoente tomando o maior valor
possvel, adotando S = (11111)2 = (31)10.
Na forma polarizada qualquer nmero v representado nesta mquina dever seguir a forma
abaixo:
s1
expoente
tem-se: s = 0 , m = 110100000 e
exp 15
Exerccios:
2.1 - Na mquina F(2, 3, -3, +3) com d10 (no polarizada) calcule:
a)
b)
c)
d)
e) Proponha uma transformao da mquina F apresentada em uma mquina com polarizao que
utilize os limites dos 3 bits totais reservados ao sinal.
2.2 - Na mquina F(2,3,0,7) com d10 e polarizao p = +3 calcule:
a)
b)
c)
d)
14
Obs.: Note que se fossemos classificar o nmeros acima quanto a exatido teramos o seguinte:
a) mais exato que (b) (ou seja, (a) est mais prximo de do que (b));
b) menos exato que (c);
c) mais exato que (a).
15
8
e
23
f
msb
lsb msb
lsb
onde
s = 0 v positivo e s = 1 v negativo
e = expoente
f = mantissa
polarizao = (127)10 = 27 - 1 = (01111111)2
msb = bit mais significativo e lsb = bit menos significativo
Um nmero v armazenado no registro acima interpretado da seguinte forma:
Se 0 < e < 255, ento
Se e = 0 e f 0, ento
Se e = 0 e f = 0, ento
Se e = 255,
ento
(zero)
Obs.:
(i). A representao destes registros binrios em computadores digitais feita em grupos de bytes (8
bits) escritos de forma invertida (de traz para frente) em relao ao esquema binrio apresentado
acima. Neste exemplo tem-se quatro bytes, onde cada byte composto por dois registros
hexadecimais (8 bits).
A seguir apresenta-se um exemplo desta representao para a frao 1/10, que representada na
varivel SINGLE do Pascal gera:
x = 0.10000000149 - (representao decimal, note o erro de arredondamento)
.
(ii). Se na janela watch do Pascal, onde se pode visualizar as variveis na base hexadecimal
escrevendo 'x,m', tem-se a seguinte representao hexadecimal de uma varivel SINGLE:
x,m = CD CC CC 3D - (representao hexadecimal no computador)
Esta deve ser interpretada na forma de bytes em ordem invertida, para compor o registro
binrio correspondente. Para obter este registro procede-se da seguinte forma:
a). Invertemos os bytes (grupos de dois hexadecimais):
3D CC CC CD
b). Efetua-se a converso direta para base binria:
16
3
D
C
C
C
C
C
D
0011 1101 1100 1100 1100 1100 1100 1101
c). Distribui-se os bits no registro SINGLE:
0
0 1 1 1 1 0 1 1
1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1
(CD CC CC 3D - representao hexadecimal no computador)
d). Interpretando os 32 bits acima pode-se converter o registro para decimal, conforme segue:
s=0
e = (01111011) 2 = (123)10
f = (10011001100110011001101) 2
(0<e<255)
0 1 1 1 1 0 1 1
e
1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1
f
e.2). Converter (0,10)10 diretamente para o padro 32 bits, considerando 0 < e < 255:
(0,10)10 = (-1)s . 2(e-127) . (1,f) 2
(e.2.1). s = 0 => para nmeros positivos +(0,10)10
(e.2.2). Considerando que ainda temos 2 incgnitas, e e f, vamos considerar o valor Mnimo de f,
f = 0, e calcular e:
(0,10)10 = (-1)0 . 2(e-127) . (1,0) 2
No caso, determina-se um valor de e maior que o verdadeiro, no caso, e= (123,6781...) 10 e
toma-se o seu menor inteiro, e= (123)10 (DESCONSIDERAR A PARTE FRACIONARIA)
(e.2.3). Agora determinamos o valor de f com os valores de s e e obtidos acima:
17
0 1 1 1 1 0 1 1
e
1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1
f
(ii). Note que a normalizao da mantissa uma otimizao decorrente da normalizao aplicada na
mquina de 16 bits. No caso de mquinas binrias o primeiro dgito significativo no nulo sempre o
bit unitrio, ento no necessrio reservar um registro para armazenar sempre o mesmo valor.
Assim, adotou-se a normalizao padro IEEE com um bit unitrio antes da vrgula, que no
armazenado na memria dos computadores. Armazena-se a partir do 2 bit significativo.
(iii). Na representao especfica dos primeiros valores positivos (e negativos) adotou-se uma
flexibilizao da normalizao, permitindo mantissas com primeiro(s) dgito(s) nulo, o que gerou uma
diminuio da regio de underflow.
s = 0
e = 00000000
f = 00000000000000000000000
i). Representao do Zero:
0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(00 00 00 00 - representao em hexadecimal)
s = 0
e = 00000000
f = 00000000000000000000001
ii). Menor positivo (mp):
0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
(01 00 00 00 - representao em hexadecimal)
18
mp = 1,4012985 . 10-45
s = 0
e = (11111110) 2 = ( 254)10
f = 11111111111111111111111
iii). Maior positivo (MP):
0
1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
(FF FF 7F 7F - representao em hexadecimal)
MP = (3,4028235 . 1038)10
4.2) Varivel DOUBLE do Pascal (ou DOUBLE do C):
11
e
52
f
msb
lsb msb
lsb
onde
polarizao = (1023) 10 = 210 - 1 = (01111111111)2
Um nmero v armazenado no registro acima interpretado da seguinte forma:
Se 0 < e < 2047, ento
Se e = 0 e f 0, ento
Se e = 0 e f = 0, ento
Se e = 2047
, ento
(zero)
15
e
msb
1
i
lsb
63
f
msb
lsb
onde
polarizao = (16383) 10 = 214 - 1 = (011111111111111)2
Um nmero v armazenado no registro acima interpretado da seguinte forma:
Se 0 < e < 32767,
ento
Se e = 32767 e f = 0, ento
39
f
8
e
msb
lsb msb
lsb
onde
polarizao = (129) 10 = 27 + 1 = (10000001)2
Um nmero v armazenado no registro acima interpretado da seguinte forma:
Se 0 < e <= 255, ento v = (-1)s . 2(e-129) . (1,f)2
Se e = 0,
ento v = 0,
(independe de f)
Ex. 41: Simulao do algoritmo para avaliao da preciso decimal equivalente de uma varivel.
p1=1
repita
p1=p1/2
p2=1+p1
at p2=1
Devemos ressaltar que no caso da operao soma os expoentes devem estar alinhados pelo maior
expoente para que a soma possa ocorrer, independentemente da normalizao da representao em
ponto flutuante (vide cap. 3). Assim,
e = (01111111) 2 = (127) 10
f = 00000000000000000000000
i). Representao da unidade: 1 =
0
0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(00 00 80 3F - representao em hexadecimal)
P1 =
e = (01111111) 2 = (127)10
f = 00000000000000000000001
este valor de P1
conseguido aps 23
divises binrias.
Ento,
1
P1
1+P1
Logo,
= 2 0 . (1,00000000000000000000000)2
= 2 0 . (0,00000000000000000000001)2
= 2 0 . (1,00000000000000000000001)2
20
P1 =
0
valor normalizado
e = (01101000) 2 = (104)10
f = 00000000000000000000000
0 1 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(00 00 00 34 - representao em hexadecimal)
Aps a 23a diviso de P1=1 por 2, P1 representar um nmero desprezvel na soma frente a
unidade, pois 1 + P1 = 1.
Exerccios:
4.1).
a). Avalie as regies de underflow e overflow de cada uma das variveis apresentadas acima
e faa uma verificao em um compilador Pascal ou C;
b). Avalie a preciso decimal equivalente de cada varivel, atravs da frmula de
equivalncia;
4.2). Simule o algoritmo do exemplo 41, em um compilador Pascal ou C, usando as variveis
apresentadas e determine o menor valor binrio de p1 que pode ser adicionado a unidade sem perda
total de significao (com operaes aritmticas em binrio), avaliando a preciso decimal
equivalente. Acompanhe os resultados na janela 'watch' com as variveis registradas em
hexadecimal.
21
+ 010
+ 12710
= 000000002 = 0016
= 011111112 = 7F16
- 12810 = 28 - 128 = 128 = 100000002 = 8016
- 510
= 28 5 = 123 = 111110112 = FC16
+ 127
127
01111111
10000001
00000000
4.5.2). byte: so tipos inteiros sem bit de sinal (no permite armazenar negativos). Esto limitados
aos valores 0 e 255.
Ex. 44:
010
= 0000 00002 = 0016
25510 = 1111 11112 = FF16
4.5.3). Integer: so tipos inteiros limitados faixa entre - 32768 e + 32767, correspondendo ao
armazenamento como 2 bytes com bit de sinal ("negativos" so armazenados em forma de
complemento de dois).
Ex. 45:
Zero
010
Maior Positivo
complemento de um de -3276810
soma 1
complemento de dois de -3276810
Agora observe o que acontece se for executada a soma da 'unidade' com o 'maior positivo' da
varivel Integer 3276710, ou seja, estamos calculando um nmero na regio de overflow:
Unidade
Maior Positivo
110 +3276710 = 1000 0000 0000 00002 = 800016 Complemento de 2 (inicia com 1)
22
4.5.4). Word: armazenamento de 2 bytes sem bit de sinal limitado a faixa entre 0 e 65535.
Ex. 46:
= 000016
010
6553510 = 1111 1111 1111 11112 = FFFF16
6553610 = 000016 = 010
Obs.: Note que a representao de nmeros inteiros acima do limite superior acarreta uma grande
perda de significao, cuja representao volta ao zero (vide ex. 45).
4.5.5). Longint: corresponde ao double word (4 bytes) com bit de sinal. Limita-se entre
2147483648 (-231) e +2147483647 (231 - 1). Longint equivale ao 'Int' da linguagem C/C++.
Ex. 47: 010 = 0000 0000 0000 0000 0000 0000 0000 00002 = 00 00 00 0016
+214747364710 = 0111 1111 1111 1111 1111 1111 1111 11112 = 7F FF FF FF16
-214748364710 = - 0111 1111 1111 1111 1111 1111 1111 11112
1000 0000 0000 0000 0000 0000 0000 00002
complemento de 1
+1
1000 0000 0000 0000 0000 0000 0000 0001 = 8000000116 complemento de 2
-214748364810 = -1000 0000 0000 0000 0000 0000 0000 00002
0111 1111 1111 1111 1111 1111 1111 11112
complemento de 1
+1
1000 0000 0000 0000 0000 0000 0000 00002 = 8000000016 complemento de 2
Observe novamente que se for executada a soma da 'unidade' com o 'maior positivo' da varivel
Longint 214747364710, estaremos calculando um nmero na regio de overflow da varivel
Longint:
Unidade
Maior Positivo
110
= 0000 0000 0000 0000 0000 0000 0000 00012 = 00 00 00 0116
+
+214747364710 = 0111 1111 1111 1111 1111 1111 1111 11112 = 7F FF FF FF16
110 +214747364710 = 1000 0000 0000 0000 0000 0000 0000 00002 = 80 00 00 0016
um complemento de 2 (inicia com 1)
Precisamos obter o complemento de 2 novamente para obter o nmero 'negativo' armazenado:
1000 0000 0000 0000 0000 0000 0000 00002
0111 1111 1111 1111 1111 1111 1111 11112 complemento de 1
+1
soma 1
-1000 0000 0000 0000 0000 0000 0000 00002 complemento de 2
= -80 00 00 00 00 00 0016
= -214748364810
Ento, cuidado podemos achar que 110
armazenando -214748364810.
23
Obs.: Note que o armazenamento de inteiros negativos sempre feito em forma de complemento
dois. Isto uma vantagem do ponto de vista de operaes aritmticas, pois o carregamento
unidade aritmtica j est na sua forma final com expoentes iguais (alinhados) para efetuar
operaes de adio (ou subtrao). Note que isto s possvel, pois os expoentes equivalentes
notao de Tipos Inteiros so todos iguais a zero.
de
na
as
na
Bytes
Bits
2
2
4
4
4
1
1
4
8
12
16
16
16
32
32
8
8
32
64
96
short int
unsigned short int
unsigned int
int
long int
signed char
unsigned char
float
double
long double
Range
-32,768
0
0
-2,147,483,648
-2,147,483,648
-128
0
->
->
->
->
->
->
->
+32,767
+65,535
+4,294,967,295
+2,147,483,647
+2,147,483,647
+127
+255
(16kb)
(32Kb)
( 4Gb)
( 2Gb)
( 2Gb)
ex = 1+
x x2 x3
xn
+ + + ... +
+ ...
1! 2! 3!
n!
Sabe-se que no possvel usar infinitos termos para avaliar uma funo, ento necessrio
estabelecer um limite para o nmero de parcelas utilizadas. Esta limitao nas parcelas gera um erro
de truncamento na srie, que corresponde ao somatrio dos termos abandonados.
Obs.: A representao de f(x) em srie ser mostrada de forma ilustrativa a seguir,
possvel representar, de forma exata, uma funo f(x) em um ponto qualquer x0+x a partir
de sua representao em x0, atravs de expanso em Sries de Taylor, dada genericamente por:
x
x2
x3
xn
f ( x0 + x) = f ( x0 ) + f ' ( x0 ). + f ' ' ( x0 ). + f ' ' ' ( x0 ). + ... + f ( n ) ( x0 ). + ...
1!
2!
3!
n!
Expandindo a funo, por exemplo, em torno de x0 = 0 (quando x0=0, temos o caso particular
da srie Maclaurin), tem-se:
24
f ( x ) = ex
f ( x 0 = 0) = e 0 = 1
f '( x 0 = 0) = e0 = 1
f ' '( x0 = 0) = e0 = 1
M
n
f ( x 0 = 0) = e0 = 1
Gerando ento,
f (0 + x ) = e x + 0 = 1 +
x x 2 x3
xn
+
+ + ... +
+ O ( x ( n +1) )
1! 2! 3!
n!
ex 1+
O( x ( n +1) ) =
x n +1
x n+2
+
+ ...
(n + 1)! ( n + 2)!
x x 2 x3
xn
+
+ + ... +
1! 2! 3!
n!
( n +1)
f ( x + h) f ( x)
h 0
h
f ' ( x) = lim
Porm, se este limite exato no puder ser obtido, pode-se promover uma aproximao
numrica deste, tomando o incremento h como finito e promovendo sucessivos refinamentos. Assim,
pode-se obter uma seqncia de aproximaes sucessivas de f'(x), com incremento cada vez menor,
mas no se pode chegar ao incremento nulo (h 0). Ento, tambm se quebra o processo
matemtico, de refinamentos sucessivos, gerando um erro de truncamento do processo, que era
matematicamente infinito, tornando-o finito.
Ex. 50: Aproximaes de derivadas
Para avaliar numericamente f '( x 0 ) a partir de trs pontos vizinhos de f(x):
f(x0 - h)
|
x0 - h
f(x0)
|
x0
f(x0 + h)
|
x0 + h
h2
h3
h4
hn
iv
n
f ( x 0 + h) = f ( x 0 ) + f '( x 0 ) h + f ''( x 0 ) + f '''( x 0 ) + f ( x 0 ) +...+ f ( x 0 )
2!
3!
4!
n!
-
h2
h3
h4
hn
iv
n
f ( x 0 h) = f ( x 0 ) f '( x 0 ) h + f ''( x 0 ) f '''( x 0 ) + f ( x 0 ) ...+ f ( x 0 )
2!
3!
4!
n!
_______________________________________________________________________
h3
h4
IV
f ( x 0 + h) f ( x 0 h) = f ' ( x 0 )( 2 h) + 2. f ' ' ' ( x 0 )
+ 2. f ( x 0 )
+...
3!
4!
25
f ' (x 0 ) =
f ( x 0 + h) f ( x 0 h ) 1
h3 1 V
h5
. f ' ' ' (x0 )
. f ( x 0 ) +...
2h
h
3! h
5!
f ( x 0 + h) f ( x 0 h)
O( h 2 )
2h
2
onde o termo de segunda ordem O( h ) representa o somatrio de todos os termos decorrentes da
f ' (x 0 ) =
h2
h4
V
O( h ) = f ' ' ' ( x 0 )
+ f ( x 0 ) +...
3!
5!
2
f ' (x0 )
f ( x 0 + h) f ( x 0 h)
2h
1
1
=
= (0,00011001100110011...) 2
10 10 1010 2
(1 / 10)10 = (0,11001100110011
...) 2 .2 3
14243
t = 10
1
10 10
(0,1100110011)2.2-3
Obs.: Note que uma frao decimal exata (1/10 = 0,1) quando armazenada em uma mquina binria
se transforma em uma frao binria peridica, que deve ser aproximada devido limitao do
registro em ponto flutuante utilizado no armazenamento.
(ii). Armazenamento de Irracionais:
O conjunto dos nmeros irracionais compreende todas as representaes atravs de dzimas
no peridicas e infinitas.
Conjuntos:
N - Naturais
Z - Inteiros
Q - Racionais
I - Irracionais
R - Reais
C - Complexos
Obs.: Existem representaes que generalizam todos os nmeros como complexos, de modo
que um complexo com parte imaginria nula se torna um real.
27
2 1.414213562373...
2 (0,1414213562373...) . 10+1
10
2 (0,141421) . 10+1
10
em base decimal, para que a representao de grandezas fsicas seja naturalmente entendida pelos
usurios dos computadores.
Ento toda grandeza fsica expressa inicialmente em base decimal, e o seu efetivo
armazenamento nos computadores feito em base binria, por isso necessria uma converso
entre as bases decimal e binria e vice-versa.
Ex. 57: Representar (0,1)10 em F(2,10,-15,+15).
.(1,100110011.)2 = (0,099975585)10
Erro Relativo % =
VA - VE
.100 % = -0,02441%
VE
Conseqncias:
Os erros de arredondamento podem causar:
(a). Perda de significao:
Esta uma conseqncia de erros de arredondamento, que gera perda, total ou parcial, de
dgitos significativos.
Esta perda de dgitos significativos pode ocorrer nos seguintes casos:
(a1). Soma de parcelas de grandezas muito diferentes:
Vide exemplos 55 e 56 apresentados anteriormente.
(a2). Subtrao de parcelas de grandezas muito prximas:
Ex. 58: Efetuar a - b com a = 0,1351 e b = 0,1369 em F(10,4,-10,+10) e g = 0.
Efetuando a subtrao de forma simplificada tem-se:
a = 0,1351
- b = - 0,1369
a - b = - 0,0018 = - 0,1800.10-2
Note que o resultado final no sofreu arredondamentos, mas perdeu dgitos significativos,
pois as parcelas a e b tem quatro dgitos significativos e a subtrao a - b tem apenas dois dgitos
significativos.
Obs.: A expresso de Baskara, para a soluo exata da equao de segundo grau, muitas vezes,
aparece expressa de forma alternativa para minimizar perdas de significao:
Para a x2 + b x + c = 0, tem-se as seguintes razes:
x1, 2
b b2 4ac
=
2a
(Formula de Baskara)
29
x1,2 =
2c
b b 2 4ac (Frmula obtida da racionalizao do numerador da expresso
anterior)
Pode-se observar que as duas formas formas apresentadas para a soluo podem
apresentar perdas de significao, quando a parcelas b e b 4ac forem de magnitudes prximas
e estiverem sujeitas a uma operao de subtrao.
Assim, recomenda-se utilizar as expresses propostas acima, escolhendo o sinal do
2
radicando de modo que as parcelas b e b 4ac fiquem sujeitas a operao de adio nas duas
parcelas, em uma expresso obtendo x1 e em outra obtendo x2.
2
Exerccios:
5.1). Achar as duas razes de x2 + 62,10 x + 1 = 0, utilizando o operador aritmtico
F(10,4,-99,+99) e g = 0 (quatro dgitos significativos nas operaes).
a). Use a frmula de Baskara normal;
b). Use a frmula de Baskara racionalizada;
c). Avalie os erros relativos nas duas formas de avaliao das razes, sabendo que os seus
valores exatos so x1 = - 0,01610 e x2 = - 62,08.
(a3). Nas operaes de diviso:
Em geral, nas operaes de diviso entre duas parcelas quaisquer, normalmente, so
gerados resultados com um nmero de dgitos maior que o permitido na representao em ponto
flutuante.
Ex. 59: Efetuar a / b, com a = 1332 e b = 0,9876, no operador F(10, 4,-99,+99) e g = 0.
Efetuando esta operao em uma calculadora de 10 dgitos, tem-se,
a / b = 1348,72418
Porm, se esta operao est sujeita a apenas 4 dgitos significativos (F10,4,-99,+99), o
resultado ser,
a / b = 1348
Causando desta forma uma perda de dgitos significativos.
(b). Instabilidade Numrica:
A acumulao sucessiva de erros de arredondamento pode conduzir um algoritmo de
repetio a resultados absurdos, por exemplo,
A avaliao sucessiva de x = f(x) com f(x) = (N+1) x - 1 uma constante x=1/N (na
ausncia de arredondamentos)
Verifique esta afirmao, implementando o exerccio 4.2 em computador.
Existem tambm outras formas de instabilidade, como aquelas associadas ao modelo
matemtico, por exemplo,
f (x) =
27985
9 ,1 x 2
Note que uma variao de 0,0003333% na varivel independente x gera uma variao de
0,06% no resultado final de f(x), ou seja, uma variao no resultado de cerca de 180 vezes superior.
Isto carateriza uma instabilidade intrnseca do modelo matemtico em relao aos seus dados de
entrada.
Ex. 61: Avaliar f(x) = 1 - cos(x) para x = 10-4 (radianos), na mesma calculadora cientfica (10 dgitos).
f(10-4) = 4,9 . 10-9
Se for utilizada uma forma alternativa para o modelo da funo:
1 + cos( x ) sen 2 ( x )
=
1 + cos( x ) 1 + cos( x )
g(x) = (1 - cos(x)) .
tem-se ento,
g(10-4) = 5 . 10-5
Note que devido a perda de dgitos significativos por arredondamento, duas representaes
idnticas da mesma funo geram respostas diferentes. Neste caso, tambm tem-se um exemplo de
instabilidade do modelo, porm neste exemplo especfico, se tem a possibilidade de reformular a sua
representao, gerando uma forma com menor perda de significao (g(x)).
Consideraes finais:
(i). A avaliao de erros numricos em mquinas digitais pode ser feita caso se tenha disponibilidade
de uma estimativa do valor exato para o resultado desejado.
Desta forma pode-se avaliar o Erro Numrico atravs das seguintes formas:
- Erro absoluto = | Valor obtido - Valor exato |
- Erro relativo
= Erro absoluto
Valor exato
5.2). Implemente o algoritmo abaixo em um compilador com aritmtica numrica para P1 e P2 tipo
real (Pascal, C, Fortran, ...)
p1:= 1;
31
i:= FALSE;
j:= 1;
Repita
p1:= p1/2;
p2:= p1 + 1;
j=j+1;
SE p2 <= 1 ento
Escreva ('Para minha precisao unitria', p1, ' eh 0 ', 'em ', j, ' repeticoes');
i:= TRUE;
fim SE
At (i=TRUE);
Avalie a posio do 1 dgito significativo de P1, que indica a sua preciso relativa ao nmero 1
(unidade). Verifique que P1 vai diminuindo at que fique to pequeno que no altera mais o valor de
P2. Avalie a influncia dos erros de arredondamento no resultados.
5.3) Considerando o compilador Turbo Pascal e suas cinco variveis do tipo real:
TIPO
real
single
double
extended
comp
FAIXA
2.9e-39...1.7e38
1.5e-45..3.4e38
5.0e-324...1.7e308
3.4e-4932..1.1e4932
-9.2e18..9.2e18
DGITOS
11-12
7-8
15-16
19-20
19-20
BYTES
6
4
8
10
8
33
equao linear
b). x2 + 2y + 1 = 0
equao no linear
c). 1 / x + y + z = 0
equao no linear
Quando vrias equaes lineares so agrupadas, de modo que todas devam ser
satisfeitas simultaneamente por uma mesma soluo, tem-se um sistema de equaes lineares.
Existem aplicaes de sistemas de equaes lineares nos mais variados segmentos da
cincia e tecnologia.
Def.: Um sistema de ordem n, constitudo por n equaes lineares a n incgnitas, toda
expresso do tipo:
Ax=b
a 11
a
21
M
a n1
a 12
a 22
M
a n2
a 1n x 1
L a 2 n x 2
=
L M M
L a nn x n
L
b 1
b
2
M
b n
(1)
a).
1 x
20
1
b).
. x = 4
1
0 .421
0 .832
0 .784
0 .784
0 .193 x1 1
0 .207 x 2 = 0
0 .279 x 3 0
0 .421
0 .832
0 .784
0 .784
0 .193 M 1
0 .207 M 0
0 .279 M 0
0 .448
0 .421
0 .421
0 .832
0 .784
0 .784
0 .193 M 1
0 .207 M 0 L 2 L 2 0 .421 /( 0 .448 ) L1 L 2 L 2 0 .9397 .L1
0 .279 M 0 L 3 L 3 ( 0 .421 ) /( 0 .448 ) L1 L 3 L 3 + 0 .9397 L 1
35
0.832
0.193 M
1
0.448
0
0.002143 0.38837 M - 0.93973
0
1.56586 0.46037 M 0.93973
0.832
0.193 M
1
0.448
0
0.002143 0.38837 M - 0.93973
0
1.56586
0.46037 M 0.93973 L3 L3 (1.5659 / 0.002143) L 2 L3 L3 730.7046L 2
0.832
0.193 M
1
0.448
0
0.002143 0.38837 M - 0.93973
0
0
284.25403 M 687.63333
0 x1 +
0 x 2 + 284 .25403 . x 3 = 687.63333
Obs.: Note-se que o valor de x3 pode ser diretamente obtido a partir da equao 3, uma vez
que esta equao independe de x1 e x2. Posteriormente os valores de x2 e x1 so obtidos das
equaes 2 e 1, respectivamente.
x3 = 687.63333/284.25403
x3 = 2.41908
x1 = 1.39629
36
0 .448
0 .784
0 .784
0 .832
0 .279 x1 0
0 .207 = x 2 = 0
0 .193 x 3 1
0 .448
0 .784
0 .784
0 .832
0
0 .207 0
0 .193 1
0 .279
i = 3 ( 0 .448 )
0 .784
0 .784
0 .832
0
0 .207 0
0 .193 1
0 .279
( 0 .448 )
0 .784
0 .784
0 .832
0 L1 L 3
0 .207 0
0 .193 1 L 3 L1
0 .279
37
0 .421
0 .193 M 1
0 .207 M 0
0 .279 M 0
0 .832
0 .784
0 .784
0 .421
( 0 .448 )
0
0 .193 M 1
0 .207 M 0 L 2 L 2 ( 0 .421 / 0 .448 ) L1 L 2 L 2 0 .9397 L1
0 .279 M 0 L 3 L 3 ( 0 .421 / 0 .448 ) L1 L 3 L 3 + 0 .9397 L1
0 .832
0 .784
0 .784
0 .3884 M - 0.9397
0 .4604 M 0.9397
0 .193 M
0 .832
0 .002143
1 .5659
Obs.: Note que as operaes elementares aplicadas acima eliminam os elementos abaixo da
diagonal principal na primeira coluna k=1. A operao de eliminao acontece sempre que
subtrai-se de cada linha i, a linha do piv i=k multiplicada pelo elemento a ser eliminado
divida pelo elemento piv.
4). Pivotao Parcial, correspondente ao segundo piv (k=2):
(i). Busca parcial do maior mdulo da coluna k = 2 (busca a partir da segunda linha e
da segunda coluna, pois a primeira coluna j foi anulada)
k=2
( 0 .448 )
0
( 0 .448 )
0
( 0 .448 )
0
0 .832
0 .002143
(1 .5659 )
0 .832
0 .002143
(1 .5659 )
0 .832
(1 .5659 )
0 .002143
0 .3884 M - 0.9397
0 .4604 M 0.9397
0 .193 M
0 .3884 M - 0.9397 L 2 L 3
0 .4604 M 0.9397 L 3 L 2
0 .193 M
0 .4604 M 0.9397
0 .3884 M - 0.9397
0 .193
(ii). Observe que o pivo antigo, a22=0,002143 era um valor pequeno e poderia
propagar erros nas prximas operaes de eliminao.
38
( 0 .448 )
0
( 0 .448 )
0
0 .832
(1 .5659 )
0 .002143
0 .832
(1 .5659 )
0
0 .4604 M 0.9397
0 .3884 M - 0.9397 L 3 L 3 ( 0 .002143 / 1 .5659 ) L 2 L 3 0 .00136767 .L 2
0 .1930 M
0 .4604 M 0.9397
0 .3884 M - 0.9410
0 .1930 M
0 x1 +
0 x 2 0 .3890 x 3 = - 0.9410
Obs.: Note-se que o valor de x3 pode ser diretamente obtido a partir da equao 3, e
posteriormente x2 e x1 a partir dos valores obtidos anteriormente.
x3 = -0.9410/ (-0.3890)
x3 = 2.41908
x2 = -0.11115
x1 = 1.39629
Ex. 3): Resolver o seguinte sistema de equaes lineares, usando a pivotao total e
operaes aritmticas com 4 (quatro) dgitos significativos e arredondamento ponderado.
0 .421 x 1 + 0 .784 x 2 + 0 .279 x 3 = 0
0 .421
0 .784
0 .832
0 .784
0 .279 x1 0
0 .193 x 2 = 1
0 .207 x 3 0
0 .421
0 .784
0 .832
0 .784
0 .279 M 0
0 .193 M 1
0 .207 M 0
0 .784
( 0 .832 )
0 .784
2
0 .279 M 0
0 .193 M 1
0 .207 M 0
3
40
Obs.: Observa-se que foi acoplada uma linha adicional na matriz de coeficientes para o
armazenamento da ordem de apresentao das variveis envolvidas. Ento, inicialmente temse a ordem natural das variveis x1, x2 e x3, cujos coeficientes multiplicadores so,
respectivamente, os elementos da primeira, segunda e terceira colunas.
0 .421 0 .784
1
C1
C2
C2
C1
0 .279 M 0 L 1 L 2
0 .193 M 1 L 2 L 1 (Troca da linha L1 com a linha L2 e vice-versa, e
troca dos elementos da coluna 1 com os elementos
0 .207 M 0
da coluna 2 e vice-versa).
0 .784
2
0 .193 M 1
0 .279 M 0
0 .207 M 0
3
0 .448
0 .421
0 .421
1
0 .784
2
( 0 .832 )
0
0
2
0 .448
0 .421
0 .421
1
0 .193 M 1
0 .279 M 0 L 2 L 2 ( 0 .784 / 0 .832 ) L 1 L 2 L 2 0 .9423 L1
0 .207 M 0 L 3 L 3 ( 0 .784 / 0.832) L 1 L 3 L 3 0 .9423 L1
3
0 .448
0 .8432
0 .0012
1
0 .097 M - 0.9423
0 .3839 M - 0.9423
3
0 .193
41
j= 2
0.832
i = 2 0
0
2
0.448
( 0.8432 )
0.0012
0.193 M
1
0.0971 M - 0.9423
0.3889 M - 0.9423
0 .448
( 0 .8432 )
0 .0012
0 .0971 M - 0.9423
0 .3889 M - 0.9423 L 3 L 3 ( 0 .0012 / 0 .8432 ) L 2 L 3 L 3 0 .001423 L 2
0 .193
0 .832
0
( 0 .8432 )
0 .448
0
0 .0971 M - 0.9423
0 .3890 M - 0.9410
3
0 .193
6). Retrosubstituio:
0 .832
0
0
2
0 .448
( 0 .8432 )
0
1
0 .0971 M - 0.9423
0 .3890 M - 0.9410
3
0 .193
x3 = -0.9410/ -0.3890
x3 = 2.419
x1 = 1.396
x2 = - 0.1106
S = {1.396,-0.1106, 2.419}
Os resduos ( r = | b - A x | ) so:
Consideraes:
- Observando os resduos encontrados nos exemplos acima, nota-se que o resduo nem
sempre um bom elemento para certificarmos a exatido da soluo, pois embora
encontremos resduos menores no mtodo sem o uso do pivotamento, comparativamente aos
mtodos que se utilizaram de pivotamento parcial e total, a soluo do sistema normalmente
mais exata nos mtodos com pivotao. Pode-se observar que em sistemas de mdio porte os
mtodos com pivotao total fornecem solues mais exatas.
- Pode-se observar que nas operaes elementares sobre linhas aplicadas no mtodo de
Gauss, aparece uma operao de diviso pelo piv. Sabe-se que na maioria das operaes de
diviso so gerados erros de arredondamentos (vide captulo de erros numricos), ento ao
longo do processo de eliminaes sucessivas, estes erros de arredondamento vo se
acumulando, pois os resultados obtidos em um estgio do processo de eliminao sero
usadas no estgio seguinte.
Para minimizar este efeito cumulativo dos erros de arredondamento, pode-se modificar
as operaes elementares do processo de escalonamento da seguinte forma:
Substitui-se a linha corrente pelo produto entre a prpria linha e o elemento piv
subtrado do produto entre a linha do piv e o elemento a ser eliminado.
Por exemplo:
Se a linha L3 sofre a seguinte operao de eliminao do elemento a31 com o piv da
primeira linha a11:
L3 L3 -
a 31
L
a 11 1
Sabendo-se que o objetivo desta operao anular o elemento a31, pode-se modificar
esta operao, desde que se mantenha o resultado nulo na primeira coluna. Assim, se
L3 -
a 31
L = 0
a 11 1
Ento, pode-se multiplicar a equao acima pelo elemento piv a11, resultando numa
forma alternativa, que mantm o resultado nulo para primeira coluna da matriz.
a 11 L 3 - a 31 L 1 = 0
Ex. 3): Resolver o seguinte sistema de equaes lineares usando o mtodo de Gauss-Jordan
com pivotamento parcial:
3x 1 + 1.5x 2 + 4.75x 3 = 8
4 x 1 + 2 x 2 + 3x 3 = 7
2 x + 5x + 3x = 12
2
3
1
3 x 2 =
4 2
2 5
3 x 3
7
12
3 M 7
4 2
2 5
3 M -12
44
i = 2 ( 4 ) 2
3 M 7
2
5
3 M - 12
3 M 7 L 2 L1
( 4 ) 2
2
5
3 M - 12
3 1.5 4.75 M 8
2
5
3 M - 12
3 1.5
2
5
3
2
0.5
1.5
5
7 L1 L1 / 4
4.75 M 8
3 M - 12
3
0.75 M 1.75
4.75 M 8
3 M - 12
3
2
1.5
0
0
0
2.5 M 2.75
4
1.5 M - 15.5
0.5
5
0.75 M 1.75
4 .75 M 8 L 2 L 2 3 L 1
3 M - 12 L 3 L 3 2 L 1
k=2
1
0
0
0.5
0
(4)
0.75 M 1.75
2.5 M 2.75
1.5 M - 15.5
L2 L3
L3 L2
0
0
0.5
(4)
0
0.75 M 1.75
1.5 M - 15.5
2.5 M 2.75
0
0
4
1.5 M - 15.5 L 2 L 2 / 4
0
2.5 M 2.75
0
0
0.5
1
0
1.75
0.375 M - 3.875
2.5 M 2.75
0.75 M
0
0
0.5
0
0
1
0
1
0
1.75 L 1 L1 0.5 L 2
0.375 M - 3.875
2.5 M 2.75 L 3 L 3 0 L 2
0.75 M
0.5625 M 3.6875
0.375 M - 3.875
2.5 M 2.75
0
0
0
0
1
0
1
0
0.5625 M 3.6875
0.375 M - 3.875
2.5 M 2.75 L 3 L 3 / 2.5
0.5625 M 3.688
0.375 M - 3.875
1
M 1.1
46
0
0
0
0
0
1
0
0 M 3.069
0 M - 4.288
1 M 1.1
0 x 1 + x 2 + 0 x 3 = 4.288
0 x + 0 x + x = 1.1
2
3
1
Obs.: Note que cada equao representa explicitamente uma incgnita, ou seja, o vetor b de
termos independentes modificado guarda a prpria soluo do sistema. Assim,
x1 = 3.069
x2 = - 4.288
x1 = 1.100
A soluo obtida
S = {3.069,- 4.288,1.100}
Exerccios:
3). Elabore um algoritmo para resolver um sistema de equaes lineares pelo mtodo de
Gauss-Jordan utilizando pivotao parcial;
x = A-1.b
Portanto, pode-se obter o vetor de incgnitas x multiplicando a matriz inversa A-1 pelo
vetor b.
Trata-se de um mtodo eficiente quando dispomos da inversa da matriz A, caso
contrrio temos o custo adicional da determinao da inversa.
Ex. 4): Resolva o sistema de equaes lineares indicado abaixo usando o mtodo de inverso
de matrizes. Utilize o processo de pivotamento parcial para evitar pivs nulos.
3x 1 + 1.5x 2 + 4.75x 3 = 8
4 x 1 + 2 x 2 + 3x 3 = 7
2 x + 5x + 3x = 12
2
3
1
3 x 2 =
4 2
2 5
3 x 3
7
12
3 M 0
4 2
2 5
3 M 0
0
1
0
1
0
(ii). Atravs de operaes elementares sobre linhas (ou sobre colunas) transforma-se a matriz
A na matriz identidade I, e consequentemente a matriz identidade inicial transforma-se na
inversa A-1. Trata-se de um procedimento anlogo ao utilizado no mtodo de Gauss-Jordan.
Este procedimento tambm pode ser associado a um processo de pivotao parcial,
para evitar pivs nulos e diminuir a perda de significao.
Seguem-se os passos para obteno de A-1:
a). Pivotao parcial, correspondente ao primeiro piv (k=1):
(i). Busca do maior mdulo da coluna k = 1
k=1
3 1.5 4.75 M 1
i = 2 ( 4 ) 2
3 M 0
2
5
3 M 0
0
1
0
0
1
3 M 0
( 4 ) 2
2
5
3 M 0
0
1
0
0 L1 L 2
0 L 2 L1
1
3 1.5 4.75 M 1
2 5
3 M 0
1
0
0
0
1
3 1.5 4.75 M 1
2 5
3 M 0
3
2
0.25 0
0
0
0
1
1
0
0.5 0.75 M 0
1.5
5
4.75 M 1
3
M 0
0 L1 L 1 / 4
0
1
3
2
0.5
0.75 M 0
1.5
4.75 M 1
0
0
0.25 0
0
0 L 2 L 2 3 L1
0
1 L 3 L 3 2 L1
M 0
0.75 0
0.5 1
0.5 0.75 M 0
0
2.5 M 1
1.5 M 0
0.25
Obs.: Note que existe uma completa analogia com o mtodo de eliminao de Gauss-Jordan.
d). Pivotao parcial, correspondente ao segundo piv (k=2):
(i). Busca parcial do maior mdulo da coluna k = 2 (busca a partir da segunda linha,
pois a primeira linha j foi utilizada no processo de eliminao).
k=2
1
0
0
0.5
0.75 M 0
2.5 M 1
(4 )
1.5 M 0
0.75 0 L 2 L 3
0.5 1 L 3 L 2
0.25
0
0
0.5
0.75 M 0
(4)
1.5 M 0
2.5 M 1
0.5 1
0.75 0
0.25
Obs.: Note que a pivotao parcial eliminou um piv nulo (processo possvel em caso de
matrizes no singulares).
e). Processo de normalizao do segundo piv (k=2):
1
0
0 .5
0 .75 M 0
0 .25
4
0
1.5 M 0
2 .5 M 1
0 .5
0 .75
0
0
0.5
0.75 M 0
0.375 M 0
0.125 0.25
0.75
0
2.5
0
1 L 2 L 2 / 4
0
0.25
M 1
0 1 0.375 M 0
0 0
2.5 M 1
0 L1 L1 0.5L 2
0.125 0.25
0.75
0 L 3 L 3 0 L 2
0
0
- 0.125
0.125
0.25
0.75
0
0.5625 M 0
0.375 M 0
2.5
0.25
0.3125
M 1
0 .5625 M 0
0.3125
1
0
0 .375 M 0
2 .5 M 1
0 .125
0 .75
0
0
0.5625 M 0
0.375 M 0
M 0.4
- 0.125
0 .25
0 L 3 L 3 / 2 .5
- 0.125
0.125
0.25
0.3
0
0.3125
0
0
0.5625 M 0
0.375 M 0
M 0.4
- 0.125 L 1 L 1 0.5625L 3
0.125
0.25 L 2 L 2 0.375L 3
0.3
0
0.3125
50
0
0
0 M - 0.225
0 M 0.15
1 M
Ento,
0.4
- 0.125
0.0125
0.25
0.3
0
0.4812
- 0.225
A = 0.15
0.4
-1
- 0.125
0.0125
0.25
0.3
0
0.4812
- 0.125 8
0.0125
0.25 . 7 =
0.3
0 12
0.4812
3.069
4 .288
1100
4 ,01x 1 + x 2 + 3x 3 = 7
x + 0,5x - 0,05x = 1
2
3
1
Alm dos mtodos de eliminao tradicionais, como Gauss, Gauss-Jordan e inverso, tem-se
as suas variaes classificadas como mtodos de decomposio LU, conforme o
procedimento que segue.
Nesta famlia de mtodos diretos para a soluo de um sistema linear faz-se uso do
fato de que, sob certas condies, uma matriz quadrada pode ser decomposta no produto de
duas matrizes triangulares. Uma destas variaes do procedimento geral de eliminao
conhecida como mtodo de Crout (ou Cholesky para o caso particular de matrizes simtricas
51
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.
Para a soluo de A . x = b, pode-se decompor A segundo o Mtodo de Crout,
conforme segue:
l 11
l
21
L=
l
n1
0
l 22
l n2
0
0
l nn
1 u 12
0 1
U=
0 0
u 1n
u2n
a11 a12
a
21 a22
a31 a32
a13 l11 0
a23 = l21 l22
a33 l31 l32
0 1 u12
0 0 1
l33 0 0
u13
u 23
1
1 u12
0 1
0 0
l11
l
21
l31
0
l 22
l 32
0
0
l 33
u13
u 23
1
l 31 .1 + l 32 .0 + l 33 .0 l 31 .u12 + l 32 .1 + l 33 .0 l 31 .u13 + l 32 .u 23 + l 33 .1
l11 = a11
l 21 .1 + l 22 .0 + 0.0 = a 21
l 21 = a 21
=>
l 31 .1 + l 32 .0 + l33 .0 = a31
l 31 = a31
=>
l 22 = a 22 l 21 .u12
l 32 = a 32 l 31 .u12
=>
=>
u 23 = (a 23 l 21 .u13 ) / l 22
=>
Resumindo:
l11 = a 11
l 21 = a 21
l 31 = a 31
u13 = a 13 / l11
( c 1 = b 1 / l 11 )
l 22 = a 22 l 21u12
53
l 32 = a 32 l 31u 12
u 23 = ( a 23 l 21 u 13 ) / l 22
l 33 = a 33 l 31u13 l 32 u 23
( c2
= ( b 2 l 21 c 1 ) / l 22 )
( c 3 = ( b 3 l 31 c 1 l 32 c 2 ) / l 33 )
a 21
a 31
a 12
a 22
a 32
a 13 M b 1 l 11
a 23 M b 2 = l 21
a 33 M b 3 l 31
u 13 M c 1
u 23 M c 2
l 33 M c 3
u 12
l 22
l 32
l ik = a ik l ir u rk
k (i = k,k+1,...,n)
r =1
54
u kj =
k 1
1
a kj l kr u rj
l kk
r =1
i = 1,2,3,...,n
j = 2,3,...,n
u1 j = a 1 j / l11
Para k = 2,3,...,n-1
k 1
l ik = a ik l ir u rk
(i = k,k+1,...,n)
r =1
u kj =
k 1
1
a kj l kr u rj
l kk
r =1
(j = k+1,...,n)
Para k = n
k 1
l ik = a ik l ir u rk
(i = k=n)
r =1
Ex. 5): Resolver o sistema abaixo pelo Mtodo de Crout, sem estratgia de pivotamento,
usando 4 dgitos significativos e arredondamento ponderado.
a 21 a 22
a 31 a 32
a 13 M a14
a 23 M a 24
a 33 M a 34
aps a decomposio LU
l11
l 21
l 31
u12
l 22
l 32
u13 M u14
u 22 M u 24
l 33 M u 34
0 .421
0 .832
0 .784
0 .784
0 .193 M 1
0 .207 M 0
0 .279 M 0
0 .421
C1
C1
0.832
0.784
0.784
0.193 M 1
- 0.207 M 0
0.279 M 0
0.421
0 .832
0 .784
0 .784
0 .193 M 1
0 .207 M 0
0 .279 M 0
- 0.421
1.857
0 .784
0 .784
0.4308 M 2.232 L1
0 .207 M 0
0 .279 M 0
L1 / l11
- 0.421
1.857
0 .784
0 .784
0.4308 M 2.232
0 .207 M 0
0 .279 M 0
C2
C 2 l i1 u 12
0.448
0.421
- 0.421
1.857
0.0022
1.566
0.4308 M 2.232
0 .207 M 0
0 .279 M 0
- 0.421
1.857
(0.0022)
1.566
0.4308 M 2.232
0 .207 M 0 L 2 ( L 2 l 21 u 1 j ) / l 22
0 .279 M 0
56
0.448
0.421
- 0.421
0.4308 M 2.232
176.5 M 427.1
0 .279 M 0
1.857
(0.0022)
1.566
- 0.421
0.4308 M 2.232
176.5 M 427.1
0 .279 M 0
1.857
0.0022
1.566
C3
C 3 l 31 u 31 l 32 u 23
0.448
0.421
- 0.421
0.4308 M 2.232
176.5 M 427.1
276.9 M 0
1.857
0.0022
1.566
(ii) No h pivotamento.
(iii). Definio da linha k = 3 da matriz U - u3j: (j = 4)
0.448
0.421
- 0.421
0.448
0.421
- 0.421
0.4308 M 2.232
- 176.5 M - 427.1
(276.9) M 0 L 3 ( L 3 l 31 u 14 l 32 u 24 ) / l 33
1.857
0.0022
1.566
0.4308 M 2.232
- 176.5 M - 427.1
276.9 M 2.419
1.857
0.0022
1.566
Logo,
0.448
L = 0.421
- 0.421
0
0.0022
1.566
0
276.9
0
1 1.857
U = 0
1
0
0
0.4308
- 176.5
0.c 2 +
0.c 3 = 1
0,448.c 1 +
c1 = 2,232
c2 = - 427,1
c3 = 2,419
57
0 x1 + 1x 2 176 .5 x 3 = 427 .1
0 x + 0 x + 1x = 2 .419
2
3
1
x3 = 2,419
(-427,1+427,0)
x2 = -0,1000
(2,232+0,1857-1,042) x1 = 1,376
A soluo obtida
S = { 1.376, -0.1000, 2.419}
Os resduos ( r = | b - A x | ) de cada uma das equaes do sistema linear proposto so
os seguintes:
58
0 .421
0 .832
0 .784
0 .784
0 .193 M 1
0 .207 M 0
0 .279 M 0
0 .421
C1
C1
0.832
0.784
0.784
0.193 M 1
- 0.207 M 0
0.279 M 0
0.421
0 .832
0 .784
0 .784
0 .193 M 1
0 .207 M 0
0 .279 M 0
- 0.421
1.857
0 .784
0 .784
0.4308 M 2.232 L1
0 .207 M 0
0 .279 M 0
L1 / l11
- 0.421
1.857
0 .784
0 .784
0.4308 M 2.232
0 .207 M 0
0 .279 M 0
C2
C 2 l i1 u 12
59
0.448
0.421
- 0.421
1.857
0.0022
1.566
0.4308 M 2.232
0 .207 M 0
0 . 279 M 0
- 0.421
1.857
0.0022
(1.566)
0.4308 M 2.232
0 .207 M 0
0 .279 M 0
0.421
1.857
(1.566)
0.0022
0.4308 M 2.232
0 .279 M 0 L 2 L 3
0 . 207 M 0 L 3 L 2
0.421
0.448
0.421
0.421
1.857
(1.566)
0.0022
1.857
(1.566)
0.0022
0.4308 M 2.232
0 .279 M 0 L 2 ( L 2 l 21 u 1 j ) / l 22
0 .207 M 0
0.4308 M 2.232
0.2940 M 0.6001
0 .207 M 0
0.421
1.857
1.566
0.0022
0.4308 M 2.232
0.2940 M 0.6001
0 .207 M 0
C3
C 3 l 31 u 13 l 32 u 23
0.448
0.421
0.421
1.857
1.566
0.0022
0.4308 M 2.232
0.2940 M 0.6001
0.3890 M 0
0.421
0.448
0.421
0.421
1.857
1.566
0.0022
1.857
1.566
0.0022
M 2.232
0.2938 M 0.6001
( 0.3890) M 0 L 3 ( L 3 l 31 u 14 l 32 u 24 ) / l 33
0.4308
0.4308 M 2.232
0.2940 M 0.6001
0.3890 M 2.419
0 x1 + 1x 2 + 0 .2940 x 3 = 0 .6001
0 x + 0 x +
1x 3 = 2 .419
2
1
x3 = 2.419
(0.6001-0.7112)
x2 = - 0.1111
(2.232+0.2063-1.042) x1 = 1.396
61
Gerao da matriz concatenada A (nica) com os 3 vetores b1, b2, b3 de termos independentes:
1
1
: b1 , b2 , b3
2
4 : 1 1 1
2 3 4 : 0 0 0
0 2 3 : 1 1 1
4 1 1 : 2 2 2
A
3
1). k = 1:
(i). Definio da primeira coluna k = 1 da matriz L - li1:(i=1,2,3,4), que igual a matriz A:
1 2 3 4 : 1 1 1
1 2 3 4 : 0 0 0
1 0 2 3 : 1 1 1
1 4 1 1 : 2 2 2
(ii). Pivotao parcial, correspondente ao primeiro piv (k=1):
OBSERVE que a pivotao parcial deve ocorrer depois do clculo dos valores de
lik na coluna k e antes do clculo dos valores ukj da linha k, para que os elementos lii da
diagonal principal calculados sejam no nulos e tenham os maiores valores possveis.
Nesse caso, a matriz lik j se encontra pivotada (vide Ex. 1):
(1) 2 3 4 : 1 1 1
1 2 3 4 : 0 0 0
1 0 2 3 : 1 1 1
1 4 1 1 : 2 2 2
(iii). Definio da primeira linha k = 1 da matriz U - u1j: (j=2,3,4) , que igual a matriz A
dividida pelo piv l11=1:
(1) 2 3 4 : 1 1 1
1 2 3 4 : 0 0 0
1 0 2 3 : 1 1 1
1 4 1 1 : 2 2 2
2). k = 2:
(i). Definio da segunda coluna k = 2 da matriz L - li1:(i=2,3,4) , que igual a matriz A
62
1 2
2 3 : 1 1 1
2 = 0 (1* 2)
1 ( 6 ) 1 1 : 2 2 2 6 = 4 (1* 2)
(ii). Pivotao parcial, correspondente ao segundo piv (k=2):
OBSERVE que a pivotao parcial deve ocorrer depois do clculo dos valores de
lik na coluna k e antes do clculo dos valores ukj da linha k, para que os elementos lii da
diagonal principal j calculados sejam no nulos e tenham os maiores valores
possveis.
Nesse caso, a linha 4 trocada com a linha 2:
2
1
1 ( 6 )
1 2
0
1
:
:
2 3 :
3 4 :
3
1
4
1
1 1 1
2 2 2
1 1 1
0 0 0
(iii). Definio da segunda linha k = 2 da matriz U - u1j: (j=3,4) , que igual a matriz A
menos o somatrio dos produtos cruzados da sua linha e coluna, respectivamente, e dividido
pelo pelo piv l22=-6.
2
3
4 :
1
1 ( 6 ) 0.67 0.5 :
1 2
2
3 :
0
3 4 :
1
1 1 1
2 2 2
0.67 = [1 (1* 3)] /(6) 0.5 = [1 (1* 4)] /(6)
e
1 1 1
0 0 0
3). k = 3:
(i). Definio da terceira coluna k = 3 da matriz L - li1:(i=3,4).
2
3
4 : 1 1 1
1
1 ( 6 ) 0.67 0.5 : 2 2 2
1 2 3.67 3 : 1 1 1
3.67 = 2 (1* 3 + 2 * 0.67)
0
6 4 : 0 0 0 6 = 3 (1 * 3 + 0 * 0.67)
1
(ii). Pivotao parcial, correspondente ao terceiro piv (k=3):
OBSERVE que a pivotao parcial deve ocorrer depois do clculo dos valores de
lik na coluna k e antes do clculo dos valores ukj da linha k, para que os elementos lii da
diagonal principal j calculados sejam no nulos e tenham os maiores valores
possveis.
Nesse caso, a linha 4 trocada com a linha 3:
63
2
3
4 : 1 1 1
1
1 ( 6 ) 0.67 0.5 : 2 2 2
1
0 ( 6 ) 4 : 0 0 0
1 2 3.67 3 : 1 1 1
(iii). Definio da terceira linha k = 3 da matriz U - u1j: (j=4)
2
3
4 :
1
1 ( 6 ) 0.67 0.5 :
1
0 ( 6 ) 1.33 :
1 2 3.67 3 :
1 1 1
2 2 2
0 0 0
1.33 = [4 (1 * 4 + 0 * 0.5)] /(6)
1 1 1
4). k = 4:
(i). Definio da quarta coluna k = 4 da matriz L - li1:(i=4).
2
3
4 : 1 1 1
1
1 ( 6 ) 0.67 0.5 : 2 2 2
1
0 ( 6 ) 1.33 : 0 0 0
1 2 3.67 1.11 : 1 1 1 1.11 = 3 (1 * 4 + 2 * 0.5 + 3.67 *1.33)
Resolvendo o primeiro sistema L.C=b1
0
0
0 c1 1
1
1 ( 6) 0
0 c2 2
x
=
1
0 ( 6) 0 c3 0
1 2 3.67 1.11 c4 1
Resolvendo U.x=c1
4 x1 1
1 2 3
x 2 =
0 0 1 1.33 x3 0.167
1 x4 1.55
0 0 0
Resolvendo o segundo sistema L.C=b2
0
0
0 c1 1
1
1 ( 6) 0
0 c2 2
x
=
1
0 ( 6) 0 c3 0
1 2 3.67 1.11 c4 1
c1 1
2 = 0.167
c3 0.167
c4 1.55
x1 0.15
x
2 = 0.325
x3 1.9
x4 1.55
c1 1
2 = 0.5
c3 0.167
c4 0.35
Resolvendo U.x=c2
64
1
0
x1 0.55
x
2 = 0.525
x3 0.3
x4 0.35
2 3
4 x1 1
0 0
1 x4 0.35
x
=
1
0 ( 6) 0 c3 0
1 2 3.67 1.11 c4 1
c1 1
2 = 0.5
c3 0.167
c4 1.45
Resolvendo U.x=c3
4 x1 1
1 2 3
x 2 =
0 0 1 1.33 x3 0.167
1 x4 1.45
0 0 0
x1 0.85
x
2 = 0.175
x3 2.1
x4 1.45
Consideraes:
(i). O nmero de operaes aritmticas envolvidas em cada um dos mtodos de eliminao
(sem pivotamento) apresentados da seguinte ordem:
Gauss
Nmero de Operaes:
(sem pivotamento)
O ( 2 n3 / 3 )
Gauss-Jordan
O ( n3 )
Inverso
O ( n3 )
Crout
O ( 2 n3 / 3 )
Mtodos:
Operao
Adico +Subtrao
Multiplicao
Diviso
Total
Mtodo de Crout
(2n +9n2-11n)/6
(2n3+3n2-5n)/6
(n2+n)/2
(4n3+15n2-13n)/6
3
Mtodo de Gauss
(2n +3n2-5n)/6
(2n3+3n2-5n)/6
(n2+n)/2
(4n3+9n2-7n)/6
3
l 11 = a 11
l i1 = a i1 / l 11
(i = 2,3,...,n)
k 1
= a kk l 2kr
r =1
l ik =
1/ 2
k 1
1
a ik l ir l kr
l kk
r =1
i = k+1,...,n
n 1
l nn = a nn l 2nr
r =1
1/ 2
O mtodo de Cholesky tambm utilizado para fazer um teste rpido se uma dada
matriz simtrica positiva definida ou no. Caso a decomposio seja possvel (radicando
positivo) ento a matriz simtrica positiva definida.
Exerccios:
6). Resolva o seguinte sistema de equaes lineares pelo mtodo de Cholesky:
66
4 x1
x2 +
x3 = 0
x 1 + 4.25x 2 + 2.75x 3 = 1
x + 2.75x + 3.5x = 1
2
3
1
7). Para resolver um sistema de equaes lineares ordem 10 ( 10 equaes por 10 icgnitas)
um computador (Pentium 133), utilizando o mtodo de Eliminao de Gauss s/ pivotamento,
levou 0.11 segundos para encontrar a soluo. Estime o tempo que este mesmo computador
levaria para resolver um sistema de ordem 100, utilizando o mesmo mtodo.
r1
t
2
0
M
M
0
0
d1
r2
d2
t3
M
r3
M
d3
M
L
M
L
M
M
0
M
M
M
L L t n1
rn1
L L
tn
0 x1 b1
0 x2 b2
0 x3 b3
M M = M
M M M
d n 1 xn1 bn1
rn xn bn
(3)
r1
t 2
M
M
M
M
0
d1
r2
0
d2
0
0
L
L
L 0
L 0
M
M
t i 1
M
ri 1 d i 1 M
ti
ri d i
M
M
M
0
M
L
M
L
L
0
L M
t n rn
t2
L2 L2 r L1
1
M
b i 1
bi
M
b n
b1
b2
67
r1
0
M
M
M
M
0
onde
onde
d1
r2*
d2
M
M
t i 1
ri 1
L
d i 1
M
M
M
M
ti
M
ri
L
b1
L 0 b *2
L M
M
M M b i 1
d i M bi
L M
M
t n rn b n
L
t2
t2
d 1 e b *2 = b 2 b 1
r1
r1
Generalizando para uma linha i qualquer, tem-se:
r2* = r2
r1
0
M
M
M
M
0
d1
r2*
0
d2
0
0
L
L
L
L
0
0
M
M
0
M
*
i 1
r
ti
d i 1
ri
M
di
M
M
M
0
M
L
M
L
L
0
L M
t n rn
r1
0
M
M
M
M
0
d1
*
2
d2
*
i 1
d i 1
*
i
di
M
0
M
L
M
L
L
0
L M
0 rn*
ri* = ri
b1
b *2
M
b *i 1
t
b i L i L i *i L i 1
ri 1
M
b n
b1
b *2
M
b *i 1
b *i
M
b n
(4)
ti *
ti *
*
d
b
=
b
b
e
i
1
i
i
ri*1 i 1
ri*1
ti *
d
ri*1 i 1
t
b*i = b i *i b*i 1
ri 1
ri* = ri
com r1* = r1
e b1* = b1 .
68
Como a soluo de (3) a mesma de (4), ento por retrosubstituio sucessiva obtemse:
x n = b*n / rn*
Para i = n-1,n-2,...,2,1 tem-se
x i = ( b *i d i x i+1 ) / ri*
Assim, a soluo do sistema de equaes obtida com o mnimo de operaes
possveis, manipulando apenas os elementos no nulos.
Nestes casos o pivotamento de linhas ou colunas no deve ser aplicado, pois isto
alteraria a estrutura em forma de banda da matriz.
Ex. 8): Resolva o seguinte sistema de equaes de forma otimizada:
0
1 1 0
1 1 1 0
0 1 1 1
0 0 1 1
0 0
0 1
0
1
0 M 2
1 M 1
2 M 2
0 M
0 M
Soluo:
(i). Triangularizao baseada no piv k = 1:
0
1 1 0
1 1 1 0
0 1 1 1
0 0 1 1
0 0
0 1
2 M
0
1 1 0
0 2 1 0
0 1 1 1
0 0 1 1
0 0
0 1
0
1
0 M 2
1 M 1
2 M 2
0 M
0 M
0 M
1 M
0
1
1 L 2 L 2 L1
1
2
1
2
0 M
0 M
0 1 1 1
0 0 1 1
0 0
0 1
0 M
0 M
0 M
1 M
2 M
0
1
1
2 L3 L3 L2
2
1
2
69
0
0
1 1
0 2
1
0
0 0 0.5 1
1
1
0 0
0 0
0
1
0
1
0 M 15
.
1 M 1
2 M 2
0 M
0 M
0
0
1 1
0 2
1
0
0 0 0.5 1
1
1
0 0
0 0
0
1
0 M 0
0 M 1
.
0 M 15
( 1)
1 M 1 L 4 L 4
L
( 0.5) 3
2 M 2
0
0
1 1
0 2
1
0
0 0 0.5 1
0
1
0 0
0 0
0
1
0
1
0 M 15
.
1 M 4
2 M 2
0 M
0 M
0
0
1 1
0 2
1
0
0 0 0.5 1
0
1
0 0
0 0
0
1
0 M 0
0 M 1
0 M 15
.
1 M 4
( 1)
L
2 M 2 L 5 L 5
( 1) 4
0
0
1 1
0 2
1
0
0 0 0.5 1
0
1
0 0
0 0
0
0
0
1
0 M 15
.
1 M 4
1 M 2
0 M
0 M
(v). Retrosubstituio:
1 . x5 = 2
1 . x 4 + 1 . x 5 = 4
0.5 . x 3 + 1 . x 4 = 15
.
2 . x2 - 1 . x3 = 1
1 . x1 - 1 . x 2 = 0
x5 = 2
x4 = 6
x3 = 9
x2 = 5
x1 = 5
70
Soluo = {5,5,9,6,2}
Consideraes finais:
(i). Em sistemas de equaes lineares que relacionam variveis com grandezas de magnitudes
diferentes, como por ex.: metros e milmetros, podem existir coeficientes tambm com
magnitudes bastante diferentes. Nestes casos recomenda-se normalizar os coeficientes das
equaes do sistema, dividindo cada equao pelo coeficiente de maior mdulo. Este
procedimento reduz os erros por perda de significao;
(ii). A avaliao do determinante da matriz de coeficientes uma questo estrategicamente
importante para que se possa classificar as possibilidades de solues do sistema de equaes
lineares. Se o clculo do determinante for efetuado via a sua definio clssica, dada pela
"Soma do termo principal, dada pelo produto da diagonal principal da matriz, com os
produtos dos elementos do termo principal permutando-se os seus segundos ndices", tem-se
um nmero de operaes aritmticas envolvidas muito elevado.
Por isso, adota-se uma forma de clculo alternativa, baseada nas operaes elementares
utilizadas nos mtodos de resoluo do sistema de equaes lineares.
Por exemplo, no mtodo de Gauss aplica-se um conjunto de operaes elementares
para triangularizar a matriz expandida, mas nenhuma destas operaes aplicadas altera a
magnitude do determinante, podem alterar apenas o sinal do determinante quando acontecem
as trocas de linhas ou colunas.
Ento, aps o procedimento de eliminaes sucessivas gera-se a matriz
triangularizada, cujo determinante pode ser obtido pelo simples produto dos elementos da
diagonal principal.
Uma desvantagem deste clculo do determinante sobre a matriz triangular processada,
atravs das operaes elementares, o fato de que esta forma final sofreu o acumulo de erros
de arredondamentos sucessivos. Ento, esta forma de clculo do determinante no exata, e
pode gerar inconsistncias. Por exemplo, em matrizes singulares possvel avaliar um
determinante residual diferente de zero decorrente de erros de arredondamento acumulados,
gerando uma soluo inconsistente para o sistema original.
(iii). As solues dos sistemas de equaes lineares podem ser classificadas segundo trs
casos distintos:
(a). Sistema Determinado: quando o sistema de equaes tem soluo nica, nestes
casos a matriz de coeficientes no singular e o determinante no nulo. Ocorrem quando
todas as equaes do sistemas so linearmente independentes (LI), nenhuma combinao
linear de outras.
(b). Sistema Indeterminado: quando o sistema de equaes tem infinitas solues,
neste caso a matriz de coeficientes singular, ou seja, o seu determinante nulo. Ocorrem
quando se tem um sistema de equaes lineares, cujos coeficientes possuem alguma relao
de dependncia, por exemplo, uma equao gerada a partir da combinao linear de outras.
Pode-se concluir que a(s) equao(es) gerada(s) a partir da combinao linear de outras
existentes, no acrescenta(m) informaes novas ao conjunto de equaes do sistema. Desta
forma, o sistema se comporta como se tivesse menos equaes que incgnitas, deixando
alguma(s) incgnita(s) livre(s) de equaes prprias que restrinjam o seu(s) valor(es). No
Mtodo de eliminao de Gauss com pivotamento total, pode-se constatar este fato
observando que no final do processo de eliminao, uma, ou mais, linhas inteiras da matriz
expandida se anulam e seu termo independente tambm se anula.
71
x1 + 3x 2 = 4
a).
x1 + 3.00001x 2 = 4.00001
cuja soluo exata S = {1,1}
Toma-se agora um sistema de equaes derivado do sistema (a), e que sofreu uma
pequena perturbao em dois de seus coeficiente, impondo-se uma variao ao coeficiente a22,
de 3.00001 para 2.99999 e em b2, de 4.00001 para 4.00002, conforme segue:
x1 + 3x2 = 4
b).
x1 + 2.99999 x2 = 4.00002
cuja soluo exata S = {10,-2}
Note que uma pequena variao em dois coeficientes, da ordem de 0.025% acarreta
72
uma variao enorme de 900% na soluo do sistema. Classificam-se estes sistemas altamente
sensveis a variaes nos seus coeficientes como sistemas mal condicionados.
Imagine agora que esta pequena variao devida a uma perturbao decorrente de
erros de arredondamento, que esto presentes em todo mtodo direto, na manipulao dos
coeficientes das equaes. Ento, nestes casos pode-se obter solues irreais, decorrentes de
pequenas alteraes nos coeficientes.
Por isso, necessrio tomar cuidados especiais na resoluo destes sistemas mal
condicionados, devido a grande sensibilidade da soluo em relao aos seus coeficientes,
deve-se ento conhecer uma maneira de identificar o sistema de equaes mal condicionado,
de preferncia antes de resolver o sistema. Para isto pode-se recorrer a alguns critrios:
a). Se o determinante da matriz A for considerado relativamente pequeno, ou melhor, se o
determinante normalizado de A ( ||det(A)|| ) for muito pequeno:
||det( A )|| =
|det( A )|
n
i =1
i =
a
i =1
<< 1 , onde
2
ij
i {1,2,...,n}
representa mal
=
Max
a ij
1 i n
j= 1
que corresponde a maior soma dos mdulos dos elementos de uma linha da matriz A.
A
x1 + 3.00001x 2 = 4.00001
a). Verificar se ||det(A)|| <<1
det(A) = 0,00001
1 = 12 + 3 2 = 10
2 = 12 + (3,00001) 2 10
73
0.00001
=10-6
10 10
||det(A)|| = 106 << 1 => mal condicionado
(por conveno, usaremos <0,1 como mal condicionado)
||det( A )|| =
300001 300000
onde A 1 =
100000 100000
3x 1 + 1.5x 2 + 4.75x 3 = 8
4 ,01x + 2 x + 3x = 7
1
2
3
Consideraes:
(i). Neste caso interessante usar um mtodo de soluo que no altere a forma original das
equaes, como o caso dos mtodos iterativos (vide captulo ). Porm, os mtodos
iterativos nem sempre convergem, como visto;
(ii). No caso da necessidade de aplicao de mtodos diretos, deveramos adotar
procedimentos com menor nmero de operaes aritmticas possvel, e consequentemente
arredondamentos menores. Neste caso sugere-se a aplicao de mtodos diretos de
decomposio LU, que apesar de terem um nmero total de operaes da mesma ordem que o
mtodo de Gauss (O(n3/3) - para o mtodo de Crout), mas acumulam menos erros de
arredondamento, devido a menor influncia das operaes de diviso.
(iii). O processo de pivotamento indispensvel sempre que surgem zeros nas posies dos
pivs durante a aplicao das operaes elementares, no caso de matrizes de coeficientes no
singulares (det(A) 0). No entanto, nos casos especficos de sistemas mal condicionados, o
processo de pivotao considerado imprescndivel e a pivotao normalmente insuficiente
para estabilizar os efeitos dos arredondamentos, nestas situaes recomenda-se o uso da
pivotao total, ou completa, que torna a soluo do sistema menos sensvel aos efeitos dos
erros de arredondamento.
(iv). Uma forma de minimizar os erros de arredondamento, principalmente em sistemas mal
condicionados, utilizar a preciso dupla na implementao dos clculos envolvidos na
resoluo do sistema. interessante resolver o sistema de equaes usando preciso simples e
preciso dupla, para depois fazer uma comparao e verificar se os erros decorrentes de
74
x 1 + 3.00001x 2 = 4.00001
onde S1 = {4,0} e S2 = {1.5,1}.
Calculando os resduos das equaes do sistema para cada soluo proposta tem-se:
r1 = 4 ( x 1 + 3x 2 )
R = {r1,r2}
r2 = 4.00001 ( x1 + 3.00001x 2 )
Para S1 R1 = {0,0.00001} e
para S2 R2 = {0.5,0.5}
Aparentemente, pela avaliao dos resduos das equaes, a soluo mais exata S1,
pois gera menores resduos, porm, sabendo que a soluo exata S = {1,1}, conclui-se que a
soluo S2 est mais prxima da soluo exata do que S1.
Ento, conclui-se que a avaliao dos resduos das equaes de um sistema no pode
ser usada como critrio para anlise da proximidade de uma soluo em relao ao seu valor
exato (no pode ser usado como critrio de convergncia).
(vii). Sabe-se que todos os mtodos diretos, de eliminao e de decomposio, geram
solues com erros de arredondamento, ento, quando so avaliados os resduos das equaes
a partir das solues obtidas, geram-se valores no nulos decorrentes do acmulo de
arredondamentos ao longo das operaes.
Uma forma alternativa para minimizao dos efeitos dos arredondamentos sucessivos,
o chamado processo de refinamentos sucessivos, em que cada soluo obtida sofre uma
correo E na direo da soluo exata.
Suponhamos que se queira refinar a soluo S1 obtida para o sistema Ax = b. Ento,
vamos impor uma correo E sobre S1, e supor que esta correo seja suficiente para conduzir
a soluo exata s:
S = S1 + E E = S - S1
Multiplicando a matriz A na equao acima temos,
A E = A (S - S1)
A E = A S - A S1
Como S a soluo exata do sistema A x = b, ento A S = b e logo,
A E = b - A S1
75
76
Bx=b-Cx
x = B-1 b - B-1 C x
(1)
(2)
(3)
(4)
77
(1 + B 1 C ) lim x k +1 = B 1 b
k
(5)
(6)
Mas A = B + C, ento
A lim x k +1 = b
k
Logo,
lim x k +1 =
k
O problema agora que para se gerar a sequncia (2) necessita-se da matriz inversa B1
e portanto esta inversa, por questo de eficincia, tem que ser obtida facilmente. A seguir
sero abordadas duas maneiras, no exclusivas, de se particionar a matriz A de modo que a
matriz B seja trivialmente invertida.
x k +1 = D 1 b D 1 ( L + U) x k
(7)
x ik +1 = ( b i a ij x kj ) / a ii
i = 1,2,...,n
(8)
j= 1
j i
78
x1 + 3x 2 + x 3 = 5
2x 2x + 4x = 4
2
3
1
Montando as equaes evolutivas para as variveis do sistema tem-se:
x1k+1 = (1 + x 2k + x 3k ) / 3
k+1
k
k
x 2 = (5 x1 x 3 ) / 3
k+1
k
k
x 3 = (4 2x1 + 2x 2 ) / 4
Valor inicial: ( x10 , x 02 , x 03 ) = (0,0,0)
k
0
1
2
3
4
5
6
x1k
x 2k
x 3k
0
0,333
1,222
1,296
0,901
0,868
1,044
0
1.667
1,222
0,704
0,901
1,132
1.044
0
1
1,667
1
0,704
1
1,132
Pode-se notar que a sequncia evolutiva obtida para as variveis x ik est convergindo
para a soluo S, que no caso dada por S = {1,1,1}.
Neste ponto necessrio estabelecer um critrio de parada que determine o quo
prxima da soluo exata est a sequncia convergente x ik , dentre os critrios mais comuns
esto:
(i). Max { xik +1 xik }
i = 1,2,3,...,n
Corresponde mxima diferena absoluta entre valores novos e antigos de todas as
variveis.
xik +1 xik
k +1
xi
(ii). Max
i = 1,2,3,...,n
i = 1,2,3,...,n
n
79
k
0
1
2
3
4
5
6
x1k
x 2k
x 3k
| x 1k +1 x 1k |
| x 2k +1 x 2k |
| x 3k +1 x 3k |
0
0,333
1,222
1,296
0,901
0,868
1,044
0
1.667
1,222
0,704
0,901
1,132
1.044
0
1
1,667
1
0,704
1
1,132
0,333
0,889
0,074
0,395
0,033
0,176
1,667
0,555
0,518
0,197
0,197
0,088
1
0,667
0,667
0,296
0,296
0,132
x k +1 = ( D + L) 1 b [( D + L) 1 U]x k
(9)
( D + L) x k +1 = b Ux k
Dx k +1 = b Lx k +1 Ux k
x k +1 = D 1 ( b Lx k +1 Ux k )
(10)
x k +1 = ( b i a ij x kj +1
j= 1
j<i
j = i +1
j>i
ij
x kj ) / a ii
i = 1,2,...,n
(11)
x1 + 3x 2 + x 3 = 5
2x 2x + 4x = 4
2
3
1
Montando as equaes evolutivas para as variveis do sistema temos:
80
x1k +1 = (1 + x 2k + x 3k ) / 3
k +1
k +1
k
x 2 = (5 x1 x 3 ) / 3
k +1
k +1
k+1
x 3 = (4 2x1 + 2x 2 ) / 4
Note que as equaes evolutivas se utilizam dos valores disponveis mais atualizados.
Valor inicial: ( x10 , x 02 , x 03 ) = (0,0,0)
K
x1k
x 2k
x 3k
0
0
0
0
1
0,333
1,555
1.611
2
1.388
0.666
0.638
3
0.768
1.197
1.214
4
1.137
0.882
0.872
5
0.918
1.069
1.075
6
1.048
0.958
0.955
| x 1k +1 x 1k |
| x 2k +1 x 2k |
| x 3k +1 x 3k |
0.333
1.055
0.620
0.368
0.218
0.129
1.555
0.888
0.531
0.314
0.186
0.110
1.611
0.972
0.575
0.341
0.202
0.120
{ }
k =0
Aqui, ser abordada a questo de quando esta seqncia ser convergente. Para tanto,
necessita-se de mais dois conceitos.
n
Definio 1: No sistema Ax = b, sejam Si = | aij |, i = 1,..., n . Da, diz-se que ele diagonal
j =1
ji
dominante se ocorrer:
1o ) | a ii | S i , i = 1,..., n e
2o ) | a ii | > S i , para pelo menos uma linha i de A.
Teorema (Convergncia) - Critrio de Scarborough:
Se o sistema A x = b for diagonal dominante, ou diagonal estritamente dominante,
ento tanto a seqncia construda pelo mtodo de Jacobi, quanto a de Gauss-Seidel
convergem para a soluo.
Vide exemplos 7 e 8.
Com relao convergncia dos mtodos iterativos, algumas caractersticas
importantes devem ser salientadas, dentre as quais destacam-se:
81
{ }
1o) A convergncia de S = x k
k =0
adequado afeta apenas na quantidade de iteraes a serem efetuadas. Verificar isto, a ttulo de
x x =1
exemplo, em 1 2
com vrios x0 diferentes;
x1 + 2. x2 = 5
2o) O teorema da convergncia contm uma condio suficiente, porm no necessria.
Portanto, se for verdadeiro, a seqncia S convergir e se no for verdadeiro nada pode-se
x + 2. x 2 = 3
afirmar. Verificar que em 1
Gauss-Seidel fornece a seqncia convergente,
x
3
.
x
=
2
2
1
mesmo no satisfazendo o teorema;
3o) Um sistema que no seja diagonal dominante pode, em alguns casos ser transformado,
atravs de troca de linhas e/ou colunas (pivotamento parcial e total), para satisfazer esta
condio;
4o) Existem sistemas, muitos at triviais, que no so solveis por estes mtodos iterativos, a
x x =0
menos que x0 = ( prpria soluo). Testar isto em 1 2
;
x
+
x
=
3
1 2
5o) A validade da condio suficiente de convergncia do teorema citado estende-se tambm
aos sistemas lineares que so diagonal dominante sobre as colunas da matriz de coeficientes.
2. x + 3. x 2 = 5
diagonal 'estritamente' dominante sobre as colunas e portanto
Verificar que 1
x1 + 5. x 2 = 4
tem convergncia assegurada (diagonais maiores que os vizinhos de coluna, em todas as
colunas).
6o) O teorema da convergncia enunciado anteriormente no o nico.Verificar na literatura
outros critrios de convergncia.
x ik +1 = (1 ) x ik + ( b i a ij x kj +1
j= 1
j<i
j = i +1
j>i
ij
x kj ) / a ii
i = 1,2,...,n
(11)
Ex. 11): Resolver o seguinte sistema pelo mtodo de Gauss-Seidel adotando uma
subrelaxao = 0.5 (lembrando que no exemplo 8 este mesmo sistema foi resolvido e sofreu
oscilaes).
3x1 x 2 x 3 = 1
x1 + 3x 2 + x 3 = 5
2x 2x + 4x = 4
2
3
1
Montando as equaes evolutivas para as variveis do sistema temos:
x1k +1 = (1 ) x1k + (1 + x 2k + x 3k ) / 3
k +1
k +1
k
k
x 2 = (1 ) x 2 + (5 x1 x 3 ) / 3
k +1
k
k+1
k +1
x 3 = (1 ) x 3 + (4 2x1 + 2x 2 ) / 4
Note que as equaes evolutivas se utilizam dos valores disponveis mais atualizados.
Valor inicial: ( x10 , x 02 , x 03 ) = (0,0,0) e = 0.5
K
0
1
2
3
4
5
6
x1k
x 2k
x 3k
| x 1k +1 x 1k |
| x 2k +1 x 2k |
| x 3k +1 x 3k |
0
0.166
0.494
0.748
0.896
0.966
0.993
0
0.805
1.043
1.069
1.041
1.014
1.000
0
0.659
0.967
1.063
1.067
1.046
1.024
0.166
0.327
0.254
0.147
0.069
0.026
0.805
0.238
0.025
0.027
0.026
0.014
0.659
0.307
0.096
0.004
0.021
0.021
84
3 ln 2
3
Note-se que nem sempre possvel explicitar a varivel da equao, ou seja, nem
sempre se consegue isolar a varivel em um dos membros da equao para se obter uma raiz
.
Pelas equaes do exemplo anterior, conclui-se que:
1) Uma equao f(x)=0 pode:
no ter soluo;
ter uma nica soluo;
ter uma quantidade finita de solues;
ter uma quantidade infinita de solues;
2) A soluo de f(x) = 0 pode ser muito difcil, ou at impossvel, de ser obtida pela tcnica
de isolamento da varivel;
3) Resolver equaes exige conhecimento de outras metodologias, alm da forma de
isolamento da varivel. Aqui, usaremos a metodologia iterativa (proposta por Newton no
sculo XVII) para a soluo das equaes.
Definio 2: Um mtodo iterativo obedece sempre duas etapas na sua execuo:
1). Isolamento da soluo desejada (aproximao inicial da soluo);
2). Refinamento da soluo isolada at a preciso requerida.
85
Para definir a seqncia iterativa, lineariza-se a equao no linear f(x) = 0, gerando uma
equao linear recursiva xi+1 = F(xi).
Estes mtodos no tm convergncia garantida, mas, dependendo da forma recursiva
86
1
1
1
se f(x ) . f(b) < 0 [x , b] e a x
Redefinindo o novo intervalo [a, b] retorna - se ao passo (i)
No exemplo ilustrado abaixo [a,x1] b = x1, ou seja, o valor de b redefinido, para que
fique contido em um intervalo menor. Assim, repete-se o processo iterativo sucessivamente,
avaliando xk, com k = 2, 3, 4, ..., at que | a - b | < .
Neste ponto podemos levantar uma questo fundamental: ser que klim
xk = ?
|b a |
, onde a e b so os valores
2k
limites do intervalo inicial e k indica o nvel iterativo, ou seja, nmero de biparties.
Note-se que o comprimento de cada novo subintervalo
|b a |
=0
k
2
k
Como: lim
lim xk =
k
Ento, teoricamente, a raiz ser atingida quando o nmero k de biparties tende ao infinito.
87
Exemplo:
x
1o ) Obtenha um raiz de e sen(x) = 1, situada em [0,1], por bisseo com 4 parties.
6
4
2
0
-2
-4
-6
-8
-10
-1
Temos que f(x) = e sen(x) - 1 uma funo contnua em toda reta Real e verifica-se
que f(0) = -1 e f(1) = 1,287, como f(0) * f(1) < 0, [0,1], que pode ser comprovado pelo
grfico acima. Ento partimos para o processo de refinamento. Como:
K
0
1
2
3
4
a
0
0,5
0,5
0,5
0,5625
XM
0,5
0,75
0,625
0,5625
0,594
b
1
1
0,75
0,625
0,625
f(a)
-1
-0,21
-0,21
-0,21
-0,064
f(XM)
-0,21
0,443
0,093
-0,064
0,014
f(b)
1,287
1,287
0,443
0,093
0,093
ln
|b a |
|b a |
k=
(1)
2k
2k
ln 2
1
ln -10
10
= 33,2 k = 34
Aplicando (1) k =
ln 2
2o) Ou podemos repetir as biparties at que um critrio de parada seja satisfeito.
a) f (x MK ) <
88
Observao: Note que apesar de xk ainda estar longe da raiz , o critrio de parada
estabelecido | f(xk) | < pode j ter sido satisfeito. Portanto, um critrio que deve ser
estabelecido, mas no serve como deciso final, necessrio associar uma outra condio de
parada, como a do item b).
b) | b - a | <
c) | xk - xk-1| <
x k x k 1
d)
<
xk
x k x k 1
e) f ( x ) +
<
xk
k
Consideraes:
Os mtodos de quebra podem apresentar, em algumas equaes, a seguinte situao:
Note-se que uma das extremidades pode ficar fixa, sem atualizao iterativa, atrasando o
processo de convergncia. Assim, muito importante alterar o critrio de parada, o
critrio de clculo do erro, que no pode ser mais baseado na diferena entre 'a' e 'b', |b-a|<, e
deve ser baseado no valor do zero x ou da f(x), | xk - xk-1| < ou f ( x k ) < .
Podemos ainda corrigir a convergncia unilateral, adotando-se o mtodo de Pgaso, o mtodo
da falsa posio modificado ou os mtodos de linearizao, que veremos a seguir.
[ 2,3]
90
3
2
1
0
-1
-2
-3
-4
0.5
1.5
2.5
3.5
i) x . ln x * 3,2 = 0
3,2
x=
ln x*
Adotando xo = 3
k
0
1
2
3
...
53
x*
3,000
2,913
2,993
2,919
...
2,954
x=3,2/ln(x*)
2,913
2,993
2,919
...
...
2,954
x = ex
x*
0
1
2
3
...
...
3
2,906
3,008
2,897
...
3, 2
*
x
x=e
2,906
3,008
2,897
3,17
...
Est divergindo.
Consideraes:
1. Este processo iterativo altamente sensvel escolha da forma iterativa x = F(x*), podendo
gerar seqncias iterativas convergentes, seqncias oscilatrias ou seqncias divergentes.
Em alguns casos podemos atenuar as oscilaes usando fatores de amortecimento (subrelaxao) no processo de atualizao da varivel xk (vide captulo 4).
91
2. Para se obter um resultado coerente e com exatido, necessrio que a cada iterao a resposta se
aproxime mais e mais da soluo real, ou seja, que o mtodo convirja para o valor real da
raiz. No caso do mtodo da bisseo, ns no precisamos nos preocupar com a convergncia, pois
nesse mtodo ela est sempre garantida, j que isolamos a raiz dentro de um dado intervalo e
nunca deixamos esse intervalo inicial. J no mtodo da iterao linear, a convergncia no
garantida a priori. A cada iterao podemos nos aproximar ou nos afastar da soluo real. Portanto,
antes de resolver um problema atravs desse mtodo recomendvel verificar se haver ou no a
convergncia. O seguinte Teorema coloca condies suficientes, porm no necessrias para
que o mtodo de iterao linear seja convergente.
Teorema:
Seja uma funo f(x) contnua em um intervalo [a,b] e uma raiz de f(x) contida em [a,b]. Seja F(x)
uma funo de iterao obtida a partir de f(x).
Se:
i). F(x) e F(x) forem contnuas em [a,b];
ii). |F(x)| < 1 (para todo) x [a,b];
iii). x* [a,b].
k
Ento: lim x =
k
f ( x) = 0
1
424
3
eq. original
x1
x 2
f ( x* ) + f ( x* ).
+ f ( x * ).
+ ... = 0
! 244442!4443
144444414
eq. original com f ( x ) representado em srie de Taylor com infinitas parcelas
f ( x* + x) f ( x* ) + f ( x* ).x = 0
Observa-se acima que a equao no linear f(x) = 0 foi substituda por uma equao
linearizada aproximada, onde a nica varivel x est presente em x = x - x*. Todas as
incgnitas nos demais termos so assumidas como conhecidas, ou seja, inicialmente so
valores estimados e so atualizados por um processo iterativo.
92
Ento, resolvemos
f ( x* ) + f ( x* ).x = 0
x =
f ( x* )
x = x* + x
*
f (x )
x = x*
f ( x* )
f ( x* )
Note que o valor x da frmula de Newton uma aproximao para a raiz de f(x)=0, e
no o seu valor exato, porque houve um erro de truncamento da srie de Taylor representativa
de f(x), da ordem de O(x 2 ) , dado por
O (x 2 ) = f ' ' ( x * ).
x 2
x 3
+ f ' ' ' ( x * ).
+ ... .
2!
3!
Caractersticas:
Intuitivamente nota-se que o mtodo de Newton tem convergncia rpida. Pode-se provar
que a convergncia deste mtodo quadrtica, isto , o erro da prxima iterao (k+1)
aproximadamente o quadrado do erro da prxima iterao k.
Newton pode no convergir:
i) se x0 inadequado (onde a reta tangente, representativa de f(x) em x0, no corta o eixo x
nas proximidades de x0);
k +1
f (xk )
=x
f (x k )
k
f (x k )
f ( x 0 )
Newton modificado
Pode ser muito difcil, ou at impossvel, para o usurio obter a derivada explcita de f(x).
Como, ento, refinar a raiz pelo mtodo de Newton sem explicitar a f(x)?
Por definio, temos que:
f ( x + h) f ( x)
f ( x) = lim
h 0
h
se h for pequeno
f ( x + h) f ( x )
f ( x)
h
Podemos adotar, do lado direito da expresso de f'(x*), x = x* , x + h = x * + h e
h = x x * = x * , ou seja, x * tambm um valor estimado inicialmente:
f ( x * + x * ) f ( x * )
*
onde x pode ser inicialmente estimado e depois
f ( x * )
*
x
recalculado a cada iterao, conforme a formula normal de Newton-Raphson:
x =
f ( x* )
x = x * + x
*
f (x )
, onde x novo valor da raiz aproximada de f(x)=0.
x =x
f (x k )
xk xk 1
f ( xk )
xk +1 = xk
f ( xk ) f ( xk 1 )
xk xk 1
( x x k 1 ). f ( x k )
MTODO DA SECANTE
x k +1 = x k k
f ( x k ) f ( x k 1 )
x . f ( xk ) xk . f ( xk 1 )
xk +1 = k 1
f ( xk ) f ( xk 1 )
Exemplo: Resolver com Newton-Raphson x. ln x 3,2 = 0
[ 2,3]
94
3
2
1
0
-1
-2
-3
-4
0.5
1.5
2.5
3.5
f ( x* ) = x. ln x 3,2
f ' ( x* ) = ln x + 1
f ( x* )
x = x * + x
f ( x * )
Adotando xo = 3 como valor inicial
x =
x*
3
2.9543
2.9542
k
0
1
2
f ( x* ) = x*. ln x* 3,2
f ' ( x* ) = ln x* + 1
x = x * + x
Erro =| x |
0.09584
3.4935e-004
4.7594e-009
2.0986
2.0833
2.9543
2.9542
0.04567
1.6769e-004
A raiz obtida 2,9542 com Erro=|xk - xk-1| < 10-3, em apenas 2 clculos (iteraes).
O que ocorre se a raiz de f(x) = 0 tiver multiplicidade maior que um?
Tendo uma raiz para f(x) = 0 Podemos reescrever f(x) da seguinte forma:
f(x) = (x - ).g(x),
onde g(x) o quociente da diviso de f(x) por (x - ) , que contm todas as outras razes de
f(x), exceto . Derivando esta expresso para f(x) tem-se:
f ( x) = ( x ). g ( x) + g ( x).1
Se anular tambm a funo quociente g(x) g(x) = 0 ( raiz de g(x)), ento, f(x)
f() = 0. Pois f()= ( - ). g(x) + g(x) f() = 0.
0
0
Logo, com razes repetidas a frmula do Mtodo de Newton apresenta f(x) 0 e f'(x) 0
tambm.
f ( xk ) 0
xk +1 = xk
f ( xk ) 0
O que torna a convergncia lenta.
Exemplo: Obtenha por Newton uma raiz de: e x x 1 = 0 com x 0 = 1.
f(x) = ex -x - 1
f(x) = ex - 1
Aplicando a frmula do mtodo de Newton vem:
x0 = 1
x1 = 0,58198
x2 = 0,31906
.
.
95
x4 = 0,08635
.
.
.
x7 = 0,01107
x8 = 0,005545
.
.
.
xk 1 = xk
f ( xk ). f (xk )
[ f ( xk )]2 f ( xk ). f ( xk )
x) a
f ( x)
f ' ( x)
= lim
=L
lim
x a g ( x )
x a g ' ( x )
Logo,
f ( x)
f ' ( x)
= lim
= L , para o caso de f ( x ) 0 e f ' ( x ) 0 , resultando
lim
xa f ' ( x)
x a f ' ' ( x)
f ( xk )
f ' ( xk )
xk 1 = xk
xk 1 = xk
f ' ( xk )
f ' ' ( xk )
Exemplo: Reaplicando o Mtodo de Newton, modificado pela Regra de L'Hospital, para obter
uma raiz de: e x x 1 = 0 com x 0 = 1.
f '(x) = ex - 1
f ''(x) = ex
Aplicando a frmula do mtodo de Newton vem:
x0 = 1
x1= 0.367879
96
x2= 0.0600801
x3= 1.7692e-003
x4= 1.5641e-006 --> 0
Newton pode ser utilizado para se elaborar rotinas de funes pr-definidas para as
mquinas digitais.
Exemplo: Elabore uma rotina para obter o recproco ( 1 c ) de c - {0}
Deseja-se um x tal que x = 1 c 1 x = c que pode ser escrita conforme a equao:
1
1
f ( x ) = c . Aplicando Newton com f (x) = 2 .
x
x
1
c
(1 c. xk ) 2
xk
. xk
x k 1 = x k
= xk +
1
xk
2
xk
xk +1 = (2 c. xk ). xk
Ser que esta expresso acima sempre converge?
Grfico da funo geradora:
function x=reciproco(C)
%1/C=x=>? ; f(x)=C-1/x; f'(x)=-1/(x*x)
%x=xi-f(xi)/df(xi) ; x=x-(C-1/x)/(1/(x*x)) ; x=x*(2-x*C);
if(C>1) x=0+eps;
else x=1+eps;
end
cont=0;erro=1;
97
c , c .
+
f ( xk )
xk +1 = xk + x = xk +
f ' ( xk )
( xk2 c)
xk +1 = xk
( xk + c ).0,5 -> Sempre converge para todo x0 > 0.
xk
2.xk
Como estimar um x0 adequado?
Hero sugere que:
x0 = (1,68
1,29
).10 p .316
, q
0,84 + M
Mantissa
2p+q
98
x0 = (1,68
) . 101 . 3,161
p = 1
0
,
84
+
0
,
68572
q = 1
x0 = 26,370122
Aplicando Newton x3 = 26,186255
Exerccios:
1) Elabore uma rotina para efetuar a diviso sem utilizar a operao de diviso.
2) Crie uma rotina para obter 1 , sem o uso da diviso e da radiciao.
c
3
n
3) Crie rotinas para obter: c e c .
XF7 = 0,44285
3o ) Newton com X0 = 0
X1 = 0,5
.
.
.
X3 = 0,44285
4o ) Secante com X0 = 0
X1 = 1
X2 = 0,3788
.
.
.
X5 = 0,44286
Necessita de f ` (x)
Pode no convergir
Pode convergir para um j obtido
99
a 2 a 22 - 4a 1a 3
2a 1
Resolvido pelos:
Babilnios em 1800a.C. (algebricamente)
Gregos
Hindus no sculo I d.C. (Bscara)
n = 3 a1x3 + a2x2 + a3x + a4 = 0 fazendo x = y - a2/ 3a1 teremos:
y3 + py + q = 0
=3
2 +
p3
27 +
q2
3
4 +
p3
27 +
q2
4
pn(u) necessita de
2 n 1 multiplicaes
Porm expressando pn(x) na forma de Horner teremos:
pn(x) = ((((a1x + a2)x + a3)x + a4)x + ... + an)x + an+1
Desta forma,
n adies e
pn(u) necessita de
n multiplicaes
Rotina Horner
Leia N, u
Para i = 1 at n+1 faa
101
leia a[i]
fim para
Para k = 1 at n faa
p = p*u + a[k+1]
fim para
Fim
Se usarmos a Diviso de Polinmios - Diviso Sinttica - o clculo de pn(u) tambm necessita
n adies e
de
n multiplicaes
Veja que
(1)
onde o quociente da diviso, pn-1(x) = b1xn-1 + b2xn-2 + ... + bn, pode ser obtido atravs da
igualdade da expresso a seguir, termo a termo:
pn(x) = (x-u).pn-1(x) + R1
(a1.xn + a2.xn-1 + ... + an.x1 + an+1)=(x-u).(b1.xn-1 + b2.xn-2 + b3.xn-2 + ... + bn)+ bn+1
(a1.xn + a2.xn-1 + ... + an.x1 + an+1)=((b1).xn +(b2 - u.b1).xn-1+(b3 - u.b2).xn-2 + ... + (bn+1-u.bn)
a1 = b1
b1 = a1
a2 = b2 - u.b1
b2 = a2 + u.b1
a3 = b3 - u.b2
b3 = a3 + u.b2
an = bn - u.bn-1
bn = an + u.bn-1
Observe que o resto R1, definido como bn+1, segue a mesma lei de formao de bn, e por isso
convencionou-se definir R1=bn+1.
Este mtodo de diviso sinttica de polinmios conhecido por Mtodo de Briot-Ruffini.
Propriedade 4:
O valor numrico de pn(x) em x = u o resto R1 da primeira diviso de pn(x) (x-u).
n adies e
Lembre que neste caso, pn(x) necessita tambm de
n multiplicaes
Pois pn(x=u) = (u-u).pn-1(x) + R1 = R1 pn(x=u) = R1
102
Propriedade 5:
O valor numrico de p'n(x) em x = u o resto R2 da segunda diviso de pn(x) por (x-u).
Pois efetuando uma segunda diviso sinttica pn-1(x) (x-u) temos que :
pn-1(x) = (x - u).pn-2(x) + R2
Substituindo pn-1(x) em pn(x) = (x-u).pn-1(x) + R1
pn(x) = (x - u).[(x - u).pn-2(x) + R2] + R1
pn(x) = (x - u)2 . pn-2(x) + (x - u).R2 + R1
Derivando pn(x) para obter .p'n(x), temos:
p'n(x) = (x - u)2. p'n-2(x) + 2.(x - u).pn-2(x) +1.R2 + 0
p'n(x=u) = (u - u)2. p'n-2(u) + 2.(u - u).pn-2(u) +1.R2 + 0 e
p'n(x=u) = R2
Propriedade 6:
p (k)
n (u) = k!R k +1 , onde Rk+1 = resto da (k+1)-sima diviso sucessiva de pn(x) (x-u).
(Importante para tratamento de razes mltiplas, onde p'(x) tende a zero junto com p(x))
Exemplo: Obtenha p'(2), p''(2), p'''(2) e p''''(2) em p(x)=2x4+3x-2
(verificao com: p'(x)=8x3+3; p''(x)=24x2; p'''(x)=48x; p''''(x)=48).
Soluo: em u = 2
b1 = 2
b2 = 0 + 2 * 2 = 4
b3 = 0 + 4 * 2 = 8
b4 = 3 + 8 * 2 = 19
b5 = R1 = -2 + 19 * 2 = 36 => p(2) = 36
c1 = 2
c2 = 4 + 2 * 2 = 8
c3 = 8 + 2 * 8 = 24
c4 = R2 = 19 + 24 * 2 = 67 => p(2) = 1! . R2 = 1*67
d1 = 2
d2 = 8 + 2 * 2 = 12
d3 = R3= 24 + 2 * 12 = 48 => p''(2) = 2! * R3 = 2.1 * 48 = 96
e1 = 2
e2 = R4 = 12 + 2 * 2 = 16 => p'''(2) = 3! * R4 = 3.2.1 * 16 = 96
f1 = R5 = 2
p(2) = 0
p(2) = 0
p(2) = 0
p(2) 0 M = 3 = 2 repetida 3 vezes
Exerccio: Crie uma rotina para testar a multiplicidade de uma raiz de uma polinomial
pn(x) = 0.
d) Localizao de razes de pn(x) = 0
Em a1xn + a2xn-1 + ... + an-1 = 0, seja M = mx{|a2|, |a3|, ..., |an+1|}. Ento
M
raiz | |< 1 +
a1
Propriedade 9:
Propriedade 10:
Seja u = a + bi tal que p(u) 0 e R = n *
p n (u)
existe pelo menos uma raiz no
p'n (u)
104
16
= 2,666... pelo menos uma raiz no circulo de raio R=2,666 e centro C=(2;0),
24
no grfico com abscissa x Real e ordenada y Imaginria:
R= 4 *
R=2,666
1
C=(2;0)
-1
-2
-3
-1
Podemos verificar que todas as razes deste polinmio so 1 i e 2i, portanto dentro do
circulo vermelho do grfico acima.
O polinmio p4(x) no tem zeros reais, conforme grfico abaixo.
40
30
20
10
-2
-1.5
-1
-0.5
0.5
1.5
2.5
105
1 1 8
1 7
=
Por Bscara temos que:
2
2
7
1 = 0,5 + 4 i e 2 = 0,5 7 4 i
Conseqncia:
Toda pn(x) = 0 de "coeficientes reais" com 'n' mpar possui ao menos uma raiz real.
Propriedade 12:
Em pn(x) = 0 se n for par e a1*an+1 < 0 existe ao menos duas razes reais, uma
positiva e outra negativa.
Exemplo: x12 - 5x2 + 3x - 2 = 0 possui ao menos duas razes reais.
Propriedade 13
Em pn(x) = 0, se existe k = 2, 3, ..., n tal que a 2k a k+1 * a k-1 e a n+1 0 existem
razes complexas.
Propriedade 14: Regra dos sinais de Descartes
Origem: Wikipdia, http://pt.wikipedia.org/wiki/Regra_dos_sinais_de_Descartes
A regra dos sinais de Descartes, primeiramente descrita por Ren Descartes no seu trabalho La
gomtrie, um teorema que determina o nmero de razes positivas e negativas de um polinmio.
Segundo a regra, se os termos de um polinmio com coeficientes reais no nulos Pn(x) so colocados em
ordem decrescente de grau, ento o nmero de razes positivas do polinmio igual ao nmero de
permutaes de sinal de Pn(x), ou menor por uma diferena par. O nmero de razes negativas do
polinmio igual ao nmero de permutaes de sinal de Pn(-x), ou menor por uma diferena par. Ou seja,
o nmero de permutaes igual ao nmero de razes positivas e negativas acrescido do nmero de
razes imaginrias (que sempre acontecem ao pares em polinmio de coeficientes reais).
Exemplo
Possui uma mudana de sinal entre o segundo e o terceiro termos. Portanto possui apenas uma raz
positiva.
Para contar o nmero de razes negativa, fazemos a substituio
Este polinmio tem duas permutaes de sinal, logo o polinmio original possui 2 ou 0 razes negativas.
Para confirmar o resultado, observe a fatorao do polinmio:
106
0,256
7 ,64
) = 1,166
0,004
7 ,157
Observao:
Para determinar a 2 e 3 razes e se evitar de obter a mesma 1 raiz 1 novamente,
pode-se efetuar reduo de grau (deflaes), isto :
- Tomar pn(x) (x - 1) obtendo pn-1(x), nesse caso com Resto R1 quase nulo (nas
divises exatas, R1=0);
- Testar a multiplicidade M de 1, verificando se p'n(1)=0, p''n(1)=0, ... pMn(1)0,
ou reaplicar diretamente o mtodo de no polinmio deflacionado.
Algoritmo de Newton-Raphson para determinao de razes com multiplicidade M:
Exemplo de multiplicidade:
Determine as 3 razes de P(x)=x3-3.x2.+3.x-1=(x-1)3=0. Verifique que 1=1 tem
multiplicidade M=3:
Pela diviso sinttica de Briot-Ruffini:
1a. Diviso
2a. Diviso
3a. Diviso
4a. Diviso
1
1
-3
1
-2
1
-1
1
0
3
-2
1
-1
0
-1
1
0
=> R1
=> R2
=> R3
x-1
2
1x -2x+1
R2=0
x-1
x-1
R3=0
x-1
1
R4=1
x-1
0
p n (x k )
R
= 1
'
p n (x k )
R2
108
x =
p n (x k )
0!.R1
=
para M = 1
'
p n (x k )
1!.R2
x =
p 'n (x k )
1!.R2
=
para M = 2
''
p n (x k )
2!.R3
x =
p 'n' (x k )
2!.R3
=
para M = 3
'''
p n (x k )
3!.R4
.
.
x =
-1
pM
( M 1)!.RM
( M 1)!.RM
1 R
n (x k )
=
=
= . M para M genrico
M
p n (x k )
M !.RM +1
M .( M 1)!.RM +1
M RM +1
-1
pM
( M 1)!.RM
( M 1)!.RM
1 R
n (x k )
=
=
= . M
M
p n (x k )
M !.RM +1
M .( M 1)!.RM +1
M RM +1
0.28220 + 0.00000i
2o ) Mtodo de Mller
Trata-se de uma extenso do Mtodo da Secante, e que busca minimizar alguns
problemas presentes nos mtodos de Newton, Secante, Falsa-posio, tais como:
- Convergncia lenta quando a funo e sua derivada so prximos de zero;
- No encontram razes complexas a menos que seja dado um valor inicial complexo.
Em geral, os mtodos citados so pobres para encontrar razes complexas em
polinmios, pois mesmo em se tratando de polinmios com coeficientes reais, ele
normalmente tem razes complexas.
Para melhor entender o mtodo de Mller vamos analisar a figura 1 abaixo, para a
resoluo da equao,
f(x) = 0
(1)
(2)
Portanto,
P ( x i 2 ) = a ( x i 2 x i ) 2 + b( x i 2 x i ) + c = f ( x i 2 )
2
P( x i 1 ) = a ( x i 1 x i ) + b( x i 1 x i ) + c = f ( x i 1 )
2
P ( x i ) = a ( x i x i ) + b( x i x i ) + c = f ( x i )
(3)
2c
xi +1 = xi ( xi xi 1 )
2
b b 4ac
(4)
onde
a = q f(xi)-q (1+q) f(xi-1) + q2 f(xi-2)
b = (2q+1) f(xi) - (1+q)2 f(xi-1) + q2 f(xi-2)
c = (1+q) f(xi)
x xi 1
q= i
xi 1 xi 2
A frmula escolhida para a eq.(4) produz menos erros de arredondamento que a forma
tradicional. Note que na eq. (4) temos duas possibilidades para obter xi+1, dependendo do sinal
escolhido no radicando.
No mtodo de Mller o sinal do radicando escolhido de modo que o valor absoluto
do denominador, ou mdulo para nmeros complexos, seja o maior possvel. Esta escolha,
que gera um denominador maior em magnitude, evita possibilidades de denominador nulo, e
gera um valor de xi+1 mais prximo de xi, dando mais estabilidade ao mtodo numrico.
Assim escolhemos a seguinte expresso para atualizar xi+1
x i +1
2c
= x i ( x i x i 1 )
Max b b 2 4ac
(5)
2c
x i+1 = x i ( x i x i1 )
(6)
2
b sign( b ) b 4ac
Ento aplica-se iterativamente a frmula dada na eq. (5) at que uma condio de
parada seja satisfeita.
Note que, se o radicando gerar nmeros complexos, podemos ento obter razes
complexas de f(x)=0. Alm disso, este mtodo no est limitado somente a equaes com
coeficientes reais, pode-se encontrar inclusive razes complexas de equaes transcendentais.
Tambm podemos ter equaes com coeficientes complexos e que podem gerar razes
complexas no conjugadas.
Exerccios:
1). Determine um zero do polinmio Pn(x) = 16x4-40x3+5x2+20x+6, partindo das seguintes
condies iniciais:
i). x0 = 0.5, x1 = 1.0 e x2 = 1.5
ii). x0 = 0.5, x1 = -0.5 e x2 = 0.0
2). Compare a eficincia do mtodo de Mller frente ao Mtodo da Secante, partindo de uma
mesma condio inicial x0, para equaes a sua escolha.
Sugesto para valores iniciais:
Secante: x0 e x1 = 1,10 x0
112
113
M
M
M
a x + ... + a x = b
nn n
n
n1 n
Ax = B
M
f n ( x1 , x 2 , x3 ,..., x n ) = 0
F(X ) = 0
onde
f1
x1
f
x
2
2
e X =
F=
...
...
xn
fn
Exemplo:
a)
x1 + 2 x23 = 3
2
3x1 + x22 = 7
f 1 ( x1 , x2 ) = x1 + 2 x23 3
F=
2
2
f 2 ( x1 , x2 ) = 3x1 + x2 7
x1
e X =
x2
b)
3x1 cos( x1 x 3 ) = 0,5
3
x1 x1 x 2 x 3 = 5
x1x2
ln( x12 + x 2 x 3 ) = 0
e
Definio 2 - Soluo de F(X) = 0 todo vetor (=matriz coluna ou linha)
= [1, 2, ..., n] tal que F() = 0.
Exemplo:
114
x1 x2 = 1
2
2
x1 + x2 4 x1 + 2 x2 = 4
= [0,604068; 1,655442]
x1 + 2 x 2 3 = 0
2
2
3x1 + x 2 7 = 0
3
x2
2.5
1.5
0.5
0
-3
x1
-2
-1
M
f n ( x1 , x 2 ,......., x n ) = 0
115
(0)
= x1
(0)
x2
(0)
x2
L xn
xn ]
x2
(0) T
x 2
T
L x n ] .
(0)
= x1
(0)
x2
(0)
L xn
].
(0) T
onde:
f 1 ( x )
f ( x )
f ( x )
.( x1 x10\ ) + 1
.( x 2 x 20\ ) + .... + 1
.( x n x n0 \ ) + .. = 0
x1
x 2
x n
(0)
f 1 ( x1 , x 2 ,......., x n ) = f 1 ( x ) +
(0)
(0)
(0)
f ( x )
f ( x )
f ( x )
f 2 ( x1 , x 2 ,......., x n ) = f 2 ( x ) + 2
.( x1 x10\ ) + 2
.( x 2 x 20 \ ) + .... + 2
.( x n x n0\ ) + .. = 0
x1
x 2
x n
(0)
( 0)
(0)
(0)
f ( x )
f ( x )
f ( x )
f n ( x1 , x 2 ,......., x n ) = f n ( x ) + n
.( x1 x10\ ) + n
.( x 2 x 20\ ) + .... + n
.( x n x n0 \ ) + .. = 0
x1
x 2
x n
(0)
( 0)
(0)
(0)
x 2
x n
x1
(0 )
( 0)
f ( x ( 0) )
f ( x )
f ( x )
(0 )
2
.x1 + 2
.x 2 + .... + 2
.x n = f 2 ( x )
x 2
x n
x1
M
( 0)
(0 )
f ( x ( 0) )
f ( x )
f ( x )
( 0)
n
.x1 + n
.x 2 + .... + n
.x n = f n ( x )
x1
x 2
x n
f 1 ( x ( 0) )
x1
f ( x ( 0) )
2
x1
f ( x ( 0) )
n
x1
(0)
(0)
f 1 ( x (0) )
f 1 ( x )
f 1 ( x ) x1
....
x 2
x n
(0)
(0 )
(0 )
f 2 ( x )
f n ( x ) x 2
f 2 ( x )
....
.
=
x 2
x n
(0)
(0)
M
f n ( x )
f n ( x )
....
(0)
f n ( x )
x 2
x n x n
onde
116
f 1 ( x ( 0 ) )
x1
f 2 ( x ( 0) )
(0)
J ( x ) = x
1
(0)
f n ( x )
x
1
chamada
(0)
= x1
(0)
x2
f1 ( x )
x 2
(0)
f 2 ( x )
x 2
M
(0)
f n ( x )
x 2
(0)
de
(0)
(0)
f 1 ( x )
x n
(0)
f 2 ( x )
L
x n
O
M
(0)
f n ( x )
L
x n
matriz
L xn
Jacobiana,
].
calculada
no
ponto
inicial
(0) T
(0)
= x1
(0)
x2
que
(0)
repetida para x
(0)
foram
L xn
calculados
baseados
nos
(0) T
valores
( 0)
iniciais
e x1 + x 2 = 1
+ 1
por Newton com X 0 = com 3 iteraes.
Exemplo 1: Resolver 2
2
x1 + x 2 = 4
1
Soluo:
f1 ( x1 , x2 ) = e x1 + x2 1
Temos F ( X ) =
f 2 ( x1 , x2 ) = x12 + x22 4
f 1 ( x ( 0) ) f 1 ( x ( 0) )
x1
x 2
(0)
J (x ) =
f 2 ( x ( 0 ) ) f 2 ( x ( 0) )
x 2
x1
x10 + 1
e x1 1
0
para
X
X
=
=
J (X ) =
0 =
2x
2x
x 2 1
1
2
Aplicando o sistema de equaes linearizado para duas equaes temos:
f 1 ( x ( 0) )
x1
f ( x ( 0) )
2
x1
(0)
f 1 ( x (0) )
f 1 ( x ) x1
x 2
.
=
( 0)
f 2 ( x )
f 2 ( x ( 0) )
x 2
x 2
1a iterao:
117
e1
x = 0,0758
x = 1,0758
e 2
1 x1
=
1
1
*
- 2 x2
-2
x2 = 0,9242
x 2 = 1,9242
2
Erro total = xi= 0,2527
3a iterao:
x13 = 1,0042
3
x 2 = 1,7297
Erro total = xi= 0,013474
x 1 = 1
Soluo Exata
x 2 = 1 e
Exemplo 2: Resolver o sistema de equaes no-lineares utilizando o Mtodo de
(0)
T
Newton para um vetor inicial x = [0,5 0,5 0,5] .
x1 + x 22 + x 32 1 = 0
2
2 x1 + x 22 4 x 3 = 0
2
3 x1 4 x 2 + x 32 = 0
2
(k )
)x
(k )
= F (x
(k )
A matriz Jacobiana J ( x
2 x1( k )
(k )
J ( x ) = 4 x1( k )
6 x1( k )
Para x
J (x
( 0)
(0)
2 x 2( k )
2 x 2( k )
4
(k )
) dada por:
2 x 3( k )
4
2 x 3( k )
1
1 1
) = 2 1 4
3 4 1
118
Para x
(0)
( 0)
) calculado por:
F (x
(0)
1 x1 ( 0) 0,25
1 1
2 1 4 x ( 0) = 1,25
( 0)
3 4 1 x 3 1,00
Resultando em x ( o ) = [0,375 0 0,125 ]T . Os novos valores do vetor x so dados
por:
(1)
=x
( 0)
+ x
(0)
0,7500
1,7500 1,0000
(1)
) = [0,1563
0, 2813
0,4375 ]T
119
( 2)
=x
(1)
+ x
(1)
J (x
T
0,0051] . Os novos valores do vetor x
Para x ( 2 ) = [0,7898
( 2)
0,0034
0, 4966
T
0,3699 ] , tem-se:
Para x ( 2 ) = [0,7898
0, 4966
T
0,3699 ] , F ( x
( 2)
) calculado por:
(2)
) = [ 0,0073
0,0145
0,0218 ] T
Resultando em x
dados por:
( 3)
=x
( 2)
+ x
( 2)
( 2)
( 4)
0,7852
= 0,4966
0,3699
4.2. Consideraes:
Alm da necessidade do X0, o maior problema do Newton em F(X) = 0 a
necessidade de se calcular as n2 derivadas parciais para uso na Jacobiana J(X), que
so n2 funes.
A alternativa mais simples para se contornar o problema consiste em se
f i
simular as n2 derivadas parciais
atravs do prprio computador, via
x j
aproximaes numricas das derivadas:
Por definio sabemos que:
f ( x + h) f ( x)
f ( x) = lim
h
h 0
f ( x)
f ( x + h ) f ( x)
h
Por extenso:
f i ( x1 , x2 ,..., x j + h,..., xn ) f i ( x1 , x 2 ,..., xn )
f i
( x1 ,..., xn ) = lim
x j
h
h0
Utilizando um valor inicial pequeno para h, temos:
f i ( x1 , x2 ,..., x j + h,..., xn ) f i ( x1 , x2 ,..., xn )
f i
x j
h
f 1 ( x1 + h,...) f 1 ( x1 ,..., x n )
f 2 ( x1 + h,...) f 2 ( x1 ,..., x n )
J (X ) =
f ( x + h,...) f ( x ,..., x )
n
1
n
n 1
h
f 1 ( x1 , x 2 + h,...) f 1 ( x1 ,..., x n )
h
....
....
f 1 ( x1 , x 2 ,..., x n + h) f 1 ( x1 ,..., x n )
h
f 2 (..., x n + h) f 2
h
f n (..., x n + h) f n
h
Custo Computacional = 2.n2 clculos das funes originais, mas sem necessidade
de se deduzir cada derivada parcial. necessrio estabelecer um h inicial que pode
ser atualizado por xi para cada varivel i.
x1 x 2 = 1
Exemplo 3: Resolva o sistema no linear
pelo mtodo de Newton,
x2
x1 e = 0
utilizando uma aproximao numrica para a matriz Jacobiana, com
1
X 0 = , h = 0,1 (incremento inicial) e erro < = 10-5
1
x10 1
f 1 ( x1 , x 2 ) = x1 x 2 1
0
Soluo:
e
X
=
0 =
x2
f
(
x
,
x
)
=
x
e
x 2 1
2 1 2
1
121
1a iterao:
a11 a12 x1
0
a a * x = 1,718
21 22 2
Achando a11, a12, a21, a22 numericamente:
f1 f1 ( x10 + h, x20 ) f1 ( x10 , x20 ) (1,1*1 1) (1,0 *1 1)
a11 =
=
=1
x1
h
0,1
a12 =
=1
x2
h
0,1
a21 =
=
=1
x1
h
0,1
=
= 2,859
x2
h
0,1
Assim teremos:
x11 = 1,445
1 x1
x1 = +0,445
1
0
2
2 iterao:
x11 1,445
x1 + 0,445
0
h
=
e
X = 1 =
x = 0,445
0
,
555
x
2
0,555
1
0,151 x1 0,198
x1 = 0,348
*
=
- 1,931 x 2 0,287
x 2 = 0,0316
x12 = 1,793
2
x 2 = 0,587
122
xi
yi = f(xi)
x1
y1
...
...
xn
yn
Ex.: Relao entre idade e produo mdia mensal de uma mquina (torno, rob,...).
x (meses)
y (103 peas/ms)
1
30
2
33
3
29
4
27
5
19
2o). A y = f(x) possui expresso conhecida, porm ineficiente ou impossvel de ser utilizada.
Ex.:
(i). Construo de funes pr-definidas em bibliotecas de programas:
- ex, sen(x), ...
(ii). Computao Grfica:
- traar o grfico de y = e
(iii). Sistemas dedicados:
ln( x )
[ (
ar coth( x)
)]
Neste exemplo, o tempo de CPU necessrio para o clculo da expresso acima muito
grande. Computacionalmente mais interessante utilizar uma aproximao para se obter a
resposta da expresso acima.
(iv). Manipulao Algbrica de modelos matemticos:
- obter
e x dx
2
1 ). Polinomiais: g( x) = a i x i = Pn( x)
o
i =0
Vantagens:
- S envolvem operaes elementares;
- Facilmente derivveis, integrveis, etc,...
- Formam um anel, ou seja, todas as transformaes algbricas aplicadas resultam em
123
um outro polinmio.
Pn( x)
Qm( x)
Permite a representao de curvas do tipo
2o). Racionais: g( x) =
x0
y0
x1
y1
...
...
xn
yn
com x0 = a e xn = b
2o). Tome um polinmio de grau n,
n
Tal que o polinmio Pn(x) passe por todos os pontos (xi, yi = f(xi)), ou seja,
i = 0,1,2,...,n
Pn ( x i ) = y i
124
Da,
Pn( x 0 ) = a 0 + a 1 x 0 + a 2 x 20 +L+ a n x 0n = y 0
2
n
Pn( x 1 ) = a 0 + a 1 x 1 + a 2 x 1 +L+ a n x 1 = y 1
Pn( x ) = a + a x + a x 2 +L+ a x n = y
n
0
1 n
2 n
n n
n
Que gera um sistema de equaes lineares com n+1 incgnitas ai e n+1 equaes:
1
1
M
x0
x1
M
xn
x 02 L x 0n a 0 y 0
x12 L x1n a1 y1
=
M L M M M
x n2 L x nn a n y n
(*)
cuja soluo fornece os coeficientes ai do polinmio que passa por todos os pontos (xi, yi =
f(xi)). Este polinmio denominado de INTERPOLADOR da funo y = f(x).
Note-se que os elementos uij da matriz dos coeficientes do sistema (*) U.a = y, tm lei
de formao dada por:
u ij = x ij1
Ex: Aproxime por interpolao y = ln(x), x [2 ; 2,15] dividindo este intervalo em
n=3 (trs) partes iguais e estime ln(2.14). h = (b a ) / n = (2,15 2,00) / 3 = 0,05
Tabela gerada:
Soluo:
n+1 = 4
i
x
y = ln(x)
n=3
0
2,00
0,693
1
2,05
0,718
2
2,10
0,742
3
2,15
0,765
P3 ( x) = a 0 + a 1 x + a 2 x 2 + a 3 x 3
1 2,10 ( 2,10) 2
2
1 2,15 ( 2,15)
a 0
( 2,05) a 1
=
( 2,10) 3 a 2
( 2,15) 3 a 3
8
0,693
0,718
0,742
0,765
P3 ( x) = 11234
,
+ 1,3048x 0,1975x 2 0,0004112x 3 ln( x)
P3 (2 ,14) = 0,76048 ln( 2 ,14)
x0
y0
x1
y1
...
...
xn
yn
126
partir da soluo do sistema de equaes lineares abaixo, com n+1 incgnitas ai e n+1
equaes:
1
1
M
x0
x1
M
xn
x 02 L x 0n a 0 y 0
x12 L x1n a1 y1
=
M L M M M
x n2 L x nn a n y n
(*)
1 x1 x12 L x1n
Det ( X ) = Det
= (x i - x j )
M M
M L M i =0, n
j =0 ;n
1 x n xn2 L xnn i j
Det ( X ) = (x n - x n -1 ).(x n - x n - 2 ).....(x n - x 0 ).(x n -1 - x n - 2 ).(x n -1 - x n -3 ).....(x n -1 - x 0 )......
....(x 2 - x 1 ).(x 2 - x 0 ).(x 1 - x 0 ).
Percebe-se que o Determinante de X no nulo, sempre que os pontos xi forem diferentes
entre si, ou seja, (x i - x j ) ser sempre diferente de zero para pontos xi no repetidos e desta
forma a soluo do sistema (*) ter soluo nica.
Assim, o polinmio gerado ser nico para valores de xi no repetidos, independentemente do
mtodo utilizado para a sua determinao.
5.1.b). Determinao eficiente do interpolador
Como consequncia da unicidade do interpolador, pode-se tentar determin-lo sem a
gerao de sistemas lineares.
Para a funo tabelada abaixo:
xi
x0
x1
...
xn
yi = f(xi)
y0
y1
...
yn
prope-se as seguintes alternativas:
1a). Reescrever o interpolador polinomial Pn(x) via polinmios de Lagrange:
Neste caso o interpolador Pn(x) de grau n expresso na forma de Lagrange
(combinao linear de polinmios de Lagrange):
n
i=0
j= 0
j i
Pn( x) = y i
(x x )
(x x )
j
127
Pn( x) = y 0
( x x 1 )( x x 2 ) ... ( x x n )
+
( x 0 x 1 )( x 0 x 2 ) ... ( x 0 x n )
+ y1
( x x 0 )( x x 2 ) ... ( x x n )
+
( x 1 x 0 )( x 1 x 2 ) ... ( x 1 x n )
+ L
+ yn
( x x 0 )( x x 1 ) ... ( x x n 1 )
+
( x n x 0 )( x n x 1 ) ... ( x n x n 1 )
Pn( x 0 ) = y 0
Pn( x ) = y
1
1
Note que,
, portanto Pn(x) passa sobre todos os pontos tabelados.
M
Pn( x n ) = y n
Assim, como o interpolador Pn(x) de grau n passa sobre todos os n+1 pontos, ele ser o
mesmo que o obtido anteriormente, e sem a necessidade de se resolver o sistema (*) U a = y.
Esta uma consequncia da unicidade do interpolador polinomial.
Ex.: Determine o interpolador de Lagrange da funo:
x
0
y = f(x)
2
Estime f(2)e f(5).
1
4
Soluo:
Temos n + 1 = 4 pontos
3
0
4
1
n=3
P3 ( x) = y 0
( x x 1 )( x x 2 )( x x 3 )
+
( x 0 x 1 )( x 0 x 2 )( x 0 x 3 )
+ y1
( x x 0 )( x x 2 )( x x 3 )
+
( x 1 x 0 )( x 1 x 2 )( x 1 x 3 )
+ y2
( x x 0 )( x x 1 )( x x 3 )
+
( x 2 x 0 )( x 2 x 1 )( x 2 x 3 )
+ y3
( x x 0 )( x x 1 )( x x 2 )
( x 3 x 0 )( x 3 x 1 )( x 3 x 2 )
( x 1)( x 3)( x 4)
( x 0)( x 3)( x 4)
+4
+
( 0 1)( 0 3)( 0 4)
(1 0)(1 3)(1 4)
( x 0)( x 1)( x 3)
( x 0)( x 1)( x 3)
+0
+1
( 3 0)( 3 1)( 3 4)
( 4 0)( 4 1)( 4 3)
f(2) P3(2) = 2,167
f(5) P3(5) = 8,667
P3 ( x) = 2
a = 1;
b = 2;
n = 7; %7 determinado atraves do erro exato
h = (b-a)/n;
x = a : h : b;
y = log(x);
np = 100; %N. de pontos para plotar os resultados
hp = (b-a)/np;
xp = a:hp:b;
yep = log(xp);
for i = 1 : np+1
yip(i) = lagrange(xp(i), n, x, y);
endfor
plot(x,y,"x;f(x) = ln(x);",xp,yep,"r;F(x)exata;", xp,yip,"b;Pn(x) interpolador;")
function f = lagrange(xp, n, x, y)
f = 0;
for i=1:n+1
prod = 1;
for j=1:n+1
if (j != i) prod=prod*(xp-x(j))/(x(i)-x(j));endif
endfor
f=f+ y(i)*prod;
endfor
endfunction
2a). Interpolador de Gregory-Newton com diferenas:
Definio 1: Para a funo tabelada
i
0
1
xi
x0
x1
yi = f(xi)
y0
y1
...
...
...
n
xn
yn
1 yi =
yi +1 yi
xi +1 xi
2 y i = ( y i ) =
y i +1 y i
x i +2 x i
k 1 yi +1 k 1 yi
yi =
xi +k xi
k
0
1
2
1
3
0
2
4
1
3
7
3
129
aplicando a definio 1.
I
xi
yi
1 yi
2 yi
3 yi
0
1
1
3
2
0
-1
1
2/3
-1/12
-1/8
-
2
3
4
7
1
3
2/3
-
...
...
[(-1/12) - (2/3)]
1
=
(7 - 1)
8
xn
yn
o polinmio de grau n expresso na forma de Gregory-Newton pode ser definido como segue:
n
k 1
Pn( x) = y0 + k y0 ( x x j )
k =1
j =0
Pn( x1 ) = y0 + ( y1 y0 ) ( x1 x0 ) = y1
( x1 x0 )
Pn( x2 ) = y2
Pn( xn ) = yn
Logo, Pn(x) o nico interpolador de grau n que passa sobre todos os pontos tabelados.
Ex.: Determine o interpolador para
x
1
3
4
y = f(x) 2
0
1
7
3
P3 ( x) = y 0 + y 0 ( x x 0 ) + 2 y 0 ( x x 0 )( x x1 ) + 3 y 0 ( x x 0 )( x x1 )( x x 2 )
Usando as diferenas divididas obtidas no exemplo anterior, temos:
130
Consideraes:
(i). As estimativas das diferenas divididas tambm podem ser efetuadas no sentido
descendente:
131
k y i =
k 1 y i k 1 y i 1
x i x ik
conferir
Pn( x) = y 0 + i y 0 ( x x j ) atualizar
i =1
j= 0
xi
1
3
4
7
9
yi
2
0
1
3
5
-1
1
2/3
1
-
2
2/3
-1/12
1/15
-
3
-1/8
1/40
-
4
3/160
-
k y i = k 1 y i +1 k 1 y i
k y i =
k y i
hk k!
i y 0 i
Pn( x) = y 0 + k ( x x j )
i =1 h k ! j = 0
(vi). Nas estimativas de valores na tabela (xi,yi) (i=0,1,2,...,n) quando se quer avaliar f() com:
( x 0 , x n ) tem-se uma interpolao
( x 0 , x n ) tem-se uma extrapolao
caso se queira obter o valor de correspondente ao valor da funo tabelada
f ( ) =
=?
85
5
89
5,7
93
6,2
95
6,7
96
7
...
?
15
E( x) = f ( x) Pn( x) , x [ x 0 , x n ] e x x i .
133
x0
y0
x1
y1
...
...
xn
yn
E( x) = f ( x) Pn( x) =
f n +1 ( ) ( x x i )
i=0
( n + 1)!
E(x)
M
( x xi ) ".
( n + 1)! i = 0
0
1
xi
0,4
0,5
yi= f(xi) -0,916290732 -0,693147181
2
0,6
-0,510825624
3
0,7
-0,356674944
f (x) = 2 / x 3 f iv ( x) = - 6 / x 4
134
Ento,
E (0,65)
234,375
(3 + 1)!
E (0,65) =
(0,65 x ) =
i
i =0
234,375
(0,65 x0 )(0,65 x1 )(0,65 x2 )(0,65 x3 )
(3 + 1)!
234,375
(0,65 0,4)(0,65 0,5)(0,65 0,6)(0,65 0,7) = 9,15 . 104
(3 + 1)!
Corolrio 2 - "Se na tabela ocorrer xi+1 > xi (pontos ordenados) e xi+1 - xi = h (igualmente
M h n+1
espaados i), ento E ( x )
com M = max f n +1 ( x) ".
x [ x 0 , x n ]
( n + 1)
Ex.: Obtenha o erro de truncamento mximo cometido ao se aproximar f(x) = ex com
x [2; 2,4] via Pn(x) com os xi ordenados e igualmente espaados em n=4 intervalos. Avalie
o erro exato em x=2,33.
Soluo:
n=4
h=
2,4 2
= 0,1
4
Ento, E ( x )
e 2 , 4 ( 0,1) 5
5
= 0,000022
Verificao:
P4(2,33) = 10,2779587404
e2,33
= 10,2779411764
Erro(real) = |10,2779587404 - 10,2779411764| = 0,000017564 < 0,000022
Ex.: Delimitar o erro mximo cometido ao se aproximar y = ln(x), x [2;2.15], atravs do
interpolador P3(x), dividindo o intervalo [2;2.15] em 3 partes iguais.
135
Soluo:
h=
n=3
2,15 2
= 0,05
3
Temos f(x) = ln(x) f'(x) = x-1 f''(x) = -1.x-2 ... f(4)(x) = 3! x-4 (f(n+1)(x) = n! x)
(n+1)
M = max f
x[ 2 ; 2 ,15 ]
Ento, E ( x )
( 4)
( x) = 3! 2-4 = 0,375
0,375.(0,05) 4
= 5,859.10-7
4
h=
n = 20
2 1
= 0,05
20
Temos f(x) = ln(x) f'(x) = x-1 f''(x) = -1.x-2 ... f(21)(x) = 20! x-21
M = max f ( 21) ( x) = 20! (1)-21 = 20!
x [1, 2 ]
20! (0,05) 21
= 5,5 . 10-11
21
Ex.: Calcular o grau 'n' mnimo do interpolador polinomial Pn(x) necessrio para que o Erro
mximo entre f(x) e o interpolador Pn(x) seja menor que 1.10-6, ao se aproximar f(x)=ln(x)
atravs de Pn(x), em x[1;2], dividindo o intervalo [1,2] em n partes iguais.
Ento, E ( x )
Soluo:
Nesse caso, pode-se estabelecer valores de 'n' (INTEIROS) para calcular o valor do Erro
mximo de truncamento, facilitando a obteno das derivadas f(n+1)(x), pois os 'n' so nmeros
inteiros:
1a. tentativa: n=3
n=3
h=
2 1
= 0,333333333...
3
Temos f(x) = ln(x) f'(x) = x-1 f''(x) = -1.x-2 ... f(4)(x) = 3! x-4 (f(n+1)(x) = n! x(n+1)
)
M = max f ( 4 ) ( x) = 3! 1-4 = 6
x[1, 2 ]
6.(0,33333333) 4
Ento, E ( x)
= 1,8519.10-2 precisamos aumentar o 'n', vamos tentar n=6
4
2a. tentativa: n=6
2 1
n=6 h=
= 0,16666666 ...
6
136
Temos f(x) = ln(x) f'(x) = x-1 f''(x) = -1.x-2 ... f(7)(x) = 6! x-7 (f(n+1)(x) = n! x)
(n+1)
M = max f
(7)
x[1, 2 ]
( x) = 6! 1-7 = 720
Ento, E ( x )
720.(0,1666667) 7
7
h=
2 1
= 0,125
8
Temos f(x) = ln(x) f'(x) = x-1 f''(x) = -1.x-2 ... f(9)(x) = 8! x-9 (f(n+1)(x) = n! x)
(n+1)
40320.(0,125) 9
= 3,3379.10-5 precisamos aumentar o 'n', vamos tentar n=10
9
6a. tentativa: n=10
2 1
n = 10 h =
= 0,1
10
Ento, E ( x)
Temos f(x) = ln(x) f'(x) = x-1 f''(x) = -1.x-2 ... f(11)(x) = 10! x-11 (f(n+1)(x) = n! x(n+1)
)
M = max f
x[1, 2 ]
(11)
3628800.(0,1)11
Ento, E ( x )
11
h=
2 1
= 0,09090909 ...
11
Temos f(x) = ln(x) f'(x) = x-1 f''(x) = -1.x-2 ... f(12)(x) = 11! x-12 (f(n+1)(x) = n! x(n+1)
)
M = max f (12 ) ( x) = 11! 1-12 = 29.916.800
x[1, 2 ]
29916800.(0,0909090909)12
Ento, E ( x )
= 1,0599.10-6 que da ordem de 1.10-6.
12
Logo, usaremos grau n=11 para calcular o polinmio interpolador Pn(x) representativo de
f(x)=ln(x) em x[1;2] com erro mximo de truncamento pode ser da ordem de 1.10-6, mas os
erros exatos devem ficar abaixo de 1.10-6.
137
Figura: Spline Fsica e pesos (ducks) que so fixados nas reas de interesse causando a
deformao da estrutura de madeira ou plstico resultando assim na curva.
Uma das maiores dificuldades encontradas ao se trabalhar com a interpolao
polinomial convencional (Lagrange, Gregory-Newton,
Gregory Newton, etc.) ocorre quando se toma um
polinmio interpolante de grau pequeno, cometendo-se
cometendo se elevados erros de truncamento,
enquanto que tomando-se
se polinmio interpolador de grau elevado, os grficos tendem a ser
altamente sinuosos (vide figura abaixo). Em certas aplicaes em que a funo interpolante
precisa ser diferenciada, importante obter uma aproximao to suave quanto possvel. Uma
Um
possibilidade atravs de splines cbicos, que permite interpolar com muita suavidade, como
no desenho abaixo:
138
p1
pm-1
pi
po
y1
xo=a
x1
x2
...
xi
local, como
s1i ( x) = f ( x i )
( x x i +1 )
(x x i )
+ f ( x i +1 )
,
( x i x i +1 )
( x i +1 x i )
x [ x i , x i +1 ]
0
1
1
1
2
2
2
5
3
3
7
2,5
s11 ( x) = 2
x [2,5]
x [5,7]
Para obter f(3) utiliza-se a spline vlida no intervalo x [2,5] , portanto calcula-se
s12(3) = 1/3(3+4) = 7/3.
Por convenincia terica e prtica, e por questes de otimizao, so utilizados
interpoladores polinomiais cbicos spi(x), com grau igual a 3 (trs) fixo (Splines cbicas).
Esta tcnica, e suas variantes, constituem um dos fundamentos da computao grfica
(CAD,...).
5.3.2 - Aproximao por Splines cbicas
Para aproximar y = f(x) , x [a,b] por splines cbicas procede-se da seguinte maneira:
1o). Dividir [a,b] em m subintervalos [xi,xi+1], tal que xi+1 > xi e xi+1 - xi = hi;
2o). Obter um polinmio spi(x), de grau 3, para cada um dos m subintervalos [xi,xi+1],
spi ( x) = a i ( x xi ) 3 + bi ( x xi ) 2 + ci ( x xi ) + d i
i = 0,1,2,...m-1
(1)
140
2c). sp i1 ( x i ) = sp i ( x i )
Ou seja, em cada ponto xi, a INCLINAO dos dois polinmios que nele incidem
devem ser iguais.
2d). sp
i 1 ( x i ) = sp
i (x i )
Tomando spi(x) para cada subintervalo [xi, xi+1] com i = 0,1,2,...,m-1, atravs da
eq.(1), e aplicando as condies estabelecidas nos itens 2a, 2b, 2c e 2d resulta que:
Aplicando a condio 2a) e 2b) na eq. (1) tem-se:
(i).
sp i ( x i ) = d i = y i
(2)
sp i ( x i +1 ) = a i h 3i + b i h 2i + c i h i + d i = y i +1
(3)
sp i ( x) = 3a i ( x x i ) 2 + 2b i ( x x i ) + c i
(4)
141
sp
i ( x ) = 6a i ( x x i ) + 2 b i
(5)
bi = Si / 2
sp
i (x i ) = 2b i = Si
(6)
sp
i ( x i +1 ) = 6a i h i + 2 b i = S i +1
(7)
(8)
(S i +1 S i ) h i3 S i h i2
+
+ c i h i + y i ento
6h i
2
y i +1 y i Si +1 h i + 2Si h i
hi
6
Agrupando tem-se:
ci =
a i
b
i
c i
d i
(9)
= (S i +1 S i ) / 6h i
= Si / 2
(10)
= ( y i +1 y i ) / h i (S i +1 h i + 2S i h i ) / 6
= yi
Assim, tem-se os coeficientes das splines cbicas em funo dos valores de Si e Si+1.
Para obter estes valores, utiliza-se a condio 2c, sp i ( x i ) = sp i1 ( x i )
sp i ( x i ) = c i e
sp i1 ( x i ) = 3a i1 h i21 + 2b i1 h i1 + c i 1
c i = 3a i1 h 2i1 + 2b i1 h i1 + c i1
(11)
(12)
h1
h0 2( h0 + h1 )
h1
2( h1 + h2 ) h2
S 0
S1 y 2 y 1 y 1 y 0
h1
h0
S 2 y 3 y 2 y 2 y 1
h2
h1
M
= 6
y m y m 1 y m 1 y m 2
S m1 h m1
h m 2
S m
Como tem-se m+1 pontos com m+1 incgnitas Si, e da eq.(12) tem-se apenas m-1
equaes (i=1,2,3,...,m-1), ento este um sistema linear com m-1 equaes a m+1
incgnitas. Para que se tenha soluo nica necessrio impor mais duas condies especiais,
de preferncia, nos pontos extremos de [a,b] envolvendo S0 e Sm. Dependendo de tais
condies pode-se ter vrios tipos de Splines:
1) Supor que as splines cbicas se aproximam de forma linear nos extremos, em x0=a e xm=b,
isto , S0 = Sm = 0 spline natural
2( h0 + h1 )
h1
h1
2( h1 + h2 )
h2
S1 y 2 y 1 y 1 y 0
h1
h0
S2 y 3 y 2 y 2 y 1
h2
h1
M
.
y y
y m 1 y m 2
m 1
m
S m 1 h m1
h m 2
143
(3h0 + 2h1 )
h1
h1
2( h1 + h2 )
h2
S1 y 2 y 1 y 1 y 0
h1
h0
S2 y 3 y 2 y 2 y 1
h2
h1
M
6
.
M
.
y y
y m 1 y m 2
m 1
S m 1 h m1
h m 2
2( h0 + h1 )
h1
h1
2( h1 + h2 )
h2
S1
S2
S m 1
y y1 y1 y 0
h0u + 2
h1
h0
y 3 y 2 y 2 y1
h2
h1
h v + y m y m1 y m1 y m 2
m1
h m1
h m2
Se for assumido um valor para os extremos a partir da extrapolao linear dos valores internos
tem-se duas equaes adicionais para S0 e para Sm.
S1 S0 S2 S1
=
h0
h1
S m S m1 S m1 S m 2
=
h m1
h m 2
Que geram equaes adicionais que podem ser adicionadas ao sistema dado pela eq. (12),
( h 0 + h 1 )S1 h 0S 2
(h
+ h m1 )S m1 h m1S m2
e S m = m 2
h1
h m 2
Note-se que o sistema linear resultante (com qualquer das condies apresentadas)
um sistema tridiagonal, que aps resolvido fornece S1, S2, S3,...,Sm-1, juntamente com a
respectiva condio de extremos S0 e Sm. Substituindo os valores de Si nas eqs. (10) fornecem
os coeficientes ai, bi, ci, di das splines cbicas de f(x) em [a,b].
S0 =
144
Exemplo1. Aproximar a funo tabelada abaixo por splines cbicas, em [0,4] com h = 1, e
estime f(2,5).
X
Y
0
-3
1
-2
2
5
3
24
4
61
Soluo:
Ento hi = 1 e m = 4 intervalos.
a). Com Splines de extremos naturais (forma linear nos extremos):
2( h 0 + h 1 )
h1
0
h1
2( h 1 + h 2 )
h2
0
h2
2( h 2 + h 3 )
S 1
[( y 2 y 1 ) / h 1 ( y 1 y 0 ) / h 0
S 2 = 6 [( y 3 y 2 ) / h 2 ( y 2 y 1 ) / h 1
S 3
[( y 4 y 3 ) / h 3 ( y 3 y 2 ) / h 2
1 4 1 S 2 = 72 Sendo a soluo S= {S1, S2,S3} = { 6,42857; 10,2857; 24,4285}
0 1 4 S 3
108
com S0 = S4 = 0.
Assim, para i = 0:
a 0 = (S 1 S 0 ) / 6h 0 = 1,0714
b = S / 2 = 0
0
0
c 0 = ( y 1 y 0 ) / h 0 (S1 + 2S 0 ) / 6h 0 = 0,0714
d 0 = y 0 = 3
sp 3 ( x) = 0( x 1) + 0( x 1) 2 0, ( x 0) 2 para x[3,4]
3
h1
0
h1
2( h 1 + h 2 )
h2
0
h2
(2 h 2 + 3h 3 )
S 1
[( y 2 y 1 ) / h 1 ( y 1 y 0 ) / h 0
S 2 = 6 [( y 3 y 2 ) / h 2 ( y 2 y 1 ) / h 1
S 3
[( y 4 y 3 ) / h 3 ( y 3 y 2 ) / h 2
5 1 0
1 4 1
0 1 5
S 1
36
S 2 = 72 Sendo a soluo S = {S1, S2,S3} = { 24,8; 12; 19,2}
S 3
108
com S0 = S1 = 24,8 e com Sm = Sm-1 = 19,2. Assim,
sp 1 ( x) = 0( x 1) + 0( x 1) 2 0, ( x 0) 2 para x[1,2]
3
sp 3 ( x) = 0( x 1) + 0( x 1) 2 0, ( x 0) 2 para x[3,4]
3
146
d(i)= y(i);
end
np=4; %4 sub-divises para cada sub-intervalo entre xi e xi+1
xpp=[];ypp=[];
for i=1:m
xp=x(i):(x(i+1)-x(i))/np:x(i+1);
for k=1:np+1
yp(k)=a(i)*(xp(k)-x(i))*(xp(k)-x(i))*(xp(k)-x(i))+b(i)*(xp(k)-x(i))*(xp(k)-x(i))+c(i)*(xp(k)-x(i))+d(i);
end
xpp=[xpp xp];ypp=[ypp yp];
end
xpp
ypp
plot(x,y,'*',xpp,ypp,'k')
function f=f1(x)
f=sin(x);
endfunction
147
A curva vermelha a Funo EXATA de Runge. A curva azul uma interpolao polinomial de 5 ordem (usando seis pontos
de interpolao igualmente espaados). A curva verde uma interpolao polinomial de 9 ordem (usando dez pontos de
interpolao igualmente espaados). A oscilao pode ser minimizada usando-se os ns de Chebyshev em vez de ns
eqidistantes para ancorar o polinmio interpolador. Neste caso, o erro mximo diminui quando a ordem do polinmio aumenta.
%2. Polinomial com m pontos definidos pelas razes do polinomio de grau m=n+1 de Chebyshev;
nk=16;mk=nk+1; % 17 ns de Chebychev, polinomio de grau nk=16
for i=1:mk
tk(i)=cos((2*i-1)*pi/(2*mk));
1)*pi/(2*mk));
yaux(i)=1/(1+25*tk(i)*tk(i));
endfor
yk=1./(1.+25.*tk.*tk) % valores exatos da funo f(t) para m ponto
% Clculo por interpolao polinomial
for i=1:mk
a1(i,1)=1;
for j=2:mk
a1(i,j)=a1(i,j-1)*tk(i);
148
endfor
a1(i,mk+1)=yk(i);
endfor
a1
coef=fgauss(mk,a1)
for i=1:np+1
ypk(i)=Pn(nk,coef,xp(i)); % (np+1) pontos y a serem plotados
endfor
149
150
Nestes casos, as curvas propostas por Pierre Bezier so adequadas, por que
separam uma funo y=f(x) ou mesmo uma relao no funcional, em outras duas,
de modo parametrizado,, x=x(t) e y=y(t), onde t um parmetro independente. Desta
forma, x=x(t) e y=y(t), sempre sero funes bem comportadas, sem derivadas
tendendo ao infinito.
Interpolaes por Curvas de Bezier:
Este assunto a base matemtica de sistemas de computao grfica, como o corel
draw. Foi desenvolvido pelo engenheiro Pierre Bezier (funcionrio da Renault) na
dcada de 1960 (sistema Unisurf) para simulao de layout de automveis.
Questo preliminar:: Como seguir um caminho, no funcional (com mais de um valor
de y para cada x), do tipo esboado?
151
x0
x1
...
xn-11
xn
yi
y0
y1
...
yn-11
yn
t0
t1
...
tn-1
tn
pi
p0
p1
...
pn-11
pn
t0
t1
...
tn-1
tn
xi
x0
x1
...
xn-11
xn
ti
t0
t1
...
tn-1
tn
yi
y0
y1
...
yn-11
yn
c). aproximar as duas tabelas, que agora so funes, e gerar os pontos novos do
caminho usando estes dois aproximadores (interpoladores, por exemplo).
Aproximao unidimensional de Bezier:
c1). tomar (n+1) pontos referenciais do desenho desejado => pi=(xi,yi), i=0,...,n e
express-los
los na forma parametrizada => pi=(xi(t),yi(t)), com t[0;1];
[0;1];
Por exemplo para n=3 (n+1=4 pontos).
152
. 1
Onde
. .
!. !
Forma matricial de
=
. 1
. .
. 1
. .
1
1
.
.
.
"
!
!
!
!
Exemplos:
= 1. 1
=>
+2. 1
+1. 1
# #
.
.
1.
3.
3.
1.
1
1
1
1
=>
&
&
&
&
.
.
#
.
&
.
.
.
#
.
&
.
+
+
#+
&
dx=
dy=
= 1. 1
+3. 1
, cx=3.(
&
&
&
= 1. 1
+3. 1
, cy=3.(
&
&
& #
=) .
&
&
& #
=) .
&
+ 3. 1
&
.
.
+ 3. 1
&
++ .
.
.
& &
&
+, .
&
+ 1. 1
+* .
- ), by=3.(
+ 1. 1
+* .
- ), bx=3.(
= 1. 1 # . .
+ 2. 1 # .
+ 1. 1 # # .
= 1. 1 # . .
+ 2. 1 # .
+ 1. 1 # # .
++ .
& &
&
+, .
&
P1: -
0 =
0 =
/ e -
1
1
Algoritmo:
%Curvas de Bezier
clear
n=4 %pontos
%y=[0 0 4 4];x=[0 4 4 0]; %parabola horizontal
%y=[0 9 9 0];x=[4 4 0 0]; %parabola vertical
%y=[3 6 0 -3];x=[0
3];x=[0 5 6 1]; %parabola inclinada
%y=[3 1 5 -3];x=[0
3];x=[0 2 2 3]; %parabola distorcida
%y=[0 4 4 0];x=[0 5 0 5]; %cuspide
y=[0 -100 -100 0];
x=[0 1 -1 0]; %Gota
x(n+1)=x(1);y(n+1)=y(1);
n=1000
h=1/n %Espaamento do parametro t
t=0
cx=3*(x(2)-x(1));bx=3*(x(3)
x(1));bx=3*(x(3)-x(2))-cx;ax=(x(4)-x(1))-(cx+bx);
cy=3*(y(2)-y(1));by=3*(y(3)
y(1));by=3*(y(3)-y(2))-cy;ay=(y(4)-y(1))-(cy+by);
xmax=0;ymax=0;
for i=1:n+1
xx(i)=x(1)+t*(cx+t*(bx+t*ax));
yy(i)=y(1)+t*(cy+t*(by+t*ay));
t=t+h;
154
endfor
plot(x,y,'g',x,y,'x',xx,yy,'r')
Exemplo de um perfil:
Exemplo no Corel Draw (ferramenta Forma (F10), Converter em curvas (crtl Q)):
https://www.youtube.com/watch?v=qCk0C1QO4HY
155
ba
b+a
t+
ento,
2
2
Se t = -1 x = a
Se t = +1 x = b
Fazemos x =
b + a
ba
f (x) = f
t+
2
2
Aps determinar a aproximadora f(x(t)), toda em funo de t, voltamos a expressar a
forma original da funo de x, substituindo t por t(x):
t=
b+a
2x
ba ba
x=
ba
ad bc
t+
dc
dc
h n +1 M
.
n+1
Infelizmente o tempo de resposta e a demanda de memria requerida so grandes,
pois para se ter um erro de truncamento pequeno necessrio usar um grau n elevado em
polinmios.
Esta tcnica apesar de tentadoramente simples no satisfaz aos quesitos ii) e iii) de
boa aproximao, a no ser em intervalos curtos para aplicaes especficas.
f ()( x )
f n ()( x ) n f n +1 ()( x ) n +1
f ( x) = f () +
+ L +
+
1!
n ! 3 144
(4
n2
+ 144
)! 4
14444444
4244444444
3
Pn ( x )
ou
[; x]
Rn ( x )
f(x) Pn(x)
f ( 0) x f ( 0) x 2
f n ( 0) x n
Obs.: Se = 0 f ( x) = f ( 0) +
+
+ L +
+ Rn(x)
1!
2!
n!
tem-se a srie de Maclaurin.
(ii). cos( x ) = 1
x2 x4 x6
(-1) n x 2n
+
+ L +
+ L
2 ! 4 ! 6!
(2n)!
(iv). ln( 1 + x ) =
x
(v).
e y = x
2
x 2 x3 x 4
(-1) n +1 x n
+ +L+
+L
2
3
4
n
x
x2 x3
(-1) n+1 x n
+
+ L +
+ L
2.1 2.2 2.3
2n!
x3
x5
x7
(-1) n x 2n+1
+
+ L +
+ L
1! 3 2 ! 5 3! 7
n!(2n + 1)
157
( x ) n +1 M
(n + 1)!
onde M = max f n +1 ( x)
x [ , x ]
Exemplos:
a). Delimitar o erro mximo cometido ao se aproximar f ( x ) = e x , x [-1;+1] por Maclaurin
com n = 5.
Soluo:
f 6 ( ) x 6
Pelo resto R 5 ( x) =
6!
Tomando M = max f 6 ( x)
x [ 1; +1]
R 5 ( x)
M = max e x = e +1 ento
x [ 1; +1]
M x6
e 1 16
R 5 ( x)
R5 ( x ) 0,003775
6!
6!
b). Determine o grau n para no se obter erro superior a = 10-8 ao se aproximar f(x) = ex,
x [-1;+1] por Taylor/Maclaurin.
Soluo:
M x n +1
R n ( x)
( n + 1)!
com M = max e x = e +1
e +1 1n +1
R n ( x)
10 8
( n + 1)!
x [ 1; +1]
( n + 1)! 2 ,7 .10 8
Para n 11 Rn ( x ) 0,567.10 8
Teorema: ''Se a srie de Taylor de y=f(x) for convergente com lim termon = 0 e alternada nos
n
Ex.:
Determine o grau n para aproximar f(x) = ln(1+x), x [0;+1] por Maclaurin com = 10-5.
Pela srie de Maclaurin:
158
ln(1 + x) = x
x2 x3 x4
(-1)n +1 x n (-1)n + 2 x n +1
+ +L+
+
2
3
4
n
n2
+4
13
14
Rn ( x )
1.
(+1) n +1
10 5
n +1
n 100000
Note que nesta srie a convergncia muito lenta, pois no tem fatorial no
denominador, e isto implica em grande nmero de termos na srie.
Pelo teorema do resto da srie de Taylor, temos o erro de truncamento exato:
f n +1 ( )( x ) n +1
[; x]
( n + 1)!
com
( x ) n +1 M
Emax =
(n + 1)!
ou pelo seu valor mximo,
teremos
Rn ( x) =
onde
M = max f n +1 ( x)
x [ , x ]
, para =0,
f ( x ) = ln(1 + x ) , f ' ( x ) = 1 /(1 + x ) , f ' ' ( x ) = ( 1).(1 + x ) 2 , f ' ' ' ( x ) = ( + 1).1.2.(1 + x ) 3 ,
f ( 4 ) ( x ) = ( 1).1.2.3.(1 + x ) 4 ,..., f ( n ) ( x ) = ( 1) ( n +1) .1.2.3....( n 1).(1 + x ) n ,
f ( n +1) ( x ) = ( 1) ( n ) .1.2.3....( n ).(1 + x ) ( n +1) = ( 1) ( n ) .n!.(1 + x ) ( n +1)
n +1
Considerao:
Deve-se notar (ver avaliao a seguir) que a aproximao por Taylor/Maclaurin no
distribui uniformemente os erros, o que exige grande nmero de termos na srie para
minimizar os erros mximos (localizados nos extremos). Assim, o tempo de resposta pode
ficar muito alto, mesmo com custo de armazenamento zero.
Por exemplo:
Erro( x) = e x P4 ( x)
x
Erro(x)
-0,5
0,00024
-1,0
0,0071
0
0
0,5
0,00028
x 2 x3 x 4
+ +
)
2! 3! 4!
1,0
0,0099
159
Se arcos(x ) =
Tn ( x) = cos( n)
cos() = x ento
em x [-1;+1]
Assim,
T0 ( x ) = cos( 0) = 1
T1 ( x ) = cos() = x
T2 ( x ) = cos( 2 ) = 2cos 2 ( ) - 1 = 2x 2 1
T3 ( x ) = cos( 3) = 4x 3 - 3x
T4 ( x ) = cos( 4) = 8x 4 8 x 2 + 1
T5 ( x ) = cos( 5) = 16x 5 - 20x 3 + 5x
160
Prop1: Tn(x) um polinmio de grau n e s existe um nico Tn(x) para cada n. O coeficiente
de xn em Tn(x) 2n-1.
Prop2: Tn (x) 1, x [-1;+1]
ento
x [ 1; +1]
2k 1
; k = 1,2,...,n.
simples e obtidas via k = cos
2n
Normalizando os polinmios de Chebyshev de forma que o coeficiente de maior
grau seja igual 1, obtm-se
se os polinmios de Chebyshev mnicos:
161
~
Prop3: (Mimimax) ''Seja Tn ( x) = Tn ( x) / 2n 1 = 21 n.Tn ( x) , o monmio (polinmio cujo
1
~
coeficiente de maior grau unitrio) de Chebyschev de grau n. Ento, max Tn ( x) = n 1
x[ 1; +1]
2
e
~
~
~
~
~
max Tn ( x ) P n ( x ) , monmio Pn ( x ) . A igualdade s ocorre caso Pn ( x ) = Tn ( x ) ''.
x[ 1; +1]
(1)
2). Substituir na eq. (1), todas as potncias xi pelas respectivas expresses em Ti e agrupa-los:
f ( x ) = a0 .T0 + a1.T1 + a2 . (T2 + T0 ) 2 + a 3 .(T3 + 3T1 )4/ + a 4 . (T4 + 4T2 + 3T0 ) 8 + ... + E T1
f (T ) = b0 + b1T1 + b2 T2 + L + b n Tn + E T1
(2)
b n .1
2 n1
(3)
4). Substituir em (3) cada Ti pela sua respectiva expresso em xi, agrup-los gerando novos
coeficientes ci:
f ( x ) = c 0 + c 1 x + L + c k x k + E T2 + E T1
Ento,
f ( x ) Pk ( x )
termos).
T +T
T + 3T1
T + 4T2 + 3T0
e x T0 + T1 + 0,5 2 0 + 0,16667 3
+ 0,041667 4
+ ET1
8
2
4
Erro( x) = e P4 ( x)
x
x
Erro(x)
x 2 x3 x 4
(P4(x) obtido por Maclaurin: e = 1 + x +
+ +
)
2! 3! 4!
-1,0
0,0071
-0,5
0,00024
Erro( x) = e x p3 ( x)
0
0
0,5
0,00028
- p 3 ( x ) obtido
1,0
0,0099
por
Chebyschev:
x
E(x)
-1
0,0019
-0,5
0,0028
0
0,0052
0,5
0,0023
1,0
0,0151
Note que os erros esto uniformemente distribudos e todos se mantm abaixo do erro
de truncamento total previsto inicialmente, ET = 0,0278607.
163
1
)
( 2i 1)!
1!
i =1
3!
i=2
5!
i =3
7!
9!
i=4
i =5
Erro mximo para sries com termos de sinais alternados (i=1 termo abandonado). Se
truncamos a partir do i=5, 5. termo, que de grau =9, e mantemos at o 4 termo, i=4, de
grau (2*4-1)=7.
ErroMaxMac= (1) i +1
x 2i 1
= 10 6
( 2i 1)!
Rn( x) =
7+2
( 1) i +1
x 2 i 1
x9
=
= 2,755.10 6
( 2i 1)! 9!
f n+ 2 ( )( x ) n+ 2
( n + 2)!
, tomando o mximo do
( )( x ) 7 + 2
cos( )( x 0) 9
cos(0)(1 0) 9
f 9 ( )( x ) 9
Max
= Max
=
= 2.7557.10-6
(7 + 2)!
(9)!
(9)!
(9)!
Ento,
fMac ( x ) x
x3 x5 x7
+
3! 5! 7!
Observe que o erro de truncamento mximo da srie de grau 'n' pode ser obtido pelo mximo
Rn( x) =
f n+ 2 ( )( x ) n+ 2
( n + 2)!
x n+2
(n + 2)! .
3!
5!
7!
8111
601
23
1
fMac ( x )
.T1 .T3 +
.T5 .T7
9216
15360
46080
322560
fMac ( x ) T1
1
.T7 < 3,100.10-6
6
Podemos truncar o termo 322560
, que da mesma ordem de 2,755.10 ,
mas esses erros somados podem ultrapassar, na prtica, o limite da ordem de 10 6 , pois na
estimativa de erros mximos temos ET = 3,100.10-6 + 2,755.106 = 5,855.106
Logo,
8111
601
23
fCheb ( x )
.T1 .T3 +
.T5
9216
15360
46080
Substituindo Ti pelos polinmios de Chebyschev em xi, temos:
164
fCheb ( x )
8111 1 601
23
.x .(4x 3 - 3x) +
.(16x 5 - 20x 3 + 5x)
9216
15360
46080
fCheb ( x )
46079 1 959 3
23
.x .x +
.x 5
46080
5760
2880
N=7
a = -1
b = +1
h = (b - a)/N; % passo
t = a:h:b;
y = sin(t);
%met1 det pelo sistema, pol na base canonica
for i= 1:N+1
A(i,1) = 1;
for j=2:N+1
A(i,j) = A(i,j-1)*t(i);
end %for
A(i, N+2) = y(i);
end %for
neq = N + 1; % numero de equacoes
c = fgauss(neq, A);
'coeficientes de Pn(x):'
[c]
%plot func original
np = N*20;
hp = (b - a)/np;
tp = a:hp:b;
yp = sin(tp);
%plot pol da base canonica
ti = tp;
yi = resto(N, c, ti);
erroInter = abs(yp .- yi);
erroInterMax = max(erroInter)
165
%Serie de Maclaurin
'coeficientes da serie de MacLaurim:'
temp=[1 0 -1/factorial(3) 0 1/factorial(5) 0 -1/factorial(7)]
tM = tp;
for j=1:np+1
yM(j) = 0;
for i=N:-2:1
yM(j) += temp(i)*(tM(j))^i;
end %for
end %for
erroMac = abs(yp .- yM);
erroMacMax = max(erroMac)
#series de Chebyschev
'coeficientes da serie de Chebyschev:'
temp=[46079./46080 0 -959./5760. 0 +23./2880.]
tC = tM;
yC=(23.*tC.^5)./2880.-(959.*tC.^3)./5760.+(46079.*tC)./46080;
erroCheb = abs(yp .- yC);
erroChebMax = max(erroCheb)
plot(tp, erroInter, "k;erro(x)=|f(x) - Pn(x)|;", tM, erroMac, "m;erro(x)=|f(x) - Mac(x)|;", tC,
erroCheb, "g;erro(x)=|f(x) - Cheb(x)|;" );
%plot(t, y, '*',tp, yp, "b;f(x)=sen(x);", ti, yi,"k;Pn(x)basecanonica;",
% tM, yM, "m;sen(x) Maclaurin;", tC, yC, "g;sen(x)Cheb;");
grid();
Resultados:
N= 7
a = -1
b= 1
coeficientes de Pn(x)= [1.1102e-016 1.0000e+000 1.1475e-015 -1.6667e-001 -2.8499e-015
8.3311e-003 1.7717e-015 -1.9374e-004]
erroInterMax = 6.9981e-008
coeficientes da serie de MacLaurim=[1.00000
0.00000 -0.00020]
erroMacMax = 2.7308e-006
0.00000 -0.16667
0.00000
0.00833
Com N=5:
coeficientes da serie de Chebyschev=[0.99998 0.00000 -0.16649 0.00000 0.00799]
erroChebMax = 4.2449e-006 (ERRO EXATO), mas ultrapassou o limite da ordem 10-6.
Observe que o erro mximo estimado era ET = 3,100.10-6 + 2,755.106 = 5,855.106
166
Ex.: Aproximar f(x) = ln(x+1) em x [0;+1] por Chebyschev com erro mximo = 1,5.10-6.
Soluo:
1). Tomando a srie de Maclaurin de ln(x+1) tem-se:
x2 x3 x4
ln( x + 1) = x
+
+ ...
2
3
4
Verifica-se que a srie acima convergente e alternada, e assim pode-se tomar o erro de
truncamento como o primeiro termo abandonado na srie:
E T1
x n+1
= (-1)
1,510
. 6
n +1
n
n 666666
Como a srie de convergncia lenta necessrio um alto valor de n para satisfazer a
preciso requerida, o que computacionalmente invivel.
2). Reavaliando a aproximao de ln(x+1) por polinmios de Chebyschev, chega-se a
seguinte aproximao:
f ( x) = b i Ti onde
i=0
+1
1
f ( x)
=
b
dx
0
1 1 x 2
+1
2 f ( x) Ti ( x)
b i = 1 x 2 dx
1
xp = a:hp:b;
ye = log(xp);
#plot pol da base canonica
Nx = length(xp);%Nx=np+1;
for k=1:Nx
yp(k) = fresto(Np, cp, xp(k));
end #for
erroInter = abs(yp .- ye);
erroInterMax = max(erroInter)
#Serie de Maclaurin
%x(t)=0.5*(b-a)*t+0.5*(b+a);
%f(x(t))=ln(0.5*t+1.5) com te[-1;+1]
Nm=4
%Erro mximo O(10^-3)
for k=1:Nx
%
tM(k)=(2*xp(k)-(b+a))/(b-a);%plota sobre os mesmos pontos xp(k)
%
yM(k) = 0;
for i=Nm:-1:1
cM(i+1)=(-1)^(i+1)*((b-a)/(b+a))^i/(i);
%
yM(k) += cM(i+1)*(tM(k)^i);
end #for
cM(1)=log(0.5*(b+a));
%
yM(k)+=cM(1);
end #for
cM
for k=1:Nx
tM(k)=(2*xp(k)-(b+a))/(b-a);%plota sobre os mesmos pontos xp(k)
yM(k) = fresto(Nm, cM, tM(k));
end #for
erroMac = abs(yM .- ye);
erroMacMax = max(erroMac)
%Sries de Chebyschev
%ErroMacMax = 0.00124111056523424
%0.40546510810816438*x^0+
0.33333333333333331*x^1
0.05555555555555555
*x^2+
0.01234567901234568*x^3
0.00308641975308642*x^4
%0.40546510810816438*T0+
0.33333333333333331*(T1)
0.05555555555555555 *(T2+T0)/2 + 0.01234567901234568*(T3+3*T1)/4 0.00308641975308642*(T4+4*T2+3*T0)/8
%0.376529922922979*T0+0.342592592592593*T10.0293209876543210*T2+0.00308641975308642*T3-0.000385802469135802*T4
%erroTn<=0.0003858T4,
que
menor
que
erroMacMax
=
0.00124111056523424, entao despreza-se
Nc=3
%0.376529922922979*T0+0.342592592592593*T10.0293209876543210*T2+0.00308641975308642*T3
%0.405850910577300 + 0.333333333333334 x - 0.058641975308642 x^2 +
0.0123456790123457 x^3
cC=[0.405850910577300
+0.333333333333334
-0.058641975308642
+0.0123456790123457]
%for k=1:Nx
%
tC(k)=(2*xp(k)-(b+a))/(b-a);%plota sobre os mesmos pontos xp(k)
%
yC(k) = 0;
169
%
for i=Nc:-1:1
%
yC(k) += cC(i+1)*(tC(k)^i);
%
end #for
%
yC(k)+=cC(1);
%end #for
for k=1:Nx
tC(k)=(2*xp(k)-(b+a))/(b-a);%plota sobre os mesmos pontos xp(k)
yC(k) = fresto(Nc, cC, tC(k));
end #for
erroCheb = abs(yC .- ye);
erroChebMax = max(erroCheb)
%plot(xp,erroInter,"k;erro(x)=|f(x)Pn(x)|;",xp,erroMac,"m;erro(x)=|f(x)Mac(x)|;",xp,erroCheb,"g;erro(x)=|f(x)-Cheb(x)|;");
plot(x,
y,
'*',xp,
ye,
"b;f(x)=ln(x);",
xp,
yp,"k;Pn(x)
basecanonica;", xp, yM, "m;ln(x) Maclaurin;", xp, yC, "g;ln(x)
Chebyschev;");
grid();
-------------------------------------------------------------------Np = 3
cp = -1.487442610353929
2.098039064806764 -0.717320824230757
0.106724369777922
erroInterMax = 8.34309834847877e-004
Nm = 4
cM = 0.40546510810816438
0.33333333333333331
-0.05555555555555555
0.01234567901234568
erroMacMax = 0.00114412045384343
Nc =
cC =
3
0.4058509105773000
0.3333333333333340
0.0123456790123457
erroChebMax = 0.00152992292297832
-0.00308641975308642
-0.0586419753086420
170
171
1
( x + 1)
2
1
x
R 1 ( x) =
p o ( x)
q 1 ( x)
a 0 + a1x + L + a n x n
R nm ( x) =
= R M ( x) , onde M = n + m
b 0 + b1 x + L + b m x m
Esta tcnica consiste em se aproximar y = f(x) conhecida, x [-1;+1] atravs de uma
funo racional
R nm ( x) =
a 0 + a1x + L + a n x n
f ( x)
1 + b1 x + L + b m x m
(com b0=1 para obtermos uma nica soluo)
172
De modo que cada derivada de f(x) deve ser equivalente a derivada da aproximadora
racional Rnm(x):
f (0) = Rnm (0)
( 0)
f (0) = Rnm
(0)
f (0) = Rnm
M
f M (0) = Rnm
( 0)
(*)
p n ( x) = a 0 + a 1 x + L + a n x n e
q m ( x) = 1 + b 1 x + L + b m x m
com
os coeficientes ai e bj a ser
determinados:
e fM ( x ) R nm ( x )
a0 + a1 x + L + a n x n
(b0=1)
1 + b1 x + L + b m x m
(1 + b1 x + b2 x 2 + L + b m x m ).(c0 + c1 x + c2 x 2 + L + c M x M ) = a0 + a1 x + L + a n x n
c0 + c1 x + c2 x 2 + L + c M x M =
(**)
3). Aplicar as condies (**) e isolar os coeficientes ai, de i=0 at i=n, em funo dos valores
de bj e ck , para termos de graus i=0 at n
(1 + b1 x + b2 x 2 + L + b m x m ).(c0 + c1 x + c2 x 2 + L + c M x M ) = a0 + a1 x + L + a n x n
a 0 = c0
a = b c + c
1 0
1
1
a2 = b2 c0 + b1c1 + c2
a3 = b3c0 + b2 c1 + b1c2 + c3
a4 = b4 c0 + b3c1 + b2 c2 + b1c3 + c4
a5 = b5 c0 + b4 c1 + b3c2 + b2 c3 + b1c4 + c5
a = b c + b c
n n m
m 1 n m +1 + L + c n
n
(**)
(***)
Depois isolam-se os coeficientes bj, com variando j=1 at j=m, em funo dos valores de ck,
e fazendo todos os termos de graus n+1 at n+m iguais a zero, gerando sistema (****),
173
cn m+1 cn m + 2 L cn b m
c n +1
c
n m+ 2 cn m +3 L cn +1 b m-1 = - c n + 2
M
M
M
c M
c M-m cM m+1 L cM 1 b1
(****)
que um sistema linear mxm, cuja soluo fornece os bj, com j=1 at j=m, que substitdos em
(***) fornece os ai.
Obs.: Dependendo de n e m pode ocorrer que em (***) ou (****) apaream ai e bj com i<0 ou
j<0. Nestes casos, fazer sempre ai = 0 e bj = 0.
Ex1.: Obtenha a aproximao racional R32(x) para f(x) = arctg(x), x [-1;+1] e avalie o erro
exato no final.
Soluo:
Temos n = 3 ; m =2 e M = 5 com f(x) = arctg(x) , tomando a srie de Maclaurin
f1 ( x)= x
x 3 x5 x 7
x 2n -1
+ + L + (-1)n +1
3
5 14
7 4442444
2n4
-1
3
n = 1,2,..., N.
ET
x7
7
alternada nos sinais, o que resulta em ET=1/7=0,14286..., que precisa ser avaliado de forma
exata.
1
1
f ( x) = arctg ( x) f1 ( x) = 0 + x + 0 x 2 x 3 + 0 x 4 + x 5
3
5
c0 = 0
c1 = 1
c 3 = 1 / 3
c4 = 0
c2 = 0
c5 = 1 / 5
E queremos
p 3 ( x ) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 , para n = 3, m = 2 e M=5
q 2 ( x) = 1 + b 1 x + b 2 x 2
c0 + c1 x + c2 x 2 + c3 x 3 + c 4 x 4 + c5 x 5 =
a0 + a1 x + a 2 x 2 + a 3 x 3
1 + b1 x + b 2 x 2
(b0=1)
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c 5 x 5 )(1) +
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c 5 x 5 )(b1 x) +
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c 5 x 5 )(b 2 x 2 ) = (a0 + a1 x + a 2 x 2 + a 3 x 3 )
174
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c 5 x 5 ) +
(c0b1 x + c1b1 xx + c2b1 xx 2 + c 3b1 xx3 + c 4b1 xx 4 + c 5b1 xx 5 ) +
(c0 b 2 x 2 + c1b 2 x 2 x + c2 b 2 x 2 x 2 + c 3 b 2 x 2 x 3 + c 4 b 2 x 2 x 4 + c 5 b 2 x 2 x 5 ) = (a0 + a1 x + a 2 x 2 + a 3 x 3 )
Agrupando termos:
(c0 ) +
(c0 ) x 0 +
(c0b1 x + c1 x) +
(c0b1 + c1 ) x1 +
(c0 b 2 x 2 + c1b1 xx + c2 x 2 ) +
(c0 b 2 + c1b1 + c2 ) x 2 +
(c2 b1 xx 2 + c 3 x 3 + c1b 2 x 2 x +) +
(c2b1 + c1b 2 + c 3 ) x 3 +
(c2 b 2 x 2 x 2 + c 3b1 xx 3 + c 4 x 4 ) +
(c2 b 2 + c 3b1 + c 4 ) x 4 +
(c3 b 2 x 2 x 3 + c 4b1 xx 4 + c 5 x 5 ) +
(c3 b 2 + c 4b1 + c 5 ) x 5 +
(c 4 b 2 x 2 x 4 + c 5b1 xx 5 ) +
(c 4 b 2 + c 5b1 ) x 6 +
(c 5 b 2 x 2 x 5 ) = (a0 + a1 x + a 2 x 2 + a 3 x 3 )
(c 5 b 2 ) x 7 = (a0 + a1 x + a 2 x 2 + a 3 x 3 )
(c0 ) x 0 +
(c2 b 2 + c3b1 + c 4 ) x 4 +
(c0b1 + c1 ) x +
1
(c3 b 2 + c 4 b1 + c 5 ) x 5 +
(c0 b 2 + c1b1 + c2 ) x +
2
(c 4 b 2 + c 5b1 ) x 6 +
(c 5 b 2 )x 7 = 0 x 4 + 0 x 5 + 0 x 6 + 0 x 7
a0 = c0
a1 = c0b1 + c1
a 2 = c0 b 2 + c1b1 + c2
a 3 = c2b1 + c1b 2 + c 3
c2 b 2 + c3b1 = -c4
c3 b 2
c
= - 4
c 4 b1
c 5
0 1 / 3 b 2
0
=-
1 / 3
0 b1
1/5
b 1 = 0
b2 = 3 / 5
175
a 0 = c0
a = b c + c
1 1 0 1
a 2 = b2 c0 + b1c1 + c2
a3 = b3 c0 + b2 c1 + b1c2 + c3
2
para m = 2 b3 = 0 , pois q 2 ( x ) = 1 + b 1 x + b 2 x
a 0 = 0
a = (0). 0 + 1 = 1
1
a 2 = (3/5). 0 + 0. 1 + 0 = 0
a3 = 0.0 + (3/5). 1 + 0. 0 - 1/3 = 4/15
Da,
f ( x) = arctg ( x) R32 ( x) =
0 + 1.x + 0.x 2 + 4 / 15 .x 3 15 x + 4 x 3
=
1 + 0. x + 3 / 5. x 2
15 + 9 x 2
Algoritmo:
%Comparativo entre interpolao polinomial e series de taylor
%1-Interpolao polinomial para grau n >= 2
a = -1;
b = 1;
n = 5;
h = (b-a)/n;
x = a : h : b;
y = atan(x);
tsis = n+1;
for i = 1 : tsis
A(i,1) = 1;
for j = 2 : tsis
A(i,j) = A(i,j-1)*x(i);
endfor
A(i, tsis+1) = y(i);
endfor
A
C = fgauss(tsis,A) % coeficientes do polinomio interpolador
%2-aproximao por serie de maclaurin
%f1(x) = 0 + x + 0*x^2/2 - x^3/3 + 0*x^4/4! + x^5/5 ErroTruncamento1 = 1/7
%4-aproximao racional de pad
%f1(x) = 0 + x + 0*x^2/2 - x^3/3 + 0*x^4/4! + x^5/5 ErroTruncamento1 = (na real ... visto
no grafico)
%R32 = (a0 + a1x + a2x^2 + a3x^3)/(1 + b1x + b2*x^2)
npade = 3;
mpade = 2;
M = npade + mpade;
176
%determinar coeficientes C
%C COMEA DO 1
c = [0 1 0 -1/3 0 1/5]
%calcular os Bs
A=[
[c(3) c(4) -c(5)]; %o c(0) foi trocado por c(1) e etc pq o octave comea do 1
[c(4) c(5) -c(6)];
];
np = 20*n;
ap = -1;
bp = 1;
hp = (bp-ap)/np;
xp = ap:hp:bp;
yep = atan(xp);
for i = 1 : np+1
yip(i) = resto(n, C, xp(i));
endfor
yst = 0 .+ xp .+ 0 .*xp.^2 ./2 .- xp .^3 ./3 .+ 0 .*xp .^4 ./24 .+ xp .^5 ./120;
ypade=(a(0+1) + a(1+1) .*xp + a(2+1) .*xp.^2 + a(3+1) .*xp.^3) ./(1 + b(1) .*xp + b(2)
.*xp.^2);
x=[x 1.2];y=[y 1.2];
xp
Et=abs(yep-yst)
Ep=abs(yep-ypade)
%plot(x,y,'.',xp,yep,"r;f(x) = arctg(x);", xp,yip,"b;Pn(x) interpolador n=5;", xp, yst, "g; Srie
Maclaurim n=5;", xp, ypade, "c; Racional Pade R32;")
plot(xp,Et,"r;Erro=|arctg(x)-f1(x)|, f1(x)=Srie Maclaurim n=5;", xp, Ep, "m; Erro=|arctg(x)R32(x)|, R32(x)= Racional Pade;")
grid
177
-1
0,1104
0.006268
-0,5
0.00505
0.0001205
0
0
0,0
0,5
0.00505
0.0001205
1,0
0.1104
0.0062685
b
%R32 = (a0 + a1x + a2x^2 + a3x^3)/(1 + b1x + b2*x^2)
np = 1*n;
ap = -1;
bp = 1;
hp = (bp-ap)/np;
xp = ap:hp:bp;
yep = exp(xp);
for i = 1 : np+1
yip(i) = resto(n, C, xp(i));
endfor
yst = 1 .+ xp .+ xp.^2 ./ factorial(2) .+ xp.^3 ./ factorial(3) .+ xp.^4 ./ factorial(4) .+ xp.^5 ./
factorial(5)
ysc = 1 .+(383 .*xp)./384 +xp.^2 ./2 .+(17 .*xp.^3)./96 .+xp.^4 ./24;
ypade = (a(0+1) + a(1+1) .*xp + a(2+1) .*xp.^2 + a(3+1) .*xp.^3) ./(1 + b(1) .*xp + b(2)
.*xp.^2)
Et=abs(yep-yst)
Ec=abs(yep-ysc)
Ep=abs(yep-ypade)
x=[x 1.5]; y=[y 1.5]; %redimensionando os limites do grafico
plot(x,y,".",xp,yep,"r;F(x)=exp(x);", xp,yip,"b;Pn(x) interpolador n=5;", xp, yst, "k;Serie
Maclaurin n=5;", xp, ysc, "g; Serie Chebyschev n=4;", xp, ypade, "m; Pade R32;")
-1
-0.6
-0,2
0.2
0,6
1,0
1.2128.10-3
5.9636.10-5
8.6411.10-8
9.1494.10-8
7.0800.10-5
1.6152.10-3
6.9194.10-4
9.9136.10-5
4.4008.10-4
4.4026.10-4
3.1300.10-5
2.1360.10-3
-5
-5
-5
-5
-5
3.3311.10-5
6.3349.10
4.0049.10
7.5450.10
1.0510.10
1.0831.10
181
a0 + a1 x + a2 x 2 + a 3 x 3 + a 4 x 4
c0 + c1 x + c2 x + c3 x + c 4 x + c5 x + c 6 x + c7 x =
1 + b1 x + b2 x 2 + b3 x 3
2
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c 5 x 5 + c 6 x 6 + c 7 x 7 )(1 + b1 x + b2 x 2 + b3 x 3 ) = a0 + a1 x + a 2 x 2 + a 3 x 3 + a 4 x 4
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c5 x 5 + c 6 x 6 + c 7 x 7 )(1) +
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c5 x 5 + c 6 x 6 + c 7 x 7 )(b1 x) +
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c5 x 5 + c 6 x 6 + c 7 x 7 )(b2 x 2 ) +
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c5 x 5 + c 6 x 6 + c 7 x 7 )(b3 x 3 ) = a0 + a1 x + a2 x 2 + a 3 x 3 + a 4 x 4
(c0 + c1 x + c2 x 2 + c 3 x 3 + c 4 x 4 + c 5 x 5 + c 6 x 6 + c 7 x 7 ) +
(c0b1 x + c1b1 xx + c2 b1 xx 2 + c 3b1 xx 3 + c 4b1 xx 4 + c 5b1 xx 5 + c 6 b1 xx 6 + c 7 b1 xx 7 ) +
(c0b2 x 2 + c1b2 x 2 x + c2 b2 x 2 x 2 + c 3b2 x 2 x 3 + c 4b2 x 2 x 4 + c 5b2 x 2 x 5 + c 6 b2 x 2 x 6 + c 7 b2 x 2 x 7 ) +
(c0b3 x 3 + c1b3 x 3 x + c2 b3 x 3 x 2 + c 3b3 x 3 x 3 + c 4 b3 x 3 x 4 + c 5b3 x 3 x 5 + c 6b3 x 3 x 6 + c 7 b3 x 3 x 7 ) =
= a0 + a1 x + a2 x 2 + a 3 x 3 + a 4 x 4
182
(c0 ) +
(c1 + c0b1 ) x +
(c2 + c1b1 + c0b2 ) x 2 +
(c3 + c2b1 + c1b2 + c0b3 ) x 3 +
(c 4 + c 3b1 + c2b2 + c1b3 ) x 4 +
(c5 + c 4b1 + c 3b2 + c2b3 ) x 5 +
(c6 + c 5b1 + c 4b2 + c 3b3 ) x 6 +
(c7 + c 6b1 + c 5b2 + c 4b3 ) x 7 +
(c 7 b1 + c 6b2 + c 5b3 ) x 8 +
(c 7 b2 + c 6b3 ) x 9 +
(c 7 b3 ) x10 = a0 + a1 x + a2 x 2 + a 3 x 3 + a 4 x 4 + 0x 5 + 0x 6 + 0x 7 + 0x 8 + 0x 9 + 0x10
Resultado em:
(c0 ) = a0
(c1 + c0b1 ) = a1
(c2 + c1b1 + c0b2 ) = a2
(c3 + c2b1 + c1b2 + c0b3 ) = a 3
(c 4 + c 3b1 + c2b2 + c1b3 ) = a 4
(c5 + c 4b1 + c3b2 + c2 b3 ) = 0
(c6 + c 5b1 + c 4 b2 + c3b3 ) = 0
(c7 + c 6 b1 + c 5b2 + c 4 b3 ) = 0
(c 7 b1 + c 6b2 + c 5b3 ) x 8 despreza se
(c 7 b2 + c 6b3 ) x 9 despreza se
(c 7 b3 ) x10 despreza se
Exerccios:
Obtenha as seguintes aproximaes de Pad:
(i). R54(x) para f(x) = arctg(x).
(ii). R33(x) para f(x) = x ln(1+x)
(iii). R32(x) para f(x) = e-x
Consideraes:
1). No se tem uma forma prvia de se determinar os valores ideais de n e m para Rnm(x).
Trata-se de um processo de tentativa e erro, os autores do mtodo sugerem que se tome n =
m ou n = m +1 ou n = m-1.
Ex.: Para f(x) = ex tem-se que:
183
12 + 6x + x 2
e R 22 ( x) =
12 6x + x 2
x
e x R 40 ( x) = 1 + x +
e x R 04 ( x ) =
x2 x3 x4
+
+
2
6 24
1
2
x
x3 x4
1 x +
+
2
6 24
Emax = 0,0039961
Emax = 0,0099485
Emax = 0,051615
Dentre as trs aproximaes apresentadas, a forma R22 a que apresenta menor erro de
truncamento.
2). Para se obter uma aproximadora racional com distribuio uniforme de erros necessrio
compensar os erros na srie geradora. Desta forma se for utilizada previamente a srie
aproximadora por polinmios de Chebyschev no passo (1), se obtm uma distribuio de
erros uniforme na aproximao racional.
3). Pelos exemplos anteriores, nota-se que Pad no distribuiu uniformemente os erros em
[-1;+1], que um defeito previsvel, pois a distribuio de erros uma extenso de
Chebyschev. Para sanar este problema, mescla-se Pad com Chebyschev. Desta forma
utilizada primeiramente a srie aproximadora por polinmios de Chebyschev, distribuindo os
erros e reduzindo o grau total se for o caso, para depois se obter a aproximadora racional de
Pad sobre a srie de Chebyschev em funo de x.
Assim, Obtm-se inicialmente o polinmio aproximador de Chebyshev de grau M (menor que
o M usado na srie de Mclaurin) para representar f(x) em termos de Ti(x), analogamento
srie de Maclaurin :
M
f ( x) t ( x) = ck Tk ( x) = c0 + c1T1 + c2 T2 + L + c M TM
k =0
b T ( x ) r ( x) =
k =0
a 0 + a1T1 + L + a n Tn
1 + b1T1 L + b m Tm , com n+m=M (b =1).
0
Fazendo
f ( x ) t ( x) r ( x ) t ( x ) r ( x ) = 0
a0 + a1T1 + L + a nTn
=0
1 + b1T1 L + b m Tm
(c0 + c1T1 + c2 T2 + L + c M TM )(. 1 + b1T1 L + b m Tm ) (a0 + a1T1 + L + a nTn ) = 0
1 + b1T1 L + b m Tm
Assim,
(c0 + c1T1 + c2T2 + L + c M TM )(. 1 + b1T1 L + b m Tm ) (a0 + a1T1 + L + a nTn ) = 0
c0 + c1T1 + c2 T2 + L + c M TM
184
(c0 .bm Tm + c1.bm (Tm+1 + Tm1 ) / 2 + c2 .bm (Tm+ 2 + Tm-2 )/2 + L + c M .bm (TM + m + TM-m ) / 2) = (a0 .T0 + a1T1 + L + a nT
Agrupando termos:
(c M + c0 .bm + ...
(....
).TM +
f ( x) f 2 ( x) = ck Tk ( x) = c0 + c1T1 + c2 T2 + L + c M TM
k =0
Igualando
f ( x) f 2 ( x) = c0 + c1T1 + c2 T2 + c 3T3 + c 4 T4
a + a T + a 2T2
f ( x) R22 ( x) = 0 1 1
1 + b1T1 + b 2 T2
a0 + a1T1 + a 2T2
=0
1 + b1T1 + b 2 T2
(c0 .b1T1 + c1.b1 (T2 + T0 ) / 2 + c2 .b1 (T3 + T1 )/2 + c 3 .b1 (T4 + T2 )/2 + c 4 .b1 (T5 + T3 ) / 2) +
(c0 .b 2 T2 + c1 .b 2 (T3 + T1 ) / 2 + c2 .b 2 (T4 + T0 )/2 + c 3 .b 2 (T5 + T1 )/2 + c 4 .b 2 (T6 + T2 ) / 2) = (a0 .T0 + a1T1 + a 2T2 )
186
(c 4 + c 3 .b1 /2 + c 2 .b 2 /2 ).T4 = 0
(c 4 .b1 / 2 + c 3 .b 2 )/2).T5 = 0 desprezar
(c 4 .b 2 / 2).T6 = 0
desprezar
(c2 /2 + c 4 / 2).b1 + c1 .b 2 / 2 = c 3
c 3 .b1 /2 + c2 .b 2 /2 = c 4
a0 . = (c0 + c1 .b1 / 2 + c 2 .b 2 /2 )
baux= fgauss(mpade, A); %b comea em 1 mesmo, igual a formula do pade, pois bo=1
sempre.
b(1)=baux(2)
b(2)=baux(1)
%o b(0) NO foi trocado por b(1), pois s usamos b(1 e b(2)
b(3) = 0 %para m=2
%calcular os As
a(1) = c(1);
%o a(0) foi trocado por a(1) e etc =D
a(2) = b(1)*c(1) + c(2);
a(3) = b(2)*c(1) + b(1)*c(2) + c(3);
a(4) = b(3)*c(1) + b(2)*c(2) + b(1)*c(3) + c(4);
%R32 = (a1 + a2x + a3x^2 + a4x^3)/(1 + b1x + b2*x^2)
188
%5-aproximao racional de Pad sobre serie com polinomios de Chebyschev de M=4 termos
%f2(t) = (81*t0)/64+(217*t1)/192+(13 t2)/48+(17 t3)/384+t4/192
%R22(x)=(a1.T0 + a2.T1+ a3.T2 )/(1 + b1.T1 + b2.T2)
npade2 = 2;
mpade2 = 2;
M2 = npade2 + mpade2;
%determinar coeficientes c
%c COMEA DO 1
c2 = [81/64 217/192 13/48 17/384 1/192]
%calcular os b's
A2=[
[(c2(3)/2+c2(5)/2) c2(2)/2 -c2(4)]; %o c(0) foi trocado por c(1) e etc pq o octave
comea do 1
[ c2(4)/2
c2(3)/2 -c2(5)];
];
b2= fgauss(mpade2, A2); %b comea em 1 mesmo, igual a formula do pade, pois bo=1
sempre.
a2(1) = c2(1)
+c2(2)*b2(1)/2+c2(3)*b2(2)/2; %o a(0) foi trocado por a(1) e
etc =D
a2(2) = c2(2)+c2(1)*b2(1)+c2(3)*b2(1)/2+c2(2)*b2(2)/2+c2(4)*b2(2)/2;
a2(3) = c2(3)+c2(1)*b2(2)+c2(2)*b2(1)/2+c2(4)*b2(1)/2+c2(5)*b2(2)/2;
np = 20*n;
ap = -1;
bp = 1;
hp = (bp-ap)/np;
xp = ap:hp:bp;
yep = exp(xp);
for i = 1 : np+1
yip(i) = resto(n, C, xp(i));
endfor
yst = 1 .+ xp .+ xp.^2 ./ factorial(2) .+ xp.^3 ./ factorial(3) .+ xp.^4 ./ factorial(4) .+ xp.^5 ./
factorial(5);
ysc = 1 .+(383 .*xp)./384 +xp.^2 ./2 .+(17 .*xp.^3)./96 .+xp.^4 ./24;
ypade = (a(0+1) + a(1+1) .*xp + a(2+1) .*xp.^2 + a(3+1) .*xp.^3) ./(1 + b(1) .*xp + b(2)
.*xp.^2);
ypade2 = (a2(0+1)*1 + a2(1+1) .*xp + a2(2+1) .*(2.*xp.^2.-1) ) ./(1 + b2(1) .*xp + b2(2)
.*(2.*xp.^2-1));
Et=abs(yep-yst);
Ec=abs(yep-ysc);
Ep=abs(yep-ypade);
Epc=abs(yep-ypade2);
plot(xp,Et,"k;Erro=|f(x)-f1(x)|, f1(x)=Serie Maclaurim n=5;",xp,Ec,"g;Erro=|f(x)-f2(x)|,
f2(x)=Serie Chebyschev n=4;", xp, Ep, "m; Erro=|f(x)-R32(x)|, R32(x)= Racional Pade
189
+
2
6 24
190
...
...
xm
ym
Contudo, quando a funo tabelada for oriunda de experimentos, coleta de dados ... ,
desde que no caracterize caminhos, nenhuma das tcnicas anteriores adequada.
d k = g( x k ) y k
(i).
d
k =1
seja mnima:
(ii).
| d
k =1
| seja mnima:
Tambm uma forma ambgua, que no distingue dentre os ajustes bom e ruim, e no
permite minizao.
m
(iii).
d
k =1
2
k
seja mnima:
(4i)
= 25
= 17
k =1
m
(4ii)
k =1
x2
y2
...
...
xm
ym
k =1
k =1
d k2 = a0 + a1 xk + ... + an xkn yk
d
k =1
k =1
k =1
2
k
= 0,
= 0,
= 0 , ...
a 0
a 1
a 2
=0
an
onde
m
m
= 2[a0 + a1 xk + ... + an xkn yk ].xk = 0
a1 k =1
193
m
= 2[a0 + a1 xk + ... + an xkn yk ].xk2 = 0
a2 k =1
M
m
a0 + a1 x2 + ... + an x2 y2 +
a0
M
a + a x + ... + a x n y = 0
n m
m
0 1 m
Resultando
m
m
m
m
xk
xn
k
x x
x x
2
k
2
k
3
k
Obs.: Entenda-se
n +1
k
n+2
k
a yk
0
n +1
L
a1 xk yk
k
M =
M
L xk2 n an xkn yk
L
x
x
n
k
(*)
como
x
k =1
d
k =1
2
k
3
1
4
2
6
4
8
5
Soluo:
194
a 0 = 0.9458
a 1 = 0.7603
P1 ( x) = 0.9458 + 0.7603 x
x
k =1
i+ j 2
k
A =
det(A )
1 2
onde i =
a
j =1
2
ij
A = 0,05
0,25
1,284
0,5
1,6487
0,75
2,117
1,0
2,7183
195
n = 1 e m = 5 p 1 (x) = a 0 + a 1x
5 2 ,5 a 0 8,768
2 ,5 1,875 a = 5,4514
a 0 = 0,89968
(Mtodo LU Cholesky)
a 1 = 1.70784
5
2,5
1,875 a 0 8,768
a 0 = 1,00514
(Mtodo LU Cholesky)
D=
1 m 2
dk
m k =1
196
3 # 4 ) , ) , , )5
1 =2
2 =8>0
3)#
6
1#
1&
3 # 4 ) , ) , , )5
3)#
9
93 # 4 ) , ) , , )5
3#4
3) 3)
) , ) , , )5
3) #
3 # 4 ) , ) , , )5
3) 3)
93 # 4 ) , ) , , ) 5
3)# 3)
3 # 4 ) , ) , , )5
3) 3)
9
#
3 4 ) , ) , , )5 9
3)#
3#4
) , ) , , )5
3) 3)
3 # 4 ) , ) , , )5
3) #
#
3 4 ) , ) , , )5
3)# 3)
3#4
67 ,6:
9
=
9
) , ) , , )5
3) 3)#
9
3 # 4 ) , ) , , )5
3) 3)#
3 # 4 ) , ) , , )5 9
3)##
k =1
k =1
k =1
=9
67 ,6:, ,6;
xk
k =1
xk
k =1
m
x
k =1
2
k
9
>0
9
2
k
xk2
k =1
m
x
k =1
2
k
x
k =1
m
x x
k =1
3
k
3
k
k =1
4
k
9>0
9
E assim por diante, se H1>0, H2>0, ..., Hn>0, ento A matriz H positiva definida e o ponto
crtico obtido ( a0 , a1 , a2 ,..., an ) um ponto de mnimo.
6.1.2 - Ajuste por Mnimos Quadrados a Funes no Polinomiais:
Quando a plotagem, ou outra tcnica, sugerir que o conjunto de pontos
xk
x1
x2
...
xm
yk = f(xk) y1
y2
...
ym
tem tendncia no polinomial conhecida, o ajuste poder ser efetuado por:
1). Deduo direta para a forma no polinomial:
A exemplo do efetuado para funes polinomiais pode-se deduzir uma funo prpria
representativa dos pontos tabelados.
Exemplos:
a). Ajuste de 'm' pontos tabelados a uma curva do tipo:
g( x ) = a x 2 + b ln(x)
Note que nenhuma transformao de variveis gera uma funo polinomial, por isso para
obter procede-se a minimizao do desvio quadrtico total D que uma funo dos
parmetros (a,b):
k =1
k =1
197
=0 e
a
onde
=0
b
m
= 2[axk2 + b ln( xk ) yk ].xk2 = 0
a k =1
m
= 2[axk2 + b ln( xk ) yk ]. ln( xk ) = 0
b k =1
( x )a + ( ( x ln x ))b = ( y x )
( ( x ln x ))a + ( (ln x ) )b = ( y
4
k
2
k
2
k
2
k
ln x k )
Note que tambm nenhuma transformao de variveis gera uma funo polinomial, por isso
procede-se a minimizao do desvio quadrtico total D que uma funo dos parmetros
(a,b):
k =1
k =1
][ ]
m
(a, b)
= 2. axk2 + ln(bxk ) yk . xk2 = 0
a
k =1
m
x
( a, b)
= 2. axk2 + ln(bxk ) y k . k = 0
b
k =1
bxk
Nesses casos temos que determinar os valores de 'a' e 'b' pelo mtodo de Newton, a partir de
um valor inicial (ao,bo):
m
f
(a,
b)
=
axk2 + ln(bxk ) y k . xk2 = 0
k =1
m
1
f (a, b) =
axk2 + ln(bxk ) y k . = 0
b
k =1
][ ]
Exemplo:
Ajuste a tabela
xk
yk
1
3
2,5 13
4
22
6
36
4 14
14 62
a 0 10,155
a = 42,473
1
a 0 = 0.673
a 1 = 0,533
a = e 0,673 = 1,960
b = e 0 ,533 = 1,704
y = 1,96 (1,704) x
f ( 2 ,5) = 1,96 (1,704) 2 , 5 = 7 ,429
50 = 1,96 (1,704) x x = 6,077
199
b). Geomtricas: y = a xb
com b
b). Hiprboles: y =
1
a 0 + a 1x
1
= a 0 + a 1x
y
Fazendo 1 / y = z ; tem-se
z = a 0 + a 1 x que um polinmio de 1 grau em ( x k , z k ) .
?>
= A
(1)
Onde R a constante universal dos gases = 8,314 (J)/(mol.K) e os valores de 'a' e 'b' so parmetros
de cada gs, que podem ser determinados a partir de valores de propriedades fsicas do gs: P,v,T
medidos experimentantalmente.
Como toda medio experimental possui erros "inerentes", ento procedemos uma srie de 'm'
medies com o intuito compensar os erros de uma medida para outra. Nesse exemplo, foram
efetuadas 20 medies, descartadas 2 e sero consideradas m=18 medies efetivas para a
determinao dos parmetros 'a' e 'b' do gs, conforme segue:
m=18 % Nmero de pontos experimentais
v=[9.0 8.5 8.0 7.5 7.0 6.5 6.0 5.5 5.0 9.0 8.5 8.0 7.5 7.0 6.5 6.0 5.5 5.0 ] %v(m3/mol)
T=[300 310 320 340 360 370 380 390 400 410 420 440 460 470 480 490 500 510 ] % T (K)
P=[277.4415 303.5736 332.9762 377.4045 428.1888 473.9876 527.4325 590.6120 666.4529
379.1701 411.2932 457.8422 510.6061 559.0243 614.9029 680.1102 757.1948 849.7274] % P (Pa)
Se tivessemos 2 pontos obtidos com exatido, poderamos substitui-los na eq. (1) de Redlich
200
HI
I .J . J DK
L1 = 0
E# a, b =
HI#
J# K
L2 = 0
I# .J#. J#DK
?> P
= P
Q> P .= P . = P DA
< P R
(2)
Para determinar os parmetros 'a' e 'b', vamos obter o ponto crtico de D em relao a 'a' e 'b':
VM B,A
VB
VM B,A
VA
= S. T
P UO
?> P
= P
= S. T
P UO
?> P
= P
Q> P .= P . = P DA
B
Q> P .= P . = P DA
< P R . O
U
Q> P .= P = P DA
< P R . O? > P .
U .
U
A S
= P
R=W
(3)
B
Q> P .= P
XU B, A = T
P UO
= P
XS B, A = T
P UO
= P
?> P
Q> P .= P . = P DA
Q> P .= P . = P DA
< P R . O
Q> P .= P = P DA
U
R
= P DA S
= W (4)
R=W
(5)
y=y+(R*T(k)/(v(k)-x(2))-x(1)/(sqrt(T(k))*v(k)*(v(k)+x(2)))-P(k))*(-1./(sqrt(T(k))*v(k)*(v(k)+x(2))));
?> P
< P R . O? > P .
= P
A S
Q> P .= P
U
R
= P DA S
= W (6)
y=y+(R*T(k)/(v(k)-x(2))-x(1)/(sqrt(T(k))*v(k)*(v(k)+x(2)))-P(k))*(+R*T(k)/(v(k)-x(2))^2+x(1)/
(sqrt(T(k))*v(k)*(v(k)+x(2))^2));
Sugesto: aplique o Mtodo de Newton, com derivadas calculadas numericamente, para resolver as
o o
equaes (5) e (6) acima, a partir do valor inicial nulo (a ;b )=(0;0).
Calcule tambm o desvio quadrtico total mdio, eq. (7), entre os valores das Presses P obtidas
com a eq. (1), usando Tk, vk e a, b,obtidos das eqs. (5) e (6), em relao aos m=18 pontos Pk
experimentais:
M=
T
P UY
?> P
= P
Q> P .= P . = P DA
< P Z
(7)
xlabel('v(m3/mol)')
ylabel('T(K)')
zlabel('P(Pa)')
grid on
axis square
hold on
plot3(v,T,P,'*')
hold off
--------------xxxxx-------------------Function y=funoP(a,b,R,vp,Tp);
y=R*Tp/(vp-b)-a/(sqrt(Tp)*vp*(vp+b));
end
202
Ex.:
A tabela abaixo com m=5 pontos, obtidos experimentalmente, relaciona o volume adimensional de
lcool gerado V em um reator fictcio em funo da sua temperatura adimensional T mdia de reao:
T=[ 0.2 0.4 0.6 0.8 1.0 ];
V=[ 0.04 0.14 0.26 0.39 0.50 ];
Considere que o comportamento do volume de lcool gerado V em funo da sua temperatura mdia
2 -1
de reao T conhecida e dada por uma funo no polinomial V(T)=(a + b/T ) .
a). Avalie os parmetros a e b atravs de ajuste de curvas, por deduo direta da forma no
2 -1
polinomial V(T)=(a + b/T ) e por transformao parametrizada, transformando para polinomial, de
modo a levar em conta todas as m=5 medies experimentais em ambos os casos; (1,0)
2 -1
b). Calcule V(T=0.8), pela funo V(T)=(a + b/T ) ajustada e calcule o seu desvio local em T=0.8;
(0,5)
2
c). Monte um algoritmo que determine os parmetros a e b, de V(T)=1/(a + b/T ), atravs de
ajuste de curvas, direto e parametrizado, de modo a considerar as m=5 medies
experimentais acima. (2,0).
Vp=(aa.+bb.*Tp.^(-2)).^(-1);
plot(T,V,"*;Dados experimentais;",
1);")
x = 25.0000
y = 25.0000
A = 5.0000
36.5903
a = {1.11383
Tp,Vp,"g;V(T)=(aa+bb*T^(-2))^(-
1.0000
2.0000
aa = 1.1138
bb = 0.95610
[cont x erro]
end %while
aa=x(1)
bb=x(2)
%V(T)=(aa+bb*T^(-2))^(-1)
D=0;
for k=1:m
D=D+((aa+bb*T(k)^(-2))^(-1)-V(k))^(2);
end
D
Tp=T(1):(T(m)-T(1))/100:T(m);
Vp=(aa.+bb.*Tp.^(-2)).^(-1);
plot(T,V,"*;Dados experimentais;", Tp,Vp,"g;V(T)=(aa+bb*T^(-2))^(1);")
function y= g1(x,m,T,V)
y=0;
for k=1:m
y=y+((x(1)+x(2)*T(k)^(-2))^(-1)-V(k))*(x(1)+x(2)*T(k)^(-2))^(-2);
end
end
function y= g2(x,m,T,V)
y=0;
for k=1:m
y=y+((x(1)+x(2)*T(k)^(-2))^(-1)-V(k))*(x(1)+x(2)*T(k)^(-2))^(2)*T(k)^(-2);
end
end
A = -2.7106e+007 -3.4175e+007 -2.0361e+005
-3.4176e+007 -5.1403e+007 -2.8434e+005
iter = 1, aa=0.0133222, bb=0.0133228 , Erro=0.0033228
:
A = -9.0449e-002 -1.1392e-001 2.8297e-010
-1.1392e-001 -1.7062e-001 3.4188e-010
iter=21, aa=9.9164e-001, bb=1.0095e+000, Erro=3.8020e-009
aa = 0.99164
bb = 1.0095
D = 2.5234e-005 (o ajuste direto resulta em desvio total menor (MNIMO) que o ajuste
parametrizado).
205
f (x )dx (ou de
a
ordens superiores). No clculo este problema j foi abordado, como pode ser visto na
enciclopdia Wikipdia, http://pt.wikipedia.org/wiki/Integral#Integral_definida :
A integral de
no intervalo [a,b] igual
ao limite do somtrio de cada um dos valores que a
funo f(x) assume, de 0 a n, multiplicados
multipli
por
.O
que se espera que quando n for muito grande o valor
da soma acima se aproxime do valor da rea abaixo da
curva e, portanto, da integral de
no intervalo. Ou
seja, que o limite esteja definido. A definio de integral
aqui apresentada chamada
amada de soma de Riemann,
mas h outras formas (equivalentes).
so os nmeros
onde
quando x igual ao
no subintervalo
(podendo at mesmo ser
um destes pontos extremos do subintervalo).
Ex:
x 2
dx e
dx
ln(x)
2
Def. obter I =
f (x )dx
aproximadoras de y = f(x).
Os mtodos de integrao numrica podem ser agrupados em duas grandes
famlias:
1a) Newton;
2a) tipo Gauss.
207
Para se estimar I =
(b a )
.
n
p i (x) = y i +
x i +1
Da, Ai =
p ( x )dx = 2 [y
h
y i +1 y i
(x x i )
h
+ y i +1 ]
xi
Finalmente,
i =1
f ( x )dx A i =
h
[y1 + y 2 ] + h [y 2 + y 3 ] + ... + h [y n + y n +1 ]
2
2
2
h
= [y1 + 2 y 2 + 2 y 3 + ... + 2 y n + y n +1 ]
2
n
h
= y1 + 2. yi + yn +1 = Tn
2
i=2
Teorema:
b
lim T = f ( x )dx
n
n
a
1
f (x )dx , sendo
0
x
f(x)
0
3
0,25
0,5
5
8
Soluo:
0,75
2
208
Aplicando (1)
f ( x)dx
0
0,25
[3 + 2(5 + 8 + 4) + 2] 4,875
2
Devemos notar que o teorema quando utilizado em preciso finita pode ser invlido, pois
neste caso existe um 'n' timo, que no conhecido previamente.
Teorema do Resto:
b
Em
h ( b a )f ' ' ( )
, [a,b]
12
h 2 (b a )M
M = max f ' ' ( x )
ET
x[ a , b ]
12
com
, que um valor limite do erro de truncamento.
ET =
Para y = f(x), continuamente diferencivel dentro de [a; b], segundo o teorema de Taylor f(x)
pode ser escrita exatamente, a partir de qualquer ponto (x>), como:
f ()( x ) f ()( x ) 2
f n ()( x ) n
f ( x) = f () +
+
+ L +
+ L
1!
2!
n!
onde [ a ; b ] .
Pelo teorema do resto da srie de Taylor:
f ()( x )
f n ()( x ) n f n +1 ()( x ) n +1
f ( x) = f () +
+ L +
+
1!
n ! 3 144
(4
n2
+ 144
)! 4
14444444
4244444444
3
Pn ( x )
[; x]
Rn ( x )
Rn(x) = f ( x) Pn( x) =
f n +1 ( ) ( x xi )
i=0
( n + 1)!
No caso da aproximao por interpolao polinomial com n=1, usada no mtodo dos
Trapzios, f(x) = P1(x) + R1(x), onde os 2 pontos utilizados para ancorar P1(x) so xi e xi+1:
f 1+1 ( )( x xi )( x xi +1 )
f 1+1 ( )( x xi )( x xi +1 )
R1 ( x) =
e f ( x) = P1 ( x) +
(1 + 1)!
(1 + 1)!
Logo,
xi +1
xi +1
x
f 1+1 ( )( x xi )( x xi +1 )
f 2 ( ) i+1
=
+
f
(
x
)
dx
P
(
x
)
dx
=
A
+
(( x xi )( x xi +1 ) ).dx
i
x
x 1
+
(
1
1
)!
(
2
)!
xi
i
i
onde Ai a aproximao da rea de um Trapzio, entre xi e xi+1, dada por Ai =h/2*(yi+yi+1).
209
xi +1
xi
xi +1
f 2 ( )
f ( x)dx = Ai +
(2)!
xi
xi +1
f 2 ( ) x 3
x2
( xi + xi +1 ) + xi xi +1 x
x ( xi + xi +1 ) x + xi xi +1 .dx = Ai +
(2)! 3
2
x
xi +1
xi +1
f ( x)dx = Ai +
xi
f 2 ( ) x3
x2
( xi + xi +1 ) + xi xi +1 x = Ai + = Ai + ETn( )
(2)! 3
2
x
i
xi +1
3
3
2
2
f 2 ( ) x3
x2
f 2 ( ) xi +1 xi
xi +1 xi
( xi + xi +1 ) + xi xi +1 x =
ETn( ) =
( xi + xi +1 )
+ xi xi +1 ( xi +1 xi )
(2)! 3
2
(2)!
3
2
x
f ( ) x
ETn( ) =
(2)!
xi
x
( xi + xi +1 )
3
3
i +1
xi
+ xi xi +1 ( xi +1 xi )
2
2
i +1
com xi +1 = xi + h
3
2
f 2 ( ) ( xi + h)3 xi
( xi + h) 2 xi
ETn( ) =
x
x
h
x
x
h
x
h
x
(
+
+
)
+
(
+
)(
+
)
i
i
i
i
i
i
(2)!
3
2
ETn( ) =
3
2
3
2
2
f 2 ( ) ( xi + 3.xi h + 3.xi h 2 + h3 ) xi
( xi + 2 xi h + h) xi
x
h
x
x
h
h
(
2
+
)
+
(
+
)(
)
i
i
i
(2)!
3
2
3
2
3
f 2 ( ) xi 3.xi h 3.xi h 2 h3 xi
(2 xi h + h)
2
+
ETn( ) =
+
+
(2 xi + h)
+ hxi + xi .h
(2)! 3
3
3
3
3
2
ETn( ) =
2
2
f 2 ( ) 3.xi h 3.xi h 2 h3 4 xi h 2 xi h 2 xi h 2 h 2
2
.
+
+
+
hx
+
x
h
i
i
(2)! 3
3
3
2
2
2
2
Esta expresso do erro ETn() vlida para qualquer xi, ento pode-se simplificar esta
avaliao tomando um xi=0, logo:
ETn( ) =
f 2 ( ) h3 h 2 f 2 ( ) 2h3 3h 2
f 2 ( ) h 2
f 2 ( ).h 2
=
=
=
(2)! 3 2
(2)!
6
(2)! 6
12
ET ( ) =
f 2 ( ).h 2
12
Ento, o erro de truncamento em mdulo, tomando seu limite superior, mximo, total, no
intervalo [a,b], torna-se:
b
i =1
f ( x) dx Ai +
ETnMax =
a
ETnMax =
Max | f 2 ( x) | .h 2
dx =Tn + ETnMax
12
Max | f 2 ( x ) | .h 2
Max | f 2 ( x ) | .h 2
dx =
(b a )
12
12
Max f 2 ( x)
12
Exemplo: Determine o n mnimo para que o erro de truncamento seja menor que = 10-6 ao
6
efetuar I =
1 + x dx
Soluo:
210
10 6
h 2 .5.0,25
h 0,0030984
12
Para se contornar este problema pode-se efetuar algumas tentativas para TnI=
b
f (x )dx
Uma forma de anlise pode ser efetuada via extrapolao para o limite de Romberg,
que consiste em:
1o) Efetuar k tentativas por Trapzios com hnovo =
h velho
, obtendo os T1, T2, ..., Tk.
2
4 j Ti +j11 Ti j1
, j = 1, 2, ..., k 1
4j 1
Teorema (Romberg):
b
lim T = f ( x )dx
k
1
k
Exemplo: Efetuar
Soluo:
h
h
h
h
2
4
8
1,7272219
1,7205186
1,7188411
1,7184216
1,7182841
1,7182819
1,7182818
1,7182818
1,7182818
1,7182818
212
b) Mtodo de Simpson
No mtodo dos Trapzios usamos dois pontos sucessivos para interpolar a
integranda com dois pontos sucessivos. No mtodo de Simpson usam-se trs pontos
sucessivos para interpolar y = f(x) por uma parbola P2(x).
b
Para efetuar I =
f (x )dx
ba
;
n
2o) Para cada trs pontos sucessivos, (xi-1, yi-1), (xi, yi) e (xi+1, yi+1), igualmente espaados
com intervalo h = (xi-xi-1) = (xi+1 - xi), obter seu nico polinmio interpolador, por exemplo,
pelo Mtodo de Lagrange:
P2 ( x) = yi 1.
( x xi ).( x xi +1 )
( x xi 1 ).( x xi +1 )
( x xi 1 ).( x xi )
+ yi .
+ yi +1.
( xi 1 xi ).( xi 1 xi +1 )
( xi xi 1 ).( xi xi +1 )
( xi +1 xi 1 ).( xi +1 xi )
P2 ( x) = yi 1.
( x xi ).( x xi +1 )
( x xi 1 ).( x xi +1 )
( x xi 1 ).( x xi )
+ yi .
+ yi +1.
( h).(2h)
(h).( h)
(2h).(h)
f ( x)dx
xi 1
xi +1
P ( x)dx = 3 [ y
h
i 1
4o) Da,
+ 4 yi + yi +1 ]
xi 1
f ( x )dx 3 [y
h
+ 4y 2 + y3 ] +
f ( x)dx 3 [( y
h
h
[y 3 + 4 y 4 + y 5 ] + L + h [y n 1 + 4 y n + y n +1 ]
3
3
+ y n +1 ) + 4( y 2 + y 4 + L + y n ) + 2( y 3 + y 5 + L + y n 1 )]
h
[E + 4.P + 2.IP]
3
n ( passo 2 )
n 1( passo 2 )
h
= y1 + 4 * yi + 2 * yi + yn+1 = S n
3
i=2
i =3
Y y0
x1 x2
y1 y2
onde: x1 x0 = h e
x2 x1 = h.
Vamos construir a parbola (do segundo grau) que passa pelos trs pontos dados
213
e, em seguir, vamos integrar essa parbola, achando a rea entre a curva e o eixo
de X.
Claro que essa rea no se altera se deslocamos o eixo de Y para a posio x =
x1 . Figura abaixo:
...
Ficamos com a tabela:
X -h
Y y0
0 +h
y1 y2
(eq. 1a)
y1 = A (02) + B(0) + C = C
(eq. 1b)
(eq. 1c)
Esta uma frmula simples que permite calcular a integral da parbola que
passa pelos 3 pontos
X -h
Y y0
0 +h
y1 y2
214
x2 x1 = h, tem-se:
Voltando-se
se tabela total original, tem-se:
tem
X x0 = a x1 x2 ... xn-1 xn = b
Y y0
y1 y2 ... yn-1 yn
ou S n = y1 + 4 *
3
n ( passo 2 )
yi + 2 *
n 1( passo 2 )
i=2
y
i =3
+ y n +1
i
xi
yi=f(xi)
1
0
4
2
0,5
6
3
1
7,5
4
1,5
8
5
2
5
6
2,5
3
7
3
2
Soluo:
215
Sn =
3
n ( passo 2 )
n 1( passo 2 )
h
y
+
4
*
y
+
2
*
yi + y n + 1
1
i
3
i=2
i =3
f (x )dx
0
0,5
[(4 + 2) + 4(6 + 8 + 3) + 2(7,5 + 5)] 16,5
3
Consideraes:
1a) Simpson, via de regra, fornece resultados mais precisos que Trapzios para um mesmo
esforo. Novamente exige um n timo, pelos mesmos motivos do Trapzios.
2a) Para se determinar um n timo pode-se:
i) Algebricamente, atravs do erro de truncamento total do Simpson, dado
por:
h 4 (b a ) f iv ( )
, [a, b]
180
No operacional por causa do desconhecido. Operacionalizando:
h 4 (b a )M
(* *) E S
, onde M = max f iv ( x )
180
x[ a , b ]
ES =
(1 + x)
dx .
Soluo:
f(x) = (1+x) f(x) = -(1+x) f(x) = 2(1+x)-3 f(x) = -6(1+x)-4
-1
-2
24
24
=
5
32
(1 + 1)
h 4 .(5).0,75
h = 0,08323 n = 60
180
Aplicando em (* *)
180.32.10 6
h 4 .5.24
10 6
h4
h 4 48.10 6 h 0,0832358
180.32
120
5
n = = 60,07028... n = 60 (recomendado n = 64)
h
10-6
(Si+ 2 Si+1 )
Si + 2 2Si +1 + Si
Exemplo: Para
1 + x dx temos:
S1 = 39,874507
S2 = 39,77751
S3 = 39,77658
Aplicando em S temos:
216
S = 39,77658 -
0,000000864
S = 39,77657
0,096067
At o momento efetuamos I =
I f ( x )dx . Funciona
a
bem se f(x) uma funo bem comportada em [a,b], j se f(x) no for bem comportada
esta tcnica pode ser altamente ineficiente.
ba
;
n
hi
h
f ( x i ) + 4f ( x i + i ) + f ( x i + h i )
6
2
h
Q i = i [f ( x i ) + 4f ( x i + h i 4 ) + 2f ( x i + h i 2 ) + 4f ( x i + 3 h i 4 ) + f ( x i + h ) ]
12
x i +1
h ..16
se Pi Q i < i
f ( x )dx = Q i
h a
xi
obter Pi =
seno h 2 =
h1
e retorna para obter Pi e Qi com h2.
2
217
f (x )dx , onde:
b
com apenas dois (m=2) pontos de avaliaes de y = f(x), passando uma reta pelos extremos
dos intervalo, temos um Erro de Truncamento muito elevado, pois no mtodo de Newton
usamos um espaamento h constante. Por este motivo, Gauss props um mtodo de
aproximao, baseada em uma aproximao de f(x) por polinmios ortogonais de Legendre
de grau n=m-1, que minimizam o erro de truncamento e que integre de forma exata
polinmios de grau at 2m-1, calculados sobre m pontos escolhidos "adequadamente" de
modo a compensar os erros no clculo da rea abaixo da reta:
1o) Transformar x [a,b] em t [-1,+1] atravs de:
x(t ) =
ba
b+a
ba
.t +
dx =
dt
2
2
2
b+a
b a
b a b a
I = f ( x)dx =
f ( x(t ))dt =
f
.t +
1
dt
23
2
2
2
2
a
1
1 144
g (t )
42444
3
b
g (t )
m
1
1
f
(
x
(
t
))
dt
=
C ( m,k ) . f (b a)t ( m,k ) + (b + a) resultando em
1
2
2
k =1
2o) Calcular
b
I = f ( x )dx
a
(b a ) 1
2
f ( x (t )) dt =
(b a )
2
C
k =1
( m ,k )
1
1
. f (b a )t( m ,k ) + (b + a)
2
2
218
m
1
2
Cm,k
c1 = 2
tm,k
t1 = 0
c1 = 1
t1 =-
c2 = 1
c1 = 5 9
t2 = +
c2 =
t1 = - 3 / 5
t2 = 0
c3 = 5 9
c1 = 0,34785485
c2 = 0,65214515
c3 = 0,65214515
c4 = 0,34785485
c1 = 0.23692689
c2 = 0.47862867
c3 = 0.56888888
c4 = 0.47862867
c5 = 0.23692689
t3 = + 3 / 5
t1 = -0,86113631
t2 = -0,33998104
t3 = +0,33998104
t4 = +0,86113631
t1 = -0.90617985
t2 = -0.53846931
t3 = +0.00000000
t4 = +0.53846931
t5 = +0.90617985
Cmk
tmk
m=2
1
m=3
89
59
0.65214515486254614263
0.34785484513745385737
0.3399810435848562648
0.8611363115940525752
128225
0.47862867049936646804
0.23692688505618908751
0.00000000000000000000
0.53846931010568309104
0.90617984593866399280
0.46791393457269104739
0.36076157304813860757
0.17132449237917034504
0.23861918608319690863
0.66120938646626451366
0.93246951420315202781
5121225
0.38183005050511894495
0.27970539148927666790
0.129484966168869693271
0.00000000000000000000
0.40584515137739716691
0.74153118559939443986
0.94910791234275852453
m=4
m=5
m=6
m=7
Estes valores de tmk e Cmk podem calculados considerando que polinmios quaisquer de
grau at 2m-1,
1, para m pontos de avaliao, podem ser integrados por polinmios de grau
n=m-1, de forma exata:
:
1
k =1
g (t )dt = C
( m ,k )
.g (t ( m, k ) )
219
Para m=2 pontos, por exemplo, temos a aplicao de um polinmio de 1 grau n=2-1=1,
que integra polinmios g(t) de at 3 grau 2m-1=2.2-1=3, de forma exata, ento integra. P.
ex., g(t)=t0=1, g(t)=t1, g(t)=t2, g(t)=t3,
utilizando
k =1
1
1
k =1
g(t) = 1 =>
g(t) = t =>
g(t) = t2 =>
g(t) = t3 =>
=>
k =1
0 = C ( 2,1) .t ( 2,1) + C ( 2, 2) .t ( 2, 2)
2
2
2
t .dt = C(2,k ) .g (t (2,k ) ) => 2 / 3 = C(2,1) .(t (2,1) ) + C(2,2) .(t (2,2) )
1
1
1
k =1
k =1
3
3
3
t .dt = C( 2,k ) .g (t (2,k ) ) => 0 = C( 2,1) .(t (2,1) ) + C(2,2) .(t (2,2) )
2
Resolvendo este sistema no linear, pelo mtodo de Newton para x=[C21, C22, t21, t22],
conforme segue:
C ( 2 ,1) + C ( 2, 2 ) = 2
f 1 = x1 + x 2 2
f = x .x + x . x 0
1 3
2 4
C ( 2 ,1) .t ( 2,1) + C ( 2 , 2 ) .t ( 2, 2 ) = 0
2
=>
2
2
2
2
f 3 = x1 .( x 3 ) + x 2 .( x 4 ) 2 / 3
C ( 2 ,1) .(t ( 2 ,1) ) + C ( 2 , 2 ) .(t ( 2 , 2 ) ) = 2 / 3
f = x .x 3 + x .x 3 0
C .(t ) 3 + C .(t ) 3 = 0
1 3
2 4
4
( 2, 2 )
( 2, 2 )
( 2 ,1) ( 2 ,1)
Temos x=[C21, C22, t21, t22]:
C21
C22
t21
t22
E G m (b a ) 2 m +1
(m!) 4
Max f 2m (x) ,
3
(2m + 1)[(2m)!]
x [a; b]
lim EGm = 0
m
Exemplo:
Determine o nmero de pontos m mnimo para que o erro de truncamento mximo entre a
6
1
integral exata I= (1 + x ) dx e a aproximao por Gauss-Legendre seja inferior 10-6.
220
E G m (6 1) 2.6+1
12!
= 58472
(1 + 1) (12+1)
(6!) 4
Max f 2m (x) = 0,01342557
3
(2.6 + 1)[(2.6)!]
m=10:
20!
= 1,1601.1012
(1 + 1) ( 20+1)
20
Max|f2m| = f20(1) = (1) .
E G m (6 1) 2.10+1
(10!) 4
Max f 2m (x) = 0,00031719
(2.10 + 1)[(2.10)!]3
m=16:
Max|f2m| = f32(1) = (1) 32 .
E G m (6 1)
2.10 +1
32!
= 3,06325.10 25
(1 + 1) (32+1)
(10!) 4
Max f 2m (x) = 1,13669.10 -06
3
(2.10 + 1)[(2.10)!]
Note que necessrio apenas m=16 pontos (nossa tabela vai at m=5 pontos) no mtodo de GaussLegendre, que equivale a substituir f(x) por um polinmio de grau n=15, ou usar 15 subintervalos
entre o intervalo [a,b], enquanto nos mtodos de Simpson e Trapzios necessitvamos de n= 60 e
n=1614 subdivises do intervalo [a,b], respectivamente.
4
ln(x)dx , com m = 3.
1
Soluo:
Temos: f(x) = ln(x)
dx = 1,5dt
Assim,
1
i =1
I = g (t )dt = ci g (ti )
I = c1 g (t1 ) + c2 g (t 2 ) + c3 g (t3 )
I=
I = 1,69739
I .(b-a). I = 1,5. 1,69739 = 2,54608
Iexata =
2,545177
Exemplo: Determine I =
1 + x dx
221
a= 1
b= 6
m= 3
m
t(m,k)
C(m,k)
____________________________
3
-0.77459667 0.55555555
0.00000000 0.88888888
0.77459667 0.55555555
b
I = f ( x)dx =
a
Gm =
(b a ) .
2
(b a ) 1
2
C
k =1
( m ,k )
f ( x (t )) dt
. f ( xk ) =
(b a ) .
t(m,k)
(b a )
2
C
k =1
( m ,k )
1
1
. f (b a )t ( m ,k ) + (b + a ) = Gm
2
2
C
k =1
xk =
( m ,k )
. yk
ba
b+a
.t (m,k) +
2
2
yk = f (xk )
_________________________________________________________
1
-0.77459667
1.563508325
0.390090404719087
2
0.
3.5
0.222222222222222
3
0.77459667
5.436491675
0.155364140978245
(b a ) .[C
( 3 ,1) . f ( x1 ) + C ( 3 , 2 ) . f ( x 2 ) + C ( 3, 3 ) . f ( x3 )
2
(6 1) .[0,55555555 . 0,39009040 4719087 + 0,88888888 . 0,22222222 2222222 + 0,55555555 . 0,15536414 0978245 ]
Gm =
2
(
6 1)
Gm =
.[0,21671689 1510604 + 0,19753086 4197531 + 0,08631341 1654580545 ]
2
(6 1) .[0.50056116 736271645 ]
Gm =
2
Gm =
Gm = 1.25140291840679
Se determinarmos o Polinmio de grau n=2, que passa sobre os 3 pontos (xk,yk), teremos os
seguintes coeficientes: P2(x)=a0+a1.x+a2.x2
a0 = 0.599327, a1 = -0.154882 e a2 = 0.013468
222
dx
dx
dx
=
+
ex: I =
2x 1 2x 2 2x
1
5a) Gauss de natureza aberta, isto , a integranda no avaliada nos extremos a e b. Em
decorrncia disso:
b
Pode-se efetuar I =
ln(x )dx :
Ex: Efetue I =
f(x) = ln(x)
g(t) = ln(0,5t + 0,5)
x = 0,5t + 0,5
m=3
ln xdx 0,94767237
(=
c g( t ) )
i
f (x )dx , fazendo:
a
y = 1/ x x =
f ( x)dx =
1/ a
dx =
y2
[a, ) ~ [ a ,0]
dy
a
f ( y)
f ( y)
dy
=
dy
2
2
y
y
0
= +
223
9.1 Introduo:
Equaes Diferenciais Ordinrias EDOs - ocorrem com muita freqncia na
modelao de fenmenos da natureza, como a taxa de variao da posio de um mvel x
como funo do tempo t e de sua acelerao a. No caso de acelerao a constante,
temos o movimento uniformemente variado, amplamente conhecido da Fsica, mas que
tambm pode ser modelado como a seguinte Equao Diferencial Ordinria de 1. Ordem e
suas condies iniciais:
d 2x
(t ) = a , onde a= acelerao
dt 2
dx
(0) = v0 , valor da velocidade inicial.
dt
d dx(t )
dx(t )
dx(t )
= a.t + C1
= a => d
= a.dt =>
dt
dt dt
dt
Integrando novamente teremos:
dx
(0) = v0 e x(0) = x0 , teremos
dt
x(t ) = a.t 2 / 2 + v0 .t + x0
H vrios mtodos que resolvem analiticamente uma equao destas, mas nem sempre
possvel obter-se esta soluo analtica, como a obtida acima.
Nestes casos, os mtodos numricos so a sada para se encontrar uma soluo
aproximada. Por exemplo, mesmo equaes diferenciais com aspecto simples como,
y= x+y
ou
y= 6y+x
(8.1)
Onde
; n= 1,2,...,
224
Suponhamos que a soluo da equao diferencial (8.2) seja dada por y = F(x)= ex
conforme figura abaixo,
Como conhecemos
Assim a reta r0(x) passa por (x0, y0), com coeficiente angular
, e podemos definir
.
Onde (x1-x0) o espaamento h entre dois pontos sucessivos, que permite calcular o
prximo ponto x1. O espaamento uniforme pode ser calculado como h=(b-a)/n, onde
x[a,b] e n o nmero total de subdivises do intervalo.
(8.3)
O raciocnio repetido com
assim sucessivamente. Generalizando, temos:
225
(8.4)
Ou y(k) = y(k-1) + h f(x (k-1), y(k-1)) e x(k) = x(k-1) + h, k=1,2,...n+1
(8.5)
Este o Mtodo de Euler Simples, que usa aproximaes de primeira ordem e toma
apenas os 2 primeiros termos da srie de Taylor.
Exemplo 1: Determine o valor de y em x = 1, com erro estimado inferior
considerando que y = x y + 2 e y(0) = 2.
a 10-6 ,
ponto novo
K1=f(xk,yk)
0,000000000
0,125
2,000000000
0,12500
2,000000000
0,125000000
0,250
2,015625000
0,25000
2,015625000
0,234375000
0,375
2,044921875
0,37500
2,044921875
0,330078125
0,500
2,086181641
0,50000
2,086181641
0,413818359
0,625
2,137908936
0,62500
2,137908936
0,487091064
0,750
2,198795319
0,75000
2,198795319
0,551204681
0,875
2,267695904
0,87500
2,267695904
0,607304096
1,000
2,343608916
1,00000
2,343608916
y(0) = 2
y(1) ~ 2,34360
Qual o erro associado?
Se repetirmos todo o clculo com o dobro de sub-divises, n = 16, teremos um valor y(1)
com erros de truncamento muito inferiores, que pode ser considerado um valor exato
estimado:
h = (1-0)/16 = 0,0625
y1 = y0 + h. f(x0,y0)
y1 = 2 + 0.0625.(0-2+2)
y1 = 2
ponto inicial
y2 = 2 + 0,0625.(0,0625-2+2)
y2 = 2,00391
ponto novo
K1=f(xk,yk)
0,06250
2,000000000
0,12500
2,003906250
226
0,18750
2,011474609
0,25000
2,022476196
0,31250
2,036696434
0,37500
2,053934157
0,43750
2,074000772
0,50000
2,096719474
0,56250
2,121924507
10
0,62500
2,149460475
11
0,68750
2,179181695
12
0,75000
2,210951589
13
0,81250
2,244642115
14
0,87500
2,280133233
15
0,93750
2,317312406
16
1,00000
2,356074130
ErroExatoEstimado=
0,012465215
227
Dado o ponto inicial (xn,yn), supomos a situao ideal em que a curva desenhada com linha
cheia seja a soluo y(x) da nossa equao (isto s acontece mesmo no ponto incial (xn,yn).
Por (xn,yn) traamos a reta L1, definida por z1(x), cujo coeficiente angular
, ou seja,
do mtodo de Euler,
A reta pontilhada Lo passa por P e tem por inclinao a mdia das inclinaes da
retas L1 e L2, ou seja, sua inclinao
A reta L passa por (xn,yn) e paralela reta Lo, ou seja, inclinao mdia no intervalo e
representada por:
O valor fornecido para yn+1 pelo mtodo de Euler Aperfeioado z(xn + h) = z(xn+1),
ou seja
a2 =
b1 = 1
b2 = 1
y(0) = 2
y(1) = ?
n=8
h = (1-0)/8 = 0,125
ponto inicial
ponto novo
K1=f(xk,yk)
K2=f(xk+h,yk+h*K1)
0,000000000
0,125000000
0,125
2,007812500
0,125
2,007812500
0,117187500
0,227539063
0,250
2,029357910
0,250
2,029357910
0,220642090
0,318061829
0,375
2,063026905
0,375
2,063026905
0,311973095
0,397976458
0,500
2,107398752
0,500
2,107398752
0,392601248
0,468526092
0,625
2,161219211
0,625
2,161219211
0,463780789
0,530808190
0,750
2,223381022
0,750
2,223381022
0,526618978
0,585791606
0,875
2,292906684
0,875
2,292906684
0,582093316
0,634331652
1,000
2,368933244
1,000
2,368933244
Agora com n = 16
ponto inicial
ponto novo
K1=f(xk,yk)
K2=f(xk+h,yk+h*K1)
0,000000000
0,062500000
0,063
2,001953125
0,063
2,001953125
0,060546875
0,119262695
0,125
2,007572174
0,125
2,007572174
0,117427826
0,172588587
0,188
2,016635187
0,188
2,016635187
0,170864813
0,222685762
0,250
2,028933642
0,250
2,028933642
0,221066358
0,269749710
0,313
2,044271645
0,313
2,044271645
0,268228355
0,313964083
0,375
2,062465158
0,375
2,062465158
0,312534842
0,355501414
0,438
2,083341291
0,438
2,083341291
0,354158709
0,394523789
0,500
2,106737619
0,500
2,106737619
0,393262381
0,431183482
0,563
2,132501553
0,563
2,132501553
0,429998447
0,465623544
0,625
2,160489740
10
0,625
2,160489740
0,464510260
0,497978369
0,688
2,190567509
11
0,688
2,190567509
0,496932491
0,528374210
0,750
2,222608344
12
0,750
2,222608344
0,527391656
0,556929678
0,813
2,256493386
13
0,813
2,256493386
0,556006614
0,583756201
0,875
2,292110974
14
0,875
2,292110974
0,582889026
0,608958462
0,938
2,329356208
15
0,938
2,329356208
0,608143792
0,632634805
1,000
2,368130539
16
1,000
2,368130539
230
ErroExatoEstimado=
y(1) ~ 2,36893
y(1) ~ 2,36813
0,000802705
n= 8
n= 16 (valor de referncia)
h
yi +1 = yi + .(K 1 + 2.K 2 + 2.K 3 + K 4 )
6
K1 = f ( xi ; yi )
K 2 = f ( xi + h / 2; yi + h / 2 * K1 )
K 3 = f ( xi + h / 2; yi + h / 2 * K 2 )
K 4 = f ( xi + h; yi + h * K 3 )
Voltando ao nosso Exemplo 1, considerando agora o Mtodo de Runge-Kutta de 4 ordem,
temos:
y = x y +2
y(0) = 2
y(1) = ?
n=8
h = (1-0)/8 = 0,125
ponto inicial
ponto novo
K1=f(xk,yk)
0,000000000
K2=f(xk+h/2,
yk+h/2*K1)
0,062500000
K3=f(xk+h/2,
yk+h/2*K2)
0,058593750
K4=f(xk+h,
x
y
yk+h*K3)
0,117675781 0,125 2,007497152
0,172658920
0,169211666
0,269873854
0,266831661
0,355665755
0,352981029
0,431376864
0,429007601
0,498191703
0,496100835
0,557155607
0,555310422
0,609191084
0,607562714
K2=f(xk+h/2,
yk+h/2*K1)
K3=f(xk+h/2,
yk+h/2*K2)
8 1,000 2,367880272
Agora com n = 16
ponto inicial
ponto novo
K4=f(xk+h,
yk+h*K3)
K1=f(xk,yk)
0,000000000
0,031250000
0,030273438
0,089943588
0,089026192
0,145081111
0,144219298
0,196878022
0,196068423
231
0,245536716
0,244776168
0,291247330
0,290532861
0,334188478
0,333517297
0,374527953
0,373897437
0,412423384
0,411831069
0,448022847
0,447466418
0,481465448
0,480942731
0,512881864
0,512390817
0,542394856
0,541933561
0,570119747
0,569686400
0,596164871
0,595757779
0,620632002
0,620249574
16 1,0000 2,367879490
ErroExatoEstimado =
0,000000781
n=8
n = 16 (valor de referncia)
dy
dy
+ y).u(x) = (x + 2).u(x) u(x) + u(x).y(x) = (x + 2).u(x)
dx
dx
Gostaramos que no lado esquerdo tivssemos apenas a derivada do produto
u(x).y(x). Ou seja que
(
d(u(x).y(x))
dy(x) du(x)
= u(x).
+
.y(x) fosse igual a
dx
dx
dx
dy(x)
u(x).
+ u(x) .y(x)
dx
Comparando termo a termo, o fator integrante, caso exista, deve satisfazer:
du(x)
= u(x)
dx
Resolvendo essa equao acima de variveis separveis, temos:
du(x)
du(x)
= dx =>
= dx ln(u(x))=x+C, escolhendo C=0 teremos =>
u(x)
u(x)
u(x) = ex ,
Substituindo o nosso fator integrante u(x), temos que
232
dy
dy
d(e x .y(x))
+ y).e x = e x . + e x .y =
, assim podemos trocar o termo
dx
dx
dx
dy
d(e x .y(x))
( + y).ex por
e a nossa EDO fica:
dx
dx
(
dy
d(e x .y(x))
d(e x .y(x))
x
x
( + y).e =
= (x + 2).e
= (x + 2).e x
dx
dx
dx
Integrando
por partes
Sistemas de EDOs:
Exemplo:
Equao Diferencial Ordinaria (EDO) de 2a. Ordem, reduzida ao um sistema de 2 EDOs de
1 ordem;
y''-4y'+4y=8t^2-16t+4;
y(0)=0;
y'(0)=1;
Como podemos resolver apenas uma EDO por vez, com a nossa metodologia, podemos
transformar uma EDO de 2. ordem em 2 sistemas de EDOs de 1. ordem,m com a
seguinte mudana de variveis:
y1(t)=y(t) -> y1'(t)=y'(t)=y2(t)
y1'(t)=z1(t,y1,y2)=y2;
233
y1(0)=y(0)=0
y2(t)=y'(t) -> y2'(t)=y''(t)=+4y'-4y+8t^2-16t+4
y2'(t)=z2(x,y1,y2)=+4y2-4y1+8x^2-16x+4 ;
y2(0)=y'(0)=1
Resultando em 2 EDOs com 2 condies iniciais:
y1'(t)=z1(t,y1,y2)=y2;
y1(0)=y(0)=0
y2'(t)=z2(x,y1,y2)=+4y2-4y1+8x^2-16x+4 ;
y2(0)=y'(0)=1
E resolvemos as 2 EDOs simultaneamente, pois uma depende da outra, atravs de uma
algoritmo como que segue:
y1(k)+h*K31,
y1(k)+h*K31,
y2(k)+h*K32
y2(k)+h*K32
);
);
x(k+1)=x(k)+h;
y1(k+1)=y1(k)+(h/6)*(K1z1+2*(K2z1+K3z1)+K4z1);
y2(k+1)=y2(k)+(h/6)*(K1z2+2*(K2z2+K3z2)+K4z2);
ye(k+1)=2*x(k+1)*x(k+1)+x(k+1)*exp(2*x(k+1));
[x(k+1) K1z1 K1z2 K2z1 K2z2 K3z1 K3z2 K4z1 K4z2 y1(k+1) y2(k+1) ye(k+1)]
end
erroexato=abs(ye(n+1)-y1(n+1))
plot(x,ye,'*',x,y1,'r')
234