Você está na página 1de 15

MTODOS ITERATIVOS PARA RESOLUO DE SISTEMAS DE EQUAES NO LINEARES

Gerardo Valdsio Rodrigues Viana Universidade Estadual do Cear Faculdade Loureno Filho Resumo: Apresenta um enfoque didtico dos mtodos de resoluo de equaes no lineares simultneas, assunto contido nos programas de disciplinas de Clculo Numrico e afins. Os mtodos numricos apresentados so aqueles de maior uso na rea de Anlise Numrica. A abordagem objetiva mostrar os algoritmos para resolver o mtodo e sua implementao em computador, de forma que qualquer sistema de equaes no lineares possam ser modelados e resolvidos atravs de seu uso. It presents a didactic focus of the methods of resolution of simultaneous non lineal equations, subject contained in the Numeric and kindred programs of disciplines of Calculation. The presented numeric methods are those of larger use in the area of Numeric Analysis. The objective is to show the algorithms to solve the method and its computer implementation, so that any system of non lineal equations they can be modeled and solved through its use. Mtodos Iterativos, Equaes no lineares, Anlise da convergncia, Srie de Taylor, Mtodo de Newton e Mtodo de Brown.

Abstract:

Palavras-Chave:

1. INTRODUO
O propsito neste trabalho apresentar alguns mtodos para resolver sistemas de Equaes No lineares Simultneas. Para este tipo de problema da Anlise Numrica utilizam-se os Mtodos Iterativos que fornecem a soluo do sistema com uma determinada preciso requerida. Dentre estes mtodos, destacam-se o Mtodo de Iterao Linear para Sistemas, e os Mtodos de Newton, Brown e Brent. Aqui nos limitamos a tratar do Mtodo de Newton que de fcil implementao e fornece os resultados com uma convergncia mais rpida do que o Mtodo de Iterao Linear (FORSYTHE, 1977), e do Mtodo de Brown que tem a mesma forma de convergncia do Mtodo de Newton com a vantagem de reduzir o esforo computacional na obteno da soluo para uma dada preciso (BROWN, 1967). Para um melhor entendimento do assunto, inicialmente define-se como funcionam os mtodos iterativos para uma equao no linear simples, a partir da faz-se uma generalizao para o caso de vrias equaes no lineares simultneas. Aps a definio dos Mtodos de Newton e de Brown apresentamos seus algoritmos e programas correspondentes escritos em FORTRAN ( MICROSOFT, 1989), bem como os resultados obtidos para alguns exemplos. Para efeito de comparao destes resultados utilizamos rotinas do IMSL (International Mathematical and Statistical Libraries) (IMSL, 1989) que nos mostra a eficincia e correo dos mtodos implementados.

R. Cient. Fac. Lour. Filho - v.1, n.1, 2001

21

2. RAZES DE EQUAES NO LINEARES


2.1) Razes Aproximadas Para encontrar uma raiz de uma funo f devemos encontrar um valor x de modo que f(x) = 0. Se dispusssemos do esboo do grfico de f teramos uma idia da localizao de suas razes reais pelas intersees da curva f com o eixo -x. Observe o grfico:
y

x -2 4 f -1 0 1 2 3

Figura 1 Como a curva f contnua e corta o eixo -x em pontos dos intervalos [2,1] e [2,3] podemos pressupor que uma raiz r1 tal que 2 < r1 < 1 e outra raiz r2 tal que 2 < r2 <3. No caso, podemos considerar x0 = 1.5 e x0 = 2.5 como razes aproximadas de f, tendo certeza de que a parte inteira de cada raiz est correta. Nos mtodos iterativos estes valores tornam-se importantes pois conhecendo a ordem de grandeza das razes e em funo de alguma condio de convergncia os processos convergiro para uma raiz com uma determinada preciso desejada. Caso o esboo do grfico seja difcil de ser construdo, s vezes, possvel substituir o grfico de f por dois outros grficos de curvas mais simples de modo que se f(x) = g(x) h(x), e f(r)=0, as curvas g e h se cortam num ponto cuja abscissa tambm r. Por exemplo, se f(x) = 2x + Ln(x), poderamos ter: g(x) = 2x e h(x) = Ln(x), observe o grfico:

y = g(x)

f(r) = 0 g(r) = h(r) x 0 r 1 y= h(x) Figura 2:


Uma outra forma de obtermos uma aproximao de uma raiz de f sem uso de grficos seria atravs da anlise do domnio e continuidade da funo, de forma que, se f for contnua no intervalo (a,b) e f(a).f(b) < 0 (f muda de sinal no intervalo) ento r (a,b) tal que f(r) = 0.

22 2001

