Adım adım kalemle Koch kar tanesi nasıl çizilir. Koch eğrisi

Koch'un Kar Tanesi, Sierpinski Üçgeni ve diğer fraktallarda

Bir ay boyunca özverili bir şekilde ip desenleri örmeyi öğrendim, dikkatini bu tuhaf aktiviteye odaklayabildiğim herkese öğrettim, Kızılderililer ve Eskimolar hakkında konuştum ve kendi başıma bir şeyler icat etmeye çalıştım. Julia, ders çalışmayı olmasa bile en azından ne yapabileceğimi görmeyi kabul ederek, sönmekte olan coşkumu destekledi. Sonunda simetrisi ve dokuma zarafetiyle beni büyüleyen sekiz köşeli bir yıldız oluşturmayı başardım. Bu küçük icat için teorik bir temel sağlamak istedim ve "oktogramın sembolik anlamı" için internette araştırma yapmaya başladım. Böylece sicim oyunundan yıldız şeklinde çokgenlerin özelliklerini tartışmaya geçtik ve onlardan da yıldız şeklinde çokyüzlüler ve Platonik katı cisimlere geçtik. Kelime kelime, Yulia önce "Çokyüzlülerin Modelleri"ni, ardından da "Matematik ve Sanat"ı okudu. Bir acil doktorunun, nöbetler arasında görev başındayken matematik üzerine bir kitap okuduğunda nasıl bir izlenim bırakacağını hayal edebiliyorum. Ertesi gün Yulia sabah 9'da beni çalışma odamda uyandırmak ve okuduklarıyla ilgili izlenimlerini paylaşmak için geldi.

Kasvetli bir nisan sabahı bahara kadar uyumak istiyorum ve yalnızca bazı enerjik dış etkiler beni yatağımdan kaldırabilir. Yulia bana "canlandırıcı" bir masaj yaptı, tüm etleri acımasızca kemiklerinden ayırdı, ben de çığlık atarak ayağa kalktım ve kahve yapmak için koştum. Ben cezveyle (kahve, şeker, biraz tarçın ve hindistan cevizi) uğraşırken o, Kant'ın çok akıllıca söylediği, düzenli çokyüzlülerin ne kadar güzel olduğu, canlı ve cansız şeylerin simetrisi hakkında cıvıldadı ve ben de ona baktım. gözlerimin önünde gökkuşağı halkaları süzülüyor ve şöyle düşünüyordu: "Bu yaşlılık mı yoksa bahar vitamin eksikliği mi?" Pencerenin altında bir komşu ve köpeği, yüzeyinde benzin lekeleri olan, kahve suyuyla dolu büyük bir su birikintisi üzerinde yüzüyordu. Benzin lekeleri kararmış...
"Fraktalların ne kadar güzel olduğunu biliyor musun?" - Beklenmedik bir şekilde sordum.
“Bunlar ne tür hayvanlar?”
"Şey... grafikler şöyle... karmaşık bir değişkenin fonksiyonları... öyle görünüyor ki... muhteşem güzellikte! Hadi sana göstereyim; bilgisayarımda birkaç fotoğraf kaldı.”
Dürüst olmak gerekirse, fraktallarla ilgilenmeye on yıl önce başladım, geriye sadece birkaç JPG dosyası kaldı, hafızamda kalan “Mandelbrot” kelimesi ve engebeli kıyı şeridine dair başka bir şey. Bu yüzden uçağın noktalarının nasıl renklendirildiği sorusu kafamı karıştırdı. Hâlâ çöpe giden hafızamın derinliklerinden karmaşık bir sayının biçimsel tanımını çıkarabiliyordum, ancak bu kadar harika resimler üreten şeyin ne tür bir işlev olduğu hakkında hiçbir fikrim yoktu. Bu yüzden teoriye alışmak için biraz zaman ayırmam gerekti. Artık Mandelbrot'un ne tür bir hayvan olduğunu ve neyle yenildiğini öğrenmek bir onur meselesi haline geldi.
İşte edindiğim ve uzmanlaştığım şey:
http://robots.ural.net/fractals/intro/fractals.htm
Shabarshin A.A. FRAKTALLARA GİRİŞ



Ertesi gün doğaçlama matematik grubumuzun buluşmasına Catherine Park'ta devam ettik. Nisan ayında Sierpinski Küpü gibi gözenekli kar yığınlarında boğularak üçlü Koch eğrisinin yapılışını anlattım ve Yulia parktan cep telefonuyla yetkin olduğunu düşündüğü tüm arkadaşlarını aradı ve onlardan karmaşık sayının ne olduğunu açıklamalarını istedi. . Daha sonra üçüncü sınıf öğrencisi Olesya'ya sosis kuyruğu örneğini kullanarak sayı doğrusunun ne olduğunu açıklamaya çalıştım. Ancak botlarının içindeki sular dolmaya başladığında ve yağmur yakalarından aşağıya doğru sızdığında ayrıldılar. Genel olarak herkes kendi yolunda delirir.

Fraktallar - bunlar parçaları bütüne benzeyen nesnelerdir. Örneğin bir ağacın dalı bir ağaca benzer ve her eğrelti otu yaprağı da bir dal gibidir. Sıradan bir lahana veya soğandan birkaç yaprak çıkarırsanız aynı bitki kalır, sadece boyutu küçülür. Ama belki de en ilginç fraktal bitki Romen lahanası veya Romanesco lahanasıdır.

Üstün Japon illüstratör Katsushika Hokusai(1760–1849), fraktal teorisinin ortaya çıkmasından çok önce doğal olaylardaki fraktal unsurları görmüştü.

Fraktalın ilginç bir örneği sözde eğridir Koç veya Koch'un kar tanesi . 1904 yılında İsveçli bir matematikçi (1870–1924) tarafından yaptırılmıştır. Bu eğrinin oluşturulması basittir ancak sonuç oldukça tuhaf bir nesnedir.

Sıradan bir eşkenar üçgeni ele alalım. İlk adımda, her bir tarafı üç eşit parçaya bölüyoruz, ortadaki parçayı atıyoruz ve bunun yerine aynı uzunlukta, şeklin dışına bakan ve birbirine değen iki parça oluşturuyoruz. Sonuç olarak Davut Yıldızı'nı alıyoruz. Ve böylece, her adımda çevre bölümlerinin her birinin orta kısmını iki özdeş bölümle değiştiriyoruz.

