Sunday, November 05, 2023

x̄ - > Line replacement fractals and shape replacement fractals.

 Line-replacement fractals, also known as iterated function system (IFS) fractals, can be created by repeatedly applying iteration rules on curves. One famous example is the Koch snowflake. Here's an R programming example for computing properties of the Koch snowflake fractal:


```R

# Load necessary libraries

library(ggplot2)


# Define the initial segment of the Koch snowflake

initial_segment <- data.frame(x = c(0, 1), y = c(0, 0))


# Function to generate the next level of the Koch snowflake

generate_koch_segment <- function(segment) {

  x <- segment$x

  y <- segment$y

  new_x <- c(x[1], (2*x[1] + x[2]) / 3, (x[1] + x[2]) / 2, (x[1] + 2*x[2]) / 3, x[2])

  new_y <- c(y[1], (2*y[1] + y[2]) / 3, (y[1] + y[2]) / 2, (y[1] + 2*y[2]) / 3, y[2])

  return(data.frame(x = new_x, y = new_y))

}


# Generate the Koch snowflake by applying the rules iteratively

koch_snowflake <- initial_segment

for (i in 1:5) {  # Increase the number of iterations for a more detailed snowflake

  koch_snowflake <- lapply(1:(length(koch_snowflake) - 1), 

                            function(j) generate_koch_segment(koch_snowflake[[j]]))

  koch_snowflake <- do.call(rbind, koch_snowflake)

}


# Plot the Koch snowflake

ggplot(koch_snowflake, aes(x, y)) +

  geom_path() +

  labs(title = "Koch Snowflake Fractal", x = "", y = "") +

  theme_minimal()

```


This code defines the initial segment of the Koch snowflake and a function to generate the next level of segments based on the Koch fractal's rules. It then iteratively applies these rules to create a detailed snowflake.


You can adjust the number of iterations and the parameters of the fractal to create more complex or detailed fractals. The code also uses the `ggplot2` library to create a visualization of the fractal.


Shape-replacement fractals, also known as L-systems (Lindenmayer systems), are created by repeatedly applying iteration rules on shapes or strings. Let's explore an example of generating a fractal tree using R and compute some properties such as the number of segments and the total length of the tree:


```R

# Load necessary libraries

library(ggplot2)


# Define the initial axiom and rules for the L-system

axiom <- "X"

rules <- list(

  "X" = "F+[[X]-X]-F[-FX]+X",

  "F" = "FF"

)


# Function to generate the L-system string

generate_l_system <- function(axiom, rules, iterations) {

  l_system <- axiom

  for (i in 1:iterations) {

    l_system <- gsub(pattern = names(rules), replacement = rules, x = l_system)

  }

  return(l_system)

}


# Function to compute the properties of the L-system

compute_l_system_properties <- function(l_system, length_per_iteration) {

  num_segments <- sum(l_system == "F")

  total_length <- num_segments * length_per_iteration

  return(list(

    "Number of Segments" = num_segments,

    "Total Length" = total_length

  ))

}


# Generate the L-system string and compute properties

iterations <- 4  # Adjust the number of iterations for a more detailed tree

l_system_string <- generate_l_system(axiom, rules, iterations)

properties <- compute_l_system_properties(l_system_string, length_per_iteration = 10)  # Length per iteration


# Print the properties

for (prop in names(properties)) {

  cat(prop, ": ", properties[[prop]], "\n")

}


# Create a visualization of the L-system (fractal tree)

x <- 0

y <- 0

angle <- 90

stack <- data.frame(x = numeric(0), y = numeric(0))


segments <- data.frame(x = numeric(0), y = numeric(0))

for (symbol in strsplit(l_system_string, NULL)[[1]]) {

  if (symbol == "F") {

    x <- x + cos(angle * pi / 180)

    y <- y + sin(angle * pi / 180)

    segments <- rbind(segments, data.frame(x = x, y = y))

  } else if (symbol == "+") {

    angle <- angle + 25

  } else if (symbol == "-") {

    angle <- angle - 25

  } else if (symbol == "[") {

    stack <- rbind(stack, data.frame(x = x, y = y))

  } else if (symbol == "]") {

    n <- nrow(stack)

    if (n > 0) {

      x <- stack[n, "x"]

      y <- stack[n, "y"]

      stack <- stack[-n, ]

    }

  }

}


ggplot(segments, aes(x, y)) +

  geom_path() +

  labs(title = "Fractal Tree (L-System)") +

  theme_minimal()

```


