zeichnen mit mesh oder surf < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 14:42 Mi 24.01.2007 | Autor: | Mikke |
Hallo!
ich als Matlab-Anfänger hätte ein Frage die ich alleine nicht wirklich lösen kann.
zunächst sollte ich eine Funktion julia definieren, die für eine Zahl [mm] z_{0}=x_{0}+i*y_{0} \in \IC [/mm] die Anzahl n der Iterationen ausgibt, nach denen das Folgeglied [mm] z_{n} [/mm] den Kreis mit Radius 2 um 0 verlässt. Eingabeparameter sollten der Realteil [mm] x_{0}, [/mm] der Imaginärteil [mm] y_{0} [/mm] des Startpunktes [mm] z_{0}sowie [/mm] der Parameter c [mm] \in \IC [/mm] der [mm] q_{c} [/mm] bestimmt.
[mm] q_{c}: \IC [/mm] --> [mm] \IC, [/mm] z --> [mm] z^{2} [/mm] + c.
Da man nicht unendlich viele Iterationschritte testen kann sollte die Iteration nach einer bestimmten Anzahl Schritten abgebrochen werden (z.B. 25).
das hab ich wohl raus:
function n = julia (x,y,c)
z= x+i*y;
n=0;
while abs(z)<2 & n<25
[mm] z=z^{2}+c;
[/mm]
n=n+1;
end
meine frage jetzt:
wie kann ich diese Funktion julia in einem geeignet gewählten Bereich der komplexen Ebene mit surf oder mesh zeichnen, jeweils für verschiedene Werte des Parameters c,
die wären: -1,5+0,2i, -0,1+0,75i, -0,4+0,4i , -1,32.
dazu soll ich eine auflösung in x- und y-richtung
nehmen von mindestens 200 punkten.
Könnt ihr mir hier zeigen wie ich das mache.
danke schon mal
MfG Mikke
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 15:39 Do 25.01.2007 | Autor: | MeeMa |
Hi,
bei der Folge handelt es sich um eine Julja-Menge siehe auch [http://de.wikipedia.org/wiki/Julia-Mengen] Wikipedia. (Mandelbrotbäume).
Um mit Mesh oder Surf in MatLab zu arbeiten benötigt man einen Grid aus x und y Daten.
Das folgende Skript welches DU noch auf Dein Problem anpassen musst, sollte Dir weiter helfen:
x = linspace(0,10,200);
y = linspace(0,10,200);
c = -1.5+0.2i;
[xdata, ydata] = meshgrid(x,y);
z = complex(xdata,ydata);
z = z.^2 +c;
mesh(z)
viel Spaß
Meema
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 21:32 Do 25.01.2007 | Autor: | Mikke |
Danke schon mal. aber an welcher Stelle und wie, baue ich denn meine zu zeichnende Funktion julia ein, da ich ja gerade diese zeichnen will mit den verschiedenen Werten für c?
Danke und Gruß mikke
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:36 So 28.01.2007 | Autor: | Mikke |
Könntet ihr mir evtl einmal genau zeigen wie ich das dann genau auf mein Problem hier anwende?Komme hier nicht weiter...
habe mal versucht:
c=-1,5+0,2*i;
X=linspace(0,10,200);
Y=linspace(0,10,200);
[x,y]=meshgrid(X,Y);
surf(x,y,julia(X,Y,c);
hier kommt aber immer eine Fehlermeldung
Was mache ich falsch und wie müsste es richtig sein?
Danke schon Mal MFG Mikke
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:28 Mi 31.01.2007 | Autor: | MeeMa |
> Könntet ihr mir evtl einmal genau zeigen wie ich das dann
> genau auf mein Problem hier anwende?Komme hier nicht
> weiter...
> habe mal versucht:
>
> c=-1,5+0,2*i;
> X=linspace(0,10,200);
> Y=linspace(0,10,200);
> [x,y]=meshgrid(X,Y);
> surf(x,y,julia(X,Y,c);
>
> hier kommt aber immer eine Fehlermeldung
> Was mache ich falsch und wie müsste es richtig sein?
> Danke schon Mal MFG Mikke
Hi,
Probiers mal mit nem Punkt statt eines Kommas.
Also:
c=-1.5+0.2*i;
Aber hier z.B ist der Komma angebracht:
X=linspace(0,10,200);
|
|
|
|