R. Cient. Fac. Lour. Filho - v.1, n.1,

Exemplo 1: x F(x) 2 1.32

f(x) = sen(x) + cos(x) 1 0.30 0 1.00 1 1.38 2 0.49 ... ... 10 0.84 11 1.54 12 0.31

Teramos razes: r1 (1,0) e r2 (11, 12), entre outras. 2.2) Mtodos Iterativos Simples Conforme comentamos no item anterior a forma x = F(x) nos permite obter uma raiz de uma funo f equivalente a expresso x F(x) = 0 . A forma decorrente de x = F(x), representada por: xi = F( xi 1 ) , chamada de forma iterativa, indicando que o valor de xi obtido na iterao i depende do valor xi 1 obtido na iterao anterior. Neste caso F chamada Funo de Iterao. Partindo de uma aproximao inicial x 0, aproximaes sucessivas de x podem ser obtidas, de forma que, se o valor absoluto k+1 = | xk+1 xk | para uma iterao de ordem (k+1) for menor que k = | xk xk1 | da iterao anterior k, para todo k, ento o processo converge para um valor final x, ou seja, se: | x1 x0 | > | x2 x1 | > ..... > | xk xk1 | > | xk+1 xk | > . . . teremos

lim | xk+1 xk | = 0 ou
k

xk+1 xk x

ou x xk xk+1

de modo que a forma iterativa xi = F( xi 1 ) se transforma em x = F(x) indicando que x raiz de f(x) = x F(x). Quando os erros absolutos k tendem a crescer, ou seja

lim k = , dizemos que o mtodo no converge,


k

o que no tem interesse nos casos prticos. A condio de convergncia dada por: |F (x0)| < 1 (CONTE, 1971). 2.3) Mtodo de Newton-Raphson para uma Equao No linear Considere a seguinte representao grfica de uma funo f. Para uma aproximao xk1 traada uma reta tangente ao ponto (xk1,f(xk1)) O ponto em que esta reta corta o eixo -x ser a nova aproximao xk. Repetindo este processo sucessivamente nota-se que lim |
k

xk r | = 0 ou lim xk=r.
k

R. Cient. Fac. Lour. Filho - v.1, n.1, 2001

23

f(xk-1)

tg( ) = f(xk-1) / ( xk-1 xk ) = f (xk-1) ( xk-1 xk ) = f(xk-1) / f (xk-1) xk = xk-1 f(xk-1) / f (xk-1) F(xk1) = xk-1 f(xk-1) / f (xk-1) (Esta a funo de iterao do mtodo) F(x) = x f(x)/ f (x) r f
Figura 3

xk xk1

Exemplo 2: Use a forma iterativa de Newton-Raphson para encontrar uma raiz de f(x) = 2x + Ln(x) com preciso de 105 ( cinco casas decimais corretas ). Aproximao inicial da raiz: Conforme grfico da Figura-2, deduzimos que uma aproximao de uma raiz de f ser x0 = 0.5. Forma Iterativa:

1 x f ( x) 2 x + Ln( x) 1 Ln( x) F ( x) = x = x = f ' ( x) 2 + 1/ x 2 + 1/ x 1 Ln( x i ) x i+1 = F ( xi ) = 2 + 1/ xi f ( x ) = 2 x + Ln ( x ) f ' ( x) = 2 +


Iteraes: i=0 i=1 i=2 x0 = 0.5 x1 = [1 Ln(0.5i)] / [2 + 1/0.5 ] = 0.423286795 1 = | x1 x0 | = 0.076713204 > 105. x1 = [1 Ln(0.423286795)] / [2 + 1/0.423286795] x1 = 0.426296959 1 = | x2 x1 | = 0.003010164 > 105. x1 = [1 Ln(0.426296959)] / [2 + 1/0.426296959] x1 = 0.426302751 1 = | x3 x2 | = 0.000005791 < 105.

i=3

Soluo: Convergncia obtida aps 3 iteraes para a raiz r = 0.42630 Observaes:

24 2001

R. Cient. Fac. Lour. Filho - v.1, n.1,

Este resultado pode ser confirmado no Teste-4 do item 4.4, ou atravs do valor de f(r). No caso f(0.4263) = 2.(0.4263) + 2.Ln(0.4263) = 0.000011 105. Note que o resultado est correto com todas casas decimais apresentadas, porm, este fato somente seria evidenciado na 4 iterao, por isso, indicamos a soluo com cinco casas decimais que foi a preciso requerida. Comentrios: O Mtodo de Newton-Raphson um dos mais utilizados para obter soluo de equaes no lineares pois converge rapidamente. A anlise da convergncia feita a seguir no item 3.3. O nico problema apresentado quando o ponto xk um ponto de mximo ou mnimo de f, pois f (xk) = 0. Testes podem ser includos no algoritmo de forma que quando isto acontecer, redefine-se xk como sendo (xk + ) ou (xk ), para valores pequenos de . A condio de convergncia :

| F' ( x )| =

| f ( x ). f ''( x )| <1 [ f '( x )]2

(CONTE, 1971)

3. SOLUO DE SISTEMAS DE EQUAES NO LINEARES 3.1 Mtodo Iterativo de Newton Considere o seguinte sistema de equaes no lineares: f1 ( x1 , x2 , . . . , xn ) = 0 f2 ( x1 , x2 , . . . , xn ) = 0 ... fn ( x1 , x2 , . . . , xn ) = 0

Segundo expanso de uma funo f pela srie de Taylor (SHEID, 1991) temos: i) Uma varivel ( n=1) f(x+x) = f(x) + f (x). x + f (x). (x)2/2 + f (x). (x)3/3! + . . . para x pequeno, ou seja, x0, poderamos aproximar: f(x+x) f(x) + f (x). x com erro de truncamento da ordem de: f (x). (x)2/2 ii) Duas variveis ( n=2) f(x+x, y+y) = f(x,y) + (f/ x).x + (f/ y).y + (2f/ x2 ).(x)2/2 + (2f/ y 2 ).(y)2/2 + . . . para x e y pequenos, ou seja, x0 e y 0, poderamos aproximar: f(x+x, y+y) f(x,y) + (f/ x).x + (f/ y).y com erro de truncamento da ordem de: (2f/ x2 ).(x)2/2 + (2f/ y 2 ).(y)2/2 Obs.: A notao f/ x representa: f(x,y)/ x (0)

R. Cient. Fac. Lour. Filho - v.1, n.1, 2001

25

iii) Em geral, para n variveis temos: f(x1 +x1, ... ,xn +xn ) f(x1, ... , xn) + (f/ x1).x1 + . . . + (f / xn).n Desta forma, considerando um sistema com N equaes no lineares e N variveis, poderamos expandir cada funo fi pela srie de Taylor, assim: f1 (x1 +x1, ... ,xn +xn ) f1 (x1, ... , xn) + (f1/x1).x1 + ... + (f1 /xn).xn f2 (x1 +x1, ... ,xn +xn ) f2 (x1, ... , xn) + (f2/x1).x1 + ... + (f2 /xn).xn ...... fn (x1 +x1, ... ,xn +xn ) fn (x1, ... , xn) + (fn/x1).x1 + ... + (fn /xn).xn Obs.: A notao fi/xj representa fi (x1,x2,...,xn) / xj De forma iterativa, se ( xi + xi ) uma nova aproximao para xi teramos a convergnvia obtida quando xi 0 , ou seja, quando xi , onde a tolerncia, ou preciso desejada; neste caso ( xi + xi ) i, i=1,...,N, seriam razes de cada fi .com preciso , ou seja, fi (x1 +x1, ... ,xn +xn ) = 0, i, i=1,...,N. Assim, o sistema acima tomaria a seguinte forma: (f1/x1).x1 + ... + (f1 /xn).xn = f1 (x1, ... , xn) (f2/x1).x1 + ... + (f2 /xn) xn = f2 (x1, ... , xn) ...... (fn/x1).x1 + ... + (fn /xn) xn = fn (x1, ... , xn) ou, usando notao matricial: J.Y = B , onde J a Matriz Jacobiana, Y o Vetor Soluo ( y i = xi ) e B o vetor de termos independentes, ( b i = fi ).ou: f1/x1 f2/x1 ...... fn/x1 ....... ....... f1/xn f2/xn Y= ....... ...... fn/xn x1 x2 ...... ...... xn f1(x1, ... , xn) f2(x1, ... , xn) ... ... fn(x1, ... , xn)

J=

B=

Sabendo que J.Y = B Y = J1 B e se W(k) = [w1(k) , w2(k), ... , wn(k) ]T para um vetor W qualquer, for a aproximao de W numa iterao de ordem k, ento a forma iterativa de Newton para sistemas de equaes no lineares seria: X(k+1) = X(k) + Y(k) X(k+1) = X(k) + J1. B(k) X(k+1) = X(k) J1.F(k) (1) (2) (3)

ou ou

onde J1 a inversa do Jacobiano em X(k) = [x1(k) , x2(k) , ... , xn(k) ]T e se k=0 ento X(0) = [x1(0), x2(0), ... , xn(0)]T seria a aproximao inicial da soluo do sistema. Observe que a frmula (3) semelhante frmula iterativa de Newton-Raphson para uma funo simples (uma nica varivel):

