Jak narysować płatek śniegu Kocha ołówkiem krok po kroku. Krzywa Kocha

Na płatku śniegu Kocha, Trójkącie Sierpińskiego i innych fraktalach

Przez cały miesiąc bezinteresownie uczyłam się tkać wzory linowe, uczyłam wszystkich, których uwagę udało mi się skupić na tej dziwnej czynności, opowiadałam o Hindusach i Eskimosach, a także próbowałam coś wymyślić sama. Julia wspierała mój słabnący entuzjazm, zgadzając się jeśli nie na naukę, to przynajmniej na zobaczenie, co da się zrobić. W końcu udało mi się skomponować ośmioramienną gwiazdę, która zafascynowała mnie symetrią i elegancją splotu. Chciałem zapewnić podstawy teoretyczne dla tego małego wynalazku i zacząłem przeszukiwać Internet w poszukiwaniu „symbolicznego znaczenia oktogramu”. Zatem od gry w struny przeszliśmy do omówienia właściwości wielokątów gwiaździstych, a następnie do wielościanów gwiaździstych i brył platońskich. Słowo po słowie, a Julia zabrała się za czytanie najpierw „Modeli wielościanów”, a potem „Matematyki i sztuki”. Wyobrażam sobie wrażenie, jakie musi sprawiać lekarz pogotowia ratunkowego, czytający książkę o matematyce podczas dyżuru pomiędzy wizytami. Następnego dnia o 9 rano Julia przyszła mnie obudzić w moim gabinecie i podzielić się wrażeniami z tego, co przeczytała.

W ponury kwietniowy poranek chcę spać do wiosny i tylko jakiś energetyczny wpływ zewnętrzny jest w stanie wyrwać mnie z łóżka. Julia zrobiła mi „odmładzający” masaż, brutalnie odrywając całe mięso od kości, więc zerwałam się z krzykiem i pobiegłam zaparzyć kawę. Kiedy ja majstrowałem przy dzbanku do kawy – kawie, cukrze, odrobinie cynamonu i gałki muszkatołowej – ona ćwierkała o tym, co tak sprytnie powiedział Kant, jak piękne okazują się wielościany foremne, o symetrii rzeczy żywych i nieożywionych, a ja spojrzałem na tęczowe kręgi pływały mi przed oczami i pomyślałem: „Czy to starość, czy wiosenny niedobór witamin?” Pod oknem sąsiadka z psem pływała po ogromnej kałuży – całym jeziorze wody kawowej z plamami benzyny na powierzchni. Plamy po benzynie są zmatowione...
„Czy wiesz, jak piękne są fraktale!” – zapytałem niespodziewanie.
„Co to za zwierzęta?”
„No cóż... wykresy wyglądają tak... funkcje zmiennej zespolonej... wydaje się... Cudownej urody! Chodź, pokażę ci. Zostało mi jeszcze kilka zdjęć na komputerze.
Prawdę mówiąc, fraktalami zainteresowałem się dziesięć lat temu, pozostało mi tylko kilka plików JPG, słowo „Mandelbrot” utkwiło mi w pamięci i coś jeszcze o nierównym wybrzeżu. Dlatego zaintrygowało mnie pytanie, w jaki sposób pokolorowane są punkty płaszczyzny. Wciąż byłem w stanie wydobyć z głębi mojej zniszczonej pamięci formalną definicję liczby zespolonej, ale nie miałem pojęcia, jaka to funkcja tworzyła tak fantastyczne obrazy. Musiałem więc poświęcić trochę czasu na zapoznanie się z teorią. Teraz sprawą honoru stało się odkrycie, jakim zwierzęciem jest Mandelbrot i z czym się go je.
Oto co mam i opanowałem:
http://robots.ural.net/fractals/intro/fractals.htm
Shabarshin AA WPROWADZENIE DO FRAKTALI



Następnego dnia kontynuowaliśmy spotkanie naszego zaimprowizowanego koła matematycznego w Catherine Park. Tonąc w kwietniowych zaspach, porowatych jak sześcian Sierpińskiego, ja wyjaśniałem budowę triadycznej krzywej Kocha, a Julia dzwoniła z parku przez komórkę do wszystkich swoich znajomych, których uważa za kompetentnych, i prosiła o wyjaśnienie, co to jest liczba zespolona . Następnie próbowałam wytłumaczyć trzecioklasistce Olesi, czym jest oś liczbowa, na przykładzie kolejki po kiełbasę. Rozdzielili się dopiero, gdy woda zaczęła chlupotać im w butach, a deszcz spływał po kołnierzu. Generalnie każdy szaleje na swój sposób.

