Lehrer Nussbaumer - JAVA (eine kleine Einführung ;)

Grundlagen

GUI

Eingabe

Ausgabe

Applikationen

Applets

  1. CheckBoxes
  2. Events
  3. Menüs
  4. Langton-Ameise
  5. Turmiten
  6. Fraktale
  7. Zelluläre Automaten
  8. Fraktales Wachstum
  9. Logistisches Wachstum
  10. Feigenbaum Diagramm
  11. Sortieralgorithmen
  12. Lorenz-Plot

Servlets

Beispiele

Spiele

IDEs

Skriptum

JAVA-DOCS


-----------------
letzte Änderung:
09 December 2021
-----------------
Lehrer Nussbaumers Seite

... in Arbeit ...

Feigenbaumdiagramm

Untersucht man das Verhalten der Verhulst-Funktion bei verschiedenen Anfangswerten, so stellt sich heraus, dass zwischen den Werten 3.0 und 4.0 immer mehr Häufungswerte auftreten. Dies kann man im Feigenbaumdiagramm zusammenfassen:

Beispiel:

Code:

import java.awt.*;
import java.awt.event.*;

public class Feigenbaum extends java.applet.Applet implements MouseListener, MouseMotionListener {
    int mausx;

    public void init() {
        setBackground(Color.white);
        addMouseListener(this);
        addMouseMotionListener(this);
    }
   
    public double bif(double r, double x) {
        return r*x*(1-x);   
    }
    
    public void paint (Graphics bs) {
        Color lgrey = new Color(160,160,160);
        bs.setColor(lgrey);
         for (int i=0;i<20;i++) {
            bs.drawLine(40*i, 0, 40*i, 400);
            bs.drawLine(0, 20*i, 800, 20*i);
         }
         bs.setColor(Color.red);
         for (int x=0;x<440;x++) {
            double a=2.9 + (double) x /400;
            double xr =0.01;
            for (int i=0;i<100;i++) xr=bif(a,xr);
            for (int i=0;i<80;i++) {
                xr=bif(a, xr);
                int y=400-(int)(xr*400);
                bs.drawRect(x,y,1,1);
            }
        }
 
        if (mausx < 439) {
            bs.setColor(Color.black);
            for (int i=0;i<20;i++) bs.drawLine(mausx, i*20, mausx, i*20+12);
            double ys=0.01;
            double r = ((double)mausx-40)/400 +3; 
            String ausgabe = "r = " + r;
            bs.drawString(ausgabe,450,20);
            bs.setColor(Color.red);
            for (double x=0.01;x<3;x+=0.01) {
                ys = bif(r,ys);
                bs.fillRect((int)(x*100+500),400-(int)(ys*400),2,2);
            }
        }
    }
    
    public void mouseClicked(MouseEvent e) {
    }    
    
    public void mouseDragged(MouseEvent e) {
    }
    
    public void mouseEntered(MouseEvent e) {
    }
    
    public void mouseExited(MouseEvent e) {
    }
    
    public void mouseMoved(MouseEvent e) {
    }
    
    public void mousePressed(MouseEvent e) {
        mausx = e.getX(); 
        repaint();
    }
    
    public void mouseReleased(MouseEvent e) {
    }
} 

© Alfred Nussbaumer, Weblog "MiniNuss"