



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Neste documento, encontram-se três programas em fortran que implementam os métodos da falsa posição, da secante e de newton-raphson para solução de equações numéricas. Cada programa contém as definições da função a ser minimizada ou raiz a ser encontrada, além da implementação do algoritmo de busca da raiz. Composto por três partes, uma para cada método, e inclui saídas de exemplos de execução.
Tipologia: Exercícios
1 / 5
Esta página não é visível na pré-visualização
Não perca as partes importantes!




1-) método da falsa posição
program falsa_posicao
implicit none double precision::a,b,erro,Fa,Fb,xanterior,tolerancia,fx,x integer:: contador,contador
erro=0.
!chutes : a= b=
!apenas para entrar nos calculos: xanterior=0. tolerancia=1. contador=- contador2=
do while (tolerancia >= erro)
contador=contador+ contador2=contador+
write(,)"ITERACAO", CONTADOR
write(,100)"a(",contador,")=",a Fa=funcao(a) !Fa=2a3-3a-4 !calculo de f(a) write(,100)"Fa(",contador,")=", Fa
write(,100)"b(",contador,")=",b Fb=funcao(b) !Fb=2b3-3b-4 !calculo de f(b) write(,100)"Fb(",contador, ")=", Fb
!calculo de x e Fx: x=((fba)-(fab))/(fb-fa) write(,100)"x(",contador2,")=",x Fx=funcao(x) !Fx=2x3-3x-4 !calculo de f(x) write(,100)"Fx(",contador2,")=",Fx
if ((Fa*Fx)< 0.0) then a=a b=x end if
if ((Fb*Fx)< 0.0) then a=x b=b end if
tolerancia=abs(x-xanterior) write(*,200)"Tolerancia=",tolerancia
xanterior=x write(,)
end do
write(,300)"Resultado final: RAIZ =",x write(,*)"tolerancia atingida:",tolerancia
100 Format (A3,I2,A2,F15.12) 200 Format (A11,F15.12) 300 Format (A24,F15.12)
contains
REAL(8) FUNCTION funcao(y) implicit none real (8), intent (IN):: y funcao=2y3-3y- 4** end function funcao
end program
2-) método da secante
program calculo implicit none
double precision:: Fx, Xa,Xb,Xatual,fa,fb,tolerancia,erro integer:: contador
!CHUTES INICIAIS: Xa=1. Xb=1.
!CONDIÇÃO DE PARADA: erro=0.
!DADOS INTERNOS NECESSARIOS: tolerancia=1. contador=
3-) método de Newton Raphson
program calculo implicit none
double precision:: Fx, X1,Xb,Xant,Xatual,Flinhax,tolerancia,erro integer:: contador
!Dados de entrada: X1=0. erro=0.
xant=x
!DADOS INTERNOS NECESSARIOS PARA O PROGRAMA: tolerancia=1. contador=
WRITE(,)"METODO DE NEWTON RAPHSON" WRITE(,) " funcao=EXP(-Y)-Y" WRITE(,)" " write(,)"x( 1)", x
do while (tolerancia >= erro) contador=contador+
FX=funcao(Xant) FLINHAX=funcaoINTEGRAL(Xant)
Xatual=Xant-(FX/FLINHAX)
write(*,100)"X(", contador,")=", Xatual
tolerancia=abs(xatual-xant)
write(,)"tolerancia", tolerancia write(,) " "
xant=xatual
end do
write(,) write(,300)"Resultado final: RAIZ =",xatual write(,*) "tolerancia atingida:", tolerancia
100 Format (A3,I2,A2,F15.12) 300 Format (A24,F15.12)
Contains
REAL(8) FUNCTION funcao(y) implicit none real (8), intent (IN):: y funcao=EXP(-Y)-Y end function funcao
REAL(8) FUNCTION funcaoINTEGRAL(y) implicit none real (8), intent (IN):: y funcaoINTEGRAL=-EXP(-Y)-1. end function funcaoINTEGRAL
end program