Fraktale - są to przedmioty, których części są podobne do całości. Na przykład gałąź drzewa jest jak drzewo, a każdy liść paproci jest jak gałąź. Jeśli usuniesz kilka liści ze zwykłej kapusty lub cebuli, roślina pozostanie ta sama, tylko jej rozmiar się zmniejszy. Ale być może najciekawszą rośliną fraktalną jest kapusta rumuńska lub kapusta romańska.

Wybitny japoński ilustrator Katsushika Hokusai(1760–1849) dostrzegał elementy fraktalne w zjawiskach naturalnych na długo przed pojawieniem się teorii fraktali.

Ciekawym przykładem fraktala jest tzw. krzywa Kocha Lub Płatek śniegu Kocha . Został zbudowany w 1904 roku przez szwedzkiego matematyka (1870–1924). Krzywa ta jest prosta do skonstruowania, ale efektem jest dość dziwny obiekt.

Weźmy zwykły trójkąt równoboczny. W pierwszym kroku dzielimy każdy bok na trzy równe części, wyrzucamy środkowy segment, a zamiast tego budujemy dwa odcinki tej samej długości, które są skierowane na zewnątrz figury i stykają się ze sobą. W rezultacie otrzymujemy Gwiazdę Dawida. I tak dalej, na każdym kroku zastępujemy środkową część każdego z segmentów obwodu dwoma identycznymi segmentami.

Okazuje się, że jeśli liczba kroków przy konstruowaniu krzywej dąży do nieskończoności, to obszar ograniczony krzywą dąży do wartości skończonej, natomiast obwód dąży do nieskończoności. (Matematycy Kocha byli tym tak zaskoczeni, że nazwali tę krzywą matematycznym dziwakiem.)

Pokazanie tego jest dość proste. Pozwalać P– obwód pierwotnego trójkąta. Zauważ, że na każdym kroku znika odcinek, którego długość jest równa jednej trzeciej długości każdego boku obwodu, ale zamiast tego dodawane są dwa podobne segmenty.

Zatem na każdym kroku obwód figury jest mnożony przez 4/3 i przez N-ty krok, obwód figury wynosi . Od tego czasu P(n) dąży do nieskończoności jako N zmierzający do nieskończoności.

Pokażmy teraz, że pole figury dąży do wartości skończonej. Przypomnijmy prosty fakt z geometrii, że stosunek pól figur podobnych jest równy stosunkowi kwadratów dowolnych odpowiednich elementów liniowych.

Na przykład, jeśli bok trójkąta równobocznego zmniejszy się 3 razy, wówczas jego pole zmniejszy się o 3 2 = 9 razy. Niech będzie obszar pierwotnego trójkąta S. W pierwszym kroku do figury dodawane są 3 trójkąty, których powierzchnia jest równa S/9.

W każdym kolejnym kroku liczba trójkątów dodanych do figury zwiększa się 4-krotnie, a powierzchnia każdego trójkąta zmniejsza się 9-krotnie. Zatem obszar figury ograniczony krzywą von Kocha jest równy

Należy zauważyć, że suma nieskończenie malejącego postępu geometrycznego z mianownikiem jest podana w nawiasach kwadratowych, a jej suma jest równa .

Erica Haynesa, nowoczesny specjalista w dziedzinie grafiki komputerowej i projektowania, zbudował trójwymiarowy odpowiednik płatka śniegu von Kocha.

Twórcą matematycznej teorii fraktali jest matematyk francusko-amerykański (1924–2010). To on ukuł termin „fraktal” od łacińskiego słowa fractus (zepsuty).

Ten niezwykły człowiek urodził się w Warszawie, następnie jego rodzina przeniosła się do Paryża, gdzie ukończył Ecole Polytechnique, słynną placówkę kształcącą inżynierów, założoną jeszcze w 1794 roku.

Podczas studiów na Politechnice odkryto, że Mandelbrot miał fenomenalną wyobraźnię przestrzenną – nawet dla problemów czysto algebraicznych znajdował interpretację geometryczną. Uciekając przed prześladowaniami nazistowskimi, Mandelbrot przeniósł się do Stanów Zjednoczonych, gdzie uzyskał drugie wykształcenie wyższe w California Institute of Technology.

Od 1958 roku Mandelbrot pracuje w Centrum Badawczym IBM. Podczas tworzenia komputerów osobistych jednym z kluczowych problemów było tłumienie szumów w przewodach. Mandelbrot zauważył, że wykresy szumów dla dnia, godziny, a nawet sekundy były identyczne i to był kluczowy spostrzeżenie, które pomogło rozwiązać problem.

Jednocześnie Mandelbrot zaczyna badać procesy gospodarcze i zauważa, że ​​zachodzą także wahania, których wykresy przypominają wykresy szumu w przewodach. Odkrył, że dowolne zewnętrzne wahania cen podlegają ukrytemu porządkowi matematycznemu, którego nie można opisać za pomocą standardowych krzywych matematycznych.

