Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUO AOS
MTODOS
NUMRICOS
URL: http://www.professores.uff.br/diomar_cesar_lobao
1
SUMRIO
1 INTRODUO .....................................................................................................................................4
2 CONCEITO DE ERRO........................................................................................................................5
2.1 INTRODUO .....................................................................................................................................5
2.2 ERROS NA FASE DE MODELAGEM ......................................................................................................5
2.3 ERROS NA FASE DE RESOLUO ........................................................................................................5
2.4 ERROS ABSOLUTOS E RELATIVOS ......................................................................................................5
2.5 ERRO DE ARREDONDAMENTO............................................................................................................6
2.6 ERRO DE TRUNCAMENTO...................................................................................................................7
3 REPRESENTAO DOS NMEROS REAIS .................................................................................9
3.1 INTRODUO .....................................................................................................................................9
3.2 SISTEMA DE NUMERAO ...............................................................................................................10
3.2.1 Sistema de Numerao Decimal ...........................................................................................................10
3.2.2 Sistema de Numerao Binrio ............................................................................................................10
3.2.3 Converso do Sistema Decimal para Binrio ......................................................................................10
3.3 ARITMTICA DE PONTO FLUTUANTE ...............................................................................................13
3.4 PROPAGAO DE ERROS ..................................................................................................................15
4 ZEROS DE EQUAES TRANSCENDENTES E POLINOMIAIS............................................17
4.1 INTRODUO ...................................................................................................................................17
4.1.1 Derivada de uma funo num ponto.....................................................................................................17
4.1.2 Tipos de Mtodos ..................................................................................................................................17
4.1.3 Isolamento de Razes ............................................................................................................................18
4.1.4 Classificao dos mtodos....................................................................................................................19
4.2 MTODO DA BISSEO ....................................................................................................................20
4.2.1 Estimativa do Nmero de Iteraes......................................................................................................20
4.2.2 Consideraes Finais ...........................................................................................................................21
4.2.3 Exemplos...............................................................................................................................................21
4.3 MTODO DA FALSA POSIO ..........................................................................................................22
4.3.1 Casos especiais .....................................................................................................................................23
4.3.2 Consideraes finais.............................................................................................................................24
4.3.3 Exemplos...............................................................................................................................................24
4.4 MTODO DA ITERAO LINEAR ......................................................................................................25
4.4.1 Casos de convergncia .........................................................................................................................26
4.4.2 Consideraes finais.............................................................................................................................27
4.4.3 Exemplos...............................................................................................................................................27
4.5 MTODO DE NEWTON-RAPHSON OU MTODO DAS TANGENTES .....................................................28
4.5.1 Consideraes finais.............................................................................................................................29
4.5.2 Exemplos...............................................................................................................................................29
4.5.3 Condies de Newton-Raphson-Fourier...............................................................................................30
4.6 MTODO DA SECANTE .....................................................................................................................32
4.6.1 Exemplos...............................................................................................................................................33
4.7 MTODO MISTO ..............................................................................................................................34
4.7.1 Exemplos...............................................................................................................................................34
4.8 MTODO PARA EQUAES POLINMIAIS.........................................................................................35
4.8.1 Introduo.............................................................................................................................................35
4.8.2 Localizao de Razes...........................................................................................................................35
4.8.3 Determinao das Razes Reais............................................................................................................37
2
4.8.4 Mtodo de Newton para Zeros de Polinmios......................................................................................38
5 SISTEMAS LINEARES .....................................................................................................................41
5.1 INTRODUO ...................................................................................................................................41
5.1.1 Classificao Quanto ao Nmero de Solues.....................................................................................41
5.2 MTODOS DIRETOS (ALGORITMOS DIRETOS)..................................................................................42
5.2.1 Regra de Cramer ..................................................................................................................................42
5.2.2 Mtodo da Eliminao de Gauss ..........................................................................................................43
5.2.3 Mtodo de Jordan .................................................................................................................................45
5.2.4 Exemplos...............................................................................................................................................45
5.3 FATORAO LU-CROUT-CHOLESKY-DOOLITLE .............................................................................46
5.3.1 Clculo dos Fatores L e U....................................................................................................................47
5.4 MTODOS ITERATIVOS (ALGORITMOS ITERATIVOS)........................................................................50
5.4.1 Mtodo de Gauss-Jacobi ( Algbrico ) .................................................................................................50
5.4.2 Mtodo de Gauss-Jacobi ( Matricial )..................................................................................................52
5.4.3 Mtodo de Gauss-Seidel ( Algbrico ) ..................................................................................................54
5.4.4 Mtodo de Gauss-Seidel ( Matricial )...................................................................................................56
5.4.5 Segunda Abordagem da Frmula Matricial do Mtodo Gauss-Seidel.................................................58
5.4.6 Mtodo da Sobrerelaxao Sucessiva .................................................................................................63
5.4.7 Condies Necessria e Suficiente para Convergncia do Mtodo de Gauss-Jacobi e Gauss-Seidel 64
6 INTERPOLAO ..............................................................................................................................66
6.1 INTRODUO ...................................................................................................................................66
6.1.1 Conceito de Interpolao......................................................................................................................66
6.2 INTERPOLAO LINEAR ...................................................................................................................67
6.2.1 Obteno da Frmula...........................................................................................................................67
6.2.2 Exemplos...............................................................................................................................................68
6.3 INTERPOLAO QUADRTICA .........................................................................................................69
6.3.1 Obteno da Frmula...........................................................................................................................69
6.3.2 Exemplos...............................................................................................................................................69
6.4 INTERPOLAO DE LAGRANGE ........................................................................................................71
6.4.1 Obteno da Frmula...........................................................................................................................72
6.4.2 Exemplos: .............................................................................................................................................73
6.5 INTERPOLAO PARABLICA PROGRESSIVA ...................................................................................74
6.6 INTERPOLAO DE NEWTON COM DIFERENAS DIVIDIDAS .............................................................75
6.6.1 Diferenas Divididas ............................................................................................................................75
6.6.2 Propriedade do Operador Diferenas Divididas .................................................................................76
6.6.3 Exemplos...............................................................................................................................................76
6.7 INTERPOLAO DE GREGORY-NEWTON ..........................................................................................78
6.7.1 Diferenas Ordinrias ou Finitas.........................................................................................................79
6.7.2 Relao entre diferenas divididas e diferenas ordinrias.................................................................79
6.7.3 Gregory-Newton usando Diferenas Ordinrias..................................................................................79
6.7.4 Exemplos...............................................................................................................................................79
6.8 INTERPOLAO SPLINES: LINEAR, QUADRTICA, CBICA ..............................................................80
6.8.1 Spline Linear.........................................................................................................................................81
6.8.2 Spline Quadrtica.................................................................................................................................84
6.8.3 Spline Cbica Natural ..........................................................................................................................87
6.8.4 Consideraes Gerais sobre Interpolao ...........................................................................................93
7 AJUSTE DE CURVAS .......................................................................................................................95
7.1 MTODO DOS QUADRADOS MNIMOS ..............................................................................................96
7.1.1 Ajuste Linear Simples ...........................................................................................................................97
7.1.2 Ajuste Polinomial..................................................................................................................................99
8 INTEGRAO NUMRICA..........................................................................................................103
8.1 INTRODUO .................................................................................................................................103
8.1.1 Frmulas de Newton-Cotes ................................................................................................................104
8.2 REGRA DOS RETNGULOS .............................................................................................................105
3
8.2.1 Exemplos.............................................................................................................................................106
8.3 REGRA DOS TRAPZIOS .................................................................................................................107
8.3.1 Regra do Trapzio Repetida ...............................................................................................................108
8.3.2 Exemplos.............................................................................................................................................108
8.4 REGRA DE SIMPSON .......................................................................................................................109
8.4.1 Regra de Simpson Repetida ................................................................................................................110
8.4.2 Exemplos.............................................................................................................................................110
9 SOLUO NUMRICA DE EQUAES DIFERENCIAIS ORDINRIAS...........................112
9.1 INTRODUO .................................................................................................................................112
9.2 TIPOS DE EQUAES DIFERENCIAIS ...............................................................................................112
9.2.1 Equaes Diferenciais Ordinrias .....................................................................................................112
9.2.2 Equaes Diferenciais Parciais..........................................................................................................113
9.3 SOLUO DE EQUAES DIFERENCIAIS ........................................................................................113
9.4 ORDEM DE UMA EQUAO DIFERENCIAL ORDINRIA ...................................................................114
9.5 REDUO DE EQUAES DIFERENCIAIS ORDINRIAS ...................................................................114
9.6 SOLUO NUMRICA DE EQUAES DIFERENCIAIS ORDINRIAS PROBLEMA DE VALOR INICIAL
116
9.6.1 Mtodo de Euler..................................................................................................................................117
9.7 ANLISE DO ERRO PARA O MTODO DE EULER NA SOLUO NUMRICA DO PROBLEMA DE VALOR
INICIAL ....................................................................................................................................................120
9.8 MTODO DE EULER MODIFICADO..................................................................................................121
9.8.1 Mtodo Heum......................................................................................................................................124
9.8.2 Mtodo Runge-Kutta...........................................................................................................................127
9.8.3 Derivao do Mtodo de Runge-Kutta de Segunda Ordem................................................................128
9.8.4 Mtodo de Heun..................................................................................................................................128
9.8.5 Mtodo de Euler Modificado ..............................................................................................................129
9.8.6 Mtodo de Ralston ..............................................................................................................................129
9.9 MTODO DE RUNGE_KUTTA TERCEIRA ORDEM............................................................................131
9.10 MTODO DE RUNGE_KUTTA QUARTA ORDEM ..........................................................................131
9.11 MTODOS DE PASSOS MLTIPLOS..............................................................................................132
9.12 IDIA BASICA DOS MTODOS DE PASSOS MLTIPLOS ................................................................133
9.12.1 Mtodos Explcitos..............................................................................................................................134
9.12.2 Algoritmos de Adans-Bashforth de ordem m ......................................................................................134
9.12.3 Mtodos Implcitos..............................................................................................................................134
9.12.4 Algoritmos de Adans-Moulton de ordem m ........................................................................................134
9.12.5 Passos para se obter y n +1 ..................................................................................................................135
9.13 SOLUO DE SISTEMAS DE EQUAES DIFERENCIAIS................................................................137
10 UTILIZANDO O MATLAB .........................................................................................................146
4
1 Introduo
Clculo Numrico a obteno da soluo de um problema pela aplicao de mtodo numrico; a
soluo do problema ser caracterizada, ento, por um conjunto de nmeros, exatos ou aproximados.
2 Conceito de Erro
2.1 Introduo
A noo de erro est presente em todos os campos do Clculo Numrico. De um lado, os dados,
em si, nem sempre so exatos e, de outro lado, as operaes sobre valores no exatos propagam esses
erros a seus resultados. Finalmente, os prprios mtodos numricos, freqentemente mtodos
aproximados, buscam a minimizao dos erros, procurando resultados o mais prximo possvel do que
seriam valores exatos.
No prximo captulo, sobre representao de nmeros reais, iremos analisar vrias situaes em
que ocorrem erros, quando utilizamos o computador para realizar os clculos. A seguir, analisaremos os
erros que ocorrem durante as fases de modelagem e resoluo e tambm sobre erros de arredondamento e
erros de truncamento.
d = do + vo * t + 1/2 * * t2
onde:
d : distncia percorrida
do : distncia inicial
vo : velocidade inicial
t : tempo
: acelerao
Por exemplo, sabendo-se que (3.14, 3.15) tomaremos para um valor dentro deste intervalo e
teremos, ento, |EA| = | - | < 0.01.
Erro Relativo definido como o erro absoluto dividido pelo valor aproximado:
EAN N N'
ER N = = Erro Relativo
N' N'
claro que EAN s poder ser determinado se N for exatamente conhecido; como isso raro, em
clculos numricos costuma-se trabalhar com uma limitao mxima para o erro, ao invs do prprio
(indicando-se, ento, | E | < , onde o limite).
O uso deste critrio limita o erro a meia unidade da ltima casa conservada:
Os valores aproximados obtidos podem ser inferiores (valor aproximado por falta) ou superiores
(valor aproximado por excesso) aos exatos; 1.41 o valor aproximado, por falta, de 2 ; 1.26 o valor de
3
2 , aproximado por excesso.
Para concluir este item de erro de arredondamento, deve-se ressaltar a importncia de se saber o
nmero de dgitos significativos do sistema de representao da mquina que est sendo utilizada para
que se tenha a noo da preciso do resultado obtido.
Alm da preciso decimal, o clculo do chamado psilon da mquina nos d uma idia da
exatido da mquina.
O da mquina o menor nmero de ponto flutuante, tal que: 1 + > 1. Alguns mtodos para
clculo de no do seu valor exato, mas isto nem sempre necessrio, pois o que importa a sua ordem
de grandeza.
Eps=1.0;
while (Eps + 1 > 1)
Eps = Eps / 2.0;
sprintf('A maquina acha que %1.25f%s',Eps,' vale zero!')
end;
Estes processos infinitos so muito utilizados na avaliao de funes matemticas, tais como,
exponenciao, logaritmos, funes trigonomtricas e vrias outras que uma mquina pode ter.
Exemplo: Uma mquina poderia calcular a funo seno(x) e exponencial(x) utilizando as seguintes
tcnicas:
3 5 7
x x x
seno(x) = x + + ...
3! 5! 7!
2 3
x x
ex = 1 + x + + + ...
2! 3!
Fazendo truncamento:
3 5 7 n
x x x x
seno(x) x + + ... + ( 1)n
3! 5! 7! n!
8
2 3 n
x x x
ex 1 + x + + + ... +
2! 3! n!
De uma maneira geral, pode-se dizer que o erro de truncamento pode ser diminudo at chegar a
ficar da ordem do erro de arredondamento; a partir desse ponto, no faz sentido diminuir-se mais, pois o
erro de arredondamento ser dominante.
9
3.1 Introduo
Nmeros
{{ Complexos (2+3-1 )
Irracionais (; 2 )
{ {
Reais Inteiros (-1004; 2)
Racionais Ordinrios (32/7; 1/3)
Fracionrios
Decimais (-3.15; 0.33...)
Algumas das propriedades bsicas da aritmtica real no valem mais quando executadas no
computador, pois, enquanto na matemtica alguns nmeros so representados por infinitos dgitos, no
computador isso no possvel, pois uma palavra de memria finita e a prpria memria tambm.
1
Exemplos: 2, 3, e .
3
a) A = 31400m2
b) A = 31416 m2
c) A = 31415.92654 m2
Como justificar as diferenas entre os resultados? possvel obter o valor exato desta rea?
O nmero , por exemplo, no pode ser representado atravs de um nmero finito de dgitos
decimais. No exemplo mostrado acima, o nmero foi escrito como 3.14, 3.1416 e 3.141592654
respectivamente nos casos (a), (b) e (c). Em cada um deles foi obtido um resultado diferente, e o erro
neste caso depende exclusivamente da aproximao escolhida para , Qualquer que seja a circunferncia,
a sua rea nunca ser obtida exatamente, uma vez que um nmero irracional.
Como neste exemplo, qualquer clculo que envolva nmeros que no podem ser representados
atravs de um nmero finito de dgitos no fornecer como resultado um valor exato. Quanto maior o
nmero de dgitos utilizados, maior ser a preciso obtida. Por isso, a melhor aproximao para o valor da
rea da circunferncia aquela obtida no caso (c).
Alm disso, um nmero pode ter representao finita em uma base e no-finita em outras bases. A
base decimal a que mais empregamos atualmente. Um computador opera normalmente no sistema
binrio.
Observe o que acontece na interao entre o usurio (ou dados do programa) e o computador: os
dados de entrada so enviados ao computador pelo usurio no sistema decimal; toda esta informao
convertida para o sistema binrio, e as operaes todas sero efetuadas neste sistema. Os resultados finais
10
sero convertidos para o sistema decimal e, finalmente, sero transmitidos ao usurio. Todo este processo
de converso uma fonte de erros que afetam o resultado final dos clculos.
Na prxima seo, iremos estudar os processos de converso de nmeros do sistema decimal para
o sistema binrio e vice-versa. Estudaremos tambm a forma de armazenamento feita pelos computadores
digitais.
Notamos que um nmero expresso como uma soma de potncias de 10 multiplicadas por
coeficientes apropriados. No sistema decimal, 10 a base do sistema. Existem 10 dgitos, o maior sendo
9. Em um sistema numrico com base , existem dgitos e o maior -1.
19 2
LSB 1 9 2
1 4 2
0 2 2
0 1 2
1 0
MSB
19(10) = 10011(2)
O bit menos significativo de um nmero binrio recebe a notao de LSB (Least Significant Bit) e
o bit mais significativo de MSB (Most Significant Bit).
No caso geral, seja r um nmero entre 0 e 1 no sistema decimal e (0.d1d2...dj...)2 sua representao
no sistema binrio. Os dgitos binrios d1, d2, ..., dj, ... so obtidos atravs do seguinte algoritmo:
Passo 0: r1 = r; k = 1
Passo 3: k = k + 1.
Volte ao passo 1.
Observar que o algoritmo pode ou no terminar aps um nmero finito de passos. Para r =
(0.125)10 teremos: r1 = 0.125.
k = 1 2r1 = 0.25 d1 = 0
r2 = 0.25 d1 = 0.25
k = 2 2r2 = 0.5 d2 = 0
12
r3 = 0.5
k = 3 2r3 = 1.0 d3 = 1
r4 = 0
Temos ento 0.12510 = 0.0012, sendo portanto a representao binria finita. J para r = 0.110,
teremos: r1 = 0.1
k = 1 2r1 = 0.2 d1 = 0
r2 = 0.2
k = 2 2r2 = 0.4 d2 = 0
r3 = 0.4
k = 3 2r3 = 0.8 d3 = 0
r4 = 0.8
k = 4 2r4 = 1.6 d4 = 1
r5 = 0.6
k = 5 2r5 = 1.2 d5 = 1
r6 = 0.2 = r2
Como r6 = r2, teremos que os resultados para k de 2 e 5 se repetiro e ento: r10 = r6 = r2 = 0.2 e
assim indefinidamente.
O fato de um nmero no ter representao finita no sistema binrio pode acarretar a ocorrncia de
erros aparentemente inexplicveis em clculos efetuados em sistemas computacionais binrios.
Um computador que opera no sistema binrio ir armazenar uma aproximao para (0.1)10, uma
vez que possui uma quantidade fixa de posies para guardar os dgitos de mantissa de um nmero, e esta
aproximao ser usada para realizar os clculos. No se pode, portanto, esperar um resultado exato.
1000
S= 01.
n=1
no obtido corretamente num computador. Supondo uma mquina digital que trabalhe com apenas 9
dgitos na mantissa, o nmero (0.1)10 seria armazenado como (0.000110011)2 e este nmero representa
exatamente (0.099609375)10. Portanto, todas as operaes que envolvem (0.1)10 seriam realizadas com
esta aproximao. Veremos na prxima seo a representao de nmeros em aritmtica de ponto
flutuante com o objetivo de se entender melhor a causa de resultados imprecisos em operaes numricas.
1000
O programa em Matlab a seguir permite calcular 01. , sendo 100 o valor exato dessa somatria.
i=1
x=0;
for i=1:1000
x = x + 0.1;
sprintf('x = %0.20f', x)
end
13
Quando essa somatria efetuada utilizando o computador o valor : 99.99999999999859300000.
Se escrever um programa em linguagem C usando double (maior preciso) o resultado ser
99.99999999999859310000.
d1 dt
x=
1
+
d2
2
+
d3
3
+ ... +
t
. e
onde:
: a base em que a mquina opera;
di: so nmeros inteiros contidos no intervalo 0 di ( - 1); i = 1, 2, ..., t; d1 0;
e: representa o expoente de e assume valores entre I e S;
I, S: limite inferior e limite superior, respectivamente, para a variao do expoente.
d1 d2 d3 dt
1 + + + ... +
t
chamada de mantissa e a parte do nmero que representa
2
3
1
0.12510 = 1
10
+
2
10
2
+
5
3
10
. 10
0
3
3.141510 = 0.31415 101 = 1
10
+
10
1
2
+
4
10
3
+
1
10
4
+
5
5
10
. 1
10
1
1010 = 10102 = 0.101 24 = 1
2
+
0
2
2
+
1
3
2
. 4
2
1
410 = 1002 = 0.1 * 23 = * 23
2
Exemplo 2: Numa mquina de calcular cujo sistema de representao utilizado tenha =2, t = 10, I = 15
e S = 15, o nmero 2510 e 3.510 assim representado:
1100100000 0101
Mantissa expoente
Cada dgito chamado de bit, portanto, nesta mquina so utilizados 10 bits para a mantissa, 4
para o expoente e mais um bit para o sinal da mantissa (se bit=0 positivo, se bit=1 negativo) e um bit para
o sinal do expoente, resultando, no total, 16 bits, que so assim representados:
2510 =
0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1
Valor da Mantissa Expoente
Sinal da Mantissa Sinal Exp.
3.510 = 0.111 * 210
0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0
0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
Logo, os nmeros que podem ser representados nesta mquina estariam contidos no intervalo
[32736; 32736].
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1
O subsequente seria:
0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1
Atravs desses exemplos pode-se concluir que o conjunto dos nmeros representveis neste
sistema um subconjunto dos nmeros reais, dentro do intervalo mostrado anteriormente.
= 10; t = 3; e [-5,5].
G = {x R | m | x | M }
1. x G: por exemplo, x = 235.89 = 0.23589 * 103. Observe que este nmero possui 5 dgitos na
mantissa. Esto representados exatamente nesta mquina os nmeros: 0.235*103 e 0.236*103.
Se for usado o truncamento, x ser representado por 0.235*103 e, se for usado o
arredondamento, x ser representado por 0.236*103. Na prxima seo, sobre erros,
estudaremos o truncamento e o arredondamento;
2. | x | < m: por exemplo, x = 0.345*10-7. Este nmero no pode ser representado nesta mquina
porque o expoente e menor que 5. Esta uma situao em que a mquina acusa a ocorrncia
de underflow;
3. | x | > M: por exemplo, x = 0.875*109. Neste caso o expoente e maior que 5 e a mquina acusa
a ocorrncia de overflow.
O C fornece trs tipos para nmeros de ponto flutuante. Cada tipo tem um intervalo e uma
preciso especificada:
O tipo long double o tipo de ponto flutuante com maior preciso. importante observar que os
intervalos de ponto flutuante, na tabela acima, esto indicados em faixa de expoente, mas os nmeros
podem assumir valores tanto positivos quanto negativos.
Exemplo: Suponha-se que as operaes abaixo sejam processadas em uma mquina com 4 dgitos
significativos e fazendo-se: x1 = 0.3491*104 e x2 = 0.2345*100 tem-se:
Os dois resultados so diferentes, quando no deveriam ser, pois a adio uma operao
distributiva. A causa desta diferena foi um arredondamento feito na adio (x2 + x1), cujo resultado tem 8
dgitos. Como a mquina s armazena 4 dgitos, os menos significativos foram desprezados.
Ao se utilizar mquinas de calcular deve-se estar atento a essas particularidades causadas pelo erro
de arredondamento, no s na adio, mas tambm nas outras operaes.
17
4.1 Introduo
Seja F(x) uma funo real definida num intervalo [a, b]. Chama-se raiz(es) desta funo em [a, b]
a todo (csi) (a, b) tal que F() = 0, como mostra a figura abaixo.
y f(x)
a
0 x
b
y f ( x ) f (a ) f ( a + x ) f ( a )
lim = lim = lim
x 0 x x a xa x 0 x
Mtodo direto: quando fornece soluo em apenas um nico passo. Esta raiz exata, a menos de
erros de arredondamento.
Exemplo: Seja F(x) = x2 3x + 2. A soluo direta pode ser obtida atravs da frmula de Baskara com a
b b2 4ac
expresso: X = , que ter como conjunto soluo {1, 2}.
2a
a = 1; b = -3; c = 2; %f(x) = x^2 - 3*x + 2
delta = b*b - 4*a*c;
if (delta >= 0)
Mtodo iterativo ou indireto: um processo de clculo infinito, recursivo, em que o valor obtido
a cada passo depende de valores obtidos em passos anteriores. Este tipo de mtodo, na maioria das vezes,
no obtm soluo exata para as razes, mas sim uma soluo aproximada dentro de uma faixa de erro
considerada aceitvel.
x
+ x n 1
x
x n = n 1 , para n = 1, 2, 3, ...
2
onde: x: o nmero a ser calculado a raiz
x0: uma atribuio inicial qualquer diferente de zero (por exemplo, x0 = 1).
Como vimos anteriormente, o clculo das duas razes de uma equao do segundo grau, colocada
sob a forma ax2 + bx + c = 0, so facilmente obtidas pela frmula de Baskara. Entretanto, se colocarmos
uma expresso em que aparea uma equao transcendente, a soluo j no to simples, como
demonstram os exemplos abaixo:
ex + x = 0
cos(x) x = 0
ln(x) + x 2 = 0
Mesmo um polinmio de grau maior que trs j no tem uma soluo algbrica simples como a da
equao do segundo grau, a no ser em casos particulares. Vamos analisar como enfrentar esse problema,
to comum em diversas reas da engenharia, da economia, das cincias, da fsica, entre tantas outras.
Essas equaes, com enorme freqncia, nos levam a razes reais no racionais que, ao serem
representadas no computador, necessariamente, o sero de forma aproximada, pelas razes j expostas no
captulo anterior, tendo em vista que necessitariam de infinitos dgitos, em suas mantissas, para serem
representadas.
Alm disso, em geral, estamos interessados em obter esses valores, essas razes, com uma
determinada preciso, com um erro tolervel, com algumas casas decimais, sem a pretenso de obter
valores exatos. Isso mais do que suficiente, para a maioria dos problemas prticos encontrados.
x ' = lim xi
i
Alm disto, temos que estipular critrios de parada, pois na pratica no calcularemos infinitos
termos, mas apenas o suficiente para atingirmos a exatido desejada.
Teorema: Se uma funo f(x) contnua num intervalo [a, b] assume valores de sinais opostos nos
19
pontos extremos deste intervalo, isto , f(a). f(b) < 0, ento o intervalo conter, no mnimo, uma raiz da
equao f(x) = 0; em outras palavras haver, no mnimo, um nmero (a, b) tal que f() = 0.
Teorema de Bolzano: Seja F(x) = 0 uma equao algbrica com coeficientes reais e x (a, b):
Se F(a).F(b) < 0, ento existe um nmero impar de razes reais (contando suas
multiplicidades) no intervalo (a, b).
Se F(a).F(b) > 0, ento existe um nmero par de razes reais (contando suas multiplicidades)
ou no existe razes reais no intervalo (a, b).
No faremos maiores consideraes sobre este importante tpico, por no ser o objeto de estudo
neste momento, e por merecer um trabalho a parte, devido a extenso de seu contedo. Entretanto,
podemos salientar que o problema de isolar razes constitui-se da enumerao, localizao e separao
das mesmas.
4.1.3.2 Refinamento
Depois de isolar a raiz no intervalo [a, b], passa-se a calcul-la atravs de mtodos numricos.
Como veremos adiante, estes mtodos devem fornecer uma seqncia {xi} de aproximao, cujo limite
a raiz exata . Em cada aproximao xn, da raiz exata , usa-se um destes critrios e compara-se o
resultado com a tolerncia pr-fixada.
A verificao, de que xn est "suficientemente" prxima da raiz, pode ser feita de dois modos
diferentes (que podem levar a resultados diferentes):
Observa-se que dependendo dos nmeros envolvidos aconselhvel usar os testes de erro relativo:
| x n x n 1 |
| x n 1 |
Mtodos de ponto fixo: Nos mtodos de ponto fixo comeamos de uma aproximao inicial x0 e
construmos a seqncia {xi} na qual cada termo dado por xi+1 = (xi), onde uma funo de iterao.
Conforme for , (dzeta) teremos diferentes mtodos de ponto fixo, tais como.
20
Mtodo de Newton-Raphson;
Mtodo da Iterao Linear.
f(b)
f(x)
a x1
0 x4 x x2 b x
3
f(a)
Dividindo o intervalo [a, b] ao meio, obtm-se x1, havendo, pois, dois subintervalos, [a, x1] e [x1,
b], a ser considerados. Se f(x1) = 0, ento = x1; caso contrrio, a raiz estar no subintervalo onde a
funo tem sinais opostos nos pontos extremos, ou seja, se f(a). f(x1) < 0 ento [a, x1], seno f(a). f(x1)
> 0 e [x1, b].
O processo se repete at que se obtenha uma aproximao para a raiz exata , ou seja, que o
critrio de parada seja satisfeito. Ento, por induo, temos:
Algoritmo:
a+b
xn = , para n = 1, 2, 3, ...
2
Critrio de Parada:
f ( x n ) erro
ou
| b a | erro
b0 a 0 b0 a 0
< < 2k
2k
log(b0 a 0 ) log( )
<k
log(2)
Portanto, se k satisfaz a relao acima, ao final da iterao k teremos o intervalo [a, b] que contem a
raiz .
4.2.3 Exemplos
Exemplo 1: Encontrar a raiz da funo f(x) = x.ln(x) 3.2 contida no intervalo [2, 3], com erro 10-2.
a+b
a) Algoritmo: x n =
2
b) Escolha do intervalo:
f(2) = 1.81371 f(3) = 0.09584
[2, 3]
c) Valor do erro:
erro 10-2
d) Iteraes:
e) Resposta:
A raiz desejada = 2,953125
Exerccio 1: Encontrar a raiz de f(x) = x2 3, contida no intervalo [1; 2], com erro 10-2.
Exerccio 2: Encontrar a raiz da funo f(x) = x2 + ln(x) contida no intervalo [0.5, 1], com erro 10-2.
Exerccio 3: Encontrar a primeira raiz positiva da funo f(x) = e-x sen(x), com erro 10-2.
a f ( b) + b f ( a )
x = , visto que f(a) e f(b) tm sinais opostos, temos ento:
n
f (b) + f ( a )
af (b) bf ( a ) af (b) bf ( a ) af (a ) + af ( a ) (b a ). f ( a )
x = = = a , para n = 1, 2, 3, ...
n
f (b) f ( a ) f (b) f ( a ) f (b) f ( a )
Graficamente, este mtodo procura particionar o intervalo [a, b], na interseo da reta que une os
pontos (a, f(a)) e (b, f(b)) com o eixo x. Este ponto representado como xn. Escolhe-se ento um novo
subintervalo conforme for a variao do sinal da curva f.
O mtodo da falsa posio aplicado na figura abaixo mostra que f(x1).f(a) < 0, com isso, o novo
intervalo que contm pelo menos uma raiz real dado por (a, x1). Continuando o processo, determinamos
o ponto x2 e verifica-se, agora, que f(x2).f(x1) < 0, da o processo segue tendo o intervalo (x1, x2).
Aps encontrar o ponto x1, devemos verificar, como no caso da bisseo, se a raiz est entre o
intervalo (a, x1) ou (x1, b). Se f(a).f(x1) < 0, ento teremos b = x1, caso contrrio teremos a = x1. A partir
da o processo se repete at que o critrio de parada seja satisfeito.
y f(b') f(b)
f(x)
a x2
0 x1 b x
f(a)
O algoritmo deste mtodo tambm pode ser encontrado atravs da anlise dos tringulos formados
pela reta (a, f(a)) e (b, f(b)) com o eixo x. Seja o tringulo f(a)x1a e o tringulo f(a)f(b)f(b), ento, pela
propriedade da semelhana de tringulos temos:
ba f (b) f ( a ) ba x a (b a )( f ( a ))
= = 1 x1 a =
x1 a f (a ) f (b) f ( a ) f ( a ) f (b) f ( a )
(b a )( f ( a ))
x1 = a
f (b) f ( a )
Se f(a).f(x1) < 0, ento teremos b = x1, seno a = x1. A partir da o processo se repete at que o
critrio de parada seja satisfeito.
Algoritmo:
(b a ). f ( a )
x =a Para n = 1, 2, 3, ...
n
f (b) f ( a )
Critrio de Parada:
| xn xn-1 | erro (x0 = a ou x0 = b)
Restrio:
necessrio conhecer um intervalo que contenha o valor desejado .
Se uma funo cncava ou convexa em [a, b], ou seja, a segunda derivada existe em [a, b] e
f(x) no muda de sinal nesse intervalo, ento no mtodo da falsa posio teremos sempre uma das
extremidades fixa. Este caso especial tambm chamado de Mtodo das Cordas. A figura abaixo mostra
graficamente os quatro casos que podem ocorrer:
f(a)
f(b)
f(x)
a x1 x2 x1 b
0 b x 0 a x
x2
f(a) f(b)
y y
f(x) f(a)
f(b)
f(x)
a
0 x2 x1 b b
x
0 a x1 x2 x
f(a) f(b)
Mtodo da falsa posio com uma das extremidades fixa
4.3.3 Exemplos
Exemplo 1: Determinar pelo mtodo da falsa posio a menor raiz positiva da funo de quarto grau f(x)
= x4 26x2 + 24x + 21 at que o erro absoluto seja igual ou inferior a 0.01. Os clculos devem ser
efetuados com 2 casas decimais e com arredondamento.
(b a ). f ( a )
a) Algoritmo: x =a
f (b) f ( a )
n
b) Escolha do intervalo:
Em primeiro lugar, deve-se procurar o intervalo onde possivelmente esteja a primeira raiz
positiva. Atravs da anlise do valor da funo nos primeiros pontos do eixo dos x temos que:
f(0) = 21, f(1) = 20, f(2) = 19, logo, entre (1, 2) existe uma raiz positiva.
c) Valor inicial:
a=1 b=2
d) Valor do erro:
erro 10-2
e) Iteraes:
f(a).f(x1) = (20).(3,16) = 63,2 > 0, portanto a raiz est no intervalo (x1, b), ento a = x1
f) Resposta:
= 1,59 a primeira raiz positiva do polinmio.
Exerccio 1: Calcular a raiz aproximada para a equao f(x) = cos(x) + x, com 0.001.
Exerccio 2: Calcular a raiz negativa para a funo f(x) = ex + x, com o erro 0.01. Sabe-se que a raiz
est contida no intervalo [1, 0].
Por um artifcio algbrico, pode-se transformar f(x) = 0 em duas funes que lhe sejam
equivalentes.
y = x
f(x) = 0
y = g (x)
f(x)
0
x
Sendo x0 a primeira aproximao da raiz , calcula-se g(x0). Faz-se ento, x1 = g(x0), x2 = g(x1), x3
= g(x2) e assim sucessivamente.
Algoritmo:
x n = g ( x n 1 )
para n = 1, 2, 3, ...
Critrio de Parada:
| xn xn-1 | erro
Melhor extremo:
Empiricamente, sabe-se que o mtodo tem sucesso quando | g'(x) | < 1 em todo intervalo.
O extremo mais rpido para iniciar o mtodo aquele para o qual o mdulo da primeira
derivada menor.
Se | g'(a) | < | g'(b) | ento x0 = a, seno x0 = b.
x3 + 3
g(x) = (5 x 3)
1
g(x) = 3
5
5x 3 3
g(x) = g(x) =
x2 x2 5
Como podemos ter vrias funes g(x), vamos estabelecer algumas condies para que os
resultados sejam satisfatrios.
Vamos observar graficamente o problema e verificar que h funes g(x) que no so indicadas
para a escolha.
y=g(x)
y=g(x)
0 0
x0 x1 x2 x x0 x x x3 x1 x
2 4
y=g(x)
0 0
x2 x1 x0 x
x4 x2 x0 x1x3 x
y y=x
y=g(x)
0
xn xn-1 x
4.4.3 Exemplos
Exemplo 1: Dada a funo f(x) = x2 + 3x 40, obter sua raiz contida no intervalo [4.5, 5.5], pelo MIL,
com um erro 10-4.
a) Algoritmo: x n = g ( x n 1 )
40 40
y= y' = convergncia oscilante
x+3 ( x + 3) 2
3
y= 40 3 x y' = convergncia oscilante
2 40 3x
d) Valor do erro:
erro 10-4
e) Iteraes:
x1 = 5.14782
x2 = 4.95546
x3 = 5.01335
x4 = 4.99599
x5 = 5.00120
x6 = 4.99964
x7 = 5.00011
x8 = 4.99997
x9 = 5.00000 | x9 x8 | = 0.00003 < erro
f) Resposta:
A raiz desejada = 5.00000
Exerccio 1: Dada a funo f(x) = x2 + 3x cos(x) 2.45, obter sua raiz contida no intervalo [0.5, 1],
pelo MIL, com um erro 10-2.
y
f(x)
f(x0)
f(x1)
a b=x0
0 x2 x1 x'1 x
f(a)
29
Interpretao geomtrica do mtodo de Newton
Algoritmo:
f ( x n 1 )
x n = x n 1 , para n = 1, 2, 3, ...
f ' ( x n 1 )
Critrio de Parada:
x n x n 1 erro
Restrio:
necessrio conhecer um intervalo que contenha o valor desejado .
Melhor extremo:
Para decidir qual o melhor extremo do intervalo (a, b) a iniciar o mtodo, basta verificar
qual dos extremos possui funo e segunda derivada com mesmo sinal:
4.5.2 Exemplos
Exemplo 1: Calcular a raiz positiva da equao f(x) = 2x sen(x) 4 = 0, com erro 10-3, usando o
mtodo de NR.
f ( x n 1 )
a) Algoritmo: x n = x n 1
f ' ( x n 1 )
f(x) = 2x sen(x) 4
f(x) = 2 cos(x)
f''(x) = sen(x)
b) Escolha do intervalo:
f(2) = 0.9093 f(3) = 1.8589
f(2). f(3) < 0 [2, 3]
d) Valor do erro:
30
erro 10 -3
e) Iteraes:
f (3) 1.8589
x1 = 3 = 3 = 2.3783
f ' (3) 2.9900
f (2.3783) 0.0653
x 2 = 2.3783 = 2.3783 = 2.3543
f ' ( 2.3783) 2.7226
f (2.3543) 0.0002
x 3 = 2.3543 = 2.3543 = 2.3542
f ' ( 2.3543) 2.7058
f) Resposta:
A raiz desejada = 2.3542
f(x) = x3 5
f'(x) = 3x2
f''(x) = 6x
f(x) = x3 5x2 + x + 3
f(x) = 3x2 10x + 1
f''(x) = 6x 10
Exerccio 3: Seja a funo f(x) = sen(x) tg(x). Deseja-se saber uma das razes desta funo, sabendo-se
que est contida no intervalo (3, 4). Todos os clculos devem ser realizados com 4 casas decimais com
arredondamento e erro no superior a 0.001.
1) Se f(a). f(b) > 0, ento existe um nmero par de razes reais (contando suas multiplicidades) ou
no existe razes reais no intervalo (a, b) (Teorema de Bolzano);
2) Se f(a).f(b) < 0, ento existe um nmero mpar de razes reais (contando suas multiplicidades)
no intervalo (a, b) (Teorema de Bolzano);
3) Se f'(a). f'(b) > 0, ento o comportamento da funo neste intervalo poder ser apenas
crescente ou apenas decrescente, e nunca os dois se alternando;
4) Se f'(a). f'(b) < 0, ento a funo ter o comportamento de ora crescer ora decrescer;
5) Se f"(a). f"(b) > 0, ento a concavidade no muda no intervalo em anlise;
6) Se f"(a). f"(b) < 0, ento a concavidade muda no intervalo em anlise.
Exemplo 2: Seja a funo f(x) = x2 9.5x + 8.5, obter a raiz contida no intervalo [8, 9]. Os clculos
devem ser realizados com 4 decimais com arredondamento e erro no superior a 0,001.
f ( x n 1 )
a) Algoritmo : x n = x n 1
f ' ( x n 1 )
f(x) = x 9.5x + 8.5
2
f(x) = 2x 9.5
f(x) = 2
b) Escolha do intervalo:
f(8) = 3.5; f(9) = 4
f(8). f(9) < 0 [8, 9]
d) Valor do erro:
erro 10-3
e) Iteraes:
f (9) 4
x 1 =9 =9 = 8.5294
f ' ( 9) 8 .5
| x1 x0 | = | 8.5294 9 | = 0.4706 > erro
f (8.5294) 0.2214
x 2 = 8.5294 = 8.5294 = 8.5001
f ' (8.5294) 7.5588
| x2 x1 | = | 8.5001 8.5294 | = 0.0293 > erro
f (8.5001) 0.0008
x 3 = 8.5001 = 8.5001 = 8.5000
f ' (8.5001) 7.5002
| x3 x2 | = | 8.5000 8.5001 | = 0.0001 < erro
f) Resposta:
A raiz desejada = 8.5000
32
Exerccio 4: Calcular a raiz da equao f(x) = x3 x + 1 = 0, contida no intervalo [2, 1], com um erro
10-3.
f(x) = x3 x + 1
f(x) = 3x2 1
f(x) = 6x
Para contornar este problema podemos substituir o clculo da primeira derivada f(xn) pelo
quociente das diferenas, usando assim, um modelo linear baseado nos dois valores calculados mais
recentemente:
f ( x n ) f ( x n 1 )
f ' ( xn )
x n x n 1
f ( xn)
xn + 1 = xn
f ( xn) f ( xn 1)
xn xn 1
( xn xn 1). f ( xn)
xn + 1 = xn , para n = 1, 2, 3, ...
f ( xn) f ( xn 1)
Para iniciar o mtodo necessitamos de duas aproximaes (x0 e x1) para a raiz.
y
f(x)
f(x1)
xo x2 x3
0 x4 x1 x
f(x0)
Neste mtodo partimos das duas aproximaes iniciais x0 e x1 e determinamos a reta que passa
pelos pontos (x0, f (x0)) e (x1, f (x1)). A interseco desta reta com o eixo x fornece o ponto x2. Em seguida
calculado uma nova aproximao para a raiz a partir dos pontos (x1, f(x1)) e (x2, f (x2)). O processo se
repete at que seja satisfeito o critrio de parada.
A convergncia deste mtodo mais rpido que o mtodo da bisseo e o da falsa posio,
contudo, pode ser mais lento que o mtodo de Newton-Raphson.
Algoritmo:
( xn xn 1 ). f ( xn )
xn+1 = xn
f ( xn ) f ( xn 1 ) , para n = 1, 2, 3, ...
Critrio de parada:
| xn+1 xn | erro
4.6.1 Exemplos
Exemplo 1: Calcular a raiz da funo f(x) = x2 + x 6, sendo x0 = 1.5, x1 = 1.7 e o erro 10-2.
( xn xn 1 ). f ( xn )
a) Algoritmo : x n +1 = x n
f ( xn ) f ( xn 1 )
b) Valor inicial:
x0 = 1.5 x1 = 1.7
c) Valor do erro:
erro 10-2
d) Iteraes:
e) Resposta:
= 2.0000 a raiz procurada.
Exerccio 1: Calcular a raiz da funo f(x) = 3x cos(x), sendo x0 = 0, x1 = 0.5 e o erro 10-4. Efetue os
clculos com 5 casas decimais com arredondamento.
O mtodo NR aplicado no primeiro passo, sempre a partir do melhor extremo. Ento, com o novo
resultado obtido x1N , determina-se qual valor dos extremos do intervalo ser substitudo ( f(a). f( x1N ) < 0
b = x1N , seno a = x1N ) e ento aplica-se o mtodo da Falsa Posio. O resultado obtido em x mF ser
utilizado na prxima iterao pelo mtodo NR, mas antes feito o teste do erro para verificar o critrio de
parada.
Assim, por induo, seguem-se as iteraes seguintes. Quando o critrio de parada for satisfeito,
tira-se a mdia aritmtica simples do resultado da ltima iterao de ambos os mtodos e obtm-se a
resposta desejada.
Algoritmo:
x mN + x mF
xm = , para m = 1, 2, 3, ...
2
Critrio de parada:
| x mF x mN | erro
4.7.1 Exemplos
Exemplo 1: Determinar pelo mtodo misto, a raiz da funo f(x) = 10sen(x) + cos(x) 10x contida no
intervalo [0.5, 1], com tolerncia de 2*10-4 e clculos com 4 casas decimais com arredondamento.
x N + x mF
a) Algoritmo: x m = m
2
b) Valor do erro:
erro 0.0002
c) Escolha do intervalo:
f(0.5) = 0.6718 f(1) = 1.0450
d) Iteraes:
Melhor extremo:
f(0.5) = 0.6718 f(1) = 1.0450
f"(0.5) = 5.6718 f"(1) = 8.9550 x 0N = 1
f (1) ( 1.0450)
x1N = 1 = 1 = 0.8078
f (1) ( 5.4384)
f (0.7488) (0.0521)
x 2N = 0.7488 = 0.7488 = 0.7643
f (0.7488) (3.3557)
e) Resposta:
0.7641 + 0.7643
= = 0.7642
2
Exerccio 1: Dada a funo f(x) = x2 + 3x cos(x) 2.45, obter sua raiz contida no intervalo [0.5, 1] pelo
mtodo misto, com erro 10-3 e clculos com 4 decimais com arredondamento.
0.82 + 0.82
Resposta: = = 0.8200
2
4.8.1 Introduo
Embora qualquer um dos mtodos estudados anteriormente possam ser usados para encontrar zeros
de um polinmio de qualquer grau, o fato de os polinmios aparecerem com tanta freqncia em
aplicaes faz com que seja dedicada uma ateno especial.
Pn = a 0 + a1 x + a 2 x 2 + K + a n x n para an0
Sabemos da lgebra elementar como obter os zeros de um polinmio do segundo grau P2(x), ou
seja, n = 2. Existem frmulas fechadas, semelhantes frmula para polinmios de grau 2, mas bem mais
complicadas, para zeros de polinmios de grau 3 e 4. Agora, para n 5, em geral, no existem frmulas
explcitas e somos forados a usar mtodos iterativos para encontrar os zeros dos polinmios.
Muitos dos teoremas da lgebra so teis na localizao e classificao dos tipos de zeros de um
polinmio. O estudo ser dividido em localizao de razes e determinao das razes reais.
Para determinarmos o nmero de zeos reais de um polinmio com coeficientes reais, podemos
fazer uso da regra de sinal de Descartes: Dado um polinmio com coeficientes reais, o nmero de zeros
reais positivos, p, desse polinmio no excede o nmero v de variaes de sinal dos coeficientes. Temos
ainda que v p um nmero inteiro, par e no negativo.
+ + +
1 1
se v p = 0, p = 2
v = 2 p: ou
se v p = 2, p = 0
+ +
1 1 1
se v p = 0, p = 3
v = 3 p: ou
se v p = 2, p = 1
c) P7(x) = + x7 + 1
+ +
v = 0 e p: {v p 0 p = 0}.
Para determinar o nmero de razes reais negativas, neg, tomamos Pn(x) e usamos a mesma regra
para razes positivas:
+ +
1 1 1
se v neg = 0, neg = 3
v = 3 neg: ou
se v neg = 2, neg = 1
+ + +
1 1
se v neg = 0, neg = 2
v = 2 neg: ou
se v neg = 2, neg = 0
c) P7(x) = + x7 + 1
P7(x) = x7 + 1
Neste caso, vimos que no existe zero positivo. Temos ainda P7(0) = 1 0. Temos ento que, v =
1 e neg: {v neg = 0 neg = 1}, ou seja, Pn(x) = 0, no tem raiz real positiva, o zero no raiz e tem
apenas uma raiz real negativa donde tem trs razes complexas conjugadas.
Por exemplo, o Mtodo de Newton, que veremos a seguir, a cada iterao deve-se fazer uma
avaliao do polinmio e uma de sua derivada.
P4(x) = a 4 x 4 + a 3 x 3 + a 2 x 2 + a1 x + a 0
b3
b2
:
:
Para se calcular o valor numrico de P4(x) em x = c, basta fazer sucessivamente:
b4 = a4
b3 = a3 + b4 c
38
b2 = a2 + b3 c
b1 = a1 + b2 c
b0 = a0 + b1 c
P(c) = b0.
Portanto, para Pn(x) de grau n qualquer, calculamos Pn(c) calculando as constantes bj, j = n, n 1,
..., 1, 0 sucessivamente, sendo:
bn = an
bj = aj + bj+1c j = n 1, n 2, ..., 1, 0
Usando os valores de aj do clculo anterior e dado que j conhemos b0, b1, b2, b3 e b4:
P4(x) = 4a 4 x 3 + 3a3 x 2 + 2a 2 x + a1
= 4b4 c 3 + 3(b3 b4 c)c 2 + 2(b2 b3 c)c + (b1 b2 c)
= 4b4 c 3 3b4 c 3 + 3b3 c 2 2b3 c 2 + 2b2 c + b1 b2 c
Assim, P4(x) = b4 c 3 + b3 c 2 + b2 c + b1
c4 = b4
c3 = b3 + c4c
c2 = b2 + c3c
c1 = b1 + c2c
cn = bn
cj = bj + cj+1c j = n 1, n 2, ..., 1
Exemplo 1: Dada a equao polinomial x5 3.7x4 + 7.4x3 10.8x2 + 10.8x 6.8 = 0, temos que:
39
P5(1) = 2.1
P5(2) = 3.6
a5 = 1
a4 = 3.7
a3 = 7.4
a2 = 10.8
a1 = 10.8
a0 = 6.8
b5 = 1 c5 = 1
b4 = 3.7 + 1(1.5) = 2.2 c4 = -2.2 + 1(1.5) = 0.7
b3 = 7.4 2.2(1.5) = 4.1 c3 = 4.1 0.7(1.5) = 3.05
b2 = -10.8 + 4.1(1.5) = 4.65 c2 = -4.65 + 3.05(1.5) = 0.075
b1 = 10.8 4.65(1.5) = 3.825 c1 = 3.825 0.075(1.5) = 3.7125
b0 = -6.8 + 3.825(1.5) = 1.0625
P (1.5) (-1,0625)
x1 = x0 = 1.5 = 1.5 (0.2862) = 1.7862
P ' (1.5) (3.7125)
b5 = 1 c5 = 1
b4 = 3.7 + 1(1.7862) = 1.9138 c4 = 1.9138 + 1(1.7862) = 0.1276
b3 = 7.4 1.9138(1.7862) = 3.98158 c3 = 3.98158 0.1276(1.7862) = 3.75366
b2 = 10.8 + 3.98158(1.7862) = 3.68812 c2 = 3.68812 + 3.75366(1.7862) = 3.01667
b1 = 10.8 3.68812(1.7862) = 4.21228 c1 = 4.21228 + 3.01667(1.7862) = 9.60065
b0 = 6.8 + 4.21228(1.7862) = 0.72398
P (1.7862) (0.72398)
x2 = x1 = 1.7862 = 1.7862 (0.07541) = 1.71079
P' (1.7862) (9.60065)
b5 = 1 c5 = 1
b4 = 3.7 + 1(1.71079) = 1.98921 c4 = 1.98921 + 1(1.71079) = 0.27842
b3 = 7.4 1.98921(1.71079) = 3.99688 c3 = 3.99688 0.27842(1.71079) = 3.52056
b2 = 10.8 + 3.99688(1.71079) = 3.96218 c2 = 3.96218 + 3.52056(1.71079) = 2.06077
b1 = 10.8 3.96218(1.71079) = 4.02154 c1 = 4.02154 + 2.06077(1.71079) = 7.54707
b0 = 6.8 + 4.02154(1.71079) = 0.08001
40
P(1.71079) = 0.08001 e P'(1.71079) = 7.54707
P (1.71079) (0.08001)
x3 = x2 = 1.71079 = 1.71079 (0.01060) = 1.70019
P' (1.71079) (7.54707)
Exerccio 1: Calcular a raiz positiva do polinmio P(x) = 2x3 2x2 + 3x 1, com erro <= 10-4, pelo
mtodo de Newton para polinmios.
P'(x) = 6x2 4x + 3
5 Sistemas Lineares
5.1 Introduo
Sistemas Lineares so sistemas de equaes com m equaes e n incgnitas formados por
equaes lineares. Um sistema linear com m equaes e n incgnitas escrito usualmente na forma:
a x + a x +L+ a x = b
11 1 12 2 1n n 1
a21 x1 + a22 x 2 + L + a x n = b2
2n
................................................
a m1 x1 + a m2 x 2 + L + a mn x n = bm
onde
aij : coeficientes 1 i m, 1 j n
xj : incgnitas j = 1, 2, ..., n
bi : constantes i = 1, 2, ..., m
A resoluo de um sistema linear consiste em calcular os valores de xj, j = 1, 2, ..., n, caso eles
existam, que satisfaam as m equaes simultaneamente.
Usando notao matricial, o sistema linear pode ser representado por AX = B, onde
x1
X = x 2 o vetor das incgnitas, e
M
x n
b1
B = b2 o vetor constante (termos independentes).
M
bm
O sistema S ser compatvel e ter soluo nica se, e somente se, D 0. Neste caso a nica
soluo de S dada por:
x1 = D x1 , x2 = D x 2 , x3 = D x 3 , ... , xn = D xn
D D D D
A aplicao da Regra de Cramer exige o clculo de n + 1 determinantes ( det A e det Ai, 1 i n);
para n = 20 o nmero total de operaes efetuadas ser 21 * 20! * 19 multiplicaes mais um nmero
semelhante de adies. Assim, um computador que efetue cerca de 100 milhes de multiplicaes por
segundo levaria 3 x 105 anos para efetuar as operaes necessrias.
Com isso, a regra de Cramer invivel em funo do tempo de computao para sistemas muito
grandes.
5.2.1.1 Exemplos
Exemplo 1: Resolva o sistema abaixo pela Regra de Cramer:
x1 + x 2 + x 3 = 1
2 x1 x 2 + x 3 = 0
x + 2x x = 0
1 2 3
1 1 1 1 1 1 1 1 1 1 1 1
D = 2 1 1 =7 Dx1 = 0 1 1 = 1 Dx2 = 2 0 1 =3 Dx3 = 2 1 0 = 5
1 2 1 0 2 1 1 0 1 1 2 0
1 3 5
Ento, x1 = D x1 = , x2 = D x 2 = , e x3 = D x 3 = e a soluo do sistema
D 7 D 7 D 7
1 3 5
x : , , T
7 7 7
43
Exerccio 1: Resolva o sistema abaixo pela Regra de Cramer:
2 x1 + x 2 x 3 = 0
x1 + 2 x 2 + x 3 = 3
3x1 x 2 x 3 = 2
2 etapa: Triangulao
Consiste em transformar a matriz A numa matriz triangular superior, mediante uma
seqncia de operaes elementares nas linhas da matriz.
3 etapa: Retro-substituio
Consiste no clculo dos componentes x1, x2, ..., xn, soluo de AX = B, a partir da soluo
do ltimo componente (xn), e ento substituirmos regressivamente nas equaes anteriores.
Teorema: Seja AX = B um sistema linear. Aplicando sobre as equaes deste sistema uma
seqncia de operaes elementares escolhidas entre:
a x + a x + a x + L + a x =b
11 1 12 2 13 3 1n n 1
a22 x2 + a23 x3 + L + a x =b
2n n 2
a33 x3 + L + a x =b
3n n 3
O M
ann x n = bn
Estes dois casos merecem ateno especial pois impossvel trabalhar com um piv nulo. E
trabalhar com um piv prximo de zero pode resultar em resultados totalmente imprecisos. Isto porque
em qualquer calculadora ou computador os clculos so efetuados com preciso finita, e pivs prximos
de zero so origem a multiplicadores bem maiores que a unidade que, por sua vez, origina uma ampliao
dos erros de arredondamento.
Para se contornar estes problemas deve-se adotar uma estratgia de pivoteamento, ou seja, adotar
um processo de escolha da linha e/ou coluna pivotal.
Se durante o escalonamento surgir equaes do tipo: 0x1 + 0x2 + ... + 0xn = bm, ento:
i) Se bm = 0, ento eliminaremos a equao e continuamos o escalonamento;
ii) Se bm 0, ento conclui-se que o sistema incompatvel.
5.2.2.4 Exemplos
Exemplo 1: Resolver o sistema abaixo pelo mtodo de Gauss.
x1 + 2 x 2 + x3 = 3
2 x1 + x 2 x3 = 0
3x1 x 2 x3 = 2
45
1 2 1 3
M = 2 1 1 0
3 1 1 2
2 etapa: Triangulao:
Iremos se referir as equaes como: E1 (primeira equao), E2 (segunda equao) e assim por
diante. O componentes x indica o piv.
1 2 1 3 1 2 1 3
E 3 E 3 3 E1
E3 = E3 E2 0 3 6
7
0 3 3 6 3
E 2 E 2 2 E1 0
3
7 4 11 0 0 3 3
3 etapa: Retro-substituio:
0 x1 + 1x 2 2 x3 = 0
1x1 3 x 2 1x3 = 2
1x + 4 x 1x = 2
1 2 3
5.2.4 Exemplos
Exemplo 1: Resolver o sistema linear pelo mtodo de Jordan:
46
x1 + x 2 + 2 x 3 = 4
2 x 1 x 2 x 3 = 0
x 1 x 2 x 3 = 1
1 1 2 4
M = 2 1 1 0
1 1 1 1
2 etapa: Diagonalizao:
1 1 2 4 1 1 2 4
E 2 E 2 2 E1 2
0 3 5 8 E3 = E3 E2 0 3 5 8
E 3 E 3 E1 3 0 1
0 2 3 5 0 1
3 3
1 0 1 4 E1 E1 E 3 1 0 0 1
1 3 3
E1 E1 + E 2 0 3 0 3
1
E 2 E 0 1 0 1
3 3 2
E 2 E 2 + 15E 3 0 0 1 1 0 0 1 1
3 3 E 31 3E 3
O processo de fatorao para resoluo deste sistema consiste em decompor a matriz A dos
coeficientes em um produto de dois ou mais fatores e, em seguida, resolver uma sequncia de sistemas
lineares que nos conduzir a soluo do sistema linear original.
Tal processo geral de eliminao conhecida como mtodo de Crout (ou Cholesky para o caso particular
de matrizes simtricas positivas definidas). A matriz A pode ser decomposta no produto A=LU, onde L
uma matriz triangular inferior e U uma matriz triangular superior, quando a matriz for no singular (Det
(A) 0). Alm disso, se atribuirmos valores fixos aos elementos da diagonal, seja de L (lii = 1 no Mtodo
de Doolitle) ou em U (uii = 1 no Mtodo de Crout), esta decomposio ser nica.
Suponhamos que seja possvel fatorar a matriz A dos coeficientes num produto de uma matriz
triangular inferior com diagonal unitria L e uma matriz triangular superior U, isto :
47
A = LU
Nestas condies, o sistema Ax = b pode ser reescrito na forma LUx = b, o que permite o
desmembramento em dois sistemas triangulares
Ly = b e Ux = y
Resolvendo o primeiro sistema, calculamos y que, usado no segundo sistema, fornecer o vetor
procurado x.
Dessa maneira, conhecidas L e U, o sistema ser resolvido com 2n2 operaes (dois sistemas
2n 3
triangulares), o que representa um ganho substancial comparado com as operaes do mtodo da
3
eliminao de Gauss.
Dada uma matriz quadrada A de ordem n, seja Ak a matriz constituda das primeiras k linhas e
colunas de A. Suponha que det(Ak) 0 para k = 1, 2, ..., (n 1). Ento, existe uma nica matriz triangular
inferior L = (mij), com mii = 1, 1 i n, e uma nica matriz truangular superior U = (uij) tais que LU = A.
Ainda mais, det(A) = u11u22...unn.
l ij u ij
Esta multiplicao de matrizes pode ser usada para definir os valores de , e y i em termos dos
a
valores ij .
l11 = a 11
l 21 = a 21 u12 = a12 / l11
l 31 = a 31 u13 = a 13 / l11 y1 = b1 / l11
l 22 = a 22 l 21u12
l 32 = a 32 l 31 u 12
48
y 2 = (b2 l 21c1 ) / l 22
l 33 = a 33 l 31u13 l 32 u 23 y3 = (b3 l 31c1 l 32 c 2 ) / l 33
Note que o clculo de y pode ser feito da mesma forma que o clculo de u.
A sequncia de operaes :
x3 = y 3
x 2 = y 2 u 23 x3
x1 = y1 u13 x3 u12 x 2
Note que, o vetor c tambm pode ser obtido do sistema parcial L.y = b por substituies
sucessivas.
Sugere-se usar o processo "tipo escada" para armazenar L e U na mesma rea de memria, o que
torna o processo mais eficiente,
l i1 = a i1 i = 1,2,3,...,n
i k (i = k,k+1,...,n)
j > k (j = k+1,...,n+1)
x1 + 2 x 2 x3 = 2
2 x1 + 3 x 2 2 x3 = 3
x1 2 x 2 + x3 = 0
1 2 1
Seja A = 2 3 2
1 2 1
Calculando os mij e uij, usando o processo de Gauss sem estratgia de pivoteamento parcial. Para
49
triangular A, temos:
Etapa 1:
Piv = a11( 0) = 1
(0) (0)
a 21 2 a 31 1
Multiplicadores: m21 = (0)
= =2 m31 = (0)
= =1
a11 1 a11 1
Ento:
E1 E1 1 2 1
E 2 E 2 2 E1 1 0
(1)
A = 0
E 3 E 3 E1 0 4 2
(1) (1)
Uma vez que os elementos a 21 e a 31 so nulos, podemos guardar os multiplicadores nestas
posies, ento:
1 2 1
A(1)
= 2 1 0
1 4 2
Etapa 2:
(1)
Piv = a 22 = 1
(1)
a 32 4
Multiplicadores: m32 = = =4
(1)
a 22 1
Ento:
E1 E1 1 2 1
E2 E2 A (2)
= 0 1 0
E 3 E 3 4E 2 0 0 2
1 2 1
A(2)
= 2 1 0
1 4 2
Os fatores L e U so:
1 0 0 1 2 1
L = 2 1 0 e U = 0 1 0
1 4 1 0 0 2
y = (2, 1, 2)T
1 2 1 x1 2 x1 + 2 x 2 x3 = 2
0 1 0 . x = 1
2 ou x 2 = 1 x3 = 1; x2 = 1; x1 = 1
0 0 2 x3 2 2 x 3 = 2
3x1 + 2 x 2 + 4 x3 = 1
x1 + x 2 + 2 x3 = 2
4 x1 + 3 x 2 + 2 x3 = 3
x1 + x 2 + 2 x 3 = 4
2 x 1 x 2 x 3 = 0
x 1 x 2 x 3 = 1
a x + a x +... + a x = b
21 1 22 2 2n n 2
...
a x +a x
n1 1 n2 2
+ ... + ann x n = bn
a 11
a 21
+ a 31
+ ... + an1 a 11
a 12
+a 13
+ ... + a 1n
a 22
a 12
+ a 32
+ ... + an2 ou a 22
a 21
+a 23
+ ... + a 2n
... ...
a nn
a1n
+ a 2n
+ ... + an 1n a nn
a n1
+ a n2
+ ... + a nn1
Ento, isola-se em cada uma das equaes ordenadamente, uma das incgnitas.
1
= (b1 a12 x 2 a13 x 3 ... a1n x n )
(1) (0) ( 0) ( 0)
x 1
a
11
1
= (b2 a21 x1 a23 x 3 ... a2 n x n )
(1) ( 0) ( 0) ( 0)
x 2
a 22
...
1
= (bn a n1 x1 a n2 x 2 ... a nn1 x n1)
(1) ( 0) (0) (0)
x n
a nn
(0 ) (0) (0)
onde, x ,x
1 2
,..., x n so as atribuies inicial do mtodo.
Condies de Parada:
( j 1)
xn erro , ento
( j) ( j)
Se para todo x n x n
so as solues do sistema.
5.4.1.1 Exemplos
Exemplo 1: Resolver por Gauss-Jacobi, com 4 decimais com arredondamento e erro menor ou igual a
0,01 o sistema abaixo:
x + 8y z = 16
6x y + z = 7
x + y+ 5z = 18
a) Verificao da convergncia:
6x y + z = 7
x + 8y z = 16
x + y + 5z = 18
c) Atribuio inicial:
x(0) = 0 y(0)=0 z(0)=0
d) Iteraes:
1 1
x(1) = ( 7 + y(0) z(0) ) = ( 7 + 0 0 ) = 1,1667
6 6
1 1
y(1) = ( 16 x(0) + z(0) ) = ( 16 - 0 + 0 ) = 2
8 8
52
1 1
z(1) = ( 18 x(0) y(0) ) = ( 18 0 0 ) = 3,6
5 5
1
x(2) = ( 7 + 2 3,6 ) = 0,9
6
1
y(2) = ( 16 1,1667 + 3,6 ) = 2,3042
8
1
z(2) = ( 18 1,1667 2 ) = 2,9667
5
1
x(3) = ( 7 + 2,3042 2,9667 ) = 1,0562
6
1
y(3) = ( 16 0,9 + 2,9667 ) = 2,2583
8
1
z(3) = ( 18 0,9 2,3042 ) = 2,9592
5
1
x(4) = ( 7 + 2,2583 2,9592 ) = 1,0498
6
1
y(4) = ( 16 1,0562 + 2,9592 ) = 2,2379
8
1
z(4) = ( 18 1,0562 2,2583 ) = 2,9371
5
1
x(5) = ( 7 + 2,2379 2,9371 ) = 1,0501 | x(5) - x(4) | = 0,0003 < erro
6
1
y(5) = ( 16 - 1,0498 + 2,9371 ) = 2,2359 | y(5) - y(4) | = 0,002 < erro
8
1
z(5) = ( 18 1,0498 2,2379 ) = 2,9425 | z(5) - z(4) | = 0,0054 < erro
5
Exerccio 1: Dado o sistema, pede-se sua soluo por Gauss-Jacobi, com 4 decimais com
arredondamento e erro menor ou igual a 0,02.
10x + y + z = 12
x + 5y+ 9z = 15
2x +8y 4z = 6
B (S+ I ) X
( k 1)
=
(k )
DX
Multiplicando ambos os termos pela matriz inversa da diagonal,
D D X = D B D (S + I ) X
1 1 1 ( k 1)
(k )
X = D (S + I ) X
1 ( k 1) 1
+D B
(k )
( k 1)
= +E
(k )
X J X
onde
J = D (S+ I )
1
1
E =D B
5.4.2.1 Exemplos
Exemplo 1: Seja o sistema abaixo:
x + y 5z = -6
4x y + z = 19
x + 3y z = 14
obter a sua soluo por Gauss-Jacobi Matricial com 3 decimais com arredondamento e erro menor ou
igual a 0,05. Admitir soluo inicial nula.
a) Verificao da convergncia:
4x y + z = 19
x + 3y z = 14
x + y 5z = -6
b) Obteno do Algoritmo:
0 0 0 0 1 1 4 0 0 19
= 0 3 0 = 14
I = 1 0 0 S = 0 0 1 D B
1 1 0 0 0 0 0 0 5 6
, , , ,
1 0 0
1
4
=
D 0 1 0
3
0 0 1
5
Ento,
54
1 0 0 0 1 1 0 1 1
4 4 4
J = 0 1 0 1 0 1 = 1 0 1
3 3 3
0 0 1 1 1 0 1 1 0
5 5 5
1 0 0 19 19
4 4
E =0 1 0 14 = 14
3 3
0 0 1 6 6
5 5
Ento,
0 1 1 19
4 4 4
X = 13 1 ( k 1) + 14
(k )
3 X
0
6 3
1 5 1
5
0
5
c) Atribuio inicial:
0
X = 0
(0)
d) Iteraes:
4,750 5,617 4,850 4,951 5,031
X = 4,667 X = 3,483 X = 3,822 X = 4,057 X = 3,995
(1) ( 2) ( 3) (4) (5)
5x y = 13
2x + 4y = 14
obter a soluo por Gaus-Jacobi Matricial com 4 decimais com arredondamento e erro menor ou igual a
0,005. Admitir soluo inicial nula.
1 ( k 1) ( k 1) ( k 1)
= (b2 a21 x1 a 23 x3 a 24 x4 ... a2 n x n
(k ) (k )
x 2
)
a 22
1 ( k 1) ( k 1)
= (b3 a31 x1 a32 x2 a34 x4 ... a3n x n
(k ) (k ) (k )
x 3
)
a 33
...
1
= (bn a n1 x1 a n 2 x2 a n3 x3 ... a nn1 x n1)
(k ) (k ) (k ) (k ) (k )
x n
a nn
1 n
(k ) i > j
x
(k)
= ( bi aij x j )
i
a
ii j =1 ( k 1) i < j
j i
5.4.3.1 Exemplos
Exemplo 1: Resolver por Gauss-Seidel, com 4 decimais com arredondamento e erro menor ou igual a
0,005 o sistema abaixo.
x + 8y z = 16
6x y + z = 7
x + y+ 5z = 18
a) Verificao da convergncia:
6x y + z = 7
x + 8y z = 16
x + y + 5z = 18
c) Atribuio inicial:
x(0) = 0 y(0)=0 z(0)=0
d) Iteraes:
1
x(1) = ( 7 + 0 0 ) = 1,1667
6
1
y(1) = ( 16 1,1667 + 0 ) = 1,8542
8
1
z(1) = ( 18 1,1667 1,8542 ) = 2,9958
5
1
x(2) = ( 7 + 1,8542 2,9958 ) = 0,9764
6
56
1
y(2) = ( 16 - 0,9764 + 2,9958 ) = 2,2524
8
1
z(2) = ( 18 0,9764 2,2524 ) =2,9542
5
1
x(3) = ( 7 + 2,2524 2,9542 ) = 1,0497
6
1
y(3) = ( 16 - 1,0497 + 2,9542 ) = 2,2381
8
1
z(3) = ( 18 1,0497 2,2381 ) = 2,9424
5
1
x(4) = ( 7 + 2,2381 2,9424 ) = 1,0493 | x(4) - x(3) | = 0,0004 < erro
6
1
y(4) = ( 16 - 1,0493 + 2,9424 ) = 2,2366 | y(4) - y(3) | = 0,0015 < erro
8
1
z(4) = ( 18 1,0493 2,2366 ) = 2,9428 | z(4) - z(3) | = 0,0004 < erro
5
Exerccio 1: Resolver por Gauss-Seidel, com 4 decimais com arredondamento e erro menor ou igual a
0,01 o sistema abaixo.
7x + y z = 13
x + 8y + z = 30
2x y + 5z = 21
...
= bn an1 x1 an2 x 2 ... ann 1 x n 1
(k ) (k ) (k ) (k )
a xnn n
( k 1)
( D + I ) 1 ( D + I ) X = ( D + I ) 1 B ( D + I ) 1 S
(k )
X
(k ) 1 ( k 1) 1
X = ( D + I ) S X + (D + I ) B
57
( k 1)
=G +F
(k )
X X
onde,
G = ( D + I ) 1 S
F = ( D + I ) 1 B
5.4.4.1 Exemplos
Exemplo 1: Dado o sistema abaixo,
x + 6y = -21
5x y = 19
obter suas solues por Gauss-Seidel Matricial com 3 decimais com arredondamento e erro inferior ou igual a
0,005. Admitir nula a soluo inicial.
a) Verificao da convergncia:
5x y = 19
x + 6y = -21
b) Obteno do Algoritmo:
5 0 0 0 0 1 19
D = , I = , S = , B =
0 6 1 0 0 0 21
Ento,
1 0 0 1 0 1
= 5 5
G =
130 1 6 0 0 0 130
1 0 19 19
F = 5 = 5
1 30 1 21 62
6 15
Logo,
0 1
( k 1)
19
(k )
= 5 X + 5
X 0 1 30 62
15
c) Atribuio inicial:
0
X = 0
(0)
d) Iteraes:
0,001
= < erro
( 4) ( 3)
X X 0,000
58
T
A soluo deste sistema : (3; -4)
5x y = 13
2x + 4y = 14
obter a soluo por Gaus-Seidel Matricial com 4 decimais com arredondamento e erro menor ou igual a
0,005. Admitir soluo inicial nula.
A = L + D +U
Onde:
D Matriz Diagonal
(L + D + U )x = b
Lx + Dx + U x = b
D x = b (L + U ) x
x = D 1 b D 1 L x D 1U x
( k +1) ( k +1)
= D 1 b D 1 L x D 1U x
(k )
x
59
5.4.5.1 Interpretao Geomtrica do Caso 2 2
= [3 2]T :
(1)
Para k=1 e x
x1( 2) = 1
x 2( 2) = 4
3
= [1 4 ]T :
( 2)
Para k=2 e x
3
x1(3) = 5
3
x ( 3)
= 14
2 9
8
x2
7 x1+x2=3
3
(1,2) (3,2)
2
(4/3,5/3)
1 (1,4/3)
x1-3x2=-3
0
(0,0) (0,3) x1
-1
-2
-5 -4 -3 -2 -1 0 1 2 3 4 5
60
(o ) (1) ( 2) (k )
Observao 1: Verifica-se pelo grfico acima que a seqncia x , x , x , ......, x est convergindo
para a soluo exata x = [ 3 3 ]T .
2 2
Observao 2: A sequncia gerado pelo Mtodo de Gauss-Seidel depende fortemente da disposio das
equaes. Esta observao pode ser melhor entendida modificando a ordem das equaes do exemplo
anterior.
Considere o mesmo Sistema Linear anterior, porm modificando a ordem das equaes:
x1 3 x 2 = 3
x1 + x 2 = 3
O esquema iterativo utilizando o Mtodo de Gauss-Seidel dado por:
x1( k +1) = (3 + 3x 2( k ) )
x 2( k +1) = (3 x1( k +1) )
= [0 0]T :
(0)
Para k=0 e x
x1(1) = 3
x 2(1) = 6
= [3 6]T :
(1)
Para k=1 e x
x1(1) = 15
x 2(1) = 12
8
x2
7
(-3,6) ......(6,15)
6
5 x1+x2=3
3
x1-3x2= -3
2
0 x
(0,0) x1
(0,-3)
-1
-2
-5 -4 -3 -2 -1 0 1 2 3 4 5
Critrio de Linhas
a kk
Se = max k < 1 , ento o mtodo Gauss-Seidel gera uma seqncia x
k =1, n
{ } convergente para a soluo
(k )
(0)
do sistema dado, independentemente da escolha da aproximao inicial x .
a j1 1 + a j 2 2 + .............. + a jj 1 j 1 + a jj +1 + ...... + . a j1
j =
a jj
Define-se = max j .
j =1, n
Se < 1 , ento o Mtodo de Gauss-Seidel gera uma sequncia convergente para a soluo do sistema,
qualquer que seja o vetor inicial. Alm disso, quanto menor for o valor de mais rpida a
convergncia.
2 x1 + x 2 + 3 x3 = 3
x 2 + x3 = 1
x1 + 3x3 = 3
a) Critrio de Linhas
1+ 3
1 = = 2 > 1 no satisfaz.
2
b) Critrio de Sassenfeld
62
1+ 3
1 = = 2 > 1 no satisfaz.
2
b) Critrio de Sassenfeld
1
1 = = 0.33 < 1 satisfaz.
3
1
1
2 = 3 = 0.33 < 1 satisfaz.
1
1 1
3 + 1
3 = 3 3 = 4 < 1 satisfaz.
2 6
Com a ltima modificao o sistema passa a ser convergente para qualquer vetor inicial.
Modificaes desse tipo so puramente acadmicas e so difceis de serem realizadas em sistemas reais.
Principalmente pelas dimenses dos problemas, resultando num grande esforo computacional, e das
incertezas quanto a sua eficincia.
2 x1 + x 2 = 3
x1 + x 2 = 4
Critrio de Linhas
1
1 =
2 No satisfaz
2 = 1
Critrio de Sassenfeld
1
1 =
2
1 Satisfaz
1
2 = 2 =1
1 2
Teorema
1
x = A b para qualquer vetor x
(0)
.
( M 1 N ) = max{ : ( M 1 N )}
M =D
N = ( L + U )
M = ( L + D)
N = U
Mtodos Diretos:
Mtodos Iterativos:
65
1. Provavelmente mais eficientes para sistemas de grande porte, principalmente com a utilizao de
computao de alto desempenho (vetorial e paralela);
2. Tem convergncia assegurada apenas sob certas condies;
3. Conserva a esparsidade da matriz de coeficientes;
4. Os mtodos de G-J e G-s requerem 2n 2 operaes por iteraes;
5. Poucas vantagens adicionais so conseguidas em solues para vetores independentes adicionais com
a matriz de coeficientes mantida constante, como no caso da fatorao LU;
6. Carregam menos erros de arredondamento no processo, tendo em vista que a convergncia uma vez
assegurada independe da aproximao inicial. Somente os erros da ltima iterao afetam a soluo.
66
6 Interpolao
6.1 Introduo
A interpolao outra das tcnicas bem antigas e bsicas do clculo numrico. Muitas funes so
conhecidas apenas em um conjunto finito e discreto de pontos de um intervalo [a, b], como, por exemplo,
a tabela abaixo que relaciona calor especfico da gua e temperatura:
Xi x0 x1 x2 x3 x4 x5 x6 x7
Temperatura (C) 20 25 30 35 40 45 50 55
Calor especfico 0.99907 0.99852 0.99826 0.99818 0.99828 0.99849 0.99878 0.99919
Tabela 1 - Calor especfico da gua.
A interpolao tem o objetivo de nos ajudar na resoluo deste tipo de problema, ou em casos em
que possumos um conjunto de valores obtidos atravs de alguns experimentos.
Interpolar uma funo f(x) consiste em aproximar essa funo por uma outra funo g(x),
escolhida entre uma classe de funes definida a priori e que satisfaa algumas propriedades. A funo
g(x) ento usada em substituio funo f(x).
A necessidade de se efetuar esta substituio surge em vrias situaes, como por exemplo:
b) quando a funo em estudo tem uma expresso tal que operaes como a diferenciao e a
integrao so difceis (ou mesmo impossveis) de serem realizadas. Neste caso, podemos procurar uma
outra funo que seja uma aproximao da funo dada e cujo manuseio seja bem mais simples.
As funes que substituem as funes dadas podem ser de tipos variados, tais como: polinomiais,
trigonomtricas, exponenciais e logartmicas. Ns iremos considerar apenas o estudo das funes
polinomiais.
Para resolver (a) tem-se que fazer uma interpolao. E, sendo assim, determina-se o polinmio
interpolador, que uma aproximao da funo tabelada. Por outro lado, para resolver (b), deve-se
realizar uma extrapolao.
Consideremos (n + 1) pontos distintos: x0, x1, x2, ..., xn, chamados ns da interpolao, e os
valores de f(x) nesses pontos: f(x0), f(x1), f(x2), ..., f(xn).
A forma de interpolao de f(x) que veremos a seguir consiste em se obter uma determinada
67
funo g(x) tal que:
g(x0) = f(x0)
g(x1) = f(x1)
g(x2) = f(x2)
M M
g(xn) = f(xn)
Graficamente temos:
y
g(x)
0 x0 x1 x2 x3 x4 x5 x
Interpretao geomtrica para n = 5
O polinmio interpolador uma unidade menor que o nmero de pontos conhecidos. Assim
sendo, o polinmio interpolador nesse caso ter grau 1, isto ,
P1(x) = a1x + a0
P1(x0) = f(x0) = y0
P1(x1) = f(x1) = y1
a 1 x 0 + a 0 = y 0
onde a1 e a0 so as incgnitas e
a1 x 1 + a 0 = y 1
x 0 1
A= a matriz dos coeficientes.
x1 1
O determinante da matriz A diferente de zero, sempre que x0 x1, logo para pontos distintos o
sistema tem soluo nica.
O polinmio interpolador P1(x) = a1x + a0 tem como imagem geomtrica uma reta, portanto
estaremos aproximando a funo f(x) por uma reta que passa pelos dois pontos conhecidos (x0, y0) e (x1,
68
y1).
A figura abaixo mostra, geometricamente, os dois pontos, (x0, y0) e (x1, y1), e a reta que passa por
eles.
p1(x)
y1
y0
0 x0 x1
6.2.2 Exemplos
Exemplo 1: Seja a funo y = f(x) definida pelos pontos (0.00; 1.35) e (1.00; 2.94). Determinar
aproximadamente o valor de f(0.73).
P1(x) = a1x + a0 o polinmio interpolador de 1 grau que passa pelos pontos dados. Ento
teremos:
a) Pontos utilizados:
(0.00;1.35) e (1.00; 2.94)
c) Polinmio interpolador:
P1(x) = 1.59x + 1.35 (equao da reta que passa pelos pontos dados)
d) Resposta:
P1(0.73) = 1.59 0.73 + 1.35
P1(0.73) = 2.51
Exerccio 1: Dada a funo f(x) = 10x4 + 2x + 1 com os valores de f(0.1) e f(0.2) determinar P1(0.15) e o
erro absoluto cometido.
Exerccio 2: Calcular o calor especfico aproximado da gua a 32,5 C, usando os valores da tabela 1.
Usando as temperaturas 30 C e 35 C.
69
Polinmio interpolador: P1(x) = 0.000016x + 0.99874
P1(32.5) = 0.99822
O polinmio P2(x) conhecido como funo quadrtica cuja imagem geomtrica uma parbola,
portanto, estaremos aproximando a funo f(x) por uma parbola que passa pelos trs pontos conhecidos
(x0, y0), (x1, y1) e (x2, y2).
a2 x02 + a1x0 + a0 = y0
a2 x12 + a1x1 + a0 = y1
a2 x 22 + a1x2 + a0 = y2
onde a2, a1 e a0 so as incgnitas e os pontos (x0, y0), (x1, y1) e (x2, y2) so conhecidos.
x02 x 0 1
V = x12 x1 1
x 22 x 2 1
6.3.2 Exemplos
Exemplo 1: Utilizando os valores da funo seno, dados pela tabela abaixo, determinar a funo
2
2 sen x
quadrtica que se aproxima de f(x) = , trabalhando com trs casas decimais.
x +1
x sen(x) f(x)
0 0 0.000
1 0.328
6 2
2 0.560
4 2
a) Pontos utilizados:
( 0; 0 ) ( /6; 0.328 ) ( /4; 0.560 )
P 2(0) = a 2 02 + a1 0 + a 0 = 0
() 2
()
P 2( 6 ) = a 2 6 + a1 6 + a 0 = 0.328
4
() 4
()
P 2( ) = a 2 2 + a1 + a 0 = 0.560
4
70
a2 = 0.333 a1 = 0.452 a0 = 0
c) Polinmio interpolador:
P2(x) = 0.333 x 2 + 0.452x
Exemplo 2: Determinar o valor de f(0.2) e o erro absoluto ocasionado pela aplicao da interpolao
quadrtica, no clculo deste valor, usando os valores tabelados da funo f(x) = x2 2x + 1. Utilizar duas
casas decimais.
x f(x)
0.5 0.25
0.3 0.49
0.1 0.81
a) Pontos utilizados:
( 0.5; 0.25 ) ( 0.3; 0.49 ) ( 0.1; 0.81 )
c) Polinmio interpolador:
P2(x) = x2 2x + 1
d) Resposta:
P2(0.2) = (0.2)2 2.(0.2) + 1
P2(0.2) = 0.64
EA = f(0.2) P2(0.2)
EA = 0.64 0.64
EA = 0
Podemos observar que o polinmio interpolador igual a funo dada. Isto ocorre porque a funo
dada polinomial de 2 grau e, a partir de trs pontos da funo, consegue-se determin-la sem erro.
Contudo, poder existir o erro de arredondamento.
71
Exerccio 1: Usando trs pontos da Tabela 1, determinar o calor especfico aproximado da gua a 31 C
Teorema: Sejam (xi, yi), i = 0, 1, 2, ..., n, n + 1 pontos distintos, isto , xi xj para i j. Existe um
nico polinmio P(x) de grau menor ou igual a n, tal que P(xi) = yi, para todo i.
n
i
Pn(x) = a0 + a1x + a2x2 + ... + anxn ou Pn(x) = a x i
i =0
P(x) , no mximo, de grau n, se an 0 e, para determin-lo, deve-se conhecer os valores de a0, a1,
..., an. Como Pn(x) contm os pontos (xi, yi), i = 0, 1, ..., n, pode-se escrever que Pn(xi) = yi.
a + a x + a x 2 +...+ a x n = y
0 1 0 2 0 n 0 0
a0 + a1 x1 + a 2 x1 +...+ a n x1 = y1
2 n
................................................
+ + a2 x n +...+ a n x n = y
2 n
a 0 a 1 x n n
Resolvendo o sistema acima, determina-se o polinmio Pn(x). Para provar que tal polinmio
nico, basta que se mostre que o determinante da matriz A, dos coeficientes das incgnitas do sistema,
diferente de zero. A matriz A :
1 x x 2 ... x n
0 0
2 n
0
A = x1 x1 x1
1 ...
............................
2 n
1 x n x n ... x n
(x x )
i> j
i j = (x1 x0) (x2 x0) (x2 x1) (x3 x0) (x3 x1) (x3 x2) =
72
= (1)(2)(3)(1)(2)(1) = 12
1 1 1 1
1 0 0 0
1 3 9 27
1 2 4 8
Sejam x0, x1, x2, ..., xn, (n + 1) pontos distintos e yi = f(xi), i = 0, 1, ..., n.
Seja Pn(x) o polinmio de grau n que interpola f em x0, ..., xn. Podemos representar Pn(x) na
forma Pn(x) = y0L0(x) + y1L1(x) + ... + ynLn(x), onde os polinmios Lk(x) so de grau n. Para cada i,
queremos que a condio Pn(xi) = yi seja satisfeita, ou seja:
0 se k i
Lk(xi) = e, para isso, definimos Lk(x) por
1 se k = i
n
Pn(xi) = y k Lk ( x i ) = yiLi(xi) = yi
k =0
n
Pn(x) = y k Lk ( x )
k =0
n
( x xj )
onde Lk(x) = (x
j =0 k xj )
j k
73
n
n
( x xj )
Pn(x) = y k , a frmula da interpolao lagrangeana.
k =0 j = 0 ( xk xj )
j k
6.4.2 Exemplos:
Exemplo 1: No caso da interpolao linear, visto anteriormente, temos dois pontos distintos: (x0, f(x0)) e
(x1, f(x1)) com n igual a 1.
a) Pontos utilizados:
(0.00; 1.35) e (1.00; 2.94)
( x x1)
L0(x) =
( x 0 x1)
( x x 0)
L1(x) =
( x1 x 0)
( x x1) ( x x 0)
Assim, P1(x) = y0 + y1
( x 0 x1) ( x1 x 0)
que exatamente a equao da reta que passa por (x0, f(x0)) e (x1, f(x1)).
c) Polinmio interpolador:
( x 1) ( x 0)
P1(x) = 1.35 + 2.94 = 1.35x + 1.35 + 2.94x = 1.59x + 1.35
(0 1) (1 0)
que a mesma expresso obtida no exemplo 1 de interpolao linear.
Exerccio 1: Determinar o polinmio de interpolao de Lagrange para a funo conhecida pelos pontos
tabelados abaixo e o resultado em P(0.5):
i xi yi
0 0 0
1 1 1
2 2 4
Exerccio 2: Determinar o polinmio interpolador de Lagrange para a funo conhecida pelos pontos da
tabela abaixo:
i xi yi
0 1 4
1 0 1
2 2 1
3 3 16
Resposta: P3(x) = x3 4x + 1
74
6.5 Interpolao Parablica Progressiva
Na interpolao parablica progressiva precisamos de n + 1 pontos, onde n o grau do polinmio
desejado. Em seguida, tomamos os pontos mais prximos, do ponto que queremos, na hora de montar a
tabela.
Polinmio de grau 0:
Polinmio grau 0
G0
CTE
P0(x) = a0
Polinmio de grau 1:
Polinmio de grau 2:
Polinmio de grau n:
Pn(x) = a0 + a1.(x x0) + a2.(x x0).(x x1) + ... + an.(x x0).(x x1).(x x2) ... (x xn-1)
Impondo que Pn(x) passe por todos os n + 1 pontos da tabela, temos que:
Pn(x0) = f(x0)
Pn(x1) = f(x1)
Pn(x2) = f(x2)
M
Pn(xn) = f(xn)
Validade:
x = x0 P 0 ( x0 ) = a 0 = f (x )
0
f (x ) a f (x ) P (x )
x= x1 P1 ( x1) = a0 + a1 ( x1 x0) = f (x ) a = a =
1 0 1 0 1
1 1
x x
1 0
1
x x1 0
75
f (x ) P (x )
x= x2 P2 ( x2) = a0 + a1 ( x2 x0) + a2 ( x2 x0)( x2 x1) = f (x ) a = 2 1 2
2 2
( x x )( x x )
2 0 2 1
x = x P ( x ) = a + a ( x x ) + ... + a ( x x )...( x x
n n n 0 1 n 0 n n 0 n
)=
n 1 f (x )
n
f (x ) P (x ) n 1
= n n
a ( )...( )
n
x x x x n 0 n n 1
xi 5 3 1 2
f(xi) 8 4 4 6
1 Hiptese:
x = x P ( x ) = 8
0 0
2 Hiptese:
f ( x ) P ( x ) = 4 + 8 = 2
x = x a = P1 ( x ) = 8 + 2( x + 5) = 2 x + 2
1 0 1
1 1
x x 1
3 + 5 0
3 Hiptese:
f (x ) P (x ) = 4 4 = 0
x = x a = P2 ( x ) = 2 x + 2
2 1 2
2 2
( x x )( x x ) (1 + 5)(1 + 3)
2 0 2 1
4 Hiptese:
f (x ) P (x ) 66
x= x 3 a3 = = =0 P3 ( x ) = 2 x + 2
3 2 3
( x x )( x x )( x x ) ( 2 + 5)( 2 + 3)( 2 1)
3 0 3 1 3 2
f[x0] = f(x0)
f [ x1 ] f [ x0 ] f ( x1 ) f ( x0 )
f[x0,x1] = =
x1 x0 ( x1 x0 )
f [ x1 , x 2 ] f [ x0 , x1 ]
f[x0,x1,x2] =
x 2 x0
M
f [ x1 , x 2 ...x n ] f [ x0 , x1 ...x n 1 ]
f[x0,x1,x2, ... xn] =
x n x0
76
Dizemos que f[x0,x1,x2,...xk] a diferena dividida de ordem k da funo f(x) sobre os k + 1 pontos.
Conhecidos os valores que f(x) assume nos pontos distintos x0, x1, x2, ... xn, podemos construir a
tabela:
Exemplo:
f [ x1 ] f [ x0 ] f [ x0 ] f [ x1 ]
f[x0,x1] = = = f[x1,x0]
x1 x0 x0 x1
f[x0] = a0
f[x0,x1] = a1
f[x0,x1,x2] = a2
M
f[x0,x1,x2,...,xn] = an
Pn(x) = a0 + a1.(x x0) + a2.(x x0).(x x1) + ... + an.(x x0).(x x1).(x x2) ... (x xn-1)
6.6.3 Exemplos
Exemplo 1: Obter f(0.5) usando um polinmio interpolador de Newton do segundo grau (3 pontos).
Considere a seguinte tabela:
xi 1 0 1 2 3
F(xi) 2 1 2 5 10
onde:
f[x0] = f(x0) = 2
f[x1] = f(x1) = 1
f[x2] = f(x2) = 2
f[x3] = f(x3) = 5
f[x4] = f(x4) = 10
f [ x1 ] f [ x0 ] f ( x1 ) f ( x0 ) 1 2
f[x0,x1] = = = = 1
x1 x0 ( x1 x0 ) 0 +1
f [ x 2] f [ x1] 2 1
f[x1,x2] = = =1
x 2 x1 1 0
f [ x3] f [ x2] 52
f[x2,x3] = = =3
x3 x 2 2 1
f [ x4] f [ x3] 10 5
f[x3,x4] = = =5
x4 x3 3 2
f [ x1 , x 2 ] f [ x0 , x1 ] 1 + 1
f[x0,x1,x2] = = =1
x 2 x0 1+1
f [ x 2 , x 3] f [ x1 , x 2] 31
f[x1,x2,x3] = = =1
x 3 x1 20
f [ x3 , x4] f [ x2 , x3] 5 3
f[x2,x3,x4] = = =1
x4 x2 3 1
f [ x1 , x 2 , x 3] f [ x0 , x1 , x 2] 1 1
f[x0,x1,x2,x3] = = =0
x 3 x0 2 +1
f [ x 2 , x 3 , x 4] f [ x1 , x 2 , x 3] 11
f[x1,x2,x3, x4] = = =0
x 4 x1 3 0
f [ x1 , x 2 , x 3 , x 4] f [ x0 , x1 , x 2 , x 3] 00
f[x0,x1,x2,x3,x4] = = =0
x 4 x0 3+1
b) Polinmio interpolador:
c) Resposta:
Exemplo 2: Obter f(40) usando um polinmio interpolador de Newton de grau 3 (4 pontos). Considere a
seguinte tabela:
xi 30 35 45 50 55
F(xi) 0.5 0.574 0.707 0.766 0.819
78
a) Clculo dos coeficientes de Pn(x):
Como o polinmio obtido no ter grau 3, devemos escolher um novo conjunto de pontos:
b) Polinmio interpolador:
P3(x) = 0.5 + 0.0148(x 30) 0.0001(x 30)(x 35) 0.0000002(x 30)(x 35)(x 45)
c) Resposta:
P3(40) = 0.5 + 0.0148(10) 0.0001(10)(5) 0.0000002(10)(5)(5)
P3(40) = 0.64305
Exerccio 1: Obter f(0.47) usando um polinmio interpolador de Newton do segundo grau (3 pontos).
Considere a seguinte tabela:
Exerccio 2: Obter f(0.5) usando um polinmio interpolador de Newton do quarto grau (5 pontos).
Considere a seguinte tabela:
xi 1 0 1 2 3
F(xi) 1 1 0 1 2
Polinmio interpolador:
1 1 1
P4(x) = 1 + 0.(x + 1) + (x + 1)(x) + (x + 1)(x)(x 1) + (x + 1)(x)(x 1)(x 2)
2 6 24
P4(0.5) = 1 0.375 0.0625 0.02344 = 0.53906
x1 x0 = x2 x1 = x3 x2 = ... = xn xn-1 = h
79
Assim xi+1 xi = h , para todo i, sendo h uma constante.
xi = xi-1 + h xi = x0 + i * h
f[x0] = f(x0)
f [ x1 ] f [ x0 ] f ( x1 ) f ( x0 ) f ( x0 + h) f ( x0 ) f ( x0 )
f[x0,x1] = = = =
x1 x0 ( x1 x0 ) h h
f ( x1 ) f ( x0 )
f [ x1 , x 2 ] f [ x0 , x1 ] h h 2 f ( x0 )
f[x0,x1,x2] = = =
x 2 x0 2h 2h 2
M
e por induo podemos mostrar que esta regra valida para valores maiores que 2.
Pn(x) = f[x0] + f[x0,x1].(x x0) + f[x0,x1,x2].(x x0).(x x1) + ...+ f[x0,x1,x2,...,xn].(x x0).(x x1).(x
x2)...(x xn-1)
f ( x0 ) 2 f ( x0 ) n f ( x0 )
Pn(x) = f(x0) + .(x x0) + .(x x0).(x x1) + ... + .(x x0).(x x1).(x
h 2h 2 n!h n
x2)...(x xn-1)
6.7.4 Exemplos
Exemplo 1: Obter f(0.5) usando um polinmio interpolador de Gregory-Newton (G-N) do segundo grau
(3 pontos). Considere a seguinte tabela:
80
xi 1 0 1 2 3
f(xi) 2 1 2 5 10
a) Tamanho do intervalo:
h=1
c) Polinmio interpolador:
1 2
P2(x) = 2 + (x + 1) + 2
(x + 1)(x)
1 2 1
P2(x) = 2 (x + 1) + x (x + 1)
P2(x) = 2 x 1 + x2 + x
P2(x) = x2 + 1
d) Resposta:
P2(0.5) = (0.5)2 + 1 = 1.25
xi 1 2 3 4
F(xi) 0 0.6931 1.0986 1.3863
Uma funo spline intervalar um polinmio constitudo sobre certas condies de continuidade.
81
6.8.1 Spline Linear
( xi , y i , i = 1, 2, L, n)
Para um conjunto de dados chamados ns : , a spline linear definida por
s ( x ) = y i si ( xi +1 ) = y i +1
A condio C0, i i e produz 2(n 2) equaes para os pontos interior ao domnio
de x. Acrescentada a estas condies duas condies nos pontos extremos do domnio de x so
estabelecidas produzindo um total de 2n 2 equaes concordar com 2n 2 incgnitas:
a i , bi , i = 1, 2, L, n 1
. Aplicando essas condies obtm-se:
x xi +1 x xi y yi
s i ( x) = y i + y i +1 = y i + i +1 ( x xi ), x [xi , xi +1 ]
xi xi +1 xi +1 xi xi +1 xi (1.2)
i 1 2 3 4 5
x 0 5 7 8 10
y 0 2 -1 -2 20
Spline Linear
x5 x0
s1 ( x) = 0 +2 = 2.5 x , x [0, 5]
05 50
x7 x5
s 2 ( x) = 2 1 = 1.5 x + 9.5 , x [5, 7]
57 75
x8 x7
s 3 ( x ) = 1 2 = x + 6 , x [7, 8]
78 87
x 10 x8
s 4 ( x ) = 2 + 20 = 11x 90 , x [8, 10]
8 10 10 8
82
10
y
-5
0 1 2 3 4 5 6 7 8 9 10
x
Pseudocdigo: Matlab
(1) Input dados x(i) ,y(i), i = 1,n; Plot usando smbolos usando plot;
(2) For i = 1, n-1, do
A = linspace(x(i),x(i+1),nint) % Divide cada intervalo em nint pontos
Call c1=linear_spline % Call a funo linear_spline.m
Call c2=interp1 % Call a funo do MATLAB (opo default: linear)
Plot c1
Plot c2
Enddo
function f = linear_spline(x,y,xx)
i 1 2 3 4 5 6
x 0 1 2 3 4 5
y 1 1 1 -1 -1 -1
data points
1 linear spline
interp1: linear
0.8
0.6
0.4
0.2
0
y
-0.2
-0.4
-0.6
-0.8
-1
claramente notado em ambos os exemplos as splines so linhas retas. Estes conjuntos de dados
sero usados em todo este material com o objetivo de comparar os diferentes tipos de splines.
84
si ( x) = a i x 2 + bi x + ci , for x [xi , xi +1 ] , i = 1, 2, L , n 1
(2.1)
Dos trs requerimentos acima, existem 3n-4 condies. Porm as splines quadrticas requer um total de
3n-3 condies, de forma que h necessidade de uma condio a ser adicionada. Usualmente usa-se,
s1(x1) = 0 como condio. Com isso se obtm a ento chamada spline natural quadrtica. Certamente
outras condies podem ser usadas, tal como s1(x1) = sn-1(xn ).
Para determinar a equao da spline, primeiro denote di = si (xi ), ento desde que s(x) uma spline
linear para o conjunto de dados (xi, di, i = 1,2, , n), obtm-se
x xi x x (d i +1 d i ) x d i +1 xi + d i xi +1
si ( x) = d i +1 + d i i +1 =
xi +1 xi xi +1 xi xi +1 xi
d i +1 d i
= ( x xi ) + d i
xi +1 xi
aqual uma equao linear para a inclinao (slope).
Integrando em x, obtm-se
d di
si ( x) = i +1 ( x xi ) 2 + d i ( x xi ) + y i
2( xi +1 xi ) (2.4)
si ( xi ) = y i
Nesta soluo a constante de integrao calculada utilizando a condio de contorno C0 : .
d
Uma spline quadrtica definida uma vez que os i s sejam conhecidos.
A eq(2.5) descreve um esquema recursivo. Se d1 conhecido, ento di+1 pode ser calculado pela eq(2.5).
Varias condies podem ser aplicadas para obter d1:
Para a ento chamada Spline Natural, d1 = 0 .
Se d1 = d2, ento d1 pode ser calculado por
y y1 y y1
d1 = d 2 = 2 2 d 1 d1 = 2
x 2 x1 x 2 x1 (2.6)
85
Se d1 = dn, ento d1 pode ser calculado por
n 1
ni +1 yi +1 yi
d =
( 1)
, n par
n i +1 yi +1 yi
n1
1
i =2 x x
d1 = d n = 2 (1) (1) d1
n i +1 i
i =2 xi+1 xi
sem solucao, n impar
(2.7)
Esta condio no pode ser aplicada quando n um nmero impar.
(1) Input os pontos x(i) ,y(i), i = 1,n; Plot estes pares usando smbolos com a funo plot;
(2) For i = 1, n-1, do
A = linspace(x(i),x(i+1),nint) % Divide cada intervalo e nint pontos
Call c1=quadratic_spline with d1 = 0; % Spline Natural Quadrtica
Call c2=quadratic_spline with d1 = d2;
Plot c1
Plot c2
Enddo
function f = quadratic_spline(x,y,xx,ioption)
% Calcule d(1)
if ioption==1;
d(1)=0.0; % Spline Quadratica Natural
else;
d(1)=(y(2)-y(1))/(x(2)-x(1)); % para d(1)=d(2), eq(2.6)
end;
% Usa algoritmo recursivo eq(2.5) para calcular todosl d(i)
for i = 2:n;
d(i)=2.0*(y(i)-y(i-1))/(x(i)-x(i-1))-d(i-1);
end;
% Calcular qual o intervalo que reside xx
for i = 1:n-1;
if (xx>=x(i)) & (xx<=x(i+1));
m=i;
break;
end;
end;
% Calcule y(xx) para spline quadratica eq(2.4).
f = (xx-x(m))*( 0.5*(d(m+1)-d(m))*(xx-x(m))/(x(m+1)-x(m)) ...
+d(m) ) + y(m);
86
Examplo 2.1. Dado os mesmo dados do examplo 1.1, calcule a spline quadrtica.
20 1 2
d2 = 2 0 = 0.8, d 3 = 2 0.8 = 3.8
50 75
2 +1 20 + 2
d4 = 2 + 3.8 = 1.8, d 5 = 2 1.8 = 20.2
87 10 8
0 .8 0
s1 ( x) = ( x 0) 2 + 0( x 0) + 0 = 0.08 x 2 , x [0, 5]
2(5 0)
3 .8 0 .8
s 2 ( x) = ( x 5) 2 + 0.8( x 5) + 2 = 1.15 x 2 + 12.3 x 289.5, x [5, 7]
2(7 5)
1 .8 + 3 .8
s3 ( x) = ( x 7) 2 3.8( x 7) 1 = 2.8 x 2 9.4 x + 162.8, x [7, 8]
2(8 7)
20.2 1.8
s 4 ( x) = ( x 8) 2 + 1.8( x 8) 2 = 4.6 x 2 71.8 x + 273.6, x [8, 10]
2(10 8)
Os resultados das splines devido condio d1 = d2, so plotados na figura 2.1. Prximo x = 0, a spline
natural tem uma curva achatada devido derivada zero em x = 0. A outra spline tem uma inclinao
linear no primeiro intervalo. Para todos os intervalos de dados, estas duas splines so diferentes, embora
as diferenas sejam pequenas.
Quadratic Spline Interpolation
20
data points
natural quadratic spline
quadratic spline with d1=d2
15
10
y
-5
0 1 2 3 4 5 6 7 8 9 10
x
Tambm, as splines no 4 e 5 intervalos tm grandes oscilaes. Seria desejvel uma transio suave no 3
intervalo e as splines apresentam esta transio. Contudo devido a depresso no intervalo 4, existem
oscilaes no 4 e 5 intervalos. Geralmente, quando a ordem do polinmio spline maior este problema
torna-se mais severo.
Quadratic Spline Interpolation
1.5
data points
natural quadratic spline
1 quadratic spline with d1=d2
0.5
0
y
-0.5
-1
-1.5
-2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x
s [x1 , x n ];
(1)
[x , x ]
(2) s , j = 0, 1, 2, L , k 1 so todas funes contnuos no 1 n onde s(j) a j-sima derivada;
( j)
[x , x ]
(3) s um polinmio de grau k em cada intervalo i i +1 .
Se k = 3 , a spline chamada de spline cbica. As curvaturas dadas pelas derivadas segundas podem ser
x
aproximadas por funes lineares em um intervalo e denotando os valores nos pontos i como
ei = si( xi ), i = 1, 2, L , n
, elas podem ser aproximadas pelo polinmio interpolador de Lagrange no
88
( xi , ei , i = 1, 2, L, n)
conjunto de dados . Contudo
x xi x x
si( x) = ei +1 + ei i +1 , i = 1, 2, L , n 1
xi +1 xi xi +1 xi (3.1)
ei +1 e
s i ( x) = ( x xi ) 3 + i ( xi +1 x) 3 + c( x xi ) + d ( xi +1 x)
6hi 6hi (3.2)
y i +1 ei +1 hi y eh
c= ; d= i i i
hi 6 hi 6 (3.3)
A qual conduz a
ei +1 e y e h y eh
s i ( x) = ( x xi ) 3 + i ( xi +1 x) 3 + ( i +1 i +1 i )( x xi ) + ( i i i )( xi +1 x)
6hi 6hi hi 6 hi 6 (3.4)
ei +1 e y e h y eh
si ( x) = ( x xi ) 2 i ( xi +1 x) 2 + ( i +1 i +1 i ) ( i i i )
2hi 2hi hi 6 hi 6
e
ei 2 y e h y eh e h eh
si ( xi ) = hi + ( i +1 i +1 i ) ( i i i ) = i +1 i i i + bi
2hi hi 6 hi 6 6 3
onde
y i +1 y i
bi = , i = 1, 2, L , n 1
hi (3.5)
Tambm
ei y eh y e h e h eh
si1 ( xi ) = hi21 + ( i i i 1 ) ( i 1 i 1 i 1 ) = i 1 i 1 + i i 1 + bi 1
2hi 1 hi 1 6 hi 1 6 6 3
e1 = 0
hi 1ei 1 + u i ei + hi ei +1 = vi i = 2, 3, L, n 1
en = 0 (3.7)
onde
u i = 2(hi 1 + hi )
i = 2, 3, L, n 1
vi = 6(bi bi 1 ) (3.8)
Example 3.1. Dado os pontos do exemplo 1.1, obter a spline natural cbica.
h1 = 5, h2 = 2, h3 = 1, h4 = 2
14 2 0 e2 11.4
2 6 1 e3 = 3.0
0 1 6 e 72.0
4
Os valores de e2, e3, e e4 pode ser obtido usando o algoritmo de Thomas. Estes valores juntamente com
e1= e5 = 0 fornecem:
As splines cbicas natural so plotadas na figure 3.1. As funes Matlab spline e interp1 com as
opes corretas so usadas para produzir as mesmas splines. Duas outras condies so adicionadas
nestas funes Matlab como segue
90
10
y
-5
0 1 2 3 4 5 6 7 8 9 10
x
--------------------------------------------------------------------
x(i) x(i+1) a(i+1) ai bi ci
--------------------------------------------------------------------
0.00 5.00 -0.0224 0.0000 0.0000 0.9601
5.00 7.00 -0.0829 -0.0560 1.2240 -0.1683
7.00 8.00 2.0553 -0.1659 -0.8341 -4.0553
8.00 10.00 0.0000 1.0276 -5.1106 10.0000
As splines so plotadas na figura 3.2. Todas as splines apresentam resultados melhores que
quelas gerados pela spline quadrticas. As oscilaes so menores. As splines naturais aqui apresentam
melhores resultados que os gerados por spline e interp1: spline no 1 e 5 intervalos.
91
Cubic Spline Interpolation
1.5
data points
natural cubic spline
interp1:spline
1
spline
0.5
0
y
-0.5
-1
-1.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x
function f = cubic_spline(x,y,xx)
%--------------------------------------------------------------------------
%echo off; clear; clc; format long;
%--------------------------------------------------------------------------
%
n=length(x); % No. dados em ordem crescente.
if (xx<x(1)) | (xx>x(n));
error('for a do intervalo de x!'); % Erro
end;
%
% Inicialize h, b, u, v.
h=1:1:n-1;
b=1:1:n-1;
u=1:1:n-1;
v=1:1:n-1;
%
for i=1:n-1;
h(i)=x(i+1)-x(i); % Calcule h(i)
b(i)=(y(i+1)-y(i))/h(i); % Calcule b(i) usando eq(3.5)
end;
%
% Calcule u(i), v(i) usando eq(3.8)
u(2)=2.0*(h(1)+h(2));
v(2)=6.0*(b(2)-b(1));
for i=3:n-1;
u(i)=2.0*(h(i)+h(i-1));
v(i)=6.0*(b(i)-b(i-1));
end;
%
% Condicoes para Spline Cubica Natural
e(1)=0.0;
e(n)=0.0;
% Calcule e(i) usando eq(3.7)
sub(1:n-2) = h(1:n-2); % diagonal inferior
dia(1:n-2) = u(2:n-1); % diagonal principal
super(1:n-2) = h(2:n-1); % diagonal superior
rhs(1:n-2) = v(2:n-1); % lado direito
92
%--------------------------------------------------------
[xs]=triDiag(n-2,sub,super,dia,rhs);
e(2:n-1)=xs;
%--------------------------------------------------------
% Calcular intervalo onde xx reside
for i = 1:n-1;
if (xx>=x(i)) & (xx<=x(i+1));
m=i;
break;
end;
end;
%
hm=x(m+1)-x(m);
xt1=xx-x(m);
xt2=x(m+1)-xx;
function [xs]=triDiag(dim,sub,super,diag,rhs)
n=length(x)-1;
nint=11; % Use nint points in plotting for each data interval
Splines de crescente ordem so obtidas aumentando a ordem de continuidade nos pontos atravs
de todos os intervalos, splines quadrtica requer que as primeiras derivadas sejam satisfeitas nos pontos
de extremos dos intervalos, splines cbica requer as derivadas segundas, etc. Splines de ordem maior que
3 so raramente usadas em aplicaes prticas. Porm o aumento da ordem paga o esforo para ger-la?
Observando os grficos estes revelam que para ordem maior que 1 h oscilaes atravs dos
dados. A comparao das splines mostrada nas figuras 4.1 e 4.2. possvel observer que as splines
quadrticas, em geral, oscilam mais que as splines cbicas quando comparadas com as splines lineares.
Ento aumentando a ordem nem sempre aumenta as oscilaes. Ento qual spline escolher?
A Seleo de uma spline apropriada depende da aplicao. Se procura interpolar os dados por si
s, talvez a spline linear a melhor escolha. Se os dados forem de natureza cbica a spline cbica ser a
melhor escolha. Se desejar conhecer derivadas dos dados, uma spline linear gera saltos nos pontos,
portanto algum grau de suavidade seria desejvel. Ento novamente, a escolha dever ser feita em funo
da aplicao. Em projetos, as splines permitem suavizao local atravs dos dados e a spline cbica a
escolha usual.
Como as splines se comparam aos polinmios interpolantes de Hermite que tambm tratam de
derivadas? muito importante entender o seguinte conceito: splines concordam atravs das condies de
derivadas nos pontos extremos dos intervalos, no derivadas dos dados por si s. Em outras palavras,
splines so funes discretas as quais aproximam os dados preenchendo os dados nos intervalos: as
condies de suavidade nos pontos de juno so asseguradas assim como nos pontos gerados no interior
do intervalo. Por outro lado, a interpolao de Hermite requer derivadas de dados, isto , as derivadas so
partes dos dados, i.., posio, velocidade, acelerao. A nica relao entre spline e interpolao de
Hermite que ambos so polinmios.
10
y
-5
0 1 2 3 4 5 6 7 8 9 10
x
94
Figura 4.2
Spline Comparison Comparao
1.5 Spline.
data points
natural cubic spline
1 natural quadratic spline
linear spline
0.5
0
y
-0.5
-1
-1.5
-2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
x
95
7 Ajuste de Curvas
Uma das formas de se trabalhar com uma funo definida por uma tabela de valores a
interpolao polinomial. Contudo, a interpolao no aconselhvel quando:
a) preciso obter um valor aproximado da funo em algum ponto fora do intervalo de
tabelamento, ou seja, quando se quer extrapolar.
b) Os valores tabelados so resultados de algum experimento fsico ou de alguma pesquisa,
porque, nestes casos, estes valores podero conter erros inerentes que, em geral, no so
previsveis.
Surge ento a necessidade de se ajustar a estas funes tabeladas uma funo que seja uma "boa
aproximao" para os valores tabelados e que permita extrapolar com certa margem de segurana.
O problema do ajuste de curvas no caso em que temos uma tabela de pontos (x1, f(x1)), (x2, f(x2)),
..., (xm, f(xm)) com x1, x2, ..., xm, pertencentes a um intervalo [a, b], consiste em: escolhidas n funes
g1(x), g2(x), ..., gn(x), contnuas em [a, b], obter n constantes 1, 2, ..., n tais que a funo (x) = 1g1(x)
+ 2g2(x) + ... + ngn(x) se aproxime ao mximo de f(x).
Genericamente, no caso linear, estaremos supondo que os dados sero aproximados por uma
funo do tipo:
f(x) (x) = 1g1(x) + 2g2(x) + ... + ngn(x)
Dizemos que este um modelo matemtico linear porque os coeficientes a determinar, 1, 2, ...,
n, aparecem linearmente, embora as funes g1(x), g2(x), ..., gn(x) possam ser funes no lineares de x,
como por exemplo, g1(x) = ex, g2(x) = (x2 + 2), g3(x) = sen(x), etc.
A escolha das funes pode ser feita observando o grfico dos pontos conhecidos ou baseando-se
em fundamentos tericos do experimento que nos forneceu a tabela.
Portanto, dada uma tabela de pontos (x1, f(x1)), (x2, f(x2)), ..., (xm, f(xm)), deve-se, em primeiro
lugar, colcoar estes pontos num grfico cartesiano. O grfico resultante chamado diagrama de
disperso. Atravs deste diagrama pode-se visualizar a curva que melhor se ajusta aos dados.
i 1 2 3 4 5 6 7 8 9
xi 1.0 0.75 0.5 0.25 0 0.25 0.5 0.75 1.0
f(xi) 2.1 1.3 1.1 0.2 0 0.5 0.6 1.5 2.2
2.5
1.5
0.5
0
-1.5 -1 -0.5 0 0.5 1 1.5
96
Portanto, natural escolher apenas uma funo g1(x) = x2 e procurar ento (x) = x2 (equao
geral de uma parbola passando pela origem).
Se considerarmos uma experincia onde foram medidos vrios valores de corrente eltrica que
passa por uma resistncia submetida a vrias tenses, colocando os valores correspondentes de corrente e
tenso em um grfico, poderemos ter:
Vq
V0
i0 iq i
neste caso, existe uma fundamentao terica relacionando a corrente com a tenso V = Ri, isto , V
uma funo linear de i.
O problema determinar qual parbola com equao x2 se ajusta melhor ao primeiro grfico e
qual reta, passando pela origem, melhor se ajusta ao segundo grfico.
No caso geral, escolhidas as funes g1(x), g2(x), ..., gn(x) temos de estabelecer o conceito de
proximidade entre as funes (x) e f(x) para obter as constantes 1, 2, ..., n.
Uma maneira impor que o desvio (f(xi) (xi)) seja mnimo, para i = 1, 2, ..., m. veremos a
seguir o mtodo conhecido como Mtodo dos Quadrados Mnimos.
Chamaremos de f(x) a funo que ser convenientemente aproximada por outra funo (x). No
caso dos quadrados mnimos lineares, partimos da hiptese de que temos algumas informaes sobre o
comportamento de (x). Poderamos saber, por exemplo, que (x) uma reta, ou seja:
(x) = 1 + 2x
A questo encontrar qual esta reta, ou seja, quais so os valores de 1 e 2 que ajustam os
pontos conhecidos.
Num outro exemplo, vamos procurar valores para 1, 2 e 3 que tornam a funo:
(x) = 1 + 2x + 3x2
uma boa aproximao dos dados.
97
Sejam dados os pontos (x1, f(x1)), (x2, f(x2)), ..., (xm, f(xm)) e as n funes g1(x), g2(x), ..., gn(x)
escolhidas de alguma forma. Considerando que o nmero de pontos m, tabelados, sempre maior ou igual
a n o nmero de funes escolhidas ou o nmero de coeficientes i a se determinar.
Nosso objetivo encontrar os coeficientes 1, 2, ..., n tais que a funo (x) = 1g1(x) + 2g2(x)
+ ... + ngn(x) se aproxime ao mximo de f(x).
Seja dk = f(xk) (xk) o desvio em xk. O conceito de proximidade que dk seja mnimo para todo k
= 1, 2, ..., m. No mtodo dos quadrados mnimos consiste em escolher os aj's de tal forma que a soma dos
quadrados dos desvios seja mnima.
f(x) (x) = 1 + 2x
O resduo para cada par (1, 2) e para cada x ser r(1, 2; x) = f(x) 1 2x. Assim, pelo
mtodo dos quadrados mnimos devemos procurar 1 e 2 que minimizam a funo:
m
<r, r> (1, 2) = < f(x) 1 2x, f(x) 1 2x> = ( f (x ) 2 xi ) .
2
i 1
i =1
Do Clculo Diferencial sabe-se que a condio necessria do ponto crtico que as derivadas nele
se anulem, esto :
<r, r> = <r, r> = 0
1 2
m m
2 ( f ( x i ) 1 2 x i ) = 0 e 2 ( f ( xi ) 1 2 xi )xi = 0
i =1 i =1
Aps o desenvolvimento, estas duas equaes formam um sistema linear com as incgnitas 1 e
2, que podem ser reescrito na forma:
m m m
f ( xi ) 1 2 xi = 0
i =1 i =1 i =1
m m m
xi f ( xi ) 1 xi 2 xi2 = 0
i =1 i =1 i =1
ou
m m
m1 + 2 xi = f (x ) i
i =1 i =1
98
m m m
1 xi + 2 xi2 = x i f ( xi )
i =1 i =1 i =1
A soluo deste sistema pode ser obtida pelo mtodo da Eliminao de Gauss. Atravs das
substituies retroativas obtm-se:
m
m m m m
f ( xi ) xi 2 m xi f ( x i ) x i f ( x i )
1 = i =1 i =1 e 2 = i =1 i =1 i =1
2
m m
m
m x xi
2
i
i =1 i =1
Assim, a soluo do sistema de equaes lineares 1 e 2 dados pelas equaes acima, e com
estes valores os resduos apresentam o seu menor valor.
Como este mtodo consiste em achar o mnimo de uma funo quadrtica, ele conhecido como
mtodo dos mnimos quadrados.
Exemplo 1: Ajustar os dados da tabela abaixo a uma reta de modo que o resduo seja o menor possvel.
i 1 2 3 4 5
xi 1.3 3.4 5.1 6.8 8.0
f(xi) 2.0 5.2 3.8 6.1 5.8
m=5
x
i =1
i = (1.3) + (3.4) + (5.1) + (6.8) + (8.0) = 24.6
x 2
i = (1.3)2 + (3.4) 2 + (5.1) 2 + (6.8) 2 + (8.0) 2 = 149.5
i =1
x
i =1
i f ( xi ) = (1.3)(2.0) + (3.4)(5.2) + (5.1)(3.8) + (6.8)(6.1) + (8.0)(5.8) = 127.54
b) Resoluo do sistema:
Assim, os valores de 1 e 2 da melhor reta (no sentido dos quadrados mnimos) so obtidos pelo
sistema:
5 1 + 24.6 2 = 22.9
24.6 1 + 149.5 2 = 127.54
m
m
f ( x ) x
i =1
i
i =1
i 2
22.9 (24.6)(0.5224) 22.9 12.851
1 = = = = 2,0098
m 5 5
m m m
m xi f ( x i ) x i f ( x i )
(5)(127.54) (24.6)(22.9) 637.7 563.34 74.36
2 = i =1 i =1 i =1
= = = = 0.5224
m
m 2
(5)(149.5) (24.6) 2
747.5 605.16 142.34
m xi2 xi
i =1 i =1
i 1 2 3 4 5
xi 1.3 3.4 5.1 6.8 8.0
f(xi) 2.0 5.2 3.8 6.1 5.8
(xi) 2.68892 3.78596 4.67404 5.56212 6.189
r(xi) 0.68892 1.41404 0.87404 0.53788 0.389
r
i =1
2
( xi ) = 3.6787
i 1 2 3 4 5
xi 0 0.25 0.5 0.75 1.00
f(xi) 1.0000 1.2840 1.6487 2.1170 2.7183
r
i =1
2
( xi ) = 0.039198
m m m
1 m
m x i x 2
i L x n
i f ( xi )
i =1 i =1 i =1
mi =1
n +1 2
m m m m
xi f ( xi )
x
i =1
i x
i =1
2
i x
i =1
3
i L
i =1
xi
i =1
m m m m m
n+2
x 2
i x 3
i x 4
i L x i . = i i
x 2
f ( x )
i =1
3
i =1 i =1 i =1 i =1
M M M M M M M
2n m n
m m m m
n +1 n+2
xi f ( xi )
x
i =1
n
i x
i =1
i x
i =1
i L i =1
xi
n i =1
I 1 2 3 4 5 6
xi 2 1.5 0 1 2.2 3.1
f(xi) 30.5 20.2 3.3 8.9 16.8 21.4
m m
2 1 m
m xi x i
f ( xi )
m i =1
m
i =1
m mi =1
x xi . 2 = xi f ( xi )
3
x
2
i =1
i
i =1
i
i =1
i =1
m m m m
xi2 x 3
xi4 xi2 f ( xi )
3 i =1
i
i =1 i =1 i =1
m=6
x
i =1
i = (2) + (1.5) + (0) + (1) + (2.2) + (3.1) = 2.8
x 2
i = (2)2 + (1.5)2 + (0)2 + (1)2 + (2.2)2 + (3.1)2 = 21.7
i =1
x 3
i = (2)3 + (1.5)3 + (0)3 + (1)3 + (2.2)3 + (3.1)3 = 30.064
i =1
x 4
i = (2)4 + (1.5)4 + (0)4 + (1)4 + (2.2)4 + (3.1)4 = 137.8402
i =1
x
i =1
i f ( xi ) = (2)(30.5) + (1.5)(20.2) + (0)(3.3) + (1)(8.9) + (2.2)(16.8) + (3.1)(21.4) = 203.5
101
m
x 2
i f ( xi ) = (2)2(30.5) + (1.5)2(20.2) + (0)2(3.3) + (1)2(8.9) + (2.2)2(16.8) + (3.1)2(21.4) =
i =1
128.416
b) Resoluo do sistema:
O sistema :
1 = 2.018
2 = 11.33
3 = 1.222
i 1 2 3 4 5 6
xi 2 1.5 0 1 2.2 3.1
f(xi) 30.5 20.2 3.3 8.9 16.8 21.4
(xi) 29.566 21.7625 2.018 8.09 16.99352 21.36158
r(xi) 0.934 1.5625 1.282 0.81 0.19352 0.03842
r
i =1
2
( xi ) = 5.652312337
i 1 2 3 4 5 6 7 8 9 10 11
xi 1.0 0.75 0.6 0.5 0.3 0 0.2 0.4 0.5 0.7 1
f(xi) 2.05 1.153 0.45 0.4 0.5 0 0.2 0.6 0.512 1.2 2.05
a partir do diagrama de disperso, deve ser ajustada por uma parbola passando pela origem, ou seja, f(x)
= (x) = 3x2 (neste caso temos apenas uma funo g(x) = x2).
m m
2 0 m
m xi x i
f ( xi )
m i =1
m
i =1
m mi =1
x xi . 0 = xi f ( xi )
3
x
2
i =1
i
i =1
i
i =1
i =1
m m m m
xi2 x 3
xi4 xi2 f ( xi )
3 i =1
i
i =1 i =1 i =1
102
ou seja,
m m
xi2 3 =
i =1
f (x )
i =1
i
m m
x 3
i 3 = x i f ( xi )
i =1 i =1
m m
x 4
i 3 = x 2
i f ( xi )
i =1 i =1
m = 11
x
i =1
4
i = (1) + (0.3164) + (0.1296) + (0.0625) + (0.0081) + (0) + (0.0016) + (0.0256) + (0.0625) +
x
i =1
2
i f ( xi ) = (2.05) + (0.6486) + (0.162) + (0.1) + (0.145) + (0) + (0.008) + (0.096) + (0.128) + (0.588)
+ (2.05) = 5.8756
5.8756
Assim, a nossa equao 2.84643 = 5.8756 3 = = 2.0642
2.8464
Portanto, (x) = 2.0642x2 a parbola que melhor se aproxima, no sentido dos quadrados
mnimos, da funo tabelada.
i 1 2 3 4 5 6 7
xi 0.75 0.5 0.25 0 0.25 0.5 0.75
f(xi) 1.3 1.1 0.2 0 0.5 0.6 1.5
r
i =1
2
( xi ) = 0.25095238095238
103
8 Integrao Numrica
8.1 Introduo
Do ponto de vista analtico existem diversas regras, que podem ser utilizadas na prtica. Contudo,
embora tenhamos resultados bsicos e importantes para as tcnicas de integrao analtica, como o
Teorema Fundamental do Clculo Integral, nem sempre podemos resolver todos os casos. No podemos
sequer dizer que para uma funo simples a primitiva tambm ser simples, pois f(x) = 1/x, que uma
funo algbrica racional, possui uma primitiva que no o ; a sua primitiva a funo ln(x) que
transcendente.
Quando no conseguirmos calcular a integral por mtodos analticos, mecnicos ou grficos, ento
podemos recorrer ao mtodo algortmico. Em algumas situaes, s podemos usar o mtodo numrico.
Por exemplo, se no possuirmos a expresso analtica de f, no podemos, em hiptese nenhuma, usar
outro mtodo que no o numrico. A integrao numrica pode trazer timos resultados quando outros
mtodos falham.
Sabemos do Clculo Diferencial e Integral que se f(x) uma funo contnua em [a, b], ento esta
funo tem uma primitiva neste intervalo, ou seja, existe F(x) tal que f(x) dx = F(x) + C, com F(x) =
f(x); demostra-se que, no intervalo [a, b],
b
f ( x )dx = F (b) F (a )
a
tais mtodos, embora variados, no se aplicam a alguns tipos de integrandos f(x), no sendo conhecidas
suas primitivas F(x); para tais casos, e para aqueles em que a obteno da primitiva, embora vivel,
muito trabalhosa, podem-se empregar mtodos para o clculo do valor numrico aproximado de
b
f ( x )dx .
a
A aplicao de tais mtodos obviamente necessria no caso em que o valor de f(x) conhecido
apenas em alguns pontos, num intervalo [a, b], ou atravs de um grfico.
b n
Lembrando que
a
f ( x )dx = lim f ( xi )xi (Riemann), onde xi [xi-1, xi] partes de [a, b], com
n i =1
n
x0 = a, xn = b e xi = | xi xi-1 |, para n suficientemente grande e xi suficientemente pequeno, f ( x )xi
i
i =1
b
Convm lembrar, tambm, que, sendo f(x) no negativa em [a, b], f ( x )dx
a
representa,
numericamente, a rea da figura delimitada por y = 0, x = a, x = b e y = f(x), como mostra a figura abaixo:
104
y
y=f(x)
0 a b x
A= f ( x )dx
a
Quando f(x) no for somente positiva, pode-se considerar f(x) em mdulo, para o clculo da rea,
conforme figura abaixo:
y
y=f(x)
c b
0 a x
A
c b b
A= f ( x ) + | f ( x )| dx
a c
ou A = | f ( x )| dx
a
A idia bsica da integrao numrica a substituio da funo f(x) por um polinmio que a
aproxime razoavelmente no intervalo [a, b]. Assim o problema fica resolvido pela integrao de
polinmios, o que trivial de se fazer. Com este raciocnio podemos deduzir frmulas para aproximar
b
f ( x )dx .
a
a
f ( x )dx =
x0
f ( x )dx A0 f(x0) + A1 f(x1) + ... + An f(xn) = Ai f ( xi) ,
i =0
sendo os coeficientes Ai
Analisaremos a seguir algumas das frmulas fechadas de Newton-Cotes como regra dos
retngulos, regra dos trapzios e regra de Simpson.
105
R1 R2 R3 R1 R2 R3 R1 R2 R3
No primeiro caso, figura (a), a rea de cada retngulo f(xi) hi; no segundo caso f(xi+1)hi e no
ltimo f((xi + xi+1)/2) hi. Em qualquer caso a soma das reas dos retngulos ser uma aproximao para
b
f ( x )dx .
a
Subdividindo o intervalo [a, b] em n subintervalos, pela regra dos retngulos, que ser indicado
por R(h), dada pelas frmulas:
n 1
R(hn) = f ( x ).hi
i =0
i , ou
n 1
R(hn) = f (x
i =0
i +1 ).hi , ou
n 1
xi + xi +1
R(hn) = f
i =0 2
.hi
b a
Como hi constante, temos h = . Ento :
n
n 1
R(hn) = h f ( xi )
i =0
ou
n 1
R(hn) = h f ( xi +1 )
i =0
ou
106
n 1
x + xi +1
R(hn) = h f i
i =0 2
Em geral, quando utilizarmos a regra dos retngulos iremos efetuar os clculos atravs do caso (c),
n 1
x + xi +1
ou seja, R(hn) = h f ( xi ) , sendo xi = i .
i =0 2
8.2.1 Exemplos
1
x
Exemplo 1: Calcular 1+ x
0
2
dx . Considere n = 10 e 4 casas decimais com arredondamento.
a) Nmero de intervalos:
n = 10
b) Tamanho do intervalo
b a
h= = (1 0) / 10 = 0.1
n
c) iteraes:
i xi f( xi )
0 (0 + 0.1) = 0.05 0.0499
1 (0.1 + 0.2) = 0.15 0.1467
2 (0.2 + 0.3) = 0.25 0.2353
3 (0.3 + 0.4) = 0.35 0.3118
4 (0.4 + 0.5) = 0.45 0.3742
5 (0.5 + 0.6) = 0.55 0.4223
6 (0.6 + 0.7) = 0.65 0.4569
7 (0.7 + 0.8) = 0.75 0.4800
8 (0.8 + 0.9) = 0.85 0.4935
9 (0.9 + 1) = 0.95 0.4993
3.4699
d) mtodo analtico:
1
x 1 2 1
1
0 1 + x2 dx =
2
ln(1 + x )
0 2
= (ln(2) ln(1)) = 0,34657 .
Exemplo 2: Quando no for possvel conhecer f(xi) pode-se usar f( xi ) = (f(xi-1) + f(xi))/2, para o clculo
anterior, ter-se-ia:
a) Nmero de intervalos:
n = 10
b) Tamanho do intervalo:
b a
h= = (1 0) / 10 = 0.1
n
c) iteraes:
107
i f(xi) f( xi )
1 0
0 0.0990 0.0495
1 0.1923 0.1457
2 0.2752 0.2338
3 0.3448 0.3100
4 0.4000 0.3724
5 0.4412 0.4206
6 0.4698 0.4555
7 0.4878 0.4788
8 0.4972 0.4925
9 0.5000 0.4986
3.4574
b = x1
b x1
( x x1 ) ( x x0 )
f ( x)dx p 1 ( x ) dx = h f ( x0 ) + f ( x1 )dx = IT
a a= x0 x0 h
Assim, IT =
h
[ f ( x0 ) + f ( x1 )] , que a rea do trapzio de altura h = x1 x0 e bases f(x0) e f(x1).
2
f(xi+1)
f(xi) P 1(x)
f(x)
xi xi+1
Interpretao geomtrica da regra dos trapzios
108
A rea de cada trapzio (f(xi) + f(xi+1))/2 hi. A soma destas reas ser uma aproximao para
b
f ( x )dx .
a
n 1
f ( xi ) + f ( xi +1 )
T (hn ) = ( ).hi
i =0 2
b a
Como hi constante, temos h = . Ento :
n
n 1
f ( xi ) + f ( xi +1 )
T (hn ) = h ( )
i =0 2
ou
T (hn ) =
h
[ f ( x0 ) + 2 f ( x1 ) + 2 f ( x2 ) + ... + 2 f ( xn1 ) + f ( xn )]
2
8.3.2 Exemplos
3, 6
1
Exemplo 1: Calcular x dx
3, 0
pela regra dos trapzios e, depois, analiticamente. Considere n = 6 e 4 casas
a) Nmero de intervalos:
n=6
b) Tamanho do intervalo:
b a
h= = (3.6 3.0) / 6 = 0.1
n
c) iteraes:
h
T ( h6 ) = [ f ( x0 ) + 2 f ( x1 ) + 2 f ( x2 ) + ... + 2 f ( x5 ) + f ( x6 )]
2
0 .1
T(0.1) = (3.6469) = 0,182345
2
109
d) mtodo analtico:
3, 6
]
3, 6
1
3,0 x dx = ln(x ) = ln(3.6) ln(3.0) = 0.18232156
3, 0
1
Exerccio 1: Calcular (2 x + 3)dx pela regra dos trapzios e, depois, analiticamente. Considere n = 1 e 4
0
casas decimais com arredondamento.
1
T(1) = (8) = 4
2
]
1 1
(2 x + 3)dx = x + 3x = 1 + 3 (0 + 0) = 4
2
mtodo analtico:
0 0
Como a regra dos trapzios aproxima por uma reta e a funo integranda f(x) = 2x + 3 (uma
reta), o valor da integral obtido exato.
2
depois, analiticamente.
1
T(1) = (1.3863) = 0.6932
2
0 .5
T(0.5) = (2.6027) = 0.6507
2
0.25
T(0.25) = (5.1191) = 0,6399
2
0.125
T(0.125) = (10.1951) = 0,6372
2
x ln( x ) x 2 2 x ln( x ) x 2
2 2 2 2 2
mtodo analtico: x ln( x )dx =
1
2
] =
4 1 4
]1 = = 0.63629436
Assim,
110
b x2 x2
x2 x2 x2
f ( x 0) f ( x1) f ( x 2)
2
( x x1)( x x 2)dx 2 ( x x 0)( x x 2)dx +
2 h2 x0
( x x 0)( x x1)dx
2 h x0 h x0
x2
h
x f ( x )dx 3 [ f ( x ) + 4 f ( x ) + f ( x )] = Is
0
0 1 2
x0=a x1 x2=b
h h
Interpretao geomtrica da regra de Simpson simples
f ( x )dx S ( hn ) =
h
[ f ( x0 ) + 4 f ( x1 ) + 2 f ( x2 ) + 4 f ( x3 ) + 2 f ( x4 ) + ... + 4 f ( x n1 ) + f ( xn )]
a
3
8.4.2 Exemplos
1
Exemplo 1: Calcular uma aproximao para e dx usando a regra de Simpson com n = 10.
0
x
a) Nmero de intervalos:
n = 10
b) Tamanho do intervalo:
b a
h= = (1 0) / 10 = 0.1
n
c) iteraes:
0,1 0,0
S ( h10) = [ e + 4 e0,1 + 2 e0, 2 + 4 e0, 3 +...+2 e0,8 + 4 e0, 9 + e1,0] = 1,71829
3
d) mtodo analtico:
1
1
e dx = e ] = e e
0
x x
0
1 0
= 2,7182818 1 = 1,7182818
1
1
Exerccio 1: Calcular o valor de , dado pela expresso 4 dx , considerando n = 10.
0 1 + x 2
0,1
S ( h10) = [ f ( x 0) + 4 f ( x1) + 2 f ( x 2) + 4 f ( x 3) +...+2 f ( x 8) + 4 f ( x 9) + f ( x10)] = 3,14157
3
1
1
]
1
mtodo analtico: 4 dx = 4( arctg (x ) ) = 4.(arctg(1) arctg(0)) = 3.14159265
0 1 + x 2
0
analiticamente.
0 .5
S(0.5) = (3.8191) = 0,6365
3
0.25
S(0.25) = (7.6355) = 0.63629167
3
0.125
S(0.25) = (15.2711) = 0,63629583
3
x ln( x ) x 2 2 x ln( x ) x 2
2 2 2 2 2
mtodo analtico: x ln( x )dx =
1
2
] =
4 1 4
]1 = = 0.63629436
1
0 .5 4
S (0.5) = [1 + 4(1.25) + 2] = = 1.33333...
3 3
112
1 3 3 3
x 1 1 0 4
mtodo analtico: x2 + 1 dx =
0
3
+ x ] = ( + 1) ( + 0) = = 1.33333...
0 3 3 3
Como a regra de Simpson se aproxima por uma parbola e, sendo f(x) = x2 + 1 uma parbola, o
valor da integral obtido exato independente do nmero de subintervalos utilizado no clculo.
9.1 Introduo
A equao diferencial definida como uma equao que envolve uma funo e algumas de suas
derivadas, da forma:
y ( n ) ( x) = f [ x, y ' ( x), y ' ' ( x),......., y ( n 1) ( x)]
Na engenharia a utilizao de equaes diferenciais tem como objetivo descrever o comportamento
dinmico de sistemas fsicos. Uma equao diferencial pode descrever o comportamento dinmico do
circuito mostrado na figura:
1.1.1.1.2 1.1.1.1.1
1.1.1.1.3
V(t)=sin(3,5t) i(t)
dy
= x+ y
dx y funo de x; x a nica varivel independente.
dy
= x2 + y 2
dt y e x so funo de t; t a nica varivel independente.
d2y dy
2
+ (1 y 2 ) +y=0
dt dt y funo de t; t a nica varivel independente.
Exemplo:
2u 2u
+ =0
x 2 y 2 u funo de x e y; x e y so variveis independentes.
Determinadas equaes diferenciais podem ser solucionadas de forma simblica, cuja soluo uma
expresso literal. Isto nem sempre possvel. Neste caso, a soluo a utilizao de integrao numrica,
como ser visto na sequncia.
Exemplo :
dy dy dy
= dx = dx
y
=y
dx y ln( y ) + c1 = x + c 2
y ( x) = e x + c = ae x
Observe que a soluo da equao diferencial resulta numa famlia de curvas que dependem da constante
a, como pode ser visto na figura abaixo. Uma soluo particular pode ser obtida a partir das condies
iniciais do problema. A especificao de uma condio inicial define uma soluo entre a famlia de
curvas.
114
45
y (x)
40
35
30
25
20
15
10
5
x
0
Suponha no exemplo dado que o problema tem como soluo inicial y (0) = 1 . Portanto:
-1 -0.5 0 0.5
2 1 1.5
y ( x) = ae x ae 0 = 1 a = 1
A soluo y ( x) = 1 e a soluo para a condio inicial dada.
x
Quando as condies iniciais esto associadas a um nico valor da varivel independente, define-se como
um problema de valor inicial (PVI). Quando as condies iniciais esto associadas mais de um valor da
varivel independente, define-se como um problema de valor de contorno (PVC). Normalmente,
problemas tendo como varivel independente o tempo, so problemas de valor inicial.
A ordem da equao determinada pela derivada de maior ordem. Seja o exemplo de uma equao
diferencial ordinria de ordem n:
Uma equao ordinria de ordem superior pode ser reduzido a um sistema de equaes diferenciais de
primeira ordem. A reduo feita a partir da definio de variveis auxiliares.
Seja a equao diferencial de ordem m com tambm m condies iniciais:
Esta equao pode ser transformada em um sistema de equaes diferenciais com m equaes, como
descreve-se abaixo:
115
z1 ( x ) = y ( x )
z1' ( x) = y ' ( x) = z 2 ( x)
z 2' ( x) = y " ( x) = z 3 ( x)
z 3' ( x) = y ''' ( x) = z 4 ( x)
M
z m' 1 ( x) = y ( m1) ( x) = z m ( x)
z m' ( x) = y ( m ) ( x) = f [ x, y ( x), y ' ( x), y ' ' ( x),......., y ( m 1) ( x)]
z 2 ( x) = y ( x) = z 3 ( x) = f 2 ( x, z1 , z 2 ,..., z m )
' "
z 3 ( x) = y ( x) = z 4 ( x) = f 3 ( x, z1 , z 2 ,..., z m )
' '' '
M
z ' ( x) = y ( m 1) ( x) = z ( x) = f ( x, z , z ,..., z )
m 1 m m 1 1 2 m
z ' ( x) = y ( m) ( x) = f [ x, y ' ( x), y ' ' ( x),......., y ( m 1) ( x)] = f ( x, z , z ,..., z )
m m 1 2 m
Este artifcio deve sempre ser utilizado quando da soluo de equaes diferenciais por mtodos
numricos, pois s pode-se integrar numericamente equaes de primeira ordem. Observe que o sistema
de equaes modela o comportamento dinmico do problema.
Exemplo 8.2: Reduzir as Equaes Diferenciais Ordinrias (EDOs) a sistemas de EDOs de primeira
ordem.
a) y ( x) = 3 y ( x) 2 y ( x) , y (0) = 1 e y (0) = 0
'' ' '
z1 ( x ) = y ( x )
z1' ( x) = y ' ( x) = z 2 ( x)
z 2' ( x) = y " ( x) = 3 y ' ( x) 2 y = 3 z 2 2 z1
Resultando no sistema:
116
z1' ( x) = z 2 ( x ) = f 1 ( x, z 1 , z 2 )
z 2' ( x) = 3 z 2 2 z1 = f 2 ( x, z1 , z 2 )
z 1 ( 0) = 1 z 2 ( 0) = 0
b) y + ( x + 1) y + cos( x) y ( x 1) y = x + y sin( x + y )
'' ' '' ' 2 2 2
z1 = y
z1' = y ' = z 2
z 2' = y " = z 3
z 3' ( x) = y ''' ( x) = ( x + 1) z 3 cos( x) z 2 + ( x 2 1) z1 + x 2 + z1 2 sin( x + z1 )
Resultando no sistema:
z1' = y ' = z 2 = f 1 ( x, z1 , z 2 , z 3 )
z 2 = y = z 3 = f 2 ( x, z 1 , z 2 , z 3 )
' "
z 3 ( x) = y ( x) = ( x + 1) z 3 cos( x) z 2 + ( x 1) z1 + x + z1 sin( x + z1 ) = f 3 ( x, z1 , z 2 , z 3 )
' ' '' 2 2 2
A soluo da equao diferencial acima uma funo do tipo y (x) , conforme ilustrada abaixo:
y (x)
y(xn)
X
y(x3)
y(x2)
y(x1) X
y(x0) X
X
X
x0 x1 x2 x3 .... xn
117
Com a soluo numrica de uma equao diferencial, obtm-se uma aproximao para os valores
y ( x 0 ), y ( x1 ), y ( x 2 ), y ( x 3 ),......, y ( x n )
, ou seja:
x x1 x2 x3 ......... xn
y y1 y2 y3 ......... yn
y ( x j ), j = 1,2,..., n
Considera-se que a notao indica a soluo exata da EDO nos pontos
x1 , x 2 , x 3 ,..., x n y , j = 1,2,...., n
,e j indica a soluo aproximada obtida por mtodo numrico.
Na soluo numrica no se determina a expresso literal da funo y (x) , mas aproximaes para pontos
da funo y (x) . Com os valores aproximados obtidos, pode-se plotar a curva. Em aplicaes da
engenharia, normalmente estuda-se o comportamento dinmico de determinadas variveis, portanto
necessita-se a evoluo das variveis em funo da varivel independente. Com a curva plotada, pode-se
estudar esta evoluo.
dy
= f ( x, y )
dx y( x0 ) = y 0
com valor inicial
A soluo desta equao resulta numa funo y (x) , como mostrado no grfico:
y(x) y (x)
y ( x1 )
x0 x1 x
h = x1 pode-se
A partir da equao diferencial, x0 observar que a derivada da funo y (x) em um ponto qualquer x
x f ( x0 , y0 )
dada por f(x,y). Conhecendo-se a derivada da funo y (x) no ponto 0 , ou seja [ ] , pode-se
estimar o valor da funo y (x) no ponto x1 por meio de relaes trigonomtricas:
118
h = x1 x 0 y = y1 y 0
y1 y 0 y1 y 0
tg ( ) = f ( x 0 , y 0 ) = f ( x0 , y 0 ) = y1 = y 0 + hf ( x 0 , y 0 )
x1 x 0 h
Esta relao pode ser generalizada para um ponto i qualquer, resultando na forma de recorrncia
para soluo de equaes diferenciais pelo Mtodo de Euler:
y i = y i 1 + hf ( x i 1 , y i 1 )
Exemplo: Achar aproximaes para a soluo o problema de valor inicial, na malha [0,1] e h=0,1, dado
por:
y ' = x y + 2 para y (0) = 2
A soluo desta equao resulta em uma funo y (x) , como mostrada na figura abaixo.
3
y (x)
2.5
1.5
0.5
x
0
0 0.2 0.4 0.6 0.8 1
Resolvendo esta equao atravs do Mtodo de Euler, iremos determinar aproximaes para pontos de
y (x) .
x0 = 0 y0 = 2
119
y 2 = y1 + f ( x1 , y1 )h = 2 + 0,1 (0,1 2 + 2) = 2,01
Na figura abaixo est plotada a soluo numrica e a soluo exata, observe que para efeitos prticos
podemos observar o comportamento dinmico da varivel, que o qu normalmente interessa em
aplicaes da engenharia.
3
soluo numrica
soluo exata
2.5
1.5
0.5
0
0 0.2 0.4 0.6 0.8 1
j xj yj y( x j ) y j y( x j )
0 0 2,0000000 2,0000000 0,000000
1 0,1 2,0000000 2,0048370 -0,004837
2 0,2 2,0100000 2,0187310 -0,008731
3 0,3 2,0290000 2,0408180 -0,011818
4 0,4 2,0561000 2,0703200 -0,014220
5 0,5 2,0904900 2,1065310 -0,016041
6 0,6 2,1314410 2,1488120 -0,-17371
7 0,7 2,1782969 2,1965850 -0,018288
8 0,8 2,2304672 2,2493290 -0,018862
9 0,9 2,2874205 2,3065700 -0,019149
10 1,0 2,3486784 2,3678790 -0,019201
120
9.7 Anlise do Erro para o Mtodo de Euler na Soluo Numrica do Problema de Valor
Inicial
x
a) Erro de truncamento local: erro cometido num ponto genrico k +1 , determinado pela
y k +1 x
diferena do valor aproximado e o valor no ponto k +1 da soluo da equao
y
diferencial que passa em k +1 ;
b) Erro de truncamento acumulado: erros cometidos pelas aproximaes produzidas nos
y k +1
passos anteriores. determinado pela diferena entre o valor aproximado com o
y ( x k +1 )
valor exato . Erro
Acum y3
Erro . Erro Soluo da
Local EDO em
Erro
Acumulado = y 2
x
x0 x1 x2 x3
h2 ''
ET = y ( ) x j 1 < < x j
2!
O valor de desconhecido, entretanto, pode-se definir um majorante para o erro de truncamento local.
[ x n , x n +1 ]
Se y (x) possui derivada contnua num intervalo fechado , que contm os pontos sobre os quais
est sendo feita a discretizao, ento existe:
M k +1 = max y ( k +1) ( x) x [ x n , x n +1 ]
121
Assim:
y ( 2) ( ) M 2 [ x n , x n +1 ]
M 2h2
ET ( x k +1 )
2!
Observe que o erro de truncamento local proporcional ao passo de integrao ao quadrado. O erro
acumulado tambm pode ser limitado por um majorante:
y1 , y 2 ,......., y n
e sejam as aproximaes geradas pelo Mtodo de Euler. Se f(x,y) for contnua para todo x
no intervalo [a,b] e todo y no intervalo (, ) e ainda existem as constantes L e C, tais que:
f ( x, y ( x))
L y ' ' ( x) C
x e
y(x) y (x)
y ( x i +1 )
yi y i +1
xi x i +1 / 2 x i +1 x
h
x i +1 / 2 = x i +
2
y i +1 / 2
Utilizando o Mtodo de Euler, calcula-se o valor , no meio do intervalo, a partir da tangente
f ( xi , y i )
:
h
y i +1 / 2 = y i + f ( x i , y i )
2
x y
Com os valores i +1 / 2 e i +1 / 2 , determina-se a reta tangente no meio do intrvalo:
y i' +1 / 2 = f ( x i +1 / 2 , y i +1 / 2 )
Esse valor assumido representar uma inclinao mdia do intervalo inteiro. Assim, determina-se o valor
x
de y no ponto i +1 :
y i +1 = y i + f ( x i +1 / 2 , y i +1 / 2 ) h = y i + y i' +1 / 2 h
Observe que a diferena em relao ao Mtodo de Euler normal a utilizao da inclinao no meio do
intervalo.
h
x j +1 / 2 = x j +
2
h
y j +1 / 2 = y j + f ( x j , y j )
2
y j +1 = y j + f ( x j +1 / 2 , y j +1 / 2 ) h = y j + y 'j +1 / 2 h
x j +1 = x j + h
res = y j y ( x j )
123
y i0+1 = y i + f ( x i , y i ) h
y i +1
Observe que o superescrito 0 em para indicar que apenas uma estimativa, que ser utilizada para
x
a determinao da inclinao no ponto i +1 , ou seja:
y ' i +1 = f ( x i +1 , y i0+1 )
Tangente no Fim do
Intervalo
Tangente no Incio do f ( x i +1 , y i0+1 )
Intervalo
f ( xi , y i )
[ f ( x i +1 , y i0+1 ) + f ( x i , y i )] / 2
yi
y(x)
x i +1 x
xi
Com o valor da inclinao no final do intervalo, pode-se determinar o valor da inclinao mdia do
intervalo, por meio da mdia aritmtica:
Inclinao Mdia =
[f (x , y ) + f (x
i i i +1 , y i0+1 ) ]
2
125
O valor da funo no fim do intervalo dado por:
y i1+1 = y i +
[f (x , y ) + f (x
i i i +1 , y i0+1 ) ] h
2
Observe que o clculo do valor da funo no fim do intervalo pode ser repetido at que se alcance uma
determinada convergncia, ou seja:
y i2+1 = y i +
[
f ( x i , y i ) + f ( x i +1 , y i1+1 )
h
]
2
y i +1 = y i +
3 [
f ( x i , y i ) + f ( x i +1 , y i3+1 )
h
]
2
M
y ik+1 = y i +
[
f ( x i , y i ) + f ( x i +1 , y ik+11 )
h
]
2
y ik+1 y ik+11
Caso esteja dentro de uma tolerncia inicial, pode-se parar a correo.
O Mtodo de Heun se enquadra nos chamados mtodos previsor x corretor. Faz-se uma estimativa com o
previsor e se melhora a estimativa atravs do corretor. O corretor pode ser repetido at uma convergncia
determinada.
Previsor:
y i0+1 = y i + f ( x i , y i ) h
Corretor:
y i1+1 = yi +
[f (x , y ) + f (x
i i i +1 , y i0+1 ) ] h
2
Exemplo: Repita o exemplo 8.3, utilizando o Mtodo de Heun, com uma iterao de correo.
y ' = x y + 2 para y (0) = 2
malha [0,1], h=0,1. Os resultados parciais so apresentados a seguir de acordo com a sequncia:
y i0+1 = y i + f ( x i , y i ) h
x i +1 = x i + h
y i1+1 = y i +
[f (x , y ) + f (x
i i i +1 , y i0+1 ) ] h
2
126
j = 1 y0 = 2 x = 0.10000000000000
y1 = 2.00500000000000 erro = 1.629999999996912e-004
j = 2 y0 = 2.01450000000000 x = 0.20000000000000
y1 = 2.01902500000000 erro = 2.940000000002385e-004
j = 3 y0 = 2.03712250000000 x = 0.30000000000000
y1 = 2.04121762500000 erro = 3.996250000004586e-004
j = 4 y0 = 2.06709586250000 x = 0.40000000000000
y1 = 2.07080195062500 erro = 4.819506250002270e-004
j = 5 y0 = 2.10372175556250 x = 0.50000000000000
y1 = 2.10707576531563 erro = 5.447653156251953e-004
j = 6 y0 = 2.14636818878406 x = 0.60000000000000
y1 = 2.14940356761064 erro = 5.915676106407197e-004
j = 7 y0 = 2.19446321084958 x = 0.70000000000000
y1 = 2.19721022868763 erro = 6.252286876300417e-004
j = 8 y0 = 2.24748920581887 x = 0.80000000000000
y1 = 2.24997525696230 erro = 6.462569623049141e-004
j = 9 y0 = 2.30497773126607 x = 0.90000000000000
y1 = 2.30722760755089 erro = 6.576075508859525e-004
Exemplo 8.6: Repita o exemplo 8.3, utilizando o Mtodo de Heun, com trs iterao de correo.
y ' = x y + 2 para y (0) = 2
malha [0,1], h=0,1. Os resultados so apresentados na tabela a seguir:
y i +1 = y i + ( x i , y i , h) h
onde
( x i , y i , h) chamada de funo incremento e pode ser interpretada coma uma inclinao mdia
sobre o intervalo.
Genericamente:
( x i , y i , h) = a1 k1 + a 2 k 2 + ............... + a n k n
k1 = f ( x i , y i )
k 2 = f ( x i + p1 h, y i + q11 k1 h)
k 3 = f ( x i + p 2 h, y i + q 21 k1 h + q 22 k 2 h)
M
k n = f ( x i + p n 1 h, y i + q ( n 1)1 k1 h + q ( n 1) 2 k 2 h + .......... + q ( n 1)( n 1) k n 1 h)
128
9.8.3 Derivao do Mtodo de Runge-Kutta de Segunda Ordem
y i +1 = y i + (a1 k1 + a 2 k 2 ) h
(1)
k1 = f ( x i , y i )
(2)
k 2 = f ( x i + p1 h, y i + q11 k1 h)
(3)
y i +1
Expande-se em Srie de Taylor:
h2
y i +1 = yi + f ( xi , y i ) h + f ( xi , y i )
'
2! (4)
Determina-se
f ' ( x i , y i ) pela Regra da Cadeia:
f f dy
f ' ( xi , y i ) = +
x y dx (5)
f f
y i +1 = y i + a1 hf ( xi , y i ) + a 2 hf ( x i , y i ) + a 2 p1 h 2 + a 2 q11 h 2 f ( x i , y i ) + (h 3 )
x y (8)
Reagrupando os termos:
f f
y i +1 = y i + [a1 f ( x i , y i ) + a 2 f ( x i , y i )]h + [a 2 p1 + a 2 q11 f ( x i , y i ) ]h 2 + (h 3 )
x y (9)
Comparando os termos das equaes (6) e (9):
a1 + a 2 = 1
a 2 p1 = 1
2
a 2 q11 = 1
2
Observe que tem-se trs equaes e quatro incgnitas, portanto tem-se infinitas solues. Portanto
existem infinitos formulaes para o Mtodo de Runge-Kutta de Segunda Ordem.
importante realar que o Mtodo de Heun com uma iterao de correo e o Mtodo de Euler
Modificado podem ser classificados como Mtodos de Runge-Kutta de Segunda Ordem.
a1 = a 2 = 1
2
p1 = q11 = 1
1 1
y i +1 = y i + ( k1 + k 2 ) h
2 2
k1 = f ( x i , y i )
k 2 = f ( x i + h, y i + k 1 h )
Assumindo :
a1 = 0
a2 = 1
p1 = q11 = 1
2
y i +1 = y i + k 2 h
k1 = f ( x i , y i )
h h
k 2 = f ( x i + , y i + k1 )
2 2
O Mtodo de Runge-Kutta mais conhecido o Mtodo de Ralston. Este mtodo propicia um limite
mnimo para o erro de truncamento dos algoritmos de Runge-Kutta de Segunda Ordem.
Assumindo :
a1 = 1
3
a2 = 2
3
p1 = q11 = 3
4
1 2
y i +1 = y i + ( k1 + k 2 ) h
3 3
k1 = f ( x i , y i )
3 3
k 2 = f ( xi + h, y i + hk1 )
4 4
130
h = 0,5 com as trs verses do Mtodo de Runge-Kutta de Segunda Ordem. Condies Iniciais: Para
x = 0, y =1
Mtodo de Heun
1 1
y i +1 = y i + ( k1 + k 2 ) h
2 2
k1 = f ( x i , y i )
k 2 = f ( x i + h, y i + k 1 h )
1 1
y1 = y 0 + ( k1 + k 2 ) h
2 2
k1 = f ( x 0 , y 0 ) = 2 0 3 + 12 0 2 20 0 + 8,5 = 8,5
k 2 = f ( x 0 + h, y 0 + k1 h) = f (0,5, 5,25) = 2 0,5 3 + 12 0,5 2 20 0,5 + 8,5 = 1,25
1 1 8,5 + 1,25
y1 = y 0 + ( k1 + k 2 ) h = 1 + 0,5 = 3,4375
2 2 2
Mtodo de Euler Modificado:
y i +1 = y i + k 2 h
k1 = f ( x i , y i )
h h
k 2 = f ( x i + , y i + k1 )
2 2
y1 = y 0 + k 2 h
k1 = f ( x 0 , y 0 ) = 2 0 3 + 12 0 2 20 0 + 8,5 = 8,5
h h 0,5 0,5
k 2 = f ( x 0 + , y 0 + k1 ) = f (0 + ,1 + 8,5) = f (0,25, 3,125) =
2 2 2 2
= 2 0,25 3 + 12 0,25 2 20 0,25 + 8,5 = 4,21875
y1 = y 0 + k 2 h = 1 + 4,21875 0,5 = 3,109375
Mtodo de Ralston:
1 2
y i +1 = y i + ( k1 + k 2 ) h
3 3
k1 = f ( x i , y i )
3 3
k 2 = f ( xi + h, y i + hk1 )
4 4
1 2
y1 = y 0 + ( k1 + k 2 ) h
3 3
k1 = f ( x 0 , y 0 ) = 2 0 3 + 12 0 2 20 0 + 8,5 = 8,5
3 3 3 3
k 2 = f ( x i + h, y i + hk1 ) = f (0 + 0,5, 1 + 0,5 8,5) = f (0,375, 4,1875) =
4 4 4 4
= 2 0,375 + 12 0,375 20 0,375 + 8,5 = 2,582031
3 2
131
1 2 1 2
y1 = y 0 + ( k1 + k 2 ) h = 1 + ( 8,5 + 2,582031) 0,5 = 3,27734375
3 3 3 3
x y exato Heun Erro (%) Euler Mod. Erro (%) Ralston Erro (%)
0,0 1,00000 1,00000 0,0 1,00000 0 1,00000 0
0,5 3,21875 3,43750 6,8 3,10937 3,4 3,27734 1,8
1,0 3,00000 3,37500 12,5 2,81250 6,3 3,10156 3,4
1,5 2,21875 2,68750 21,1 1,98437 10,6 2,34765 5,8
2,0 2,00000 2,50000 25,0 1,75000 12,5 2,14062 7,0
2,5 2,71875 3,18750 17,2 2,48437 8,6 2,85546 5,0
3,0 3,00000 4,37500 9,4 3,81250 4,7 4,11718 2,9
3,5 4,71875 4,93750 4,6 4,60937 2,3 4,80078 1,7
4,0 3,00000 3,00000 0,0 3,00000 0 3,03125 1,0
De forma semelhante ao que se fez para o Mtodo de Runge_Kutta de Segunda Ordem, pode-se
determinar para ordens mais elevadas.
As formulaes no so nicas. Apresenta-se a seguir uma dasformulao mais utilizadas:
1
y i +1 = y i + [ (k1 + 4k 2 + k 3 )] h
6
k1 = f ( x i , y i )
1 1
k 2 = f ( x i + h, y i + k 1 h )
2 2
k 3 = f ( x i + h, y i hk1 + 2hk 2 )
1
y i +1 = y i + [ (k1 + 2k 2 + 2k 3 + k 4 )] h
6
k1 = f ( x i , y i )
1 1
k 2 = f ( x i + h, y i + hk1 )
2 2
1 1
k 3 = f ( x i + h, y i + hk 2 )
2 2
k 4 = f ( x i + h, y i + hk 3 )
1
y1 = y 0 + [ (k1 + 2k 2 + 2k 3 + k 4 )] h
6
k1 = f ( x 0 , y 0 ) = 2 0 3 + 12 0 2 20 0 + 8,5 = 8,5
132
1 1
k 2 = f ( x0 + h, y 0 + hk1 ) = f (0 + 0,5 0,5, 1 + 0,5 0,5 8,5) = f (0,25, 3,125) =
2 2
= 2 0,25 + 12 0,25 20 0,25 + 8,5 = 4,21875
3 2
1 1
k 3 = f ( x 0 + h, y 0 + hk 2 ) = f (0 + 0,5 0,5, 1 + 0,5 0,5 4,21875) = f (0,25, 2,054) =
2 2
2 0,25 + 12 0,25 20 0,25 + 8,5 = 4,21875
3 2
1 1
y1 = y 0 + [ (k1 + 2k 2 + 2k 3 + k 4 )] h = 1 + [ (8,5 + 2 4,21875 + 2 4,21875 + 1,25)] 0,5 =
6 6
= 3,21875
y (x)
y(x)
y0
y1 Estimativa a partir de
um nico ponto
x0 x1 x
h = x1 x 0
y ( x)
y(x)
y3
y1
y0 Estimado a partir de
yn informaes conhecidas de
n pontos anteriores
x0 x1 x 2 .... x n x
9.12 Idia Basica dos Mtodos de Passos Mltiplos
dy
y' = = f ( x, y )
dx
x n +1 xn +1
y ( x)dx = f ( x, y )dx
'
xn xn
x n +1
y ( x n +1 ) y ( x n ) = f ( x, y)dx
xn
xn +1
y ( x n +1 ) = y ( x n ) + f ( x, y)dx
xn
xn +1
Para a nova estimativa, a integral f ( x, y)dx aproximada por alguma forma de quadratura
xn
numrica.
xn +1
y ( x n +1 ) y ( x n ) + Pm ( x)dx
xn
m=1: y n +1 = y n + h f ( x n , y n )
m=2: y n +1 = y n +
h
[3 f ( x n , y n ) f ( x n 1 , y n 1 )]
2
m=3: y n +1 = y n +
h
[23 f ( x n , y n ) 16 f ( x n 1 , y n 1 ) + 5 f ( x n 2 , y n 2 )]
12
m=4: y n +1 = y n +
h
[55 f ( x n , y n ) 59 f ( x n1 , y n1 ) + 37 f ( x n 2 , y n 2 ) 9 f ( x n3 , y n3 )]
24
xn +1
y ( x n +1 ) y ( x n ) + Pm ( x)dx
xn
A idia dos mtodos implcitos a utilizao como um algoritmo corretor. Como visto
no Mtodo de Heun.
m=1: y n +1 = y n + h f ( x n +1 , y n +1 )
135
m=2: y n +1 = y n +
h
[ f ( x n+1 , y n+1 ) + f ( x n , y n )]
2
m=3: y n +1 = y n +
h
[5 f ( x n+1 , y n+1 ) + 8 f ( x n , y n ) f ( x n 1 , y n 1 )]
12
m=4: y n +1 = y n +
h
[9 f ( x n+1 , y n+1 ) + 19 f ( x n , y n ) 5 f ( x n1 , y n1 ) + f ( x n 2 , y n 2 )]
24
+1)
n +1 y n +1
y (k (k )
2
y y
y' = = f (t , y ) 1 t 2 , y (1) = 1 e h = 0,1
t t
Com os trs pontos pode-se realizar previso para o passo seguinte, utilizando Adans-
Bashforh:
y 3(0) = y 2 +
h
[23 f (t 2 , y 2 ) 16 f (t1 , y1 ) + 5 f (t 0 , y 0 )]
12
y 3(0) = 1,0150 +
h
[23 f (1,20,1,0150) 16 f (1,10, 1,0043) + 5 f (1,1)] = 1,0294
12
y 3(1) = y 2 +
h
12
[
5 f (t 3 , y 3( 0) ) + 8 f (t 2 , y 2 ) f (t1 , y1 ) ]
y 3(1) = 1,0150 +
h
[5 f (1,30, 1,0294) + 8 f (1,20, 1,0150) f (1,10,1,0043)] = 1,0299
12
y 3( 2) = 1,0150 +
h
[5 f (1,30, 1,0299) + 8 f (1,20, 1,0150) f (1,10,1,0043)] = 1,0298
12
y 3(3) = 1,0150 +
h
[5 f (1,30, 1,0298) + 8 f (1,20, 1,0150) f (1,10,1,0043)] = 1,0298
12
ti yi y exato
1.00 1.0000 1.0000
1.10 1.0043 1.0043
1.20 1.0150 1.0150
1.30 1.0298 1.0298
1.40 1.0476 1.0475
1.50 1.0673 1.0673
1.60 1.0885 1.0884
1.70 1.1107 1.1107
1.80 1.1337 1.1337
1.90 1.1573 1.1572
2.00 1.1813 1.1812
137
1.2
1.18
1.16
1.14
1.12
1.1
1.08
1.06
1.04
1.02
1
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
dy1
= f 1 ( x, y1 , y 2 ,......, y n )
dx
dy 2
= f 2 ( x, y1 , y 2 ,......, y n )
dx
M
dy n
= f n ( x, y1 , y 2 ,......, y n )
dx
j xj y1, j y 2, j
0 0 4 6
2 1,0 y1, 2 y 2, 2
4 2,0 y1, 4 y 2, 4
Para j = 1 e x1 = 0,5
Para j = 2 e x1 = 1,0
Para j = 3 e x1 = 1,5
Para j = 4 e x1 = 2,0
y 2, 4 = y 2,3 + f 2 ( x 2 , y1,3 , y 2,3 ) h = 8,44525 + (4 0,3 8,44525 0,1 1,6875) 0,5 = 9,0940875
J xj y1, j y 2, j
0 0 4 6
dy1
= 0,5 y1 = f 1 ( x, y1 , y 2 )
dx
dy 2
= 4 0,3 y 2 0,1 y1 = f 2 ( x, y1 , y 2 )
dx
j xj y1, j y 2, j
0 0 4 6
2 1,0 y1, 2 y 2, 2
4 2,0 y1, 4 y 2, 4
1
y i +1 = y i + [ (k1 + 2k 2 + 2k 3 + k 4 )] h
6
k1 = f ( x i , y i )
1 1
k 2 = f ( xi + h, y i + hk1 )
2 2
1 1
k 3 = f ( xi + h, y i + hk 2 )
2 2
k 4 = f ( x i + h, y i + hk 3 )
k1,i = f i ( x j , y1, j , y 2, j , y m, j )
1 1 1 1
k 2,i = f ( x j + h, y1, j + hk1,1 , y 2, j + hk1, 2 ,....., y m, j + hk1, m )
2 2 2 2
1 1 1 1
k 3,i = f ( x j + h, y1, j + hk 2,1 , y 2, j + hk 2, 2 ,....., y m, j + hk 2, m )
2 2 2 2
1
y i , j +1 = y i , j + [ (k1,i + 2k 2,i + 2k 3,i + k 4,i )] h
6
1
y1,1 = y1,0 + [ (k1,1 + 2k 2,1 + 2k 3,1 + k 4,1 )] h
6
1
y 2,1 = y 2, 0 + [ (k1, 2 + 2k 2, 2 + 2k 3, 2 + k 4, 2 )] h
6
k1,1 = f 1 ( x j , y1, j , y 2, j )
k1, 2 = f 2 ( x j , y1, j , y 2, j )
1 1 1
k 2,1 = f 1 ( x j + h, y1, j + hk1,1 , y 2, j + hk1, 2 )
2 2 2
1 1 1
k 2, 2 = f 2 ( x j + h, y1, j + hk1,1 , y 2, j + hk1, 2 )
2 2 2
1 1 1
k 3,1 = f 1 ( x j + h, y1, j + hk 2,1 , y 2, j + hk 2, 2 )
2 2 2
1 1 1
k 3, 2 = f 2 ( x j + h, y1, j + hk 2,1 , y 2, j + hk 2, 2 )
2 2 2
1
k 4,1 = f 1 ( x j + h, y1, j + hk 3,1 , y 2, j + hk 3, 2 )
2
1
k 4, 2 = f 2 ( x j + h, y1, j + hk 3,1 , y 2, j + hk 3, 2 )
2
1 1 1
k 2,1 = f 1 ( x 0 + h, y1, 0 + hk1,1 , y 2, 0 + hk1, 2 ) = f 1 (0,25, 3,5, 6,45) = 1,75
2 2 2
1 1 1
k 2, 2 = f 2 ( x 0 + h, y1,0 + hk1,1 , y 2,0 + hk1, 2 ) = f 2 (0,25, 3,5, 6,45) = 1,715
2 2 2
142
1 1 1
k 3,1 = f 1 ( x 0 + h, y1,0 + hk 2,1 , y 2, 0 + hk 2, 2 ) = f 1 (0,25, 3,5625, 6,4285) = 1,7813
2 2 2
1 1 1
k 3, 2 = f 2 ( x 0 + h, y1,0 + hk 2,1 , y 2,0 + hk 2, 2 ) = f 2 (0,25, 3,5625, 6,4285) = 1,7151
2 2 2
1
k 4,1 = f 1 ( x 0 + h, y1,0 + hk 3,1 , y 2,0 + hk 3, 2 ) = f 1 (0,25, 3,109375, 6,8575625) = 1,5547
2
1
k 4, 2 = f 2 ( x 0 + h, y1,0 + hk 3,1 , y 2,0 + hk 3, 2 ) = f 2 (0,25, 3,109375, 6,8575625) = 1,6318
2
1
y1,1 = y1,0 + [ (k1,1 + 2k 2,1 + 2k 3,1 + k 4,1 )] h =
6
= 4 + (1 / 6) [2 2 1,75 2 1,7813 1,5547] 0,5 = 3,1152
1
y 2,1 = y 2, 0 + [ (k1, 2 + 2k 2, 2 + 2k 3, 2 + k 4, 2 )] h =
6
6 + (1 / 6) [1,8 + 2 1,715 + 2 1,7151 1,6318] 0,5 = 6,8577
J=1
k11 = -2 k12 = 1.8000 k21 = -1.7500 k22 = 1.7150 k31 = -1.7813 k32 = 1.7151
j=2
k11 = -1.5576 k12 =1.6312 k21 = -1.3629 k22 =1.5478 k31 = -1.3873 k32 =1.5492
j=3
k11 = -1.2131 k12 = 1.4678 k21 = -1.0614 k22 =1.3880 k31 = -1.0804 k32 = 1.3902
j=4
k11 = -0.9448 k12 = 1.3130 k21 = -0.8267 k22 =1.2381 k31 = -0.8414 k32 = 1.2408
Resultando na tabela:
143
j xj y1, j y 2, j
0 0 4,0000 6,0000
1.1.1.1.5 1.1.1.1.4
S
1.1.1.1.6
V(t)=sin(3,5t) i(t)
di (t ) 1
V (t ) = Ri (t ) + L + i (t )dt
dt C
Derivando a equao:
dV (t ) di(t ) d 2 i(t ) 1
=R +L + i(t )
dt dt dt 2 C
d 2 i (t ) di (t )
2 +2 + 2i(t ) = 3,5 cos(3,5t )
2 dt
dt
144
Inicialmente deve-se transformar a equao de segunda ordem num sistema com duas
equaes:
z1 (t ) = i (t )
z1' (t ) = i ' (t ) = z 2 (t )
3,5 3,5
z 2' (t ) = i ' ' (t ) = i ' (t ) i (t ) + cos(3,5t ) = z 2 (t ) z1 (t ) + cos(3,5t )
2 2
z1' (t ) = z 2 = f1 (t , z1 (t ), z 2 (t ))
3,5
z 2' (t ) = i ' ' (t ) = z 2 (t ) z1 (t ) + cos(3,5t ) = f 2 (t , z1 (t ), z 2 (t ))
2
z 1 ( 0) = 0
z 2 ( 0) = 0
t z1 (t ) = i(t ) z 2 (t ) = i ' (t )
0.00 0.0000 0.0000
0.10 0.0084 0.1628
0.20 0.0313 0.2886
0.30 0.0644 0.3625
0.40 0.1018 0.3758
0.50 0.1374 0.3274
0.60 0.1654 0.2238
0.70 0.1808 0.0783
0.80 0.1803 -0.0908
0.90 0.1626 -0.2621
1.00 0.1285 -0.4139
1.10 0.0811 -0.5270
1.20 0.0249 -0.5866
1.30 -0.0342 -0.5847
1.40 -0.0899 -0.5205
1.50 -0.1364 -0.4008
1.60 -0.1687 -0.2393
1.70 -0.1835 -0.0546
1.80 -0.1796 0.1317
1.90 -0.1578 0.2979
2.00 -0.1213 0.4246
2.10 -0.0747 0.4972
145
2.20 -0.0240 0.5076
2.30 0.0247 0.4552
2.40 0.0652 0.3470
2.50 0.0927 0.1966
2.60 0.1037 0.0227
2.70 0.0971 -0.1530
2.80 0.0738 -0.3090
2.90 0.0367 -0.4259
3.00 -0.0096 -0.4892
3.10 -0.0591 -0.4911
3.20 -0.1057 -0.4311
3.30 -0.1435 -0.3163
3.40 -0.1676 -0.1605
3.50 -0.1749 0.0176
3.60 -0.1641 0.1963
3.70 -0.1363 0.3540
3.80 -0.0946 0.4716
3.90 -0.0438 0.5348
4.00 0.0102 0.5359
4.10 0.0613 0.4746
4.20 0.1033 0.3584
4.30 0.1316 0.2012
4.40 0.1428 0.0219
4.50 0.1359 -0.1579
4.60 0.1120 -0.3165
4.70 0.0740 -0.4348
4.80 0.0268 -0.4986
4.90 -0.0237 -0.5004
5.00 -0.0712 -0.4400
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
146
10 Utilizando o MATLAB
1. Sintaxe de comandos
Utilize a funo helpwin <comando>
2. Operaes aritmticas
adio +
subtrao -
multiplicao *
diviso /
potenciao ^
Ex.:
3^2-5-6/(3*2)
ans =
3. Variveis
Para identificao das variveis, o MATLAB diferencia maisculas e minsculas. No necessria a
alocao de memria para as variveis, pois o MATLAB o far automaticamente assim que um valor
atribudo a uma varivel pela primeira vez.
A atribuio realizada da seguinte forma:
a=1
a=
a=
Uma varivel s pode ser acessada se j foi criada, isto , se algum valor j foi atribudo mesma.
= Comando de atribuio
[] Delimitar elementos de matrizes e vetores
() Alternar a ordem de precedncia das expresses aritmticas
. Ponto decimal
, Separa argumentos de funes e elementos matrizes e vetores
; Finalizador de linha com supresso de impresso
% Comentrio
: Gerao de um vetor com intervalos definidos
acos Arco-coseno
asin Arco-seno
atan Arco-tangente
cos Coseno
cosh Coseno hiperbolico
exp Exponencial com base e
log Logaritmo natural
log10 Logaritmo decimal
rand Gera nmeros aleatrios com distribuio uniforme
randn Gera nmeros aleatrios com distribuio normal
rat Aproximao racional
round Arredonda o nmero para o inteiro mais prximo
sign Retorna 1 se for positivo e 0 se for negativo
sin Seno
sinh Seno hiperblico
sqrt Raiz quadrada
tan Tangente
tanh Tangente hiperblica
O MATLAB trabalha com ngulos em radianos.
u=
1 2 3 4
u=
1 2 3 4
z=
148
4 5 6 7
A operao com apenas um elemento do vetor pode ser feita, especificando o elemento a ser tratado:
z(3) = z(3)+1
z=
4 5 7 7
ans =
w=
4
5
7
7
Operaes especiais:
.* Multiplicao de vetores
./ Diviso direita de vetores
.\ Diviso esquerda de vetores
.^ Exponenciao
Ex.:
mult = u.*z
mult =
4 10 21 28
x=
0 2 4 6 8 10
Funes teis no tratamento de vetores:
Ex.:
149
mean(x)
ans =
5
7. Operaes com matrizes
A matriz pode ser definida de maneira semelhante aos vetores, diferenciando-se apenas na necessidade da
digitao de um ; para a separao das diferentes colunas:
a = [1 2 3 ;4 5 6;7 8 9]
a=
1 2 3
4 5 6
7 8 9
ans =
ans =
3 3
b=
1 2
4 5
c=
1 2
4 5
1 0
Nas operaes de adio e subtrao os elementos de uma matriz so somados ou subtrados com o seu
correspondente na outra matriz, quando matrizes de mesmo tamanho. A multiplicao e a diviso por
escalares efetuado elemento a elemento da matriz.
div = a*3
div =
150
3 6 9
12 15 18
21 24 27
exp =
1 4 9
16 25 36
49 64 81
A multiplicao de matrizes s pode acontecer se o nmero de colunas de uma matriz for igual ao nmero
de linhas da outra.
size(a)
ans =
3 3
size(div)
ans =
3 3
mult = a*div
mult =
90 108 126
198 243 288
306 378 450
div =
divinv = x\y
divinv =
-0.7033 0.0239 0
-0.0766 0.8325 1.0000
1.7895 -1.2105 -1.0000
151
pot =
trans =
1 4 7
2 5 8
3 6 9
8. Nmeros Complexos
A parte imaginria do nmero complexo pode ser simbolizada pelas letras i e j indistintamente.
Ex.:
z1 = 3+4i
z1 =
3.0000 + 4.0000i
z2 =
3.0000 - 4.0000i
As operaes com nmeros complexos utilizam os operadores usuais. A potenciao, como visto com as
matrizes, correspondente multiplicao sucessiva do nmero por ele mesmo.
9. Polinmios
Seja o polinmio:
X3 3x2 +4x-4
No MATLAB ele definido da seguinte forma:
poli = [1 -3 4 -4]
poli =
1 -3 4 -4
r=
2.0000
0.5000 + 1.3229i
0.5000 - 1.3229i
Com as razes do polinmio, pode-se obter os coeficientes deste usando a funo poly:
p = poly(r)
p=
p3 =
10 11 -1 -2
Q=
5 -2
R=
0 0 0 0
16
14
12
10
4
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
poly =
2.6046 4.1686
hold on;
t = 0:.1:5;
S = polyval(poly,t);
plot(t,S);
154
18
16
14
12
10
4
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Grficos em 2D
A formatao de cor e estilo da linha podem ser facilmente ajustados atravs de argumentos do comando
plot.
Os operadores relacionais, aqueles que respondem a uma determina operao com verdadeiro e falso, e
que so simbolizados respectivamente por 1 e 0. A tabela a seguir relaciona operador com a descrio:
Operador Descrio
< Menor que
<= Menor ou igual
> Maior que
155
>= Maior ou igual
== Igual
~= Diferente
Operador Descrio
& AND
| OR
~ NOT
Rotinas Descrio
For <cond>
Gera um loop enumervel
end
while <cond>
Gera um loop enquanto uma condio (<cond>) for verdadeira
end
if <cond>
elseif Comando executvel condicional
end
if <cond>
else Comando executvel condicional
end
break Sair fora de um loop for ou while
return Retornar a uma funo (arquivo.m)
pause Para num ponto do programa at que se aperte qualquer tecla
Essas rotinas associadas aos inmeros recursos oferecidos pelo MATLAB, propiciam ao usurio,
desenvolver desde simples programas at os mais sofisticados.
s e f
Objetivo 7: Arquivos M-file. Embora voc possa trabalhar inteiramente nas linhas de comando do
MATLAB, voc tambm pode armazenar em arquivos externos. Esses arquivos so equivalentes a
programas, funes, subrotinas e procedimentos de outras linguagens. Os arquivos M-file so criados a
partir do editor do MATLAB. Abaixo apresenta-se um arquivo para o clculo da raiz quadrada de um
nmero real maior ou igual a zero. Coloque este arquivo no formato M-file e execute-o.
function [x,iter]=sqrtn(a,tol)
%sqrtn Raiz quadrada de um nmero real maior que zero pelo Mtodo de Newton.
% x=sqrtn(z,tol) calcula a raiz do nmero real a utilizando o Mtodo de Newton
% a assumido ser maior ou igual a zero
% tol a tolerncia de convergencia (default eps) - eps - epsilon da mquina
% [x,iter]=sqrtn(a,tol) retorna tambm o nmero de iteraes (iter) para a con-
% vergncia.
if nargin<2,tol=eps;end
x=a;
iter=0;
xdiff=inf;
fprintf(' k x_k erro relativo\n')
while xdiff>tol
iter=iter+1;
xold=x;
x=(x+a/x)/2;
xdiff=abs(x-xold)/abs(x);
fprintf('%2.0f: %20.16e %9.2e\n',iter,x,xdiff)
if iter>50
error('No convergiu apos 50 iteraes')
end
end
157
Algoritmo:
12. Entrada:
12.1 funo f(x)
12.2 intervalo de convergncia [a,b]
12.3 tolerncia
12.4 nmero de iteraes L
13. f0 f(a); f1 f(b)
14. Teste de viabilidade de intervalo:
14.1 Se f0*f1 > 0
14.1.1 Erro na Entrada
14.1.2 Entrar com novo intervalo
14.2 Seno
14.2.1 x0 a
14.2.2 x1 b
14.2.3 i 1
15. Enquanto ((|f0| > ou |f1| > ) e i < L)
15.1 X2 0,5*(x0+x1)
15.2 f2 f(x2)
15.3 Se (f2*f0 < 0)
15.3.1 x1 x2
15.3.2 f1 f2
15.4 Seno
15.4.1 x0 x2
15.4.2 f0 f2
15.5 i i+1
16. se (i > L)
16.1 No atingiu exatido em L iteraes
17. Seno
17.1 A exatido foi atingida em i-1 iteraes, e a raiz x2
18. Fim
Algoritmo 2:
y = ex
158
Se y=1
f ( x) = 1
Caso contrrio
f ( x) = ( y 1) / ln( y )
Fim
Referncias Bibliogrficas
[1] BARROSO, Lenidas C. et. al., Clculo Numrico (com Aplicaes), 2a edio, Editora Harbra, So
Paulo, 1987.
[2] CLAUDIO, Dalcidio M., MARINS, Jussara M., Clculo Numrico Computacional, 2a edio, Atlas,
1994
[3] SANTOS, Vitoriano R. B., Curso de Clculo Numrico, 4a edio, LTC, 1982.
[4] RUGGIERO, Mrcia A. G., LOPES, Vera Lcia R., Clculo Numrico: Aspectos Tericos e
Computacionais, 2a edio, Makron Books, So Paulo, 1996.
[5] CAMPOS, R. J. A., Clculo Numrico Bsico. 1 edio, Atlas, 1978
[6] CAMARGO, W. C. M., Apostila de Clculo Numrico. Departamento de Informtica. UFPR.