piton fraktalları
Fraktal geometri, fraktallar olarak bilinen matematiksel yapıların incelenmesiyle ilgilenen büyüleyici bir alandır. Fraktallar, kendilerini farklı ölçeklerde tekrar eden karmaşık, kendine benzer kalıplardır ve doğada, sanatta ve bilimde bulunabilirler.
En ünlü fraktallardan biri, adını matematikçi Benoit Mandelbrot'tan alan Mandelbrot kümesidir. Mandelbrot seti, basit bir denklemi tekrar tekrar yineleyerek ve elde edilen karmaşık sayı dizisinin davranışını inceleyerek oluşturulur. Mandelbrot kümesi, dizinin yineleme altında sınırlı kaldığı c karmaşık sayıları kümesi olarak tanımlanır.
Mandelbrot setini oluşturmak için Python ve matplotlib kütüphanesini kullanabiliriz. İlk adım, c karmaşık sayısını ve maksimum yineleme sayısını alan ve dizinin sınırsız hale gelmesi için gereken yineleme sayısını döndüren bir işlev tanımlamaktır.
import numpy as np
def mandelbrot(c, max_iter):
z = 0
for i in range(max_iter):
z = z**2 + c
if abs(z) > 2:
return i
return max_iter
def generate_mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter):
x_values = np.linspace(xmin, xmax, width)
y_values = np.linspace(ymin, ymax, height)
mandelbrot_set = np.zeros((height, width))
for i in range(height):
for j in range(width):
mandelbrot_set[i,j] = mandelbrot(complex(x_values[j], y_values[i]), max_iter)
return mandelbrot_set
Mandelbrot seti oluşturulduktan sonra, matplotlib kütüphanesini onu bir görüntü olarak görselleştirmek için kullanabiliriz.
def generate_mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter):
x_values = np.linspace(xmin, xmax, width)
y_values = np.linspace(ymin, ymax, height)
mandelbrot_set = np.zeros((height, width))
for i in range(height):
for j in range(width):
mandelbrot_set[i,j] = mandelbrot(complex(x_values[j], y_values[i]), max_iter)
return mandelbrot_set
Artık bu işlevleri, belirli bir ilgi ve çözünürlük bölgesi için Mandelbrot kümesini oluşturmak ve çizmek için kullanabiliriz.
if __name__ == '__main__':
xmin, xmax, ymin, ymax = -2, 1, -1.5, 1.5
width, height = 1000, 1000
max_iter = 1000
mandelbrot_set = generate_mandelbrot_set(xmin, xmax, ymin, ymax, width, height, max_iter)
plot_mandelbrot_set(mandelbrot_set, cmap='inferno')
Benzer bir yaklaşım kullanılarak üretilebilen bir başka ünlü fraktal, z_n = z_{n-1}² + c dizisinin sınırlı kaldığı c karmaşık sayıları kümesi olarak tanımlanan Julia kümesidir. Julia seti, Mandelbrot seti ile aynı denklemi yineleyerek, ancak sabit bir c değeriyle üretilir.
Julia setini oluşturmak için, mandelbrot fonksiyonunu sabit bir c değeri alacak şekilde değiştirebilir ve bunu karmaşık düzlemdeki her noktaya uygulayabiliriz.
def julia(z, c, max_iter):
for i in range(max_iter):
z = z**2 + c
if abs(z) > 2:
return i
return max_iter
def julia(z, c, max_iter):
for i in range(max_iter):
z = z**2 + c
if abs(z) > 2:
return i
return max_iter
if __name__ == '__main__':
xmin, xmax, ymin, ymax = -2, 2, -2, 2
width, height = 1000, 1000
max_iter = 1000
c = complex(-0.4, 0.6)
julia_set = generate_julia_set(xmin, xmax, ymin, ymax, width, height, c, max_iter)
plot_mandelbrot_set(julia_set, cmap='inferno')
Fraktallar, Python ve matplotlib kitaplığı kullanılarak oluşturulabilen ve görselleştirilebilen büyüleyici matematiksel yapılardır. Mandelbrot seti ve Julia seti, basit yinelemeli algoritmalar kullanılarak üretilebilen iki ünlü fraktal örneğidir ve karmaşık ve güzel yapıları onları matematik, bilim ve sanatta popüler bir çalışma ve keşif konusu haline getirir.

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