W ramach swoich badań ekonomicznych Mandelbrot zaczął studiować statystyki cen bawełny w długim okresie (ponad 100 lat). Mandelbrot odkrył podobieństwo między oscylacjami krótkotrwałymi i oscylacjami w długich okresach czasu. To odkrycie było zaskoczeniem dla ekonomistów.

Trójwymiarowy analog
płatki śniegu von Kocha

Zasadniczo Mandelbrot zastosował podstawy swojej metody rekurencyjnej (fraktalnej).

Należy zauważyć, że Mandelbrot badał przede wszystkim właściwości geometryczne oscylacji losowych, a ich ścisłe matematyczne uzasadnienie podał inny wybitny matematyk - Norberta Wienera(1894–1964), uważany za twórcę cybernetyki i teorii sztucznej inteligencji.

Matematyczny model hałasu, który Wiener i Mandelbrot badali pod różnymi kątami, nazywa się procesem Wienera; jest integralną częścią współczesnej teorii prawdopodobieństwa i ekonomii matematycznej.

Kolejnym ciekawym badaniem Mandelbrota, o którym warto wspomnieć, jest problem pomiaru linii brzegowych. Problem ten okazał się wcale nie trywialny, jak mogłoby się wydawać na pierwszy rzut oka.

W 1967 roku Mandelbrot opublikował w czasopiśmie Science artykuł zatytułowany „Jaka jest długość linii brzegowej Wielkiej Brytanii?” Wydawałoby się, że wszystko jest bardzo proste - aby zmierzyć długość wybrzeża, należy wykreślić na mapie segmenty wzdłuż obwodu kraju odpowiadające określonym długościom (na przykład 100 km), a następnie pomnożyć tę wartość jednostkową przez liczbę segmentów naniesionych wzdłuż obwodu (patrz rysunek).

Okazało się jednak, że wynik pomiaru w istotny sposób zależy od tego, jaką długość odcinka wybrano jako jednostkę miary. Zatem przy długości odcinka 200 km długość wybrzeża okazała się 2400 km, przy długości odcinka 100 km - 2800, a przy długości odcinka 50 km sumowanie odcinków daje długość wybrzeża z 3400 km.

Wyniki pomiarów znacznie się od siebie różnią i nie można tego nazwać drobnymi błędami. Mandelbrot dochodzi do wniosku, że nie ma sensu mówić o długości wybrzeża w zwykłym tego słowa znaczeniu, a istnieją krzywe, które mają wymiar ułamkowy (fraktalny), tj. więcej niż jeden (jak linia) i mniej niż dwa (jak samolot). Na przykład płatek śniegu Kocha ma wymiar fraktalny log 3 4≈1,262.



Pomiar długości linii brzegowej Wielkiej Brytanii w odcinkach 200 km, 100 km i 50 km

Kończąc opowieść o Benoicie Mandelbrocie, oto kilka jego wypowiedzi:

– Podstawowa idea jest taka, że ​​kiedy przybliżysz obiekt fraktalny, nadal będzie on wyglądał tak samo.

– W całej matematyce najważniejsza była płynność. Zasugerowałem przestudiowanie nieregularności i nierówności.

– Matematyka opisuje gładki świat zbudowany przez człowieka. A szorstki świat stworzony przez naturę okazał się poza granicami naszej matematyki.

– Matematycy piszą wzory, ale ja całe życie patrzę na obrazki.

Mówiąc o fraktalach warto pamiętać o ich ważnym zastosowaniu - anteny fraktalne i ich wynalazca - Nathana Cohena. Historia jego wynalazku, który zmienił jego biografię, jest dość zabawna.

Mieszkał w Bostonie, pracował jako profesor na Uniwersytecie Bostońskim, a jego zainteresowania badawcze obejmowały astronomię i astrofizykę. Ale był też radioamatorem i miał dużą antenę na dachu swojego domu.


W 1988 roku władze miejskie zmusiły go i innych mieszkańców do usunięcia z dachów dużych anten, ponieważ psuły one wygląd śródmieścia. Cohen był bardzo zdenerwowany i w desperacji zastąpił dużą i kosztowną antenę małym kawałkiem drutu, który wygiął w kształt podobny do płatka śniegu Kocha. I nagle odkryto, że taka prymitywna antena działa nie gorzej niż ta, która istniała wcześniej!

Zainteresowany tym Cohen zmienił kierunek swoich zainteresowań naukowych i kilka lat później postawił firmę na zasadach komercyjnych – w 1995 roku założył firmę Fractal Antenne Systems.

Wraz z rozwojem małych anten zewnętrznych firma zaczyna opracowywać anteny do telefonów komórkowych. Początkowo telefony komórkowe (a także bezprzewodowe) były nieporęczne i miały też wystające z nich anteny zewnętrzne.

Pomysły Nathana Cohena umożliwiły ukrycie anteny wewnątrz telefonu. W tym przypadku elementy mikroukładu umieszczone na płytce mają kształt fraktalnej figury zwanej „ Dywan Sierpińskiego ».

Fraktale są również wykorzystywane w nowoczesnej reklamie i projektowaniu. Teoria fraktali w połączeniu z możliwościami współczesnej grafiki komputerowej otwierają nieograniczone możliwości kreatywności, czasem wręcz zabawnej.

Osobom zainteresowanym fraktalami autor radzi obejrzeć film „Fraktale. Wyszukuje nowe wymiary” (jest na youtube.com) lub po prostu ogląda fantazyjne zdjęcia fraktali, w tym celu wystarczy wejść na Google Grafiki i wpisać „fraktale” w pasku wyszukiwania.

SI. Dotenko, kandydat nauk fizycznych i matematycznych, starszy pracownik naukowy na Wydziale Informatyki i Cybernetyki Kijowskiego Narodowego Uniwersytetu im. Tarasa Szewczenki

Liczba ta jest jednym z pierwszych fraktali zbadanych przez naukowców. Pochodzi z trzech egzemplarzy Krzywa Kocha, które po raz pierwszy pojawiło się w artykule szwedzkiego matematyka Helge von Kocha w 1904 roku. Krzywa ta została wymyślona jako przykład linii ciągłej, która nie może być styczna do żadnego punktu. Linie posiadające tę właściwość były znane już wcześniej (swój przykład zbudował Karl Weierstrass już w 1872 r.), jednak krzywa Kocha wyróżnia się prostotą konstrukcji. Nieprzypadkowo jego artykuł nosi tytuł „O ciągłej krzywej bez stycznych, która wynika z elementarnej geometrii”.

Rysunek i animacja doskonale pokazują krok po kroku budowę krzywej Kocha. Pierwsza iteracja to po prostu segment początkowy. Następnie dzieli się go na trzy równe części, środkową uzupełnia się, tworząc regularny trójkąt, a następnie wyrzuca. Rezultatem jest druga iteracja - linia przerywana składająca się z czterech segmentów. Do każdego z nich stosuje się tę samą operację i uzyskuje się czwarty etap konstrukcji. Kontynuując w tym samym duchu, możesz uzyskać coraz więcej nowych linii (wszystkie będą liniami przerywanymi). A to, co dzieje się w granicy (będzie to już wyimaginowany obiekt), nazywa się krzywą Kocha.

Podstawowe własności krzywej Kocha

1. Jest ciągła, ale nigdzie nie jest różniczkowalna. Z grubsza rzecz biorąc, właśnie po to został wymyślony - jako przykład tego rodzaju matematycznych „dziwaków”.

2. Ma nieskończoną długość. Niech długość pierwotnego odcinka będzie równa 1. Na każdym etapie konstrukcji każdy z odcinków tworzących linię zastępujemy linią łamaną, która jest 4/3 razy dłuższa. Oznacza to, że długość całej linii łamanej mnoży się w każdym kroku przez 4/3: długość linii z liczbą N równy (4/3) N-1 . Dlatego linia graniczna nie ma innego wyjścia, jak tylko być nieskończenie długa.

3. Płatek śniegu Kocha ogranicza skończony obszar. I to pomimo faktu, że jego obwód jest nieskończony. Ta właściwość może wydawać się paradoksalna, ale jest oczywista - płatek śniegu wpasowuje się całkowicie w okrąg, więc jego powierzchnia jest oczywiście ograniczona. Pole można obliczyć i nie potrzeba do tego nawet specjalnej wiedzy - w szkole uczy się wzorów na pole trójkąta i sumę postępu geometrycznego. Dla zainteresowanych obliczenia są wymienione poniżej drobnym drukiem.

Niech bok pierwotnego regularnego trójkąta będzie równy A. Wtedy jego pole wynosi . Najpierw bok wynosi 1, a pole wynosi: . Co się stanie wraz ze wzrostem iteracji? Możemy założyć, że małe trójkąty równoboczne są dołączone do istniejącego wielokąta. Za pierwszym razem jest ich tylko 3, a za każdym razem jest ich 4 razy więcej niż poprzednio. To znaczy na N krok dziewiąty zostanie ukończony Tn= 3 4 N–1 trójkąty. Długość boku każdego z nich wynosi jedną trzecią boku trójkąta wykonanego w poprzednim kroku. Więc to jest równe (1/3) N. Pola są proporcjonalne do kwadratów boków, więc pole każdego trójkąta wynosi . Dla dużych wartości N Swoją drogą to bardzo mało. Całkowity udział tych trójkątów w powierzchni płatka śniegu wynosi Tn · S n= 3/4 · (4/9) N · S 0. Dlatego po N-krok, obszar figury będzie równy sumie S 0 + T 1 · S 1 + T 2 · S 2 + ... +Tn S N = . Płatek śniegu uzyskuje się po nieskończonej liczbie kroków, co odpowiada N→ ∞. Wynik jest sumą nieskończoną, ale jest to suma malejącego postępu geometrycznego. Jest na to wzór: . Powierzchnia płatka śniegu wynosi.

4. Wymiar fraktalny jest równy log4/log3 = log 3 4 ≈ 1,261859... . Dokładne obliczenia będą wymagały sporo wysiłku i szczegółowych wyjaśnień, dlatego tutaj jest raczej ilustracja definicji wymiaru fraktalnego. Ze wzoru na prawo potęgowe N(δ ) ~ (1/δ )D, Gdzie N- liczba przecinających się kwadratów, δ - ich rozmiar i D- wymiar, rozumiemy to D= log 1/ δ N. Ta równość jest prawdziwa aż do dodania stałej (tej samej dla wszystkich δ ). Ryciny przedstawiają piątą iterację konstruowania krzywej Kocha; kwadraty siatki, które się z nią przecinają, są zacieniowane na zielono. Długość pierwotnego odcinka wynosi 1, więc na górnym rysunku długość boku kwadratów wynosi 1/9. Zacieniowano 12 kwadratów, log 9 12 ≈ 1,130929... . Jeszcze nie bardzo podobny do 1.261859... . Spójrzmy dalej. Na środkowym zdjęciu kwadraty są o połowę mniejsze, ich wielkość to 1/18, zacieniowana 30. log 18 30 ≈ 1,176733... . Już lepiej. Poniżej kwadraty są nadal o połowę mniejsze; 72 elementy zostały już zamalowane. log 72 30 ≈ 1,193426... . Jeszcze bliżej. Następnie należy zwiększyć liczbę iteracji i jednocześnie zmniejszyć kwadraty, wówczas „empiryczna” wartość wymiaru krzywej Kocha będzie stale zbliżać się do log 3 4, a w granicy całkowicie się zbiegnie.

Zima w Bostonie była wyjątkowo ciepła, ale wciąż czekaliśmy na pierwsze opady śniegu. Patrząc na padający za oknem śnieg, myślałam o płatkach śniegu i o tym, że ich budowa wcale nie jest łatwa do opisania matematycznego. Istnieje jednak jeden szczególny rodzaj płatka śniegu, znany jako płatek śniegu Kocha, który można opisać stosunkowo prosto. Dzisiaj przyjrzymy się, jak można zbudować jego kształt za pomocą narzędzia COMSOL Multiphysics Application Builder.

Tworzenie płatka śniegu Kocha

Jak już wspomnieliśmy na naszym blogu, fraktale można wykorzystać w . Płatek śniegu Kocha jest fraktalem, co jest godne uwagi, ponieważ istnieje bardzo prosty iteracyjny proces jego skonstruowania:

  1. Zacznijmy od trójkąta równobocznego, który w rzeczywistości jest zerową iteracją płatka śniegu Kocha.
  2. Znajdźmy punkt środkowy na każdej krawędzi bieżącego płatka śniegu.
  3. Na środku każdej krawędzi dodaj wystający na zewnątrz trójkąt równoboczny o boku równym 1/3 długości bieżącej krawędzi.
  4. Zdefiniujmy następną iterację płatka śniegu Kocha tak, aby znajdowała się na zewnątrz poprzedniego płatka śniegu i wszystkich dodanych trójkątów.
  5. Powtórz kroki 2-4 tyle razy, ile to konieczne.

Procedurę tę przedstawiono na poniższym rysunku dla pierwszych czterech iteracji rysowania płatka śniegu.

Pierwsze cztery iteracje płatka śniegu Kocha. Zdjęcie: Wxs - Praca własna. Licencja CC BY-SA 3.0, za pośrednictwem Wikimedia Commons.

Konstrukcja geometrii płatka śniegu Kocha

Skoro już wiemy, jakiego algorytmu użyć, przyjrzyjmy się, jak utworzyć taką strukturę za pomocą narzędzia COMSOL Multiphysics Application Builder. Otworzymy nowy plik i utworzymy obiekt 2D część geometryczna w węźle Definicje globalne. Dla tego obiektu ustawimy pięć parametrów wejściowych: długość boku trójkąta równobocznego; X- I y– współrzędne środka podstawy; oraz składowe wektora normalnego skierowane od środka podstawy do przeciwnego wierzchołka, jak pokazano na rysunkach poniżej.


Pięć parametrów używanych do ustawiania rozmiaru, położenia i orientacji trójkąta równobocznego.


Ustawianie parametrów wejściowych części geometrycznej.
Do skonstruowania trójkąta równobocznego służy prymityw wielokątny.


Obiekt może obracać się wokół środka dolnej krawędzi.


Obiekt można przesuwać względem początku.

Teraz, gdy zdefiniowaliśmy część geometryczną, użyjemy jej raz w przekroju Geometria. Ten pojedynczy trójkąt jest odpowiednikiem zerowej iteracji płatka śniegu Kocha. Użyjmy teraz Konstruktora aplikacji, aby utworzyć bardziej złożone płatki śniegu.

Oznaczenia interfejsu użytkownika aplikacji w Konstruktorze aplikacji

Aplikacja posiada bardzo prosty interfejs użytkownika. Zawiera tylko dwa komponenty, z którymi użytkownik może wchodzić w interakcję: Suwak (suwak)(oznaczone jako 1 na poniższym rysunku), za pomocą którego można ustawić liczbę iteracji potrzebnych do utworzenia płatka śniegu oraz Przycisk(etykieta 2), po kliknięciu którego zostanie utworzona i wyświetlona wynikowa geometria. Istnieje również Napis tekstowy(etykieta 3) i Wyświetlanie (wyświetlanie) danych(etykieta 4), która pokazuje liczbę określonych iteracji, a także okno Wykresy(etykieta 5), ​​która wyświetla ostateczną geometrię.


Aplikacja składa się z jednego formularza z pięcioma komponentami.

Aplikacja ma dwa Deklaracje, z których jedna definiuje wartość całkowitą zwaną Iteracjami, która domyślnie wynosi zero, ale użytkownik może ją zmienić. Zdefiniowana jest również tablica 1D dubletów zwana Centrum. Pojedynczy element tablicy ma wartość 0,5, która służy do znalezienia środka każdej krawędzi. Ta wartość nigdy się nie zmienia.


Ustawienia dla dwóch definicji.

Komponent Slider w interfejsie użytkownika kontroluje wartość liczby całkowitej, parametru Iteracje. Poniższy zrzut ekranu przedstawia ustawienia dla „Slidera” oraz wartości, które są ustawione jako liczby całkowite z zakresu od 0 do 5. To samo źródło (jak dla suwaka) jest również wybrane dla komponentu Wyświetlanie danych aby wyświetlić liczbę określonych iteracji na ekranie aplikacji. Ograniczamy potencjalnego użytkownika do pięciu iteracji, ponieważ zastosowany algorytm jest nieoptymalny i niezbyt wydajny, ale jest wystarczająco prosty do wdrożenia i zademonstrowania.


Ustawienia komponentu „Slider”.

Następnie przyjrzyjmy się ustawieniom naszego przycisku, pokazanym na zrzucie ekranu poniżej. Po naciśnięciu przycisku wykonywane są dwa polecenia. Najpierw wywoływana jest metoda CreateSnowFlake. Powstała geometria jest następnie wyświetlana w oknie graficznym.


Ustawienia przycisków.

Przyjrzeliśmy się teraz interfejsowi użytkownika naszej aplikacji i widzimy, że utworzenie dowolnej geometrii płatka śniegu musi odbywać się za pomocą wywoływanej metody. Przyjrzyjmy się kodowi tej metody, z dodaną numeracją linii po lewej stronie i stałymi łańcuchowymi podświetlonymi na czerwono:

1 model.geom("geom1" ).feature().clear(); 2 model.geom("geom1" ).create("pi1" , "Instancja Części" ); 3 model.geom("geom1" ).run("płetwa" ); 4 for (int iter = 1; iter "geom1" ).getNEdges()+1; 6 UnionList = „pi” + iter; 7 for (int Edge = 1; Edge "geom1" ).getNEdges(); Edge++) ( 8 String newPartInstance = "pi" + iter + krawędź; 9 model.geom("geom1" ).create(newPartInstance, "PartInstance" ).set("część" , "część1" ); 10 with(model. geom("geom1" ).feature(newPartInstance)); 11 setEntry("inputexpr" , "Długość" , toString(Math.pow(1.0/3.0, iter))); krawędź, środek)); 13 setEntry("inputexpr" , "py" , model.geom("geom1" ).edgeX(krawędź, środek)); " ", "nx" , model.geom("geom1" ).edgeNormal (krawędź, środek)); 15 setEntry("inputexpr" , "ny" , model.geom("geom1" ).edgeNormal(krawędź, środek)) ; 16 endwith(); 17 UnionList = newPartInstance 19 model.geom(; "geom1" ).create("pi" +(iter+1), "Unia" ).selection("input" ).set(UnionList ); 20 model.geom("geom1" ).feature("pi" +(iter+1)).set("intbnd" , "off" ); 21 model.geom("geom1" ).run("płetwa" ); 22)

Przejrzyjmy kod linia po linii, aby zrozumieć, jaką funkcję pełni każda linia:

  1. Usunięcie wszystkich istniejących ciągów geometrycznych, abyśmy mogli zacząć od zera.
  2. Tworzymy jedną instancję obiektu - nasz „trójkąt”, korzystając z domyślnego rozmiaru, orientacji i położenia. To jest nasz płatek śniegu zerowego rzędu z etykietą identyfikacyjną pi1.
  3. Sfinalizujmy geometrię. Ta operacja jest wymagana do aktualizacji wszystkich indeksów geometrii.
  4. Rozpocznijmy proces iteracji przez wszystkie podane iteracje płatka śniegu, używając definicji Iteracji jako warunku zatrzymania.
  5. Definiujemy pustą tablicę ciągów znaków UnionList. Każdy element tablicy zawiera identyfikator różnych obiektów geometrycznych. Długość tej tablicy jest równa liczbie krawędzi w ostatniej iteracji plus jeden.
  6. Definiujemy pierwszy element w tablicy UnionList. Jest to identyfikator wyniku poprzedniej iteracji. Należy pamiętać, że iteracja zerowa została już utworzona w liniach 1-3. Wartość całkowita iter jest automatycznie konwertowana na ciąg znaków i dodawana na końcu ciągu znaków „pi”.
  7. Przechodzimy przez liczbę krawędzi w wcześniej wygenerowanym płatku śniegu.
  8. Ustawiamy etykietę identyfikacyjną dla nowej instancji obiektu uzyskującej dostęp z instancji części „trójkątnej”, która jest utworzona na tej krawędzi. Należy pamiętać, że wartości całkowite iter i Edge są kolejno dodawane na końcu łańcucha pi, etykiety identyfikacyjnej instancji obiektu.
  9. Tworzymy instancję obiektu „trójkąt” i przypisujemy jej właśnie określoną etykietę identyfikacyjną.
  10. Wskazujemy, że linie 11-15 odnoszą się do bieżącej instancji obiektu (instancji części) za pomocą instrukcji with()/endwith().
  11. Wyznacz długość boku trójkąta. Rząd zerowy ma bok o długości jeden, zatem n-ta iteracja ma bok o długości (1/3)n. Funkcja toString() jest wymagana do rzutowania (konwertowania) typów danych – liczby zmiennoprzecinkowej na ciąg znaków.
  12. Ustawiamy X-współrzędna nowego trójkąta, jako środka boku ostatniej iteracji. Metoda EdgeX jest udokumentowana w . Przypomnijmy, że Center jest ustawione na 0,5.
  13. Ustawiamy y-koordynować.
  14. Ustawiamy X-składnik wektora normalnego trójkąta. Metoda EdgeNormal jest również udokumentowana w Podręcznik referencyjny programowania COMSOL.
  15. Ustawiamy y-składnik wektora normalnego.
  16. Zamykamy instrukcję with()/endwith().
  17. Dodaj identyfikator etykiety bieżącego trójkąta do listy wszystkich obiektów.
  18. Zamykamy wyszukiwanie wszystkich krawędzi.
  19. Tworzymy Unię Boolowską (unię logiczną) wszystkich obiektów w ciąg geometryczny. Do etykiety przypisujemy nową wartość pi N, gdzie N jest liczbą Następny iteracje. Nawiasy są wymagane wokół (iter+1), aby zwiększona wartość iteru została przekonwertowana na ciąg znaków.
  20. Wskazujemy, że wewnętrzne granice finalnego obiektu nie są zachowane.
  21. Sfinalizujmy geometrię. Ostatnia operacja aktualizuje wszystkie indeksy geometrii dla następnej iteracji płatka śniegu.
  22. Zamykamy cykl iteracji tworzenia płatka śniegu.

W ten sposób omówiliśmy wszystkie aspekty i elementy naszej aplikacji. Spójrzmy na wyniki!


Nasza prosta aplikacja do konstruowania płatka śniegu Kocha.

Moglibyśmy rozszerzyć naszą aplikację o zapis geometrii do pliku, a nawet bezpośrednie wykonywanie dodatkowych analiz. Na przykład moglibyśmy zaprojektować antenę fraktalną. Jeśli interesuje Cię projekt anteny, sprawdź nasz przykład, a nawet wykonaj jej układ od podstaw.

Spróbuj sam

Jeśli chcesz samodzielnie zbudować tę aplikację, ale nie ukończyłeś jeszcze Konstruktora aplikacji, pomocne mogą okazać się następujące zasoby:

  • Pobierz przewodnik Wprowadzenie do środowiska tworzenia aplikacji w języku angielskim
  • Obejrzyj te filmy i dowiedz się, jak z nich korzystać
  • Przeczytaj te tematy, aby zapoznać się ze sposobem wykorzystania aplikacji symulacyjnych

Po zapoznaniu się z tym materiałem zobaczysz, jak można rozszerzyć funkcjonalność aplikacji, aby zmienić rozmiar płatka śniegu, wyeksportować utworzoną geometrię, oszacować powierzchnię i obwód i wiele więcej.

Jaką aplikację chciałbyś stworzyć w COMSOL Multiphysics? o pomoc.

Liczba ta jest jednym z pierwszych fraktali zbadanych przez naukowców. Wywodzi się z trzech kopii krzywej Kocha, która po raz pierwszy pojawiła się w artykule szwedzkiego matematyka Helge von Kocha w 1904 roku. Krzywa ta została wymyślona jako przykład linii ciągłej, która nie może być styczna do żadnego punktu. Linie posiadające tę właściwość były znane już wcześniej (swój przykład zbudował Karl Weierstrass już w 1872 r.), jednak krzywa Kocha wyróżnia się prostotą konstrukcji. Nieprzypadkowo jego artykuł nosi tytuł „O ciągłej krzywej bez stycznych, która wynika z elementarnej geometrii”.

Jak krok po kroku zbudować krzywą Kocha.

Pierwsza iteracja to po prostu segment początkowy. Następnie dzieli się go na trzy równe części, środkową uzupełnia się, tworząc regularny trójkąt, a następnie wyrzuca. Rezultatem jest druga iteracja - linia przerywana składająca się z czterech segmentów. Do każdego z nich stosuje się tę samą operację i uzyskuje się czwarty etap konstrukcji. Kontynuując w tym samym duchu, możesz uzyskać coraz więcej nowych linii (wszystkie będą liniami przerywanymi). A to, co dzieje się w granicy (będzie to już wyimaginowany obiekt), nazywa się krzywą Kocha.

Podstawowe własności krzywej Kocha

1.Ojest ciągła, ale nigdzie nie jest różniczkowalna. Z grubsza rzecz biorąc, właśnie po to został wymyślony - jako przykład tego rodzaju matematycznych „dziwaków”.

2. Ma nieskończoną długość. Niech długość pierwotnego odcinka będzie równa 1. Na każdym etapie konstrukcji każdy z odcinków tworzących linię zastępujemy linią przerywaną, co 4/3 razy dłużej. Oznacza to, że długość całej linii przerywanej na każdym kroku jest mnożona przez 4/3 : długość linii o numerze n wynosi (4/3)n–1. Dlatego linia graniczna nie ma innego wyjścia, jak tylko być nieskończenie długa.

3.Płatek śniegu Kocha ogranicza skończony obszar. I to pomimo faktu, że jego obwód jest nieskończony. Ta właściwość może wydawać się paradoksalna, ale jest oczywista - płatek śniegu wpasowuje się całkowicie w okrąg, więc jego powierzchnia jest oczywiście ograniczona. Pole można obliczyć i nie potrzeba do tego nawet specjalnej wiedzy - w szkole uczy się wzorów na pole trójkąta i sumę postępu geometrycznego. Dla zainteresowanych obliczenia są wymienione poniżej drobnym drukiem.

Niech bok pierwotnego regularnego trójkąta będzie równy a. Następnie jego obszar. Najpierw bok wynosi 1, a pole wynosi: . Co się stanie wraz ze wzrostem iteracji? Możemy założyć, że małe trójkąty równoboczne są dołączone do istniejącego wielokąta. Za pierwszym razem jest ich tylko 3, a za każdym razem jest ich 4 razy więcej niż poprzednio. Oznacza to, że w n-tym kroku zostanie on ukończony Tn = 3 4n–1 trójkąty. Długość boku każdego z nich wynosi jedną trzecią boku trójkąta wykonanego w poprzednim kroku. Oznacza to, że jest równe (1/3)n. Pola są proporcjonalne do kwadratów boków, więc pole każdego trójkąta wynosi . Nawiasem mówiąc, w przypadku dużych wartości n jest to bardzo małe. Całkowity udział tych trójkątów w powierzchni płatka śniegu wynosi TnSn = 3/4 (4/9)nS0. Dlatego po n-tym kroku obszar figury będzie równy sumie S0 + T1 S1 + T2 S2 + ... +Tn Sn = . Płatek śniegu uzyskuje się po nieskończonej liczbie kroków, co odpowiada n → ∞. Wynik jest sumą nieskończoną, ale jest to suma malejącego postępu geometrycznego. Jest na to wzór: . Powierzchnia płatka śniegu wynosi.


Opcje konstrukcji płatka śniegu Kocha

Płatek śniegu Kocha „wręcz przeciwnie” otrzymamy, jeśli skonstruujemy krzywe Kocha wewnątrz pierwotnego trójkąta równobocznego.

Linie Cesaro. Zamiast trójkątów równobocznych stosuje się trójkąty równoramienne o kącie przy podstawie od 60° do 90°. Na rysunku kąt wynosi 88°.


Opcja kwadratowa. Tutaj kwadraty są gotowe.



Powiązane publikacje