26 2001

R. Cient. Fac. Lour. Filho - v.1, n.1,

xk+1 = xk f(xk)/f (xk)

xk+1 = xk [f (xk)]1. f(xk)

onde, no caso, J = df(xk)/dx = f (xk) Compare tambm com a frmula apresentada no item 3.1.i: xk+1 = xk f(xk)/f (xk) f(xk) + f (xk). xk = 0 f(xk+1) = 0 xk = f(xk)/f (xk) f(xk + xk) = 0 xk+1 uma raiz de f.

No exemplo a seguir optamos pela equao (1) pois a obteno da soluo Y do sistema JY = B tem um esforo computacional menor do que obter (J1).B. Exemplo 3: Obter a soluo1 do sistema abaixo, com preciso de 0.001, partindo de X(0) = [ 1, 2 ]T , (0) ou seja, x1 = 1 e x2(0) = 2. x1 + 3.log10(x1) x22 = 0 2.x12 x1. x2 5. x1 + 1 = 0 Sejam: f1 (x1,x2) = x1 + 3.log10(x1) x22 = 0 e f2 (x1,x2) = 2. x12 x1.x2 5. x1 + 1 = 0 temos: f1/x1 = 1 + 3/(ln(10)* x1) f1/x2 = 2.x2 f2/x1 = 4. x1 y 5 f2/x2 = x1 1a Iterao: f1/x1 = 2.30288345 f2/x1 = 1.00000000 f1/x2 = 4.00000000 f2/x2 = 1.0000000

2.30288345 4.00000000 J = 1.00000000 1.00000000

3.00000000 B= 0.00000000

Resolvendo o sistema JY=B encontra-se Y(1) = [ 0.47597263, 0.47597263 ]T y 1(1) = (1)x1 = x1(1) x1(0) = 0.47597263 x1(1) = x1(0) + 0.47597263 x1(1) = 1.47597263 (1) (1) (1) y 2 = x2 = x2 x2(0) = 0.47597263 x2(1) = x2(0) + 0.47597263 x2(1) = 1.52402737 Da mesma forma resolvem-se os clculos para as demais iteraes, obtendo: 2a Iterao: f1/x1 = 1.88272873 f1/x2 = 3.04805474 f2/x1 = 2.42794789 f2/x2 = 1.47597263 y 1(2) = 0.01861771 x1(2) = 1.45735492 (2) y 2 = 0.12286656 x2(2) = 1.40116082 a 3 Iterao: f1/x1 = 1.89400559 f1/x2 = 2.80232163 f2/x1 = 2.23058049 f2/x2 = 1.45735492 y 1(3) = 0.00153144 x1(3) = 1.45888636 (3) y 2 = 0.00438928 x2(3) = 1.39677154 Solucao obtida em 3 iteracoes: x1 = 1.458886359249591 com
1

x2 = 1.396771539896760

F22 = f12[x1(3), x2(3)] + f22[x1(3), x2(3)] = 0.4035104D-09

Soluo com preciso de 107 : x1 = 1.4588902 e x2 = 1.3967670 (CONTE, 1971)

R. Cient. Fac. Lour. Filho - v.1, n.1, 2001

27

3.2 Mtodo de Brown Consiste em aplicar os seguintes passos para resolver um sistema de equaes no lineares da forma definido no item anterior. Passo-1: Expandir a primeira funo f1 pela aproximao da srie de Taylor e escrever um dado xm como combinao linear dos (n 1) xi restantes (i=1,n,i m). A varivel xm escolhida pelo processo de pivoteamento, semelhante ao utilizado na Eliminao Gaussiana (DORN, 1978), de forma que seu coeficiente o maior em valor absoluto. Os objetivos desta escolha so: minimizar os erros de arredondamento, evitar diviso por zero e testar a singularidade do sistema. Troca de linha e colunas so necessrias para o processo do pivoteamento total. Assim, f1 (x1 +x1, ... ,xn +xn ) f1 (x1, ... , xn) + (f1/x1).x1 + ... + (f1/xn).xn para uma iterao de ordem k, temos: f1 (x1(k) , ... , xn (k) ) + (f1/x1).x1 + ... + (f1 /xn).xn 0 por simplicidade de notao iremos considerar: j = f1/xj = [ f1 (x1(k) , ..,xj + , .. , xn (k) ) f1 (x1(k) , ..,xj ,.. , xn (k) ) ]/ y j = xj = xj xj (k) f1 = f1 (x1(k) , ... , xn (k) ) m = mx{ j }, ( i=1,...,n ) portanto, a equao (4) se transforma em: f1 + 1.y 1 + 2.y 2 + . . . + n.y n = 0 y m = f1 / m [ (1/m ).y 1 + ... + (m-1/m ).y m-1 + (m+1 /m ).y m+1 ... + (n/m ).y n ] xm = xm
(k)