Bir eğri oluştururken adım sayısı sonsuzluğa doğru gidiyorsa, eğrinin sınırladığı alanın sonlu bir değere doğru yöneldiği, ancak çevrenin sonsuzluğa doğru yöneldiği ortaya çıktı. (Koch'un matematikçileri buna o kadar şaşırdılar ki, eğriyi matematiksel bir ucube olarak adlandırdılar.)

Bunu göstermek oldukça basittir. İzin vermek P– orijinal üçgenin çevresi. Her adımda, uzunluğu çevrenin her iki tarafının uzunluğunun üçte birine eşit olan bir parçanın kaybolduğunu, bunun yerine iki benzer parçanın eklendiğini unutmayın.

Böylece her adımda şeklin çevresi 4/3 ile çarpılır ve N-inci adımda şeklin çevresi . O zamandan beri P(n) olarak sonsuza eğilimlidir N sonsuzluğa doğru yöneliyor.

Şimdi şeklin alanının sonlu bir değere yöneldiğini gösterelim. Benzer şekillerin alanlarının oranının karşılık gelen doğrusal elemanların karelerinin oranına eşit olduğu şeklindeki basit bir geometri gerçeğini hatırlayalım.

Örneğin bir eşkenar üçgenin bir kenarı 3 kat azaltılırsa alanı 3 2 = 9 kat azalır. Orijinal üçgenin alanı şöyle olsun S.İlk adımda şekle her birinin alanı eşit olan 3 üçgen eklenir. S/9.

Sonraki her adımda şekle eklenen üçgen sayısı 4 kat artar ve her üçgenin alanı 9 kat azalır. Böylece von Koch eğrisinin sınırladığı şeklin alanı şuna eşittir:

Paydayla birlikte sonsuz azalan bir geometrik ilerlemenin toplamının köşeli parantez içinde olduğuna ve toplamının eşit olduğuna dikkat edin.

Eric Haynes Bilgisayar grafikleri ve tasarımı alanında modern bir uzman olan , von Koch'un kar tanesinin üç boyutlu bir analogunu oluşturdu.

Fraktalların matematiksel teorisinin kurucusu Fransız ve Amerikalı bir matematikçidir (1924–2010). Latince fractus (kırık) kelimesinden “fraktal” terimini türeten oydu.

Bu olağanüstü adam Varşova'da doğdu, ardından ailesi Paris'e taşındı ve burada 1794 yılında kurulan, mühendis yetiştirmeye yönelik ünlü bir eğitim kurumu olan Ecole Polytechnique'den mezun oldu.

Politeknik Okulu'ndaki çalışmaları sırasında Mandelbrot'un olağanüstü bir mekansal hayal gücüne sahip olduğu keşfedildi - tamamen cebirsel problemler için bile geometrik bir yorum buldu. Nazi zulmünden kaçan Mandelbrot, Amerika Birleşik Devletleri'ne taşındı ve burada Kaliforniya Teknoloji Enstitüsü'nde ikinci bir yüksek öğrenim gördü.

Mandelbrot, 1958'den beri IBM Araştırma Merkezi'nde çalışıyor. Kişisel bilgisayarlar oluştururken en önemli sorunlardan biri kablolardaki gürültüyü bastırmaktı. Mandelbrot bir günün, bir saatin ve hatta bir saniyenin gürültü grafiklerinin aynı olduğunu fark etti ve bu, sorunun çözülmesine yardımcı olan temel anlayıştı.

Mandelbrot aynı zamanda ekonomik süreçleri incelemeye başlar ve grafikleri tellerdeki gürültü grafiklerine benzeyen dalgalanmaların da olduğunu fark eder. Keyfi dış fiyat dalgalanmalarının, standart matematiksel eğriler kullanılarak tanımlanamayan gizli bir matematiksel düzeni takip ettiğini keşfetti.

Ekonomik araştırmasının bir parçası olarak Mandelbrot, uzun bir dönem (100 yıldan fazla) boyunca pamuk fiyat istatistiklerini incelemeye başladı. Mandelbrot, kısa süreli salınımlar ile uzun zaman periyotlarındaki salınımlar arasındaki benzerliği keşfetti. Bu keşif ekonomistler için sürpriz oldu.

Üç boyutlu analog
kar taneleri von Koch

Aslında Mandelbrot özyinelemeli (fraktal) yönteminin temellerini uyguladı.

Mandelbrot'un öncelikle rastgele salınımların geometrik özelliklerini incelediği ve bunların katı matematiksel gerekçelerinin başka bir seçkin matematikçi tarafından verildiği belirtilmelidir - Norbert Wiener(1894–1964), sibernetiğin ve yapay zeka teorisinin kurucusu olarak kabul edilir.

Wiener ve Mandelbrot'un farklı açılardan incelediği gürültünün matematiksel modeline Wiener süreci adı veriliyor; modern olasılık teorisinin ve matematiksel ekonominin ayrılmaz bir parçasıdır.

Mandelbrot'un gerçekleştirdiği ve bahsetmeye değer bir başka ilginç çalışma da kıyı şeritlerinin ölçülmesi sorunudur. Bu sorunun ilk bakışta göründüğü gibi hiç de önemsiz olmadığı ortaya çıktı.

1967'de Mandelbrot, Science dergisinde "Büyük Britanya'nın kıyı şeridinin uzunluğu nedir?" başlıklı bir makale yayınladı. Görünüşe göre her şey çok basit - sahilin uzunluğunu ölçmek için, harita üzerinde ülkenin çevresi boyunca belirli uzunluklara (örneğin 100 km) karşılık gelen bölümleri çizmeniz ve ardından bu birim değeri çarpmanız gerekiyor. çevre boyunca çizilen bölümlerin sayısına göre (şekle bakın).

Ancak ölçüm sonucunun, ölçüm birimi olarak hangi segment uzunluğunun seçildiğine önemli ölçüde bağlı olduğu ortaya çıktı. Böylece 200 km segment uzunluğunda sahil uzunluğu 2400 km, segment uzunluğu 100 km - 2800, segment uzunluğu 50 km olduğunda segmentlerin toplamı kıyı uzunluğunu verir. 3400 kilometre.

Ölçüm sonuçları büyük ölçüde farklılık gösterir ve buna küçük hatalar denemez. Mandelbrot, alışılagelmiş anlamda sahilin uzunluğundan bahsetmenin bir anlamı olmadığı ve kesirli (fraktal) boyutu olan eğrilerin olduğu sonucuna varıyor; birden fazla (doğru gibi) ve ikiden az (düzlem gibi). Örneğin, Koch kar tanesinin fraktal boyutu log 3 · 4≈1,262'dir.



Birleşik Krallık kıyı şeridinin uzunluğunun 200 km, 100 km ve 50 km'lik bölümler halinde ölçülmesi

Benoit Mandelbrot hakkındaki hikayeyi sonlandırırken onun açıklamalarından birkaçı şöyle:

– Temel fikir, fraktal bir nesneyi kendinize yaklaştırdığınızda aynı görünmeye devam etmesidir.

– Tüm matematikte akıcılık ana şeydi. Düzensizlikleri ve pürüzleri incelemeyi önerdim.

– Matematik, insan tarafından inşa edilen pürüzsüz bir dünyayı anlatır. Ve doğanın yarattığı kaba dünyanın matematiğimizin sınırlarının ötesinde olduğu ortaya çıktı.

– Matematikçiler formül yazıyor ama ben hayatım boyunca resimlere baktım.

Fraktallar hakkında konuşurken onların önemli uygulamalarını hatırlamakta fayda var. fraktal antenler ve onların mucidi - Nathan Cohen. Biyografisini değiştiren buluşunun hikayesi ise oldukça komik.

Boston'da yaşadı, Boston Üniversitesi'nde profesör olarak çalıştı ve araştırma ilgi alanları astronomi ve astrofizikti. Ama aynı zamanda bir radyo amatördü ve evinin çatısında büyük bir anteni vardı.


1988'de şehir yetkilileri onu ve diğer sakinleri, şehir merkezinin görünümünü bozduğu için büyük antenleri çatılarından çıkarmaya zorladı. Cohen çok üzüldü ve çaresizlik içinde büyük ve pahalı anteni küçük bir tel parçasıyla değiştirdi ve bunu Koch'un kar tanesine benzer bir şekil verecek şekilde büktü. Ve aniden böyle ilkel bir antenin daha önce var olandan daha kötü çalışmadığı keşfedildi!

Bununla ilgilenen Cohen, bilimsel ilgi alanlarının yönünü değiştirdi ve birkaç yıl sonra işi ticari temele oturttu - 1995 yılında Fractal anten sistemleri şirketini kurdu.

Küçük harici antenlerin geliştirilmesiyle birlikte şirket, cep telefonları için antenler de geliştirmeye başlıyor. Başlangıçta cep telefonları (kablosuz telefonlar gibi) büyüktü ve ayrıca dış antenleri de vardı.

Nathan Cohen'in fikirleri antenin telefonun içine gizlenmesini mümkün kıldı. Bu durumda, tahta üzerinde bulunan mikro devrenin elemanları " adı verilen fraktal bir şekil şeklindedir. Sierpinski halısı ».

Fraktallar modern reklam ve tasarımda da kullanılmaktadır. Fraktal teorisi, modern bilgisayar grafiklerinin yetenekleriyle birleştiğinde, yaratıcılık için sonsuz olasılıklar açar, bazen oldukça komiktir.

Fraktallarla ilgilenenler için yazar “Fraktallar” filmini izlemeyi tavsiye ediyor. Yeni boyutları arar" (youtube.com'da) veya sadece süslü fraktal resimlere bakın, bunun için Google görsellerine gitmeniz ve arama çubuğuna "fraktallar" yazmanız yeterlidir.

Sİ. Dotsenko, Fiziksel ve Matematik Bilimleri Adayı, Kiev Taras Shevchenko Ulusal Üniversitesi Bilgisayar Bilimleri ve Sibernetik Fakültesi Kıdemli Araştırmacısı

Bu rakam bilim adamlarının incelediği ilk fraktallardan biridir. Üç kopyadan geliyor Koch eğrisiİlk kez 1904'te İsveçli matematikçi Helge von Koch'un bir makalesinde ortaya çıktı. Bu eğri, herhangi bir noktaya teğet olamayacak sürekli bir çizgiye örnek olarak icat edildi. Bu özelliğe sahip çizgiler daha önce biliniyordu (Karl Weierstrass, örneğini 1872'de oluşturdu), ancak Koch eğrisi, tasarımının basitliği nedeniyle dikkat çekicidir. Makalesinin adının “Temel geometriden kaynaklanan, teğetleri olmayan sürekli bir eğri üzerinde” olması tesadüf değildir.

Çizim ve animasyon, Koch eğrisinin adım adım nasıl oluşturulduğunu mükemmel bir şekilde göstermektedir. İlk yineleme yalnızca başlangıç ​​bölümüdür. Daha sonra üç eşit parçaya bölünür, ortadaki parça tamamlanarak düzgün bir üçgen oluşturulur ve daha sonra dışarı atılır. Sonuç, ikinci yinelemedir - dört bölümden oluşan kesikli bir çizgi. Her birine aynı işlem uygulanarak yapımın dördüncü adımı elde edilir. Aynı ruhla devam ederek giderek daha fazla yeni satır elde edebilirsiniz (hepsi kırık çizgiler olacaktır). Ve limitte meydana gelen şeye (bu zaten hayali bir nesne olacaktır) Koch eğrisi denir.

Koch eğrisinin temel özellikleri

1. Süreklidir ancak hiçbir yerde türevlenemez. Kabaca söylemek gerekirse, bu tür matematiksel "ucubelerin" bir örneği olarak icat edilmesinin nedeni tam olarak budur.

2. Sonsuz uzunluğa sahiptir. Orijinal parçanın uzunluğu 1 olsun. Her inşaat aşamasında çizgiyi oluşturan parçaların her birini 4/3 kat daha uzun olan kesikli bir çizgiyle değiştiriyoruz. Bu, tüm kesikli çizginin uzunluğunun her adımda 4/3 ile çarpıldığı anlamına gelir: numaralı çizginin uzunluğu N(4/3)'e eşit N-1 . Bu nedenle sınır çizgisinin sonsuz uzunlukta olmaktan başka seçeneği yoktur.

3. Koch'un kar tanesi sonlu alanı sınırlıyor. Ve bu, çevresinin sonsuz olmasına rağmen. Bu özellik paradoksal görünebilir, ancak açıktır - bir kar tanesi tamamen bir daireye sığar, dolayısıyla alanı açıkça sınırlıdır. Alan hesaplanabilir ve bunun için özel bir bilgiye bile ihtiyacınız yoktur - okulda bir üçgenin alanı ve geometrik ilerlemenin toplamı için formüller öğretilir. İlgilenenler için hesaplama aşağıda ayrıntılı olarak listelenmiştir.

Orijinal normal üçgenin kenarı şuna eşit olsun: A. O zaman onun alanıdır. Öncelikle kenar 1 ve alan: . Yineleme arttıkça ne olur? Küçük eşkenar üçgenlerin mevcut bir çokgene iliştirildiğini varsayabiliriz. İlk seferinde sadece 3 tane var ve her seferinde bir öncekinden 4 kat daha fazla oluyor. Yani, üzerinde N inci adım tamamlanacak Tn= 3 4 N–1 üçgen. Her birinin kenar uzunluğu, bir önceki adımda tamamlanan üçgenin kenarının üçte biri kadardır. Yani (1/3)'e eşittir N. Alanlar kenarların kareleriyle orantılı olduğundan her üçgenin alanı . Büyük değerler için N Bu arada bu çok az. Bu üçgenlerin kar tanesi alanına toplam katkısı eşittir Tn · Sn= 3/4 · (4/9) N · S 0. Bu nedenle sonra N-adım, şeklin alanı toplama eşit olacaktır S 0 + T 1 · S 1 + T 2 · S 2 + ... +Tn S N = . Sonsuz sayıda adımdan sonra bir kar tanesi elde edilir; N→ ∞. Sonuç sonsuz bir toplamdır, ancak bu azalan geometrik ilerlemenin toplamıdır, bunun için bir formül vardır: . Kar tanesinin alanı.

4. Fraktal boyut eşittir log4/log3 = log 3 4 ≈ 1,261859... . Doğru hesaplama önemli ölçüde çaba ve ayrıntılı açıklamalar gerektirecektir, bu nedenle burada daha ziyade fraktal boyutun tanımının bir örneği bulunmaktadır. Güç yasası formülünden N(δ ) ~ (1/δ )D, Nerede N- kesişen karelerin sayısı, δ - boyutları ve D- boyut, bunu anlıyoruz D= günlük 1/ δN. Bu eşitlik bir sabitin eklenmesine kadar doğrudur (herkes için aynı) δ ). Şekiller Koch eğrisinin oluşturulmasının beşinci yinelemesini göstermektedir; onunla kesişen ızgara kareleri yeşil renkte gölgelendirilmiştir. Orijinal parçanın uzunluğu 1 olduğundan üstteki şekilde karelerin kenar uzunluğu 1/9'dur. 12 kare gölgelidir, log 9 12 ≈ 1,130929... . Henüz 1.261859'a pek benzemiyor... . Daha ileriye bakalım. Ortadaki resimde kareler yarı büyüklükte, boyutları 1/18, gölgeli 30. log 18 30 ≈ 1.176733... . Zaten daha iyi. Aşağıda kareler hâlâ yarısı kadar büyüklükte; 72 parçanın üzeri zaten boyanmış. log 72 30 ≈ 1,193426... . Daha da yakın. Daha sonra yineleme sayısını artırmanız ve aynı zamanda kareleri azaltmanız gerekir, o zaman Koch eğrisinin boyutunun "ampirik" değeri sürekli olarak log 3 4'e yaklaşacak ve limitte tamamen çakışacaktır.

Boston'da alışılmadık derecede sıcak bir kıştı ama biz hâlâ ilk kar yağışını bekliyorduk. Pencereden düşen karı izlerken kar tanelerini ve yapılarının matematiksel olarak ifade edilmesinin hiç de kolay olmadığını düşündüm. Ancak Koch kar tanesi olarak bilinen ve nispeten basit bir şekilde tanımlanabilecek özel bir kar tanesi türü vardır. Bugün COMSOL Multiphysics Application Builder kullanılarak şeklinin nasıl oluşturulabileceğine bakacağız.

Koch'un Kar Taneciğinin Yapımı

Blogumuzda daha önce de belirttiğimiz gibi fraktallar kullanılabilir. Kar Tanesi Koch bir fraktaldır ve bunu oluşturmak için çok basit bir yinelemeli sürecin olması dikkat çekicidir:

  1. Koch kar tanesinin aslında sıfırıncı yinelemesi olan eşkenar üçgenle başlayalım.
  2. Mevcut kar tanesinin her bir kenarının merkez noktasını bulalım.
  3. Her kenarın ortasına, kenarı geçerli kenarın uzunluğunun 1/3'üne eşit olacak şekilde dışarı doğru çıkıntı yapan bir eşkenar üçgen ekleyin.
  4. Koch kar tanesinin bir sonraki yinelemesini önceki kar tanesinin ve eklenen tüm üçgenlerin dışında olacak şekilde tanımlayalım.
  5. 2-4. adımları gerektiği kadar tekrarlayın.

Bu prosedür, bir kar tanesi çiziminin ilk dört yinelemesi için aşağıdaki şekilde gösterilmektedir.

Koch kar tanesinin ilk dört tekrarı. Resim Wxs tarafından - Kendi çalışmam. Wikimedia Commons aracılığıyla CC BY-SA 3.0 kapsamında lisanslanmıştır.

Koch kar tanesi geometrisinin inşası

Artık hangi algoritmayı kullanacağımızı bildiğimize göre, COMSOL Multiphysics Application Builder'ı kullanarak böyle bir yapının nasıl oluşturulacağına bakalım. Yeni bir dosya açıp 2 boyutlu bir nesne oluşturacağız geometri parçası düğümde Küresel tanımlar. Bu nesne için beş giriş parametresi ayarlayacağız: eşkenar üçgenin kenar uzunluğu; X- Ve sen– tabanın orta noktasının koordinatları; ve aşağıdaki şekillerde gösterildiği gibi tabanın ortasından karşı tepe noktasına yönlendirilen normal vektörün bileşenleri.


Eşkenar üçgenin boyutunu, konumunu ve yönünü ayarlamak için kullanılan beş parametre.


Geometrik parçanın giriş parametrelerinin ayarlanması.
Eşkenar üçgen oluşturmak için çokgen ilkel kullanılır.


Nesne alt kenarın merkezi etrafında dönebilir.


Bir nesne orijine göre hareket ettirilebilir.

Artık geometrik kısmı tanımladığımıza göre onu kesitte bir kez kullanıyoruz. Geometri. Bu tek üçgen, Koch kar tanesinin sıfırıncı yinelemesine eşdeğerdir ve şimdi daha karmaşık kar taneleri oluşturmak için Uygulama Oluşturucuyu kullanalım.

Uygulama Oluşturucuda Uygulama Kullanıcı Arayüzü İşaretlemesi

Uygulama oldukça basit bir kullanıcı arayüzüne sahiptir. Kullanıcının etkileşim kurabileceği yalnızca iki bileşen içerir: Kaydırıcı (Kaydırıcı)(aşağıdaki şekilde 1 olarak işaretlenmiştir), bununla bir kar tanesi oluşturmak için gereken yineleme sayısını ayarlayabilirsiniz ve Düğme(etiket 2), elde edilen geometrinin oluşturulduğu ve görüntülendiği tıklatılarak. Ayrıca orada Metin yazıtı(etiket 3) ve Verilerin görüntülenmesi (Görüntülenmesi)(etiket 4), belirtilen yinelemelerin sayısını ve ayrıca pencereyi gösterir Grafikler(etiket 5), son geometriyi görüntüler.


Uygulamanın beş bileşenden oluşan tek bir formu vardır.

Uygulamanın iki Beyannameler Bunlardan biri, varsayılan olarak sıfır olan ancak kullanıcı tarafından değiştirilebilen Yinelemeler adı verilen bir tamsayı değerini tanımlar. Merkez adı verilen 1 boyutlu çiftler dizisi de tanımlanır. Dizideki tek öğe, her bir kenarın merkez noktasını bulmak için kullanılan 0,5 değerine sahiptir. Bu değer asla değişmez.


İki Tanıma ilişkin ayarlar.

Kullanıcı arayüzündeki Slider bileşeni, tamsayı değeri olan Yinelemeler parametresini kontrol eder. Aşağıdaki ekran görüntüsü "Kaydırıcı" ayarlarını ve 0 ile 5 arasında tamsayı olarak ayarlanan değerleri göstermektedir. Bileşen için de aynı kaynak (kaydırıcıyla olduğu gibi) seçilmiştir Veri görüntüleme Uygulama ekranında belirtilen yineleme sayısını görüntülemek için. Kullanılan algoritma optimalin altında olduğundan ve çok verimli olmadığından, ancak uygulanması ve gösterilmesi yeterince basit olduğundan potansiyel kullanıcıyı beş yinelemeyle sınırlandırıyoruz.


"Kaydırıcı" bileşeninin ayarları.

Daha sonra aşağıdaki ekran görüntüsünde gösterilen düğmemizin ayarlarına bakalım. Düğmeye basıldığında iki komut yürütülür. İlk olarak CreateSnowFlake metodu çağrılır. Ortaya çıkan geometri daha sonra grafik penceresinde görüntülenir.


Düğme ayarları.

Artık uygulamamızın kullanıcı arayüzüne baktık ve herhangi bir kar tanesi geometrisinin oluşturulmasının çağrılan bir yöntemle gerçekleşmesi gerektiğini görebiliyoruz. Satır numaralandırmanın sola eklendiği ve dize sabitlerinin kırmızıyla vurgulandığı bu yöntemin koduna bakalım:

1 model.geom("geom1" ).feature().clear(); 2 model.geom("geom1" ).create("pi1", "PartInstance"); 3 model.geom("geom1" ).run("fin"); 4 for (int iter = 1; iter "geom1" ).getNEdges()+1; 6 BirlikListesi = "pi" + iter; 7 for (int edge = 1; edge "geom1" ).getNEdges(); edge++) ( 8 String newPartInstance = "pi" + iter + edge; 9 model.geom("geom1" ).create(newPartInstance, "PartInstance" ).set("part" , "part1" ); 10 with(model. geom("geom1" ).feature(newPartInstance)); 11 setEntry("inputexpr" , "Length" , toString(Math.pow(1.0/3.0, iter))) model.geom("geom1" ).edgeX( edge, Center)); 13 setEntry("inputexpr", "py", model.geom("geom1" ).edgeX(edge, Center)); ", "nx", model.geom("geom1" ).edgeNormal (kenar, Merkez)); 15 setEntry("inputexpr", "ny", model.geom("geom1" ).edgeNormal(edge, Center)) ; 17 endwith(); 17 UnionList = newPartInstance; "geom1" ).create("pi" +(iter+1), "Birlik" .selection("input" ).set(UnionList ); 20 model.geom("geom1" ).feature("pi" +(iter+1)).set("intbnd", "off"); 21 model.geom("geom1" ).run("fin"); 22)

