Está en la página 1de 5

Universidad Católica de Salta Cátedra: Análisis Numérico

Facultad de Ingeniería e Informática

Alumno: Facundo, Figueroa Paz Sosa DNI: 39537093


Ingeniería Civil

Trabajo Practico Nº 2
Método de bisección
Actividades a realizar

a) Realizar el programa en FORTRAN del siguiente algoritmo:

1.-Datos : f,a,b,e,imax.

2.-ya=f(a);yb=f(b)

3.-si es signo (ya)=signo(yb), detener el proceso

4.- xpant b (xpanterior)

5.-para i=1,2,....imax iterar hasta el paso 11

6.-xp (a+b)/2

7.- xp xp-xpant; yp f(xp)

8.-salida opcional de resultados parciales ;i,xp,yp, xp

9.- si es signo (yp)=signo(ya) entonces hacer a xp;

de lo contrario hacer b xp

10.-xpant xp

11.-si es xp <=e* xp ó es yp =0 producir salida

de resultados y detener el algoritmo.

12.-producir salida indicando que no se logró la precisión

deseada en imax iteraciones.

Para la Función

Y = x3 – 2*x2 - 2 = 0

Raíz = 2.3593
Universidad Católica de Salta Cátedra: Análisis Numérico
Facultad de Ingeniería e Informática

Alumno: Facundo, Figueroa Paz Sosa DNI: 39537093


Ingeniería Civil

CODIGO FUENTE

program biseccion
real e,xa,xb,ya,yb,yp,xpant,dxp,signo
integer i, band
band=0
e=0.000001
i=0
xa=0
xb=0
print*, "Metodo de biseccion"
print*, "______________________"
print*, " "
write(*,"(a)",advance="no")"ingrese valor de cota inferior: "
read*, xa
write(*,"(a)",advance="no")"ingrese valor de cota superior: "
read*, xb
ya=formula(xa)
yb=formula(xb)
signo=ya*yb
if(signo<0)then
xpant=xb
do i=1,20
xp=(xa*yb-xb*ya)/(yb-ya)
dxp=xp-xpant
yp=formula(xp)
print*, "i",i
print*, "xp",xp
print*, "yp",yp
print*, "dxp",dxp
signo=yp*ya
if(signo>0)then
xa=xp
ya=formula(xa)
else
xb=xp
yb=formula(xb)
endif
Universidad Católica de Salta Cátedra: Análisis Numérico
Facultad de Ingeniería e Informática

Alumno: Facundo, Figueroa Paz Sosa DNI: 39537093


Ingeniería Civil

xpant=xp
if(abs(dxp)<e*abs(xp).or.yp==0.00)then
print*, " "
print*, " "
print*, "la aproximacion es",xpant
band=1
exit
endif
enddo
endif
if(band==0)then
print*, "no se logro la precision deseada"
else
print*, " "
print*, "los resultados son"
print*, " i xp yp dxp "
print*, " "
print*, i,xp,yp,dxp
endif
endprogram biseccion
real function formula(x)
real x
formula=(x*x*x)-2*(x*x)-2
end function
Metodo de biseccion

______________________
SALIDA
ingrese valor de cota inferior: 2
ingrese valor de cota superior: 3
i 1
xp 2.22222
yp -0.902606
dxp -0.777778
i 2
xp 2.31106
yp -0.338649
dxp 8.883476E-02
i 3
xp 2.34285
Universidad Católica de Salta Cátedra: Análisis Numérico
Facultad de Ingeniería e Informática

Alumno: Facundo, Figueroa Paz Sosa DNI: 39537093


Ingeniería Civil

yp -0.118122
dxp 3.179193E-02
i 4
xp 2.35375
yp -4.014667E-02
dxp 1.090503E-02
i 5
xp 2.35744
yp -1.352407E-02
dxp 3.685236E-03
i 6
xp 2.35868
yp -4.542004E-03
dxp 1.239061E-03
i 7
xp 2.35909
yp -1.524326E-03
dxp 4.158020E-04
i 8
xp 2.35923
yp -5.116958E-04
dxp 1.394749E-04
i 9
xp 2.35928
yp -1.723772E-04
dxp 4.673004E-05
i 10
xp 2.35930
yp -5.811183E-05
dxp 1.573563E-05
i 11
xp 2.35930
yp -2.002282E-05
dxp 5.245209E-06
i 12
xp 2.35930
yp -6.172207E-06
dxp 1.907349E-06

la aproximacion es 2.35930
Universidad Católica de Salta Cátedra: Análisis Numérico
Facultad de Ingeniería e Informática

Alumno: Facundo, Figueroa Paz Sosa DNI: 39537093


Ingeniería Civil

los resultados son


i xp yp dxp

12 2.35930 -6.172207E-06 1.907349E-06

GRÁFICO

30
x*x*x-2*x*x-2

25

20

15

10

-5
1 1.5 2 2.5 3 3.5 4

También podría gustarte