Μορφοκλασματική καμπύλη Λεβί

Στα μαθηματικά, η Μορφοκλασματική καμπύλη Λεβί είναι μια αυτοομοιόμορφη καμπύλη φράκταλ που περιγράφηκε για πρώτη φορά και της οποίας οι ιδιότητες διαφοροποίησης αναλύθηκαν από τον Ερνέστο Τσεζάρο το 1906 και τον Γκέοργκ Φάμπερ το 1910, αλλά η οποία τώρα φέρει το όνομα του Γάλλου μαθηματικού Πολ Λεβί, ο οποίος ήταν ο πρώτος που περιέγραψε τις ιδιότητες αυτοομοιομορφίας της και παρείχε μια γεωμετρική κατασκευή που την παρουσιάζει ως αντιπροσωπευτική καμπύλη της ίδιας κατηγορίας με την καμπύλη Κοχ. Πρόκειται για μια ειδική περίπτωση καμπύλης διπλής περιόδου, μια καμπύλη του Ντε Ραμ (de Rham).

Ιδιότητες
Η διάσταση Χάουσντορφ της καμπύλης Λέβι είναι ίση με 2 (περιέχει ανοιχτά σύνολα). Αυτό το αποτέλεσμα μπορεί να συναχθεί απευθείας από την κατασκευή της με δύο ομοθετικές σχέσεις του λόγου 1/√2.
Το όριό της έχει εκτιμώμενη διάσταση περίπου 1,9340.
Η καμπύλη του Λεβί στρώνει το επίπεδο.
Αν το μήκος του αρχικού τμήματος είναι 1, η περιοχή που καλύπτεται από την καμπύλη Λεβί είναι 1/45.
Η καμπύλη Λεβί είναι μία από τις έξι κανονικές 2-αυτοπαύλες (μπορεί να ανοίξει με δύο αντίγραφα του εαυτού της, ίδιου μεγέθους).

Κατασκευή συστήματος L

Αν χρησιμοποιήσουμε το σύστημα Lindenmayer, η κατασκευή της καμπύλης C αρχίζει με μια ευθεία γραμμή. Ένα ισοσκελές τρίγωνο με γωνίες 45°, 90° και 45° κατασκευάζεται χρησιμοποιώντας αυτή την ευθεία ως υποτείνουσα. Στη συνέχεια, η αρχική ευθεία αντικαθίσταται από τις άλλες δύο πλευρές αυτού του τριγώνου.

Στο δεύτερο βήμα, οι δύο νέες ευθείες σχηματίζουν η καθεμία τη βάση ενός άλλου ορθογώνιου ισοσκελούς τριγώνου και αντικαθίστανται από τις άλλες δύο πλευρές του αντίστοιχου τριγώνου. Έτσι, μετά από δύο στάδια, η καμπύλη παίρνει την όψη τριών πλευρών ενός ορθογωνίου με το ίδιο μήκος με την αρχική ευθεία, αλλά με το μισό πλάτος.

Σε κάθε επόμενο στάδιο, κάθε ευθύγραμμο τμήμα της καμπύλης αντικαθίσταται από τις άλλες δύο πλευρές ενός ορθογώνιου ισοσκελούς τριγώνου που κατασκευάζεται πάνω του. Μετά από n βήματα, η καμπύλη αποτελείται από 2n ευθύγραμμα τμήματα, καθένα από τα οποία είναι μικρότερο από την αρχική γραμμή κατά έναν παράγοντα 2n/2.

Αυτό το σύστημα L μπορεί να περιγραφεί ως εξής:
{|
|Μεταβλητές:||
|-
|Σταθερές:||
|-
|'''Έναρξη:||
|-
|Κανόνες:||
|}

όπου "F" σημαίνει "τραβήξτε προς τα εμπρός", "+" σημαίνει "στρέψτε δεξιόστροφα κατά 45°" και "-" σημαίνει "στρέψτε αριστερόστροφα κατά 45°".

Η καμπύλη φράκταλ που αποτελεί το όριο αυτής της "άπειρης" διαδικασίας είναι η καμπύλη του Λεβί C. Πήρε το όνομά της από την ομοιότητά της με μια ιδιαίτερα διακοσμημένη εκδοχή του γράμματος "C". Η καμπύλη μοιάζει με τις λεπτότερες λεπτομέρειες του δέντρου του Πυθαγόρα.

Η διάσταση Χάουστορφ της καμπύλης C ισούται με 2 (περιέχει ανοιχτά σύνολα), ενώ το σύνορο έχει διάσταση περίπου 1.9340.

Κατασκευή IFS

Εάν χρησιμοποιείτε ένα επαναληπτικό σύστημα συναρτήσεων (IFS, ή στην πραγματικότητα τη μέθοδο IFS του παιχνιδιού χάους), τότε η κατασκευή της καμπύλης C είναι λίγο πιο εύκολη. Θα χρειαστεί ένα σύνολο από δύο "κανόνες" οι οποίοι είναι οι εξής: Δύο σημεία σε ένα επίπεδο (οι μεταφραστές), καθένα από τα οποία συνδέεται με έναν συντελεστή κλίμακας 1/√2. Ο πρώτος κανόνας είναι μια περιστροφή 45° και ο δεύτερος −45°. Αυτό το σύνολο θα επαναλάβει ένα σημείο [x, y''] από την τυχαία επιλογή οποιουδήποτε από τους δύο κανόνες και θα χρησιμοποιήσει τις παραμέτρους που σχετίζονται με τον κανόνα για την κλίμακα/περιστροφή και τη μετάφραση του σημείου χρησιμοποιώντας μια συνάρτηση 2D-μετασχηματισμού.

Διατύπωση :

από το αρχικό σύνολο σημείων .

Παράδειγμα εφαρμογής της καμπύλης Λεβί C
// Δείγμα υλοποίησης της καμπύλης Λεβί C σε Java

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.util.concurrent.ThreadLocalRandom;

public class C_curve extends JPanel {

    public float x, y, len, alpha_angle;
    public int iteration_n;

    public void paint(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        c_curve(x, y, len, alpha_angle, iteration_n, g2d);
    }

    public void c_curve(double x, double y, double len, double alpha_angle, int iteration_n, Graphics2D g) {
        double fx = x; 
        double fy = y;
        double length = len;
        double alpha = alpha_angle;
        int it_n = iteration_n;
        if (it_n > 0) {
            length = (length / Math.sqrt(2));
            c_curve(fx, fy, length, (alpha + 45), (it_n - 1), g); // Recursive Call
            fx = (fx + (length * Math.cos(Math.toRadians(alpha + 45))));
            fy = (fy + (length * Math.sin(Math.toRadians(alpha + 45))));
            c_curve(fx, fy, length, (alpha - 45), (it_n - 1), g); // Recursive Call
        } else {
            Color[] A = {Color.RED, Color.ORANGE, Color.BLUE, Color.DARK_GRAY};
            g.setColor(A[ThreadLocalRandom.current().nextInt(0, A.length)]); //For Choosing Different Color Values
            g.drawLine((int) fx, (int) fy, (int) (fx + (length * Math.cos(Math.toRadians(alpha)))), (int) (fy + (length * Math.sin(Math.toRadians(alpha)))));
        }
    }

    public static void main(String[] args) {
        C_curve points = new C_curve();
        points.x = 200; // Stating x value
        points.y = 100; // Stating y value
        points.len = 150; // Stating length value
        points.alpha_angle = 90; // Stating angle value
        points.iteration_n = 15; // Stating iteration value

        JFrame frame = new JFrame("Points");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(points);
        frame.setSize(500, 500);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

    }
}

Δείτε επίσης 
Αναδρομή
Σύνολο Μάντελμπροτ 
Σύνολο Julia
Οικοδομήσιμο Σύμπαν

Παραπομπές

 
 
 
Φράκταλ
Μαθηματική λογική
Φιλοσοφία των μαθηματικών
Ιστορία των Μαθηματικών