Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Métodos Numéricos para Solução de Equações: Falsa Posição, Secante e Newton-Raphson, Exercícios de Métodos Numéricos em Engenharia

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

2020

Compartilhado em 19/12/2020

paula-arruda-9
paula-arruda-9 🇧🇷

1 documento

1 / 5

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
PROGRAMAS UTILIZADOS:
OBS.: O QUE ESTA EM NEGRITO É NECESSARIO ALTERAR DE ACORDO COM A FUNÇÃO E AS
CONDIÇOES APLICADAS
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,contador2
erro=0.001
!chutes :
a=1
b=2
!apenas para entrar nos calculos:
xanterior=0.0
tolerancia=1.0
contador=-1
contador2=0
do while (tolerancia >= erro)
contador=contador+1
contador2=contador+1
write(*,*)"ITERACAO", CONTADOR
write(*,100)"a(",contador,")=",a
Fa=funcao(a) !Fa=2*a**3-3*a-4 !calculo de f(a)
write(*,100)"Fa(",contador,")=", Fa
write(*,100)"b(",contador,")=",b
Fb=funcao(b) !Fb=2*b**3-3*b-4 !calculo de f(b)
write(*,100)"Fb(",contador, ")=", Fb
!calculo de x e Fx:
x=((fb*a)-(fa*b))/(fb-fa)
write(*,100)"x(",contador2,")=",x
Fx=funcao(x) !Fx=2*x**3-3*x-4 !calculo de f(x)
write(*,100)"Fx(",contador2,")=",Fx
if ((Fa*Fx)< 0.0) then
a=a
b=x
end if
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Métodos Numéricos para Solução de Equações: Falsa Posição, Secante e Newton-Raphson e outras Exercícios em PDF para Métodos Numéricos em Engenharia, somente na Docsity!

PROGRAMAS UTILIZADOS:

OBS.: O QUE ESTA EM NEGRITO É NECESSARIO ALTERAR DE ACORDO COM A FUNÇÃO E AS

CONDIÇOES APLICADAS

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