viernes, 25 de marzo de 2011

Método de Newton

Método de Newton para hallar las raíces de una función. El método de Newton-Raphson es un método abierto, en el sentido de que su convergencia global no está garantizada. La única manera de alcanzar la convergencia es seleccionar un valor inicial lo suficientemente cercano a la raíz buscada.


Nótese que el método descrito es de aplicación exclusiva para funciones de una sola variable con forma analítica o implícita cognoscible.


Programa principal:

Program main
use numerico
use funciones
implicit none
real::epsilon,X,Xm
write(*,*)'elige una tolerancia de error'
read(*,*)epsilon
write(*,*)'elige el punto de comienzo'
read(*,*)X
call newton(f1,f2,X,Xm,epsilon)
write(*,*)'el valor de la raiz es:',Xm
end program
Module Numerico:

module numerico
contains 
subroutine newton(f1,f2,Xo,Xm,Tol)


interface
function f1(x)
real,intent(in)::x
real::f1
end function


function f2(x)
real,intent(in)::x
real::f2
end function
end interface


real,intent(inout)::Xo,Tol
real,intent(out)::Xm
real::error,er


do
   Xm=((Xo)-(f1(Xo)/f2(Xo)))
error=((Xo-Xm)/(Xo))
er=(abs(error))
If(er<Tol)exit
Xo=Xm    
end do
end subroutine newton
end module numerico
Module funciones:

module funciones
contains


function f1(x)
real,intent(in)::x
real::f1
f1=((x**3)+(4*(x**2))-10)




end function


function f2(x)
real,intent(in)::x
real::f2
f2=(3*(x**2))+(8*(x))


end function




end module funciones





1 comentario:

  1. mi hermano esto no correee bueno ni gatea que sugieres dice que no encuentra el modulo funciones

    ResponderEliminar