(4)

(
j =1 j m

/ m ). y j f1 / m

( m 0 )

Passo-2: Repetir o processo anterior para a segunda funo f2, eliminando x m1 ( x m do passo 1) por substituio deste valor em f2. A seguir obtm-se xm2 como combinao linear dos (n 2) xi restantes ( i=1,n, i m1 e i m2 ). E assim sucessivamente, elimina-se uma varivel por equao, at que aps o passo de ordem (n-1) resta apenas uma equao ( fn ) com somente uma varivel. Passo-n: Resolver a ltima equao pelo Mtodo de Newton-Raphson para funes simples, a uma varivel [ fn(x1,x2, ... ,xn) = ( xl ) = 0 ] conforme mtodo descrito no item 2.3. Retrosubstituio: Como se observa aps os N passos, temos um sistema de equaes lineares de forma triangular. Procedendo a retrosubstituio, similar ao mtodo de eliminao de Gauss, obtem-se a nova aproximao para o vetor X.
28 2001 R. Cient. Fac. Lour. Filho - v.1, n.1,

Teste da Convergncia 2: Compara-se termo a termo do vetor X com os valores da aproximao anterior. Se: xi(k) xi(k-1) EPS, onde EPS a preciso requerida, o mtodo convergiu e o vetor X contm a soluo do sistema. Caso contrrio, repetir todo o processo para obter uma nova iterao at um limite MAXIT, predefinido, correspondente ao nmero mximo de iteraes. Aplicao: Deixamos para testar a eficincia do Mtodo de Brown aps sua implementao, teste e comparao com outros mtodos indicados no item 4.4. 3.3 Estudo da Convergncia Ambos mtodos, de Newton e de Brown, convergem quadraticamente. Isto pode ser observado como sugere o erro de truncamento indicado na equao (0), que de forma simplificada indica: || f(x+x) f(x) f (x).x || ||x || 2. || f () || / 2 Encontramos na referncia [06] pp. 514-527 um extenso estudo sobre a convergncia do mtodo de Newton. Em resumo, temos que a forma iterativa (3) converge par a soluo do sistema de equaes no lineares se forem satisfeitas as seguintes condies: i) A matriz jacobiana J(x) = [ fi/xj ] no singular, ou seja, possui inversa para cada x= X(k) . ii) || 0 || A 0 onde || 0 || =.|| A || / | det(J) | e iii) || 0 . f(X(0)) || B0 || A || = mx
i

| a |
ij j

{ A = J1(X(0)) }

iv)

|
k =1

fi [ x( 0) ] / x j xk | C0

para (i,j = 1,...,n)

v) As constantes A 0, B0 e C0 que so as cotas superiores dos erros (potncia de 10) so tais que: 0 = 2.n. A 0.B0 .C 1 3.4 Algoritmo para o Mtodo de Newton [Inicio] 1) [ Entrada de Dados ] 1.1) Definir parmetro N (nmero de equaes/variveis). 1.2) Leitura da preciso desejada (EPS). 1.3) Leitura do vetor de aproximao inicial (xi, i=1,...,N). 1.4) Escrever N expresses que definem as funes fi. 1.5) Escrever N2 expresses para as derivadas parciais fi/xj . 2) [ Repetir para cada iterao i, (i=1,...,NMAX) ].
2

A comparao pode ser feita atravs do erro relativo: (xi

(k)

xi(k-1))/xi(k-1) EPS
29

R. Cient. Fac. Lour. Filho - v.1, n.1, 2001

