Какво е R?

R е език за статистическо програмиране, който е много популярен в научната общност за визуализиране и анализиране на данни. Всъщност има над 10 000 добавки и пакети. Част от неговата популярност е лесното, с което човек може да разбере основите на езика и да създаде някои невероятни сюжети. Най-добрата част? безплатно е!

За да научите повече за R, можете да посетите уебсайта на R Foundations: r-project.org

Папратовият фрактал на Барнсли

Папратът на Барнсли е кръстен на математика, който пръв го е описал Майкъл Барнсли. Темогат да бъдат формирани чрез повторна функционална система (правете една и съща функция отново и отново).

За да направите папрат, трябва да повторите следните 2 повтарящи се стъпки отново и отново:

  1. Изберете на случаен принцип афинна трансформация от набор от трансформации.
  2. Вземете трансформацията и я приложете към текущата точка, за да намерите следващата точка.

R кодът в тази статия по същество следва тези две стъпки за генериране на фрактал папрат на Barnsley, който виждате по-долу. Най-доброто нещо, което можете да направите, когато изследвате нов език, е да си поиграете с програмата на някой друг, за да я усетите. Така че, изтеглете R, копирайте този код и играйте!

library(grid)
A=vector(“list”,4)
A[[1]]=matrix(c(0,0,0,0.18),nrow=2)
A[[2]]=matrix(c(0.85,-0.04,0.04,0.85),nrow=2)
A[[3]]=matrix(c(0.2,0.23,-0.26,0.22),nrow=2)
A[[4]]=matrix(c(-0.15,0.36,0.28,0.24),nrow=2)
b=vector(“list”,4)
b[[1]]=matrix(c(0,0))
b[[2]]=matrix(c(0,1.6))
b[[3]]=matrix(c(0,1.6))
b[[4]]=matrix(c(0,0.54))
n <- 500000
x <- numeric(n)
y <- numeric(n)
x[1] <- y[1] <- 0
for (i in 1:(n-1)) {
trans <- sample(1:4, prob=c(.02, .9, .09, .08), size=1)
xy <- A[[trans]]%*%c(x[i],y[i]) + b[[trans]]
x[i+1] <- xy[1]
y[i+1] <- xy[2]
}
plot(y,x,col=”pink”,cex=0.1)