Solucion Examen Final Gomez Quispe Juan Rafael

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

EXAMEN FINAL DE ANALISIS NUMERICO 2018 II

1.
metodo de euler (con diferencia hacia adelante)
el error local es proporcional a 0(h2)
el error global es proporcional a 0(h)
tiene capacidad de autoinicializacion
es el mas sencillo de los metodos

metodo de verlet
el error local es proporciuonal a 0(h2)
el error global es proporcional a 0(h3)
se necesita tener los valores anteriores para iniciar la iteracion(los terminos Xn-1)

metodo de runge kutta de 4to orden


el error local es proporcional a 0(h5)
el error global es proporcional a 0(h4)
posee menos error que los demas metodos

metodo predictor corrector (runge kutta de 2dop orden)


el error local es proporcional a 0(h3)
el error global es proporcional a 0(h2)
capacidad de autoinicializacion

2.
a) Las ecuaciones de movimiento
F=ma , dv/dt=g , dz/dt=v

b) esta gráfica esta corregida, en la version anterior , habia un error con dos terminos al resolver
las ecuaciones simultaneas
c) la solucion exacta
zmax=(v0*sin60)2/2*g = 95.59985724 m (corregidos)
zmax (obtenido numericamente)= 96.6835251 m (corregidos)
∆zmax=1.08366786

zmax=(v0*sin45)2/2*g = 63.73226331 m (coregidos)


zmax (obtenido numericamente)= 64.6173325 m (corregidos)
∆zmax=0.88506919

d) altura maxima para theta=60 , 96.6835251 m , tiempo = 4.39999866 s (corregidos)


altura maxima para theta=45 , 64.6173325 m , tiempo =3.59999776 s(corregidos)

e) alcance maximo para theta=60, 222.499985 m (corregido)


alcance maximo para theta=45, 258.093658 m (corregido)
f)
para theta=60
energia cinetica= (0.5)*m*(v**2)
Ek=0.5*0.2*(24.9999981**2+23.1976280**2)=116.312985 J (corregido)
el angulo = atan(vy/vx)= 42.85841815°

para thetha=45
energia cinetica= (0.5)*m*(v**2)
Ek=0.5*0.2*(35.3553391**2+21.1357098**2 )= 169.6721902J (corregido)
el angulo = atan(vy/vx)=30.87132617°

pdta: los codigos usados se encuentran en el anexo al final (corregidos un factor de suma de h que
generaba un error de aproximadamente 9 unidades)

3) para resolver usamos el metodo de runge kutta, usamos un bucle para que guarde los valores
con el fin de tener mejor visualizacion, el tamaño de paso fue h=0.2

vemos que tiene naturaleza exponencial

4) generamos puntos dentro de un circulo usando Random_number , que crea numeros aleatorios
entre 0:1 , pero lo modificamos para que sea de 0:12 , entonces obtenemos el disco centrado en
el punto (6,6) , gnerado con n=200000 , radio= 6 cm
como la densidad en constante=1 , area=masa
calculo de la masa total = 113.043602 , valor analitico= 113.0973355 , error=0.0537335
para los centros de masa se usa las siguientes ecuaciones y una masa unitaria=
Xcm=(∑mi*x*)/M = 6.00849724 cm , error=(0.00847724,0.00606346)
Ycm=(∑mi*y*)/M = 6.00606346 cm
que es lo que deberia corresponder ya que analiticamente Xcm,Ycm=(6,6)

para el calculo del momento de inercia


Iz=(0.5)*M*(R2) , asumiendo que gira con respecto a su centro
Iz= 2034.7844836 , error=0.9675554

5)para la pregunta 2 , simplemente le damos valor a la cosntante k=5.0 , el codigo se encuentra


en el anexo
las ecuaciones seran:

F=mA
Fx=mAx
-kVx=mAx
dVx/dt=Ax
dX/dt=Vx

para la componente Z
Fz=mAz
-kVz=mAz
dVz/dt=Az
dZ/dt=Vz
para k=10**-4 , se ve que no hay mucha variacion , asi que se prosiguio a desarrollar para distintos
valores de k
ANEXO 2

program simulacion_mov_parabolico
implicit none
real:: v,vy,vx,t
real:: h,fy,gy,fx,gx,tetha,angulo
real:: t0,y0,y,pi,x0,x
!condiciones iniciales
pi=4.0*atan(1.0)
print *, "ingrese el valor de la velocidad inicial y el angulo de elevacion V,tetha"
read *, v,tetha
open(unit=11,file="datos_mov_parabolico_simulacion_k=060.dat",action="write")
angulo=(tetha*pi)/180.0
h=0.05 !tamaño del paso
vy=v*sin(angulo)
vx=v*cos(angulo)
t0=0.0
x0=0.0
y0=0.0
y=y0
x=x0
t=t0
do while(y >= 0.0)
y=y+h*gy(vy)
vy=vy+h*fy(vy)
x=x+h*gx(vx)
vx=vx+h*fx(vx)

write(11,*) t,x,y,vx,vy

t=t+h
end do

end program

real function fy(vy)


