Sei sulla pagina 1di 11

UNIVERSIDADE ESTADUAL DE CAMPINAS

FACULDADE DE ENGENHARIA MECNICA

DEPARTAMENTO DE ENGENHARIA TRMICA E FLUIDOS

RELATRIO DA DISCIPLINA DE MTODOS NUMRICOS EM


FENMENOS DE TRANSPORTE

Desenvolvimento de um algoritmo do Mtodo Quase-Newton

Aluno: Max William Fraso Reis

Ra: 164299

Campinas, 2016
SUMRIO

1 INTRODUO ........................................................................................................................ 3
1.1 OBJETIVO ............................................................................................................................ 3
2 REFERENCIAL TERICO ................................................................................................... 4
2.1 Mtodos Quase-Newton ........................................................................................................ 4
3 METODOLOGIA .................................................................................................................... 5
3.1 Teste do programa para o primeiro sistema de equaes lineares ................................... 5
4 CONSIDERAES FINAIS .................................................................................................. 6
REFERENCIAS .......................................................................................................................... 7
ANEXOS ...................................................................................................................................... 8
3

1 INTRODUO

Muitos dos problemas em engenharias conduzem a soluo de sistemas de


equaes no-lineares. A soluo dessas equaes nem sempre uma tarefa fcil e muitas
vezes no possvel encontrar uma soluo exata. Isso fez com que solues aproximadas
fossem necessrias para resolver tais equaes. Burden e Faires (2013) explicam que no
decorrer dos sculos, muitas tcnicas foram desenvolvidas para solucionar os sistemas de
equaes no-lineares. Alm das tcnicas analticas, mtodos numricos tambm foram
desenvolvidos, por exemplo: o mtodo de ponto fixo para sistemas, os mtodos de Quasi-
Newton, o mtodo de Newton para sistemas, entre outros. Atualmente, o mtodo de
Newton para sistemas no-lineares , geralmente, o mtodo mais escolhido para a soluo
de sistemas de equaes no-lineares. Essa tcnica, em geral, quadraticamente
convergente mas em contra partida para este mtodo precisa das derivadas das funes, e
as vezes se torna difcil calcular a derivada destas funes, neste contexto que o mtodo
Quase-Newton entra, pois este usa a derivada aproximada para facilitar a obteno das
solues.

1.1 OBJETIVO

O objetivo deste trabalho desenvolver um algoritmo que resolva um


sistemas de equaes no lineares utilizando o mtodo Quase-Newton mostrando sua
eficincia e praticidade para resoluo de sistemas de equaes no lineares.
4

2 REFERENCIAL TERICO

2.1 Mtodos Quase-Newton

O mtodo Quase-Newton buscam reduzir o nmero de operaes realizadas


por interao, com o intuito a mesma eficcia do mtodo de Newton no sentindo de
manter ao mximo as propriedades de convergncia deste. Uma fraqueza significativa do
mtodo de Newton para soluo de sistemas de equaes no-lineares que, para cada
interao, deve ser calculado uma matriz Jacobiana e resolvido um sistema linear n x n
envolvendo esta matriz. A matriz Jacobiana associada a um sistema de n equaes no
lineares escritas da forma F(x)=0 requer que as n2 derivadas parciais nas n funes
componentes de F sejam determinadas e calculadas em um ponto. Na maioria das
situaes, o clculo exato das derivadas parciais inconveniente, embora o problema
tenha se tornado mais tratvel com ampla utilizao de sistemas simblicos de
computao. Quando o clculo no for prtico, pode-se utilizar aproximaes por
diferenas finitas para as derivadas parciais por exemplo:

Em que h pequeno em valor absoluto e ek um vetor cuja a nica


componente diferente de zero m a k-sima coordenada. Essa aproximao, todavia ainda
requer que pelo menos n2 clculos de funes escalares sejam realizados para aproximar
a Jacobiana e no diminui o total de clculos, em geral O(n3), necessrio para a soluo
do sistema envolvendo essa Jacobiana aproximada. O esforo total de esforo
computacional muito grande. Exceto em valores de n relativamente pequenos e funes
escalares facilmente calculadas.
5

3 METODOLOGIA

O objetivo do algoritmo do mtodo Quase-Newton resolver sistemas no


lineares. Para mostrar a veracidade deste algoritmo foi realizado 1 teste. Neste teste foi
utilizado sistemas de 3 variveis onde o nmero de interaes do teste feitos tem o valor
de 100 (inter = 100), sem falar dos valores iniciais para chute.

3.1 Teste do programa para o primeiro sistema de equaes lineares

Para este teste foi utilizado o sistema no-linear abaixo x (0) 0,5 0,5 0,5T .

x2 y2 z 2 1 0
2x 2 y 2 4z 0
3x 2 4 y z 2 0

O usurio ter que entrar com os valores dos chutes iniciais.

Figura 1 Resultados gerados do programa para o teste 1


Fonte: Autoria prpria, 2016.
6

4 CONSIDERAES FINAIS

De acordo com os dados obtidos pelo algoritmo desenvolvido, foi possvel


provar que este eficiente mostrando coerncia em seus resultados. Os valores gerados
se comparados com as solues reais dos sistemas mostra que o valor numrico contm
um erro relativamente pequeno. Desta forma pode-se considerar que o objetivo deste
trabalho foi atingindo de forma satisfatria.
7

REFERENCIAS

BURDEN, Richard L., FAIRES, J. Douglas, Numerical Analysis, nine edition.


8

ANEXOS

program Mt_Q_Newton

implicit none

real,dimension(3,4):: L

real,dimension(100):: x1,x2,x3

integer :: j, i, k, m, n, g, q, inter,t

real:: w,h,y,Err1,Err2,Err3

print *, 'METODO QUASE NEWTON'

t=0

h = (0.0004)

n=3

m=4

y=0

print*, 'ENTRE COM O NUMERO DE INTERAOES :'

read*, inter

print*, 'ENTRE COM O VALOR INICIAL X1 :'

read*, x1(0)

print*, 'ENTRE COM O VALOR INICIAL X2 :'

read*, x2(0)

print*, 'ENTRE COM O VALOR INICIAL X3 :'

read*, x3(0)

q=0

do t = 0,inter
9

L(1,4) = - f1(x1(q),x2(q),x3(q))

L(2,4) = - f2(x1(q),x2(q),x3(q))

L(3,4) = - f3(x1(q),x2(q),x3(q))

L(1,1)=((f1(x1(q)+h,x1(q),x1(q))-f1(x1(q),x1(q),x1(q)))/h)

L(1,2)=((f1(x2(q),x2(q)+h,x2(q))-f1(x2(q),x2(q),x2(q)))/h)

L(1,3)=((f1(x3(q),x3(q),x3(q)+h)-f1(x3(q),x3(q),x3(q)))/h)

L(2,1)=((f2(x1(q)+h,x1(q),x1(q))-f2(x1(q),x1(q),x1(q)))/h)

L(2,2)=((f2(x2(q),x2(q)+h,x2(q))-f2(x2(q),x2(q),x2(q)))/h)

L(2,3)=((f2(x3(q),x3(q),x3(q)+h)-f2(x3(q),x3(q),x3(q)))/h)

L(3,1)=((f3(x1(q)+h,x1(q),x1(q))-f3(x1(q),x1(t),x1(q)))/h)

L(3,2)=((f3(x2(q),x2(q)+h,x2(q))-f3(x2(q),x2(t),x2(q)))/h)

L(3,3)=((f3(x3(q),x3(q),x3(q)+h)-f3(x3(q),x3(t),x3(q)))/h)

q = q+1

do k = 1,n-1

do i = k+1,n

y =(L(i,k))/(L(k,k))

print*,y,(L(i,k)),(L(k,k))

L(i,k) = L(i,k)-L(k,k)*(L(i,k)/L(k,k))

do j = k+1,n+1

L(i,j) = L(i,j)-L(k,j)*y

end do
10

end do

end do

x3(q)=(L(3,4))/(L(3,3))

x2(q)=(L(2,4)-x3(q)*L(2,3))/(L(2,2))

x1(q)=(L(1,4)-x3(q)*L(1,3)-x2(q)*L(1,2))/(L(1,1))

x3(q)=x3(q)+x3(q-1)

x2(q)=x2(q)+x2(q-1)

x1(q)=x1(q)+x1(q-1)

if ((abs(x1(q)-x1(q-1))/abs(x1(q-1)))<(10E-5)) then

print*,'PROCEDIMENTO EFETUADO COM SUCESSO'

print*, "x1=", x1(q),"x2=",x2(q), "x3=",x3(q)

Err1=(abs(x1(q)-x1(q-1))/abs(x1(q-1)))

Err2=(abs(x2(q)-x2(q-1))/abs(x2(q-1)))

Err3=(abs(x3(q)-x3(q-1))/abs(x3(q-1)))

print*, 'ERRO 1',Err1,'ERRO 2',Err2, 'ERRO 3',Err3

stop

end if

end do

if ((abs(x1(q)-x1(q-1))/abs(x1(q-1)))>(10E-2)) then

print*, ' O METODO FALHOU APOS :', t


11

print*, "x1=", x1(q),"x2=",x2(q), "x3=",x3(q)

end if

contains

function f1(x,y,z)

real:: f1

real, intent (in) :: x,y,z

f1 = (x**2+y**2+z**2 - 1)

end function

function f2(x,y,z)

real:: f2

real, intent (in) :: x,y,z

f2 = (2*x**2 - y**2 - 4*z**3)

end function

function f3(x,y,z)

real:: f3

real, intent (in) ::x,y,z

f3 = (3*x**2 - 4*y + z**2)

end function

end program Mt_Q_Newton

Potrebbero piacerti anche