2.1) Calcular vetor B, onde b i = fi (x1, ... , xn). 2.2) Calcular o quadrado da norma Euclideana de f ( | F | 2 ). 2.3) Calcular matriz A, onde aij = fi(x1, ... , xn) / xj 2.4) Obter soluo do sistema de equaes lineares AY = B, atravs do mtodo de decomposio LU com refinamento sucessivo. Utilizada rotina DLSARG do IMSL. (Obs.: y i = xi ) 2.5) Testar Convergncia Se y i EPS , i = 1,...,N ento [Sada com sucesso] imprimir xi , i=1,...,N; fim de execuo seno, redefinir xi = xi + y i e fazer nova iterao 3) [Sada sem sucesso] imprimir Convergncia no obtida [Fim] 3.5 Algoritmo para o Mtodo de Brown [Inicio] 1) [ Entrada de Dados ] 1.1) Definir parmetro N (nmero de equaes/variveis). 1.2) Leitura da preciso desejada (RELCONVG). 1.3) Leitura do vetor de aproximao inicial (xi, i=1,...,N). 1.4) Escrever N expresses que definem as funes fi. 2) [ Repetir para cada iterao m, (m=1,...,MAXIT) ]. 2.1) Inicializar matriz de ponteiros para indicar ordem de clculo de xi 2.2) [ Repetir para cada k, (k=1,...,N) ] Calcular F= fk(x1, ... , xn). Calcular Jacobiano (J) reduzido no expltico, por aproximao: (fk (x1, .xk. , xn) / xj ) [fk(x1, .xk+. , xn) fk(x1, .xk. , xn)]/ Determinar KMAX de forma que fkmax /xi = max (abs(fk /xi)) 2.3) Testar a singularidade da Matriz J. Se sim, fim de execuo 2.4) Gerar matriz triangular dos coeficientes do sistema reduzido. 2.5) Resolve ltima equao (k=N) pelo mtodo de Newton simp les 2.6) Obter nova iterao do vetor X, por retrosubstituio. 2.7) Testar Convergncia [ t i = temp(i) = aproximao anterior ] Se (t i xi)/xi RELCONVG , i = 1,...,N ento Calcular o quadrado da norma Euclideana de f ( | F | 2 ). [Sada com sucesso] imprimir xi , i=1,...,N; fim de execuo seno, redefinir t i = xi e fazer nova iterao 3) [Sada sem sucesso] imprimir Convergncia no obtida [Fim]

3.6 Anlise da Complexidade dos Algoritmos Mtodo de Newton: Para cada iterao so avaliadas N valores das funes fi (i=1,N) e N2 valores das derivadas parciais fi/xj (i,j = 1, N). Alm disso temos a resoluo do sistema JY=B que pelo Mtodo de Eliminao

30 2001

R. Cient. Fac. Lour. Filho - v.1, n.1,

de Gauss da ordem de N3. No entanto, no pior caso, as avaliaes das funes so mais significativas que a resoluo do sistema, logo, para efeito de comparao, por cada iterao tem-se que avaliar: ( N2 + N ). Mtodo de Brown: Para cada iterao so avaliadas as funes num total de: Passo-1: (N+1) Passo-2: (N) ... Passo-N: N derivadas parciais: f1/xi , i=1,N 1 funo: f1 (N1) derivadas parciais: f2/xi , i=1,N1 1 funo: f2 ... (2) 1 derivada parcial: fn/xl 1 funo: f2

Total = (N+1) + (N) + (N1) + ... + 3 + 2 = ( N2 + 3N )/2 Conforme se observa o Mtodo de Brown mais eficiente que o Mtodo de Newton, tendo um tempo mdio computacional da ordem de 50% menor. 4. IMPLEMENTAO DOS MTODOS 4.1 Programas Em http://www.lia.ufc.br/~valdisio encontram-se os programas em FORTRAN para implementao e teste dos mtodos apresentados, na ordem, Mtodo de Newton, Mtodo de Brown e utilizando rotinas do IMSL (International Mathematical and Statistical Libraries) (IMSL, 1989). 4.2 Testes e Comparao dos Resultados Obtidos 4.2-1 Retirado de (RICE, p.67-69, 1983). x1 + 2.x2 + x3 + 4.x4 = 20.7 x12 + 2.x1. x2 + x43 = 15.88 x13 + x33 + x4 = 21.218 3.x2 + x3 .x4 = 21.1 [ Parmetro (N=3 ) ] F(1) = X(1) + 2*X(2) + X(3) + 4*X(4) 20.7 F(2) = X(1)*X(1) + 2*X(1)*X(2) + X(4)**3 15.88 F(3) = X(1)**3 + X(3)**3 + X(4) 21.218 F(4) = 3*X(2) + X(3)*X(4) 21.1 JF(1,1) = 1 ( f1/x1 ) JF(1,2) = 2 ( f1/x2 ) JF(1,3) = 1 ( f1/x3 ) JF(1,4) = 4 ( f1/x4 ) JF(2,1) = 2*X(1) + 2*X(2) ( f2/x1 ) JF(2,2) = 2*X(1) ( f2/x2 ) JF(2,3) = 0 ( f2 /x3 ) JF(2,4) = 3*X(4)*X(4) ( f2/x4 )

Definir Equaes:

R. Cient. Fac. Lour. Filho - v.1, n.1, 2001

31