real vy,k,m,g
k=0.0
m=0.2
g=9.80665
fy=-(k/m)*vy-g
end function
real function gy(vy)
real vy
gy=vy
end function
real function fx(vx)
real vx,k,m
k=0.0
m=0.2
fx=-(k/m)*vx
end function
real function gx(vx)
real vx
gx=vx
end function

ANEXO 3
module constantes
implicit none
real(8)::rho=298.0 !densidad en kg/m3
real(8)::v=0.01 ! volumen en m3
real(8)::a=0.25 ! area superficial en m2
real(8)::c=800.0 ! calor especif. en J/Kg K
real(8)::hc=30.0 ! coeficiente de transferencia
real(8)::eps=0.6 ! emisividad
real(8)::sigma=5.67e-8 ! constante de S_B
end module constantes

PROGRAM coll
use constantes
IMPLICIT NONE
REAL(8)::t,dt,tf,te
INTEGER :: m
open(unit=12,file='datos_enfriamiento.dat',action='write')
CALL inicio(t,dt,tf,Te,m)
write(12,fmt=*)'# ','dt=',dt,'m=',m
write(12,fmt=*) '# t Te'

DO WHILE (t<tf)
write(12,40) t,Te
CALL RK2(dt,Te,m)
t=t+dt*m
END DO
40 format (5F10.4)
close(12)

CONTAINS
SUBROUTINE inicio(t,dt,tf,Te,m)
REAL(8) ::Te,t,dt,tf
integer::N,m
t=0.0d0
tf=200.0d0
print*,'N,m?'
read*,N,m
dt=tf/N
Te=573.0d0 !KELVIN
END SUBROUTINE

SUBROUTINE RK2(dt,Te,m)
REAL(8)::dt,Te
REAL(8)::k1,k2
INTEGER::m,j
do j=1,m
k1=dt*f(Te)
k2=dt*f(Te+k1)
Te=Te+(k1+k2)/2
end do
END SUBROUTINE

REAL(8) FUNCTION f(Te)


implicit none
REAL(8)::Te
f=(a/(rho*c*v))*(eps*sigma*(300.0**4-Te**4)+hc*(300.0-Te))
END FUNCTION

END PROGRAM

ANEXO 4
!este programa calcula el valor de pi por el metodo de montecarlo,
!que es creear puntos aleatorios.
program disco_hueco
implicit none

integer count ,seed(12),i,nt,n,nm


real rnd,x,y,pi,masa_total,masa_unitaria,valorXcm,valorYcm
real,dimension(157005):: Xcm,Ycm,Iz

call system_clock(count)
seed = count
call random_seed(put=seed)
open(unit=7,file="numeros_aleatorios.dat",action="write")
open(unit=8,file="valores_disco.dat",action="write")

print *,"numero de puntos totales"


read *, nt

n=0

do i=1,nt
call random_number(rnd)
x=rnd*12.0
call random_number(rnd)
y=rnd*12.0
write(7,*) x,y
if (sqrt((x-6)**2+(y-6)**2)<=6.0) then
n=n+1
write(8,*) x,y
end if

end do
!la masa=area
pi= 4.0*(real(n)/nt*1.0)
masa_total= pi*(6.0**2)
masa_unitaria= masa_total/(n)
print *, pi,masa_total,masa_unitaria

end program disco_hueco

program analisis_datos
implicit none
real,dimension(157005):: Xcm,Ycm,Iz
real:: valorXcm,valorYcm
integer i
open(unit=8,file="valores_disco.dat",action="read")
do i=1,157005
read(8,*) Xcm(i),Ycm(i)
end do
valorXcm=sum(Xcm)
valorYcm=sum(Ycm)
print *, (7.20000011e-4*valorXcm)/113.043602 ,(7.20000011e-4*valorYcm)/
113.043602

end program
ANEXO 5
program simulacion_mov_parabolico
implicit none
real:: v,vy,vx,t
real:: h,fy,gy,fx,gx,tetha,angulo
real:: t0,y0,y,pi,x0,x
!condiciones iniciales
pi=4.0*atan(1.0)
print *, "ingrese el valor de la velocidad inicial y el angulo de elevacion V,tetha"
read *, v,tetha
open(unit=11,file="datos_mov_parabolico_simulacion_k=10.dat",action="write")
angulo=(tetha*pi)/180.0
h=0.05 !tamaño del paso
vy=v*sin(angulo)
vx=v*cos(angulo)
t0=0.0
x0=0.0
y0=0.0
y=y0
x=x0
t=t0
do while(y >= 0.0)
y=y+h*gy(vy)
vy=vy+h*fy(vy)
x=x+h*gx(vx)
vx=vx+h*fx(vx)

write(11,*) t,x,y,vx,vy
vy=vy+h
vx=vx+h
t=t+h
end do

end program

real function fy(vy)


real vy,k,m,g
k=10.0
m=0.2
g=9.80665
fy=-(k/m)*vy-g
end function
real function gy(vy)
real vy
gy=vy
end function
real function fx(vx)
real vx,k,m
k=10.0
m=0.2
fx=-(k/m)*vx
end function
real function gx(vx)
real vx
gx=vx
end function

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy