#
# R
# Sistemas Caóticos
#   Lorentz
#   Rössler
#   Burke-Shaw
#   Chua
#   Chen
#   Arneodo
#
# 2026 março dom, 8 — qua, 11
# by
# j
# 

x <- c()
y <- c()
z <- c()
t <- c()

x3D <- c()
y3D <- c()

teta <- 7

  j <- c()
  k <- c()
  l <- c()

  xx3D <- c()
  yy3D <- c()

  g <- 0.2
  phi <- 30

sys3D <- function(h) {

  j <- c(j,+g); k <- c(k,+g); l <- c(l,-g/2)
  j <- c(j,-g); k <- c(k,+g); l <- c(l,-g/2)
  j <- c(j,-g); k <- c(k,-g); l <- c(l,-g/2)
  j <- c(j,+g); k <- c(k,-g); l <- c(l,-g/2)

  j <- c(j,+g); k <- c(k,+g); l <- c(l,+g/2)
  j <- c(j,-g); k <- c(k,+g); l <- c(l,+g/2)
  j <- c(j,-g); k <- c(k,-g); l <- c(l,+g/2)
  j <- c(j,+g); k <- c(k,-g); l <- c(l,+g/2)

  for (i in 1:8) {
     xx3D <- c(xx3D,j[i]-l[i]*cos(phi*pi/180))
     yy3D <- c(yy3D,k[i]-l[i]*sin(phi*pi/180))
  }

  # lines(xx3D,yy3D)

  segments(x0=xx3D[1]+0.5, y0=yy3D[1], x1=xx3D[2]+0.5, y1=yy3D[2], col="red", lwd=2)
  segments(x0=xx3D[2]+0.5, y0=yy3D[2], x1=xx3D[3]+0.5, y1=yy3D[3], col="red", lwd=2)
  segments(x0=xx3D[3]+0.5, y0=yy3D[3], x1=xx3D[4]+0.5, y1=yy3D[4], col="red", lwd=2)
  segments(x0=xx3D[4]+0.5, y0=yy3D[4], x1=xx3D[1]+0.5, y1=yy3D[1], col="red", lwd=2)

  segments(x0=xx3D[5]+0.5, y0=yy3D[5], x1=xx3D[6]+0.5, y1=yy3D[6], col="red", lwd=2)
  segments(x0=xx3D[6]+0.5, y0=yy3D[6], x1=xx3D[7]+0.5, y1=yy3D[7], col="red", lwd=2)
  segments(x0=xx3D[7]+0.5, y0=yy3D[7], x1=xx3D[8]+0.5, y1=yy3D[8], col="red", lwd=2)
  segments(x0=xx3D[8]+0.5, y0=yy3D[8], x1=xx3D[5]+0.5, y1=yy3D[5], col="red", lwd=2)

  segments(x0=xx3D[1]+0.5, y0=yy3D[1], x1=xx3D[5]+0.5, y1=yy3D[5], col="red", lwd=2)
  segments(x0=xx3D[2]+0.5, y0=yy3D[2], x1=xx3D[6]+0.5, y1=yy3D[6], col="red", lwd=2)
  segments(x0=xx3D[3]+0.5, y0=yy3D[3], x1=xx3D[7]+0.5, y1=yy3D[7], col="red", lwd=2)
  segments(x0=xx3D[4]+0.5, y0=yy3D[4], x1=xx3D[8]+0.5, y1=yy3D[8], col="red", lwd=2)

}

atrator <- function(q,p,w) {

   switch(q,
    
   "1" = {

           #
           # Lorentz
           #

           tit = "Atrator de Lorentz"

           x0 <- 0.1 # 8.4852813742
           y0 <- 0.1 # 8.4852813742
           z0 <- 0.1 # 27

           sigma <- 10;
           ro <- 28;
           beta <- 8/3;

           maxT <- 30;

           dt <- 0.0025

           startT <- 0.000

        },

    "2" = {

           #
           # Rössler
           #

           tit = "Atrator de Rossler"

           x0 <- 5;
           y0 <- 1;
           z0 <- 3;

           a <- 0.2;
           b <- 0.2;
           c <- 5.7;

           maxT <- 100;

           dt <- 0.0075

           startT <- 0.000

          },

      "3" = {

             # 
             # Burke-Shaw
             # 

             tit = "Atrator de Burke-Shaw"

             x0 <- 0.1
             y0 <- 0.1
             z0 <- 0.1

             s <- 10;
             V <- 4.272;
             b <- 0.5;

             maxT <- 150;
             dt <- 0.0075

             startT <- 0.000
          
            },

     "4" = {

            #
            # Chua
            #
            
            tit = "Circuito de Chua"

            x0 <- 0.1;
            y0 <- 0.1;
            z0 <- 0.1;

            alpha <- 3.8499 ; # 3 
            beta <- 4.4328; # 14
            m0 = -1.7724
            m1 = -0.7192

            maxT <- 150;

            dt <- 0.0075

            startT <- 0.000

           },

    "5" = {

            #
            # Chen
            #
            
            tit = "Sistema de Chen"

            x0 <- 1;
            y0 <- 1;
            z0 <- 1;

            a <- 35
            b <- 3
            c <- 28

            maxT <- 50;

            dt <- 0.0025

            startT <- 15.000

           },

     "6" = {

            #
            # Arneodo
            #

            tit = 'Atrator de Arneodo'

            x0 <- 0.2 # 1
            y0 <- 0.1 # 1
            z0 <- 0

            a <- 1.833 # 5.5 # 1.833
            b <- 2.333 # 3.5 # 2.833
            c <- 8.333 # 1.0 ×# 8.33

            maxT <- 40

            dt <- 0.0025

            startT <- 0.000
         
           }
         
    )

    xk <- x0
    yk <- y0
    zk <- z0

    tm <- 0.00

    while (tm <= maxT ) {

       switch(q,

           "1" = {

                  drx <- sigma*(yk-xk);
                  dry <- xk*(ro-zk)-yk;
                  drz <- xk*yk - beta*zk

               },
              
           "2" = {
    
                  drx <- -yk -zk;
                  dry <- xk + a*yk;
                  drz <- b + zk*(xk - c)
                   
                 },
              
           "3" = {

                  drx <- -s*(xk + yk)
                  dry <- -yk - s*xk*zk
                  drz <- s*xk*yk + V
               
                 },

          "4" = {

                  fx <- m1*xk + (1/2)*(m0 - m1)*( abs(xk+1) - abs(xk-1) );

                  drx <- alpha*(yk - xk - fx);
                  dry <- xk - yk + zk;
                  drz <- -beta*yk

                },
              
          "5" = {

                 drx <- a*(yk - xk)
                 dry <- (c-a)*xk - xk*zk + c*yk
                 drz <- xk*yk - b*zk

                },

          "6" = {

                 drx <- yk;
                 dry <- zk;
                 drz <- a*xk - b*yk - zk - c*xk^3

                }
              
          )
   
       xk <- xk + drx*dt
       yk <- yk + dry*dt
       zk <- zk + drz*dt
       tm <- tm + dt

       x3DD <- xk - zk*cos(teta*pi/180)
       y3DD <- yk - zk*sin(teta*pi/180)

       if ( tm > startT ) {

          x <- c(x,xk)
          y <- c(y,yk)
          z <- c(z,zk)
          t <- c(t,tm)

          x3D <- c(x3D,x3DD)
          y3D <- c(y3D,y3DD)
       
       }
    
     }

     r = switch(p,x,x,y,y,z,z)
     s = switch(p,y,z,x,z,x,y)

     if ( w == 0 ) {

         XR <- r
         YR <- s
         
     }
     else {

        XR <- x3D
        YR <- y3D
         
     }
    
     plot(XR,YR, main = tit, pch=24, col="blue", cex = 0.25)
     sys3D(0)
    
}

atrator("1",2,0)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: