hola!!! estoy haciendo un programa en fortran que me resuelva las ecuaciones de lorentz. Para ello, estoy aplicando un modulo de el método de runge-kutta de 4º orden, y también tengo otro modulo para definir las funciones de las ecuaciones. El problema es que me compila aparentemente bien y luego me pone "violación del segmento".
El programa es este:
program atractor
use mcf_tipos
use funcion
use rk4
use graph
implicit none
real(kind=doble)::t,sigma,b,r,h
integer::i,n
real(kind=doble),dimension(3)::y
integer,dimension(3)::s,u,p,type
character(len=132),dimension(3)::datos
character(len=132),dimension(3)::axeslabel
h=1
print*,"INTRODUZCA EL VALOR DESEADO DE r"
read*, r
print*,"LOS VALORES DE SIGMA Y b SON LOS SIGUIENTES"
PRINT*,"*******************************************"
PRINT*,"SIGMA=10 b=8/3"
PRINT*,"*******************************************"
sigma=10
b=8/3
t=0
! condiciones iniciales
y(1)=0
y(2)=0
y(3)=0
print*," INTORDUZCA EL NUMERO DE INTERVALOS QUE DESEA ESTUDIAR"
read*, n
open(unit=1,file="MARIPOSA",status="replace",action="readwrite")
write(unit=1,fmt=*) y(1),y(2),y(3)
call rk4_paso_dp(t,y,f,h,sigma,b,r)
write(unit=1,fmt=*) y(1),y(2),y(3)
do i=0,n
call rk4_paso_dp(t,y,f,h,sigma,b,r)
write(unit=1,fmt=*) y(1),y(2),y(3)
end do
close(unit=1)
datos(1)="MARIPOSA"
type(1)=2
type(2)=2
type(3)=3
s(1)=1
u(1)=2
p(1)=3
axeslabel(1)="x"
axeslabel(2)="y"
axeslabel(3)="z"
call plot(datos,s,u,p,type=type,axeslabel=axeslabel)
end program atractor
Ayudarme por favor es que es muy importante.
Gracias
El programa es este:
program atractor
use mcf_tipos
use funcion
use rk4
use graph
implicit none
real(kind=doble)::t,sigma,b,r,h
integer::i,n
real(kind=doble),dimension(3)::y
integer,dimension(3)::s,u,p,type
character(len=132),dimension(3)::datos
character(len=132),dimension(3)::axeslabel
h=1
print*,"INTRODUZCA EL VALOR DESEADO DE r"
read*, r
print*,"LOS VALORES DE SIGMA Y b SON LOS SIGUIENTES"
PRINT*,"*******************************************"
PRINT*,"SIGMA=10 b=8/3"
PRINT*,"*******************************************"
sigma=10
b=8/3
t=0
! condiciones iniciales
y(1)=0
y(2)=0
y(3)=0
print*," INTORDUZCA EL NUMERO DE INTERVALOS QUE DESEA ESTUDIAR"
read*, n
open(unit=1,file="MARIPOSA",status="replace",action="readwrite")
write(unit=1,fmt=*) y(1),y(2),y(3)
call rk4_paso_dp(t,y,f,h,sigma,b,r)
write(unit=1,fmt=*) y(1),y(2),y(3)
do i=0,n
call rk4_paso_dp(t,y,f,h,sigma,b,r)
write(unit=1,fmt=*) y(1),y(2),y(3)
end do
close(unit=1)
datos(1)="MARIPOSA"
type(1)=2
type(2)=2
type(3)=3
s(1)=1
u(1)=2
p(1)=3
axeslabel(1)="x"
axeslabel(2)="y"
axeslabel(3)="z"
call plot(datos,s,u,p,type=type,axeslabel=axeslabel)
end program atractor
Ayudarme por favor es que es muy importante.
Gracias
Comentario