Her satırın hangi işlevi yerine getirdiğini anlamak için kodu satır satır inceleyelim:

  1. Sıfırdan başlayabilmemiz için mevcut tüm geometrik dizileri temizliyoruz.
  2. Varsayılan boyutu, yönü ve konumu kullanarak nesnenin bir örneğini - "üçgenimizi" oluştururuz. Bu bizim pi1 tanımlayıcı etiketine sahip sıfırıncı dereceden kar tanesidir.
  3. Geometriyi sonlandıralım. Bu işlem tüm geometri indekslerini güncellemek için gereklidir.
  4. Durdurma koşulu olarak Yinelemeler tanımını kullanarak, kar tanesinin verilen tüm yinelemelerini yineleme sürecine başlayalım.
  5. Boş bir dize dizisi tanımlarız, UnionList. Dizinin her öğesi çeşitli geometrik nesnelerin tanımlayıcısını içerir. Bu dizinin uzunluğu, son yinelemedeki kenar sayısının bir artısına eşittir.
  6. UnionList dizisinin ilk elemanını tanımlıyoruz. Önceki yinelemenin sonucunun tanımlayıcısıdır. Sıfır yinelemenin zaten 1-3 satırlarında oluşturulduğunu unutmayın. iter tamsayı değeri otomatik olarak bir dizeye dönüştürülür ve "pi" dizisinin sonuna eklenir.
  7. Daha önce oluşturulan kar tanesindeki kenar sayısını geçiyoruz.
  8. Bu kenarda oluşturulan “üçgen” parça örneğinden erişen bir nesnenin yeni bir örneğine tanımlayıcı etiket koyuyoruz. iter ve edge tamsayı değerlerinin, nesne örneğinin tanımlayıcı etiketi olan pi dizisinin sonuna sırayla eklendiğini unutmayın.
  9. "Üçgen" nesnesinin bir örneğini yaratırız ve ona az önce belirttiğimiz tanımlayıcı etiketi atarız.
  10. With()/endwith() deyimini kullanarak 11-15 arasındaki satırların nesnenin geçerli örneğine (parça örneği) atıfta bulunduğunu belirtiriz.
  11. Üçgenin kenar uzunluğunu belirleyin. Sıfırıncı sıranın kenar uzunluğu birdir, dolayısıyla n'inci yinelemenin kenar uzunluğu (1/3)n'dir. toString() işlevi, veri türlerini (kayan nokta sayısı) bir dizeye dönüştürmek (dönüştürmek) için gereklidir.
  12. Ayarladık X-son yinelemenin kenarının merkez noktası olarak yeni üçgenin koordinatı. EdgeX yöntemi şurada belgelenmiştir: . Merkezin 0,5'e ayarlandığını hatırlayın.
  13. Ayarladık sen-koordinat.
  14. Ayarladık X-üçgenin normal vektörünün bileşeni. edgeNormal yöntemi ayrıca belgelenmiştir. COMSOL Programlama Referans Kılavuzu.
  15. Ayarladık sen-normal vektörün bileşeni.
  16. with()/endwith() deyimini kapatıyoruz.
  17. Geçerli üçgenin etiket tanımlayıcısını tüm nesnelerin listesine ekleyin.
  18. Tüm kenarların aramasını kapatıyoruz.
  19. Tüm nesnelerin Boole Birliği'ni (mantıksal birliği) geometrik bir dizi halinde oluşturuyoruz. Etikete yeni bir pi değeri atadık N, burada N sayıdır Sonraki yinelemeler. Artan yineleme değerinin bir dizeye dönüştürülmesi için (iter+1) çevresinde parantezler gereklidir.
  20. Nihai nesnenin iç sınırlarının korunmadığını belirtiyoruz.
  21. Geometriyi sonlandıralım. Son işlem, kar tanesinin bir sonraki yinelemesi için tüm geometri indekslerini günceller.
  22. Bir kar tanesi yaratmanın tekrarlama döngüsünü kapatıyoruz.

Böylece uygulamamızın tüm yönlerini ve unsurlarını ele aldık. Sonuçlara bakalım!


Koch kar tanesini oluşturmak için basit uygulamamız.

Uygulamamızı bir dosyaya geometri yazacak şekilde genişletebilir, hatta doğrudan ek analizler gerçekleştirebiliriz. Örneğin fraktal bir anten tasarlayabiliriz. Antenin tasarımıyla ilgileniyorsanız, örneğimize göz atın, hatta düzenini sıfırdan yapın.

Kendin dene

Bu uygulamayı kendiniz oluşturmak istiyorsanız ancak Uygulama Oluşturucuyu henüz tamamlamadıysanız aşağıdaki kaynakları yararlı bulabilirsiniz:

  • Kılavuzu indirin İngilizce Uygulama Geliştirme Ortamına Giriş
  • Bu videoları izleyin ve nasıl kullanılacağını öğrenin
  • Simülasyon uygulamalarının nasıl kullanıldığına aşina olmak için bu konuları okuyun.

Bu materyali ele aldıktan sonra, uygulamanın işlevselliğinin bir kar tanesini yeniden boyutlandırmak, oluşturulan geometriyi dışa aktarmak, alanı ve çevreyi tahmin etmek ve çok daha fazlasını sağlayacak şekilde nasıl genişletilebileceğini göreceksiniz.

COMSOL Multiphysics'te nasıl bir uygulama oluşturmak istiyorsunuz? yardım için.

Bu rakam bilim adamlarının incelediği ilk fraktallardan biridir. İlk kez 1904'te İsveçli matematikçi Helge von Koch'un bir makalesinde ortaya çıkan Koch eğrisinin üç kopyasından türetilmiştir. Bu eğri, herhangi bir noktaya teğet olamayacak sürekli bir çizgiye örnek olarak icat edildi. Bu özelliğe sahip çizgiler daha önce biliniyordu (Karl Weierstrass, örneğini 1872'de oluşturdu), ancak Koch eğrisi, tasarımının basitliği nedeniyle dikkat çekicidir. Makalesinin adının “Temel geometriden kaynaklanan, teğetleri olmayan sürekli bir eğri üzerinde” olması tesadüf değildir.

Koch eğrisi adım adım nasıl oluşturulur?

İlk yineleme yalnızca başlangıç ​​bölümüdür. Daha sonra üç eşit parçaya bölünür, ortadaki parça tamamlanarak düzgün bir üçgen oluşturulur ve daha sonra dışarı atılır. Sonuç, ikinci yinelemedir - dört bölümden oluşan kesikli bir çizgi. Her birine aynı işlem uygulanarak yapımın dördüncü adımı elde edilir. Aynı ruhla devam ederek giderek daha fazla yeni satır elde edebilirsiniz (hepsi kırık çizgiler olacaktır). Ve limitte meydana gelen şeye (bu zaten hayali bir nesne olacaktır) Koch eğrisi denir.

Koch eğrisinin temel özellikleri

1.HAKKINDAsüreklidir ancak hiçbir yerde türevlenemez. Kabaca söylemek gerekirse, bu tür matematiksel "ucubelerin" bir örneği olarak icat edilmesinin nedeni tam olarak budur.

2. Sonsuz uzunluğa sahiptir. Orijinal parçanın uzunluğu 1'e eşit olsun. Her yapım aşamasında, çizgiyi oluşturan parçaların her birini kesikli bir çizgiyle değiştiririz. 4/3 kat daha uzun. Bu, her adımdaki tüm kesik çizginin uzunluğunun aşağıdakilerle çarpıldığı anlamına gelir: 4/3 : n numaralı satırın uzunluğu (4/3)n–1. Bu nedenle sınır çizgisinin sonsuz uzunlukta olmaktan başka seçeneği yoktur.

3.Koch kar tanesi sonlu alanı sınırlandırıyor. Ve bu, çevresinin sonsuz olmasına rağmen. Bu özellik paradoksal görünebilir, ancak açıktır - bir kar tanesi tamamen bir daireye sığar, dolayısıyla alanı açıkça sınırlıdır. Alan hesaplanabilir ve bunun için özel bir bilgiye bile ihtiyacınız yoktur - okulda bir üçgenin alanı ve geometrik ilerlemenin toplamı için formüller öğretilir. İlgilenenler için hesaplama aşağıda ayrıntılı olarak listelenmiştir.

Orijinal normal üçgenin kenarı a'ya eşit olsun. Daha sonra kendi alanı. Öncelikle kenar 1 ve alan: . Yineleme arttıkça ne olur? Küçük eşkenar üçgenlerin mevcut bir çokgene iliştirildiğini varsayabiliriz. İlk seferinde sadece 3 tane var ve her seferinde bir öncekinden 4 kat daha fazla oluyor. Yani n'inci adımda tamamlanacak Tn = 3 4n–1üçgenler. Her birinin kenar uzunluğu, bir önceki adımda tamamlanan üçgenin kenarının üçte biri kadardır. Bu, (1/3)n'ye eşit olduğu anlamına gelir. Alanlar kenarların kareleriyle orantılı olduğundan her üçgenin alanı . Bu arada, n'nin büyük değerleri için bu çok küçüktür. Bu üçgenlerin kar tanesi alanına toplam katkısı eşittir Tn Sn = 3/4 (4/9)n S0. Bu nedenle, n'inci adımdan sonra şeklin alanı toplamına eşit olacaktır. S0 + T1 S1 + T2 S2 + ... +Tn Sn = . Sonsuz sayıda adımdan sonra bir kar tanesi elde edilir; n → ∞. Sonuç sonsuz bir toplamdır, ancak bu azalan geometrik ilerlemenin toplamıdır, bunun için bir formül vardır: . Kar tanesinin alanı.


Koch kar tanesini oluşturma seçenekleri

Orijinal eşkenar üçgenin içinde Koch eğrileri oluşturursak, Koch kar tanesi "tam tersi" elde edilir.

Cesaro'nun replikleri. Eşkenar üçgenler yerine taban açısı 60° ile 90° arasında olan ikizkenar üçgenler kullanılır. Şekilde açı 88°'dir.


Kare seçeneği. Burada kareler tamamlandı.



İlgili yayınlar