JF(3,1) = 3*X(1)*X(1) JF(3,2) = 0 JF(3,3) = 2*X(3) JF(3,4) = 1 JF(4,1) = 0 JF(4,2) = 3 JF(4,3) = X(4) JF(4,4) = X(3) Vetor aproximao inicial: X(1) = X(2) = X(3) = X(4) = 1 Preciso Requerida: EPS = 1e 7 ( 107 ) Resultados Obtidos3: Newton 1.200000000263847 5.599999483824956 4.299999995460741 1.000000449891238 9 0.4333020D22 Brown 1.200000000263572 5.599999483826677 4.299999995460244 1.000000449890571 6 0.7713316D28

( f3/x1 ) ( f3/x2 ) ( f3/x3 ) ( f3/x4 ) ( f4/x1 ) ( f4/x2 ) ( f4/x3 ) ( f4/x4 )

X(1) X(2) X(3) X(4) N.Iter. | F | 22 4.2-2

IMSL 1.199999996728711 5.599999487093357 4.299999994532281 1.000000449302286 0.2372531D14

Retirado de (BROWN, p. 729, 1967). ( 1 1/4 ).(e 2x-1 1) + (e/).y 2.e.x = 0 sen(x.y)/2 y/4 x/2

=0

Definir Equaes:

[ Parmetro (N=2 ) ] Considerar: x = X(1) e y = X(2)

