Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE FEDERAL DO PARÁ ITEC FACULDADE DE ENGENHARIA QUÍMICA SIL FRANCILEY DOS SANTOS QUARESMA MÉTODOS NUMÉRICOS EM ENGENHARIA QUÍMICA EXERCÍCIO DE MÉTODOS NUMÉRICOS EM ENGENHARIA QUÍMICA Aluno: Rômulo Castro da Silva Matrícula:201407540065 Belém- 2018 Resolução da função f(x) = f3- 9f + 9 pelo método de Newton-Raphson através do método computacional Fortran. Inicialmete foi plotado um gráfico utilizando o programa computacional Wolfram Alpha, o gráfico apresentou três raízes, como se segue abaixo: Em seguida se utilizou uma rotina na linguagem fortran para se determinar as raízes, que através da análise gráfica se pode determinar que estariam entre os intervalos (-4,0; -3,0), (1,0; 1,5) e (2,0; 2,5). A limguagem de programção están inserida abaixo: PROGRAM newton IMPLICIT REAL*8(A-H,O-Z) external rtnewton x1 = -4.0d0 x2 = -3.0d0 tol = 1.d-4 JMAX=10 call rtnewton(x1,x2,tol,JMAX,raiz) write (*,*)' raiz = ', raiz stop end ! Rotina para calcular a raiz de uma funçao pelo ! metodo de Newton -Rapson SUBROUTINE rtnewton(x1,x2,tol,JMAX,raiz) IMPLICIT REAL*8(A-H,O-Z) external Func raiz=0.5d0*(x1+x2) do 11 j=1,JMAX ! ROTINA PARA CALCULO DA DERIVADA DE F(Xi) draiz = raiz*1.d-5 f= Func(raiz) fmais = Func(raiz+draiz) fmenos = Func(raiz-draiz) df = 0.5d0*(fmais - fmenos)/draiz dx=f/df ! ROTINA PARA CALCULO DE Xi+1 raiz=raiz-dx erro=FUNC(raiz) if(dabs(erro).lt.tol) goto 20 11 continue 20 return END ! Funçao transcendental para o calculo function Func(f) IMPLICIT REAL*8(A-H,O-Z) Func = f**3-9*f+9 return end Raizes: a) entre -4 e -3: -3.41147753614254 b)Entre 1 e 1,5: 1.18478280627602 c)Entre 2 e 2,5: 2.22668199380533 Resolução da função f(x) = x log(x) – 1 pelo método de Newton- Raphson através do método computacional Fortran. Gráfico da função, que dará uma raíz infinita na parte imaginária: PROGRAM newton IMPLICIT REAL*8(A-H,O-Z) external rtnewton x1 = 0.0d0 x2 = 2.0d0 tol = 1.d-4 JMAX=10 call rtnewton(x1,x2,tol,JMAX,raiz) write (*,*)' raiz = ', raiz stop end ! Rotina para calcular a raiz de uma funçao pelo ! metodo de Newton -Rapson SUBROUTINE rtnewton(x1,x2,tol,JMAX,raiz) IMPLICIT REAL*8(A-H,O-Z) external Func raiz=0.5d0*(x1+x2) do 11 j=1,JMAX ! ROTINA PARA CALCULO DA DERIVADA DE F(Xi) draiz = raiz*1.d-5 f= Func(raiz) fmais = Func(raiz+draiz) fmenos = Func(raiz-draiz) df = 0.5d0*(fmais - fmenos)/draiz dx=f/df ! ROTINA PARA CALCULO DE Xi+1 raiz=raiz-dx erro=FUNC(raiz) if(dabs(erro).lt.tol) goto 20 11 continue 20 return END ! Funçao transcendental para o calculo function Func(f) IMPLICIT REAL*8(A-H,O-Z) Func = x*log(x)-1 return end Se determinando um intervalo (0.0; 2.0), se percebe como resultado uma raiz infinita em todo o intervalo positivo.
Compartilhar