Anuncio

Colapsar
No hay ningún anuncio todavía.

programa atractor lorentz

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Fortran programa atractor lorentz

    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
    Última edición por hellenetxu; 29/05/2011, 10:25:54.

  • #2
    Re: programa atractor lorentz

    mi problema es que aparentemente compila bien pero de repente me aparece "VIOLACIÓN DEL SEGMENTO" y no sé por qué es

    Comentario


    • #3
      Re: programa atractor lorentz

      No se nada de Fortran, así que no te puedo ayudar mucho con el código, pero las violaciones de segmento ocurren cuando intentas escribir en memoria no reservada, así que revisa que cuando le asignes un valor a una variable, sobre todo si son arrays, ten cuidado de no salirte del array al escribir. Si defines un array:
      y(3). Existen y(0), y(1) y y(2), pero no y(3), a no ser que definas este explícitamente.

      Revisa cada vez que le des valor a una variable de que esta tenga un espacio en memoria.
      [TEX=null]\begin{pmatrix}0 & 0 \\1 & 0\end{pmatrix}[/TEX]
      [TEX=null] \frac{1}{\pi} = \frac{2\sqrt{2}}{9801} \sum^\infty_{k=0} \frac{(4k)!(1103+26390k)}{(k!)^4 396^{4k}}[/TEX]

      Comentario


      • #4
        Re: programa atractor lorentz

        Escrito por xXminombreXx Ver mensaje
        No se nada de Fortran, así que no te puedo ayudar mucho con el código, pero las violaciones de segmento ocurren cuando intentas escribir en memoria no reservada, así que revisa que cuando le asignes un valor a una variable, sobre todo si son arrays, ten cuidado de no salirte del array al escribir. Si defines un array:
        y(3). Existen y(0), y(1) y y(2), pero no y(3), a no ser que definas este explícitamente.

        Revisa cada vez que le des valor a una variable de que esta tenga un espacio en memoria.
        Tiene toda la pinta de ser eso.

        Hellene, que compile no quiere decir que esté bien. Quiere decir que el compilador entiende lo que le dices. Pero no te asegura que entienda lo que tu esperas que entienda. Es un poco como la comunicación entre hombres y mujeres, con la diferencia que no hay manuales en internet.
        La única alternativo a ser Físico era ser etéreo.
        @lwdFisica

        Comentario

        Contenido relacionado

        Colapsar

        Trabajando...
        X