In this code, we define the axiom and rules for an L-system representing a fractal tree. The `generate_l_system` function iteratively applies the rules to generate the L-system string. Then, we compute the number of segments and the total length of the tree using the `compute_l_system_properties` function. Finally, we create a visualization of the fractal tree using ggplot2. You can adjust the number of iterations for a more detailed tree and other parameters to create different shapes.


No comments:

Meet the Authors
Zacharia Maganga’s blog features multiple contributors with clear activity status.
Active ✔
πŸ§‘‍πŸ’»
Zacharia Maganga
Lead Author
Active ✔
πŸ‘©‍πŸ’»
Linda Bahati
Co‑Author
Active ✔
πŸ‘¨‍πŸ’»
Jefferson Mwangolo
Co‑Author
Inactive ✖
πŸ‘©‍πŸŽ“
Florence Wavinya
Guest Author
Inactive ✖
πŸ‘©‍πŸŽ“
Esther Njeri
Guest Author
Inactive ✖
πŸ‘©‍πŸŽ“
Clemence Mwangolo
Guest Author

x̄ - > Bloomberg BS Model - King James Rodriguez Brazil 2014

Bloomberg BS Model - King James Rodriguez Brazil 2014 πŸ”Š Read ⏸ Pause ▶ Resume ⏹ Stop ⚽ The Silent Kin...

Labels

Data (3) Infographics (3) Mathematics (3) Sociology (3) Algebraic structure (2) Environment (2) Machine Learning (2) Sociology of Religion and Sexuality (2) kuku (2) #Mbele na Biz (1) #StopTheSpread (1) #stillamother #wantedchoosenplanned #bereavedmothersday #mothersday (1) #university#ai#mathematics#innovation#education#education #research#elearning #edtech (1) ( Migai Winter 2011) (1) 8-4-4 (1) AI Bubble (1) Accrual Accounting (1) Agriculture (1) Algebra (1) Algorithms (1) Amusement of mathematics (1) Analysis GDP VS employment growth (1) Analysis report (1) Animal Health (1) Applied AI Lab (1) Arithmetic operations (1) Black-Scholes (1) Bleu Ranger FC (1) Blockchain (1) CATS (1) CBC (1) Capital markets (1) Cash Accounting (1) Cauchy integral theorem (1) Coding theory. (1) Computer Science (1) Computer vision (1) Creative Commons (1) Cryptocurrency (1) Cryptography (1) Currencies (1) DISC (1) Data Analysis (1) Data Science (1) Decision-Making (1) Differential Equations (1) Economic Indicators (1) Economics (1) Education (1) Experimental design and sampling (1) Financial Data (1) Financial markets (1) Finite fields (1) Fractals (1) Free MCBoot (1) Funds (1) Future stock price (1) Galois fields (1) Game (1) Grants (1) Health (1) Hedging my bet (1) Holormophic (1) IS–LM (1) Indices (1) Infinite (1) Investment (1) KCSE (1) KJSE (1) Kapital Inteligence (1) Kenya education (1) Latex (1) Law (1) Limit (1) Logic (1) MBTI (1) Market Analysis. (1) Market pulse (1) Mathematical insights (1) Moby dick; ot The Whale (1) Montecarlo simulation (1) Motorcycle Taxi Rides (1) Mural (1) Nature Shape (1) Observed paterns (1) Olympiad (1) Open PS2 Loader (1) Outta Pharaoh hand (1) Physics (1) Predictions (1) Programing (1) Proof (1) Python Code (1) Quiz (1) Quotation (1) R programming (1) RAG (1) RL (1) Remove Duplicate Rows (1) Remove Rows with Missing Values (1) Replace Missing Values with Another Value (1) Risk Management (1) Safety (1) Science (1) Scientific method (1) Semantics (1) Statistical Modelling (1) Stochastic (1) Stock Markets (1) Stock price dynamics (1) Stock-Price (1) Stocks (1) Survey (1) Sustainable Agriculture (1) Symbols (1) Syntax (1) Taroch Coalition (1) The Nature of Mathematics (1) The safe way of science (1) Travel (1) Troubleshoting (1) Tsavo National park (1) Volatility (1) World time (1) Youtube Videos (1) analysis (1) and Belbin Insights (1) competency-based curriculum (1) conformal maps. (1) decisions (1) over-the-counter (OTC) markets (1) pedagogy (1) pi (1) power series (1) residues (1) stock exchange (1) uplifted (1)

Followers