TD Racines
TD : TD Racines. Recherche parmi 300 000+ dissertationsPar Dilan Moreira • 28 Novembre 2017 • TD • 295 Mots (2 Pages) • 481 Vues
Ecrivons un code permettant de calculer les racines d'un polynôme à l'aide de différente méthode :
MODULE mod_racines
IMPLICIT NONE
CONTAINS
! Fonctions phi1 et phi2 pour le point fixe
REAL FUNCTION phi1(x)
REAL, INTENT(IN) :: x
phi1 = 0.25*EXP(x)
END FUNCTION phi1
REAL FUNCTION phi2(x)
REAL, INTENT(IN) :: x
phi2 = LOG(4*x)
END FUNCTION phi2
! Fonctions relaxees
REAL FUNCTION psi1(x, theta)
REAL, INTENT(IN) :: x, theta
psi1 = (1−theta)*x+theta*phi1(x)
END FUNCTION psi1
REAL FUNCTION psi2(x, theta)
REAL, INTENT(IN) :: x, theta
psi2 = (1−theta)*x+theta*phi2(x)
END FUNCTION psi2
! fonctions f et derivees
REAL FUNCTION f(x)
REAL, INTENT(IN) :: x
f = EXP(x)−4.*x
END FUNCTION f
REAL FUNCTION dfdx(x)
REAL, INTENT(IN) :: x
dfdx = EXP(x)−4.
END FUNCTION dfdx
REAL FUNCTION d2fdx2(x)
REAL, INTENT(IN) :: x
d2fdx2 = EXP(x)
END FUNCTION d2fdx2
! Fonction phiN pour Newton
REAL FUNCTION phiN(x)
REAL, INTENT(IN) :: x
phiN = x − f(x)/dfdx(x)
END FUNCTION phiN
! Fonction phiJ pour Jacobi
REAL FUNCTION phiJ(x)
REAL, INTENT(IN) :: x
phiJ = phiN(x) − 0.5*d2fdx2(x)*f(x)**2/dfdx(x)**3
END FUNCTION phiJ
END MODULE mod_racines
! Programme de recherche de racine par point fixe, Newton et Jacobi
PROGRAM racines
USE mod_racines
IMPLICIT NONE
REAL :: x, x0, ancx
REAL :: theta, dtheta=0.1
REAL, PARAMETER :: eps=1.E−12
INTEGER :: iter
INTEGER, PARAMETER :: itermax=1000
! Entree de la valeur initiale
...