F(1) = 2.7182818*(0.92042252*(exp(2*X(1)1) 1) + X(2)/3.14159265 2*X(1) F(2) = 0.5*sin(X(1)*X(2)) X(2)/12.5663706 X(1)/2 JF(1,1) = 2.7182818*(0.92042252*2*exp(2*X(1) 1) 2) ( f1/x1 ) JF(1,2) = 0.5*X(2)*cos(X(1)*X(2) 0.5 ( f1/x2 ) JF(2,1) = 2.7182818 / 3.14159265 ( f2/x1 ) JF(2,2) = 0.5*X(1)*cos(X(1)*X(2)) 1/12.5663706 ( f2/x2 ) Dados de Entrada: X(1) = 1 Resultados Obtidos4: Newton 0.500000000021780 3.141592741042299 5 X(2) = 3 e EPS = 1e 7 ( 107 )

X(1) X(2) N.Iter.


3 4

Brown 0.500000000000045 3.141592741012655 6 X(3) = 4.3 X(4) = 1.0

IMSL 0.500000000000673 3.141592741013257 -

Soluo Exata: X(1) = 1.2 X(2) = 5.6 Soluo Exata: X(1) = 0.5 X(2) =

32 2001

R. Cient. Fac. Lour. Filho - v.1, n.1,

| F | 22 4.2-3

0.4413317D21

0.3534437D26

0.2435351D24

Retirado de (RICE, p.782-783, 1989). f1(x,y,z) = x + ex 1 + (y + z)3 27 f2(x,y,z) = ey 2 / x + z3 10 f3(x,y,z) = z sen(y 2) + y 2 7

Definir Equaes:

[ Parmetro (N=3 ) ] Considerar: x = X(1) , y = X(2) e z = X(3)

F(1) = X(1) + exp(X(1) 1) + ( X(2) + X(3))*( X(2) + X(3)) 27.0 F(2) = exp (X(2) 2)/X(1) + X(3)*X(3) 10.0 F(3) = X(3) + sin(X(2) 2) + X(2)*X(2) 7 JF(1,1) = 1.0 + exp(X(1) 1 ( f1/x1 ) JF(1,2) = 2.0*(X(2) + X(3)) ( f1/x2 ) JF(1,3) = 2.0*(X(2) + X(3)) ( f1/x3 ) JF(2,1) = exp(X(2) 2) / (X(1)*X(1)) ( f2/x1 ) JF(2,2) = exp(X(2) 2) / X(1) ( f2/x2 ) JF(2,3) = 2.0*X(3) ( f2/x3 ) JF(3,1) = 0.0 ( f3/x1 ) JF(3,2) = cos(X(2) 2) / + 2*(X(2) ( f3/x2 ) JF(3,3) = 1 ( f3/x3 ) Dados de Entrada: X(1) = 4 Resultados Obtidos5: Newton 0.999999999999170 1.999999999999916 3.000000000000450 7 0.1588865D22 Brown 1.000000000000000 2.000000000000000 3.000000000000000 8 0.3451266D29 IMSL 0.999999994942615 1.999999995037777 3.000000000711828 0.3368568D14 X(2) = 4 X(3) = 4 e EPS = 1e 7 ( 107 )

X(1) X(2) X(3) N.Iter. | F | 22

Teste-4 ( Mostra que o mtodo pode ser usado para equaes simples) f(x) = 2.x + Ln(x) Definir Equaes: [ Parmetro (N=1 ) ] Considerar: x = X(1)

Soluo Exata: X(1) = 1.0 X(2) = 2 X(3) = 3.0

R. Cient. Fac. Lour. Filho - v.1, n.1, 2001

33

F(1) = 2*X(1) + log(X(1)) e JF(1,1) = 2 + 1/ X(1) Resultados Obtidos: ( para X(1) = 0.5 e EPS = 1e 7 ( 107 ) Brown 0.426302751006863 5 0.114134130 IMSL 0.426302751006863 0.933202632

X(1) N.Iter. | F | 22 5 CONCLUSO

Newton 0.426302750985630 4 0.8513827D20

Os resultados fornecidos pelos mtodos apresentados nos garante resolver com eficincia e preciso a maioria dos sistemas de equaes no lineares. Uma das dificuldades encontradas nestes mtodos, como em qualquer mtodo iterativo, est na obteno de uma boa aproximao inicial do vetor soluo. Desde que saibamos a ordem de grandeza dos componentes deste vetor a tarefa se torna simples, pois como a convergncia obtida com rapidez, e pequenas distores no interfereriam na obteno da soluo, porquanto, os mtodos convergem quadraticamente. Porm, como em geral isto no ocorre fica difcil estabelecer critrios para uma boa escolha de uma soluo aproximada, at porque o espao em que estas se encontram o n. Durante os testes dos programas nos deparamos com casos de no convergncia, para um limite de at 1000 iteraes, mesmo sabendo previamente que a soluo existia e tendo atribuido valores razoavelmente prximos; resolvemos o problema procedendo algumas modificaes na aproximao inicial atravs de tentativas. Outra dificuldade encontrada, tambm em relao a este fato, se refere ao isolamento de razes no caso de solues mltiplas, pois no espao n a visualizao do nmero de solues altamente complexa pois uma das tcnicas utilizadas para isto seria a observao das intersees das curvas. Quanto aos mtodos em si, podemos concluir que o Mtodo de Brown foi o que apresentou melhores resultados, com a vantagem de ter um menor esforo computacional. Em geral seu tempo de processamento ficou em torno da metade dos outros para uma dada preciso. Poderamos tambm ter optado, no caso do Mtodo de Newton, por substituir o clculo de fi/xj pela aproximao [f(xi,...,xj +,...,xn)f(xi,...,xj ,...,xn)/ ] para valores de pequeno. Isto eliminaria a necessidade de escrever N2 equaes para definir as derivadas parciais, o que se torna obrigatrio para, digamos, N>4. A rotina DNEQNF do IMSL tem este procedimento. Em relao s implementaes, escolhemos a linguagem FORTRAN por ser a melhor linguagem para tratamento de problemas desta natureza, ou seja, problemas que envolvem um grande nmero de operaes aritmticas, alm de possuir timas rotinas para o clculo de funes. Por fim, esperamos que este trabalho venha dar contribuio aos alunos, professores e pesquisadores da rea de Matemtica Computacional, especificamente no assunto aqui mencionado, e que sirva de referncia para outros trabalhos afins.

REFERNCIAS BIBLIOGRFICAS
ATKINSON, K. E., An Introduction to Numerical Analysis, John Wiley & Sons, Inc., USA, 1978 BROWN, K. M., Solution of Simultaneous Nonlinear Equations, in ACM 10th, August, 1967, pp 728-729, (Algorithm 316). CONTE, S.D., Elementos de Anlise Numrica, Trad. Luiz Igncio Pio de Almeida, Ed. Globo, P. Alegre, 1971.

34 2001

R. Cient. Fac. Lour. Filho - v.1, n.1,

DEMIDOVICH, B. P. & MARON, I.A., Clculo Numrico Fundamental, Trad. Miguel Molinas Calvo, Ed. Paraninfo, Madrid, 1977. DORN, W.S. & McCRACKEN, D., Clculo Numrico com estudos de casos em Fortran IV, Ed. Campus, Rio de Janeiro, 1978. FORSYTHE, G. E. et al, Compute Methods for Mathematic Computations, Prentice-Hall Inc., Englewood Cliffs, New Jersey, 1977. IMSL, International Mathematical and Statistical Libraries, Fortan Subroutines for Mathematical Aplications, USA, 1989. MICROSOFT Corporation, FORTRAN Reference, Version 5.0, USA, 1989. PRESS, W. H. et al, Numerical Recipes - The Art of Scientific Computing (FORTRAN Version), Cambridge University Press, Cambridge, 1990. RICE, J. R., Numerical Methods, Software and Analysis, McGraw-Hill Book Company, USA, 1983.

SCHEID, F., Anlise Numrica, 2a . Ed., McGraw-Hill, Portugal, 1991.

R. Cient. Fac. Lour. Filho - v.1, n.1, 2001

35

Você também pode gostar