Berge

download Berge

of 2

description

d

Transcript of Berge

  • ! BirgeVieta.f90 !! FUNCTIONS:! BirgeVieta - Entry point of console application.!

    !****************************************************************************!! PROGRAM: BirgeVieta!! PURPOSE: Entry point for the console application.!! Clculo de raices de un polinomiocon el Mtodo de Birge Vieta.!****************************************************************************

    program BirgeVieta

    implicit none integer::m,i real:: x,x0,tol,err,breal(kind=4) a , bb , c , cc; dimension a(100), bb(100), c(100) ,cc(100)character *2 resp

    !Introduccin de datos conocidoswrite(*,*)' Dar el grado del polinomio 'read*,mwrite(*,*)' Dar los valores de los coeficientes de la ecuacin 'print*,' am + a(m-1)+ a(m-2) + ... + a0'read*, a(1:m+1)print*,' 'tol=0.0001err=0.1resp='si'

    Do while (resp=='si'.or.resp=='SI')print*,' 'print*,' Introducir el valor de inicial de x 'read*,x0

    !~~~~~~~~~~~~~~~~~~~!! Mtodo de Horner !!~~~~~~~~~~~~~~~~~~~!

    do while (err>=tol)bb(1)=a(1)cc(1)=bb(1)do i=1,m+1bb(i+1)=(bb(i)*x0)+a(i+1)cc(i+1)= bb(i+1)end dob=bb(m+1)

    c(1)=bb(1)do i=1,m+1c(i+1)=(c(i)*x0)+bb(i+1)end do

    !~~~~~~~~~~~~~~~~~~~!! Mtodo de Newton !!~~~~~~~~~~~~~~~~~~~!

  • x=x0-(b/c(m))err=abs((x-x0)/x)x0=x end do print*,' 'print*,'El valor de x encontrada es=',x0print*,' '!print*,'Co:',errprint*,' 'do i=1,ma(i)=c(i)end doprint*,' 'print*,'Continuar para encontrar la siguienteraiz?'write(*,*)'escribir si o no'print*,' 'read*, resptol=0.0001err=0.1do i=1,ma(i)=cc(i)end dom=m-1end doprint*,' 'pause end program BirgeVieta