PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verhulst und Kunst


richy
04.11.11, 18:14
Ein kleines Schmankerl zu Math Verhulst Mandelbrot :

Einige Kuenstler verwenden die Verhulst Gleichung in der Musik um damit avangardistische Werke zu produzieren. Ein Problem dabei ist, dass sie die Verhulst Gleichung meist nicht richtig anwenden und die Zeitfunktion y[k] verwenden. Fuer musikalische Anwendungen sind jedoch die verketteten Verhulst Polynome weitaus interessanter. Ich hatte schonmal bemerkt, dass man Verhulst als den Erfinder der Tecno Base Drum betrachten kann. Denn das verkettete Polynom z.B fuer a=4; k=5 stellt eine solche dar.
In folgendem kurzen mp3 Schnipsel sind alle Klaenge (ausser Gucci Fiorucci :-) mittels den Verhulst Gleichung (Poynomen erzeugt). Filter Sweeps ueber f[k][x].
Man beachte die moderne sweep Base Drum. Einfach ein a=4 Verhulst Polynom :-)

http://home.arcor.de/richardon/2011/chic0.mp3

Gruesse

mermanview
07.11.11, 12:05
Hallo richy,

habe mir das meiste zur Verhulst-Gleichung "angesehen" und zu Iterationen, die generell eine unverhersagbare Zahlenkette erzeugen, bzw. durch Osszillationswerte Feigenbaumverzweigungen erzeugen.

Bloß "angesehen", weil das fachliche Erarbeiten nur im Schneckentempo vorangeht.
Mir bleiben bei neben Arbeit, Familie und mal "Nichtstun" alle drei Tage mal 'ne halbe Stunde für Mathe und Physik.

(Der "Wunschgedankenthread" war ein Marathon, ich konnte aber schlecht klein bei geben, dafür ist die Idee zu schön ;- ).

Meine bisherige "Glanzleistung" in Mathe. war eine Näherung der Sinus- Kosinuswerte per Iteration.
Dei Anfangswerte habe ich abgeleitet aus dem gemeinsamen Schnittpunkt aus Einheitskreis und einem Konstruktionskreis um (1 / 0) mit dem Radius r= Pi/180.

Alles von Hand gemacht, mit Vektoren hergeleitet, die Formel die dabei herauskam, war letztenendes ein Additionstheorem auf die Anfansgwerte angewandt (in "alpha" Schritten.)

r=Pi/180
x1= 1 - r^2/2

x(n+1) = x(n) * (1 - r^2/2) - Wurzel(1-x(n)^2) * Wurzel(r^2 - r^4/4)
y(n+1) = wurzel(1 - x(n+1)^2) -> Sinuswerte

(die Formel ist für Echtzeitanwendungen wohl nicht geeignet)

Je kleiner r umso genauer sind die Ergebnisse, trotz akkumlierter Ungenauigkeit durch vermehrte Rechenschritte, zumindest mit Excel.

Bei verhulst und Co. fehlt mir noch das vollständige Verständnis für die imaginäre Zahl: i^2= -1, um komplexwertige Zahlen zu verstehen.

Überrascehnd fand ich den Hinweis bei Wiki ("komplexe Zahlen"), dass Pythagoras angeblich mal einen Schüler hinrichten ließ, weil er an irrationalen Zahlen festhielt, den Mann (Pythagoras) muss ich wohl wieder von meiner Idol-Liste streichen.
Mir ist schonklar, dass auch unser Zahlensystem, eine imaginäre Beschreibung von Sachverhalten ist:
Es gibt z.B. zwei einzelne Ameisen, die sich begegnen, es gibt aber keine Zahl "Zwei", die druaßen rumspaziert.

Für das Verständnis der Verwendung von i^2=(-1), muss ich noch ein wenig damit rumprobieren und lesen.

Habe übrigens früher (ab '85) mit einem ORIC 1, CPU 6502, 1 MHz Takt,
16 KB (minus Screen) in BAsic und Hex-Code rumprobiert, mehr war finanziell nicht drin.
Als ich von deinen Zahlenreihen am Atari las, fiel mir jene unvergessliche Romantik der damaligen Gehversuche am HomePC ein.
Ich selber habe eher drehende 3 D Darstellungen versucht, und einmal die Simulation einer optischen Rückkopplung.
(Die Formel die Körper in 3D im Minutentakt drehen und verziehen ließ stand auf 2,8m Tepete quer in großen Lettern:)

Ich hab irgendwann mal einen Bericht im TV gesehen, welcher zeigte, wie bei der Rückkoplung ziwschen Kamera und TV unglaubliche Bilder entstehen, wenn man den Abstand in einem bestimmten Bereich minimal verändert

Zum Thema Musik sind mir aber eher die Rückkopplungen von Hendrix bekannt, (da gibt's es auch viele schöne, gezogene Feedbacks.)

So far erstmal,
ich hoffe, ich langweil dich nicht,
selbst erzeugte Mermanmengen gibbet z.Zt. noch nicht

Gruß, Merman

richy
08.11.11, 21:51
Hi merman
Teil 1
Bloß "angesehen", weil das fachliche Erarbeiten nur im Schneckentempo vorangeht. Es gibt bei solchen nichtlinearen Iterationen leider nur wenig zu erarbeiten, da nur weniges analytisch loesbar ist. Man kann sich in einem ersten Schritt das Thema erschliessen, wenn man ein wenig mit den Gleichungen herumspielt. Die Verhulst Gleichung ist hierfuer ein idealer Kandidat, da sie gerne als Prototyp verwendet wird. Sie enthaelt zudem alle Elemente die bei einem quadratischen Charakter auftreten koennen. Ich habe einen kleinen, hoffe moeglichst verstaendlichen Einstiegskurs fuer die Gleichung auf meine Homepage gestellt :
http://home.arcor.de/richardon/richy2001/mathe/chaos/analytic/ana_index.htm
Dabei habe ich versucht eine Mischung aus geometrischer und algebraischer Erklaerung zu verwenden. Wobei einige Rechnungen schon sehr aufwendig werden. Aber da kannst du auch einfach das Ergebnis uebernehmen.

Normleweise lernt man die Iteration so kennen, dass man immer einen willkuerlichen Anfangswert y0 verwendet und dann das Ergebnis der numerischen Simulation, die man am besten selber durchfuehrt, fuer verschiedene Parameter r (oder auch als a bezeichnet) sich betrachtet.
Dazu habe ich mal dieses Java Applet im Hammond Orgel Stil :-) geschrieben :
http://home.arcor.de/richardon/richy2001/mathe/verhulst/verhulst1.htm
Einfach mal an dem Parameter a und a_fein ziehen.

Das Ergebnis dieser Spielerei stellt das Feigenbaumdiagramm dar. Es zeigt welche Werte die Iteration annimmt dargestellt ueber den Parameter r.
Das Feigenbaumdiagramm ist dabei unabhaengig von Startwert yo.
Die Iteration ist stabil fuer den Parameter 0..4 (aber auch in Inseln ausserhalb dieses Intervalls)
Bemerkenswert ist, dass spezielle Charakteren meist fuer Parameterwerte 1+Wurzel(n) auftreten. n=0,1,2,3,4,5,6,7,8,9
So beginnt das grosse Fester der Ordnung bei 1+Wurzel(8) mit einem Dreierzyklus. Und hier folgen die Itarationswerte dazu einer Zipfverteilung.
Der Zweierzyklus beginnt bei 3.0=1+Wurzel(4) und der Viererzyklus bei 1+Wurzel(6) Dann kann man keine einfache Form mehr fuer die Peridenverdopplung mehr angeben und die Iteration wird beim Feigenbaumpunkt chaotisch. Ueber den Feigenbaumpunkt r=3.5699456 ... weiss man wenig. Nichteinmal ob das eine rationale oder irrationale Zahl ist.

Es gibt tatsaechlich einige Musiker, die die Iteration in Audiomaterial umgesetzt haben. (Ich habe die Polynome umgesetzt) In der Hoffnung, dass dieser zufaellige Bereich etwas verblueffendes in sich birgt. Dem ist aber kaum so. Insbesonders ist die Iteration fuer r=4 lediglich ein falsch abgetasteter Cosinus. Ein Kuenstler sollte wissen, dass Auftrittsmerkmale einer Sprache, also auch der Musik einer Zipf Verteilung folgen. Wenn man schon solche Versuche unternimmt sollte man nach solchen Stellen in der Iteration suchen und eine davon ist 1+Wurzel(8)+delta.
Damit habe ich auch schon selbst mit der deutschen Sprache exerimentiert, wobei das Ergebnis nun doch (abgesehen von dem Wort "Hasenrente" ) bescheiden war. Wobei ich dennoch eine verblueffende EIgenschaft fand. Ich habe naemlich nicht nach einer exakten Zipf Verteilungen 1/m gesucht, (davon gibt es nur eine in der Verhulst Gleichung) sondern nach Verteilungen die moeglichst exakt der deutschen Sprache entsprechen. Und davon gibt es im grossen Fenster der Ordnung (jenseits 1+Wurzel(8) ) jede Menge Parameter.

http://home.arcor.de/richardon/2010/plapper6.gifhttp://home.arcor.de/richardon/2010/plapper7.gif
http://www.quanten.de/forum/showthread.php5?t=1651

An den Stellen an denen die rote Funktion etwa gleich Null ist das Verteilungshistogramm der diskretisierten Verhulst Werte gleich dem des deutschen Buchstabenhistogrammes. Der Wert ist ueber die Fehlemethode von Gauss ermittelt. Schon recht aufwedig. Man kann die Verhulst Gleichung damit auch als einen sehr variablen Verteilungsgenerator betrachten.

richy
08.11.11, 22:18
Teil 2

Auch fuer die folgenden Betachtungen benoetigst du keine komplexe Zahlen. Das ist das angenehme bei Verhulst. Allerdings werden auch im folgenden die Rechnungen schnell exorbitant lang. Wobei man hier auch tricksen kann.

Einen tieferen Einblick in die Gleichung erhaet man, wenn man nicht alleine die Iterierte y(k+1) in y(k+1)=r*y(k)*(1-y(k)) fuer ein y(0)=y0 betrachtet sondern stets alle Anfangswerte y(0) iteriert und betrachtet.
Das habe ich auf meiner Homepage etwas genauer erklaert.

Im ersten Iterationsschritt erhaelt man dann das Polynom : r*y(k)*(1-y(k))
Und im folgenden erhaelt man eine mathematische Operation, die im allgemeinen nicht so gelaeufig ist. Die Verkettung.
Formal ist diese einfach: Um y[k+2]zu berechnen ersetzt du in
r*y(k)*(1-y(k)) jedes y(k) durch (r*y(k)*(1-y(k)) :
y(k+2)=r*(r*y(k)*(1-y(k)))*(1-(r*y(k)*(1-y(k)))

Ohne ein Algebrasystem jede Menge Rechenarbeit, aber will man diese verketteten Polynome lediglich darstellen kann man auch einfach einen Vektor der Einganswerte iterieren. Und ueber diese verketteten Polynome, die ganz spezielle, seltsame Eigenschaften aufweisen erhaelt man einen tieferen Einblick in die Gleichung.

Ein einfacheres Beispiel fuer eine Verkettung :
y(k+1)=(1+1/y(k))
y(k+2)=1+1/(1+1/y(k))
y(k+3)=1+1/(1+1/(1+1/y(k)))
Hier erhaelt man kein verkettetes Polynom sondern einen Kettenbruch. Jenen des goldenen Schnittes.

Die Basedrum in meinem Audioschnipsel ist einfach das 5 (oder wars 7?) fach verkettete Polynom der Gleichung y(k+1)=4*(1-y(k)).
Alle Klaenge sind Schnipsel aus den verketteten Polynomen. Wahrscheinlich ist das sogar ein einmaliges Audioschnipsel. Als Musiker kenne ich mich mit der Programmierung analoger Baserums recht gut aus. Das Verhulst Polynom fuer r=4 enthaelt alles was eine ausgewogene moderne Basedrum enthalten muss.

Eine besonderheit an dem Audioschnipsel ist noch , dass ich eine Originalaufnahme von Chic verwendet habe und alle Audio Events im Original Timing durch die Verhulst Schnipsel ersetzt habe.
Gruesse

richy
08.11.11, 23:57
(die Formel ist für Echtzeitanwendungen wohl nicht geeignet)
Ja, nicht unbedingt :-)

Aber schoen dass du so etwas ausprobiert hast. Ich hatte auch mal die Idee fuer einen iterierten Sinus. Und diese wie folgt geloest.
Man weiss ja : Die Ableitung der exp-Funktion ist wiederum die exp-Funktion
dexp(alpha*t)/dt = alpa*exp(alpha*t) Klaro oder ?

Als Elektolurch mache ich mir es jetzt einfach und verwende alpha=i*a
sowie exp(i*a*t)=cos(a*t)+i*sin(a*t) und setze das ein :

dcos(a*t)/dt+i*dsin(a*t)/dt=i*a*cos(a*t)+i*a*i*sin(a*t)
dcos(a*t)/dt+i*dsin(a*t)/dt=i*a*cos(a*t)-a*sin(a*t)

Imaginaer und Realteil getrennt betrachten :
dcos(a*t)/dt=-a*sin(a*t)
dsin(a*t)/dt= a*cos(a*t)

Wie in deiner Iteration erhalte ich ein System. Das ist auch logisch, da eine Schwingung immer eine DGL 2 ter Ordnung ist. Und ich substituiere wie du :

x(a*t)=cos(a*t)
y(a*t)=sin(a*t)

dx(a*t)/dt=-a*y(a*t)
dy(a*t)/dt= a*x(a*t)

Nun mache ich etwa aus numerischer Sicht grauenhaftes. Ich ersetze das Differential durch eine Differenz erster Ordung. In der Regel ist das viel zu ungenau, aber egal .... :

x(k+1)-x(k)=dt*-a*y(k)
y(k+1)-y(k)=dt* a*x(k)

mit c=a*dt =>

x(k+1)=x(k)-c*y(k), x(0)=1
y(k+1)=y(k)+c*x(k), y(0)=0

Implementation :
> y:=0; x:=1; c:=3.14*0.01; N:=800;
> for i from 1 to N do
> st:=x;
> x:=x-c*y;
> y:=y+c*st;
> fx[i]:=x;
> fy[i]:=y;
od:

Mit st sichere ich den Wert x(i)
Wohl aufgrund der ungenauen Differenz 1.ter Ordung ist das Ergebnis sehr bescheiden.

http://home.arcor.de/richardon/2011/no_sinus.gif

Vielleicht habe ich mich auch verrechnet ? Egal.

Jetzt implementiere ich die Gleichung mal falsch, indem ich den x Wert nicht sichere :

> for i from 1 to N do
> x:=x-c*y;
> y:=y+c*x;
> od:

Und die Iteration erzeugt nun seltsamerweise einen stabilen recht genauen Sinus :

http://home.arcor.de/richardon/2011/sinus.gif

Mit geringstem Aufwand nahezu perfekt.
Hmm, kannst du es erklaeren oder jemand anderes im Forum ?
Also ich im Moment nicht :-)
Gruesse

mermanview
11.11.11, 11:22
Hallo richy,

ich bin nicht ganz sicher,
aber die letzte von dir programmierte Berechnung:

> for i from 1 to N do
> x:=x-c*y;
> y:=y+c*x;
> od:


scheint dem von mir angesprochenen Additionstheorem zu entsprechen:

x(n+1) = x(n) * x(1) - y(n) * y(1)

Insofern erhälst du eine ungefähre Sinuskurve, sie müsste allerdings ungenau sein, da deine Konstante c=0.01 sehr belibieg scheint,
probiersmal mit c(x) = 1- ((Pi/180)^2)/2 für x und c(y)=wurzel(1- c(x)^2) für y (verzeih die kryptische Schreibweise).

(vielleicht war das Additionstheorem nicht so gut zu erkennen, da ich y als Funktion von x dargestellt habe, und x1, y1 als Funtion von r.
(aus dem gem. Schnittpunkt zw. Einheitskreis und Konstruktionskreis mit Radius r (Konstruktionskreis)).

x1 und y1 sind hier sowohl Startwerte, als auch Konstanten.

In den Gleichungen deines Programmes steht c (=1/100) als Konstante,
insofern müsste man überprüfen, wie genau z.B. dein Wert für z.B. 89° (nach 89 Iterationsschritten) wäre.

In meiner Berechnung erhalte ich nach 89 Iterationsschritten (mit x1 = 1 - r^2/2 und y1 = Wurzel(1-x1^2):

merman_sin(89) = 0,999848039
zu Excel_sin(89) = 0,999847695
= Differenz von : 0,000000343903

(In deiner Berechnung müsste man den Wert 89°/360° *200 heranziehen, da du den Kreis scheinbar in 200 Teile zerlegst ?)

In deiner vorletzten Gleichung

Implementation :
> y:=0; x:=1; c:=3.14*0.01; N:=800;
> for i from 1 to N do
> st:=x;
> x:=x-c*y;
> y:=y+c*st;
> fx[i]:=x;
> fy[i]:=y;
od:

"sicherst" du x über st=x, allerdings steht diese Zuwesiung innerhalb der Programmschleife, inosfern wäre stets st = x(n-1)

... und die Sinuskurve läuft aus dem Ruder.

(Programmiercode wie z.B. "y:=y+c*st;" stellt ja bereits eine "selbstspeisende" Iteration dar. Mathematisch als schreibweise nicht erlaubt: "y=y+c", aber beim Programmieren ungemein praktisch)

Das hier geschriebene gilt nur, wenn ich deine Ausführungen richtig verstanden habe..
(an deinem ersten und zweiten Beitrag knacke ich jetzt noch, allerdings folge ich den Einführungseinheiten zu Iteration, Feedback, Verhulst und Co. unter deiner Homepage, großes Danke)

so weit ertsmal,

Gruß Merman

mermanview
11.11.11, 17:34
*ähäm*, ... war gar nix

richy
12.11.11, 02:44
Hi merman
Vielleicht interessiert ja auch noch jemand anderes diese einfachen numerischen iterativen Sinusgeneratoren.

scheint dem von mir angesprochenen Additionstheorem zu entsprechen:
Welche Gleichung meinst du mit Additionstheorem konkret ? So ganz werde ich aus deiner Itreartion nicht schlau :

r=Pi/180:
Ist das ein Proportionaitaetsfaktor Bogenmass Rad in Grad ? Warum 180 ?

x1= 1 - r^2/2 :
x1 und y1 sind hier sowohl Startwerte, als auch Konstanten.
Der Startwert fuer cos(0) muesste doch 1 sein ?

EDIT :
Ok, In denem Algo nicht. Und mit x1 meinst du auch x[1]
Funktioniert tatsaechlich. aber ohne Fallunterscheidung nur bis 180 Grad. Scheint eine Cordic Variante zu sein.

x(n+1) = x(n) * (1 - r^2/2) - Wurzel(1-x(n)^2) * Wurzel(r^2 - r^4/4)
Ich verstehe hier nur eines : Wenn in x(n) der Cosinus steht dann ist wegen (sin(x))^2 + (cos(x))^2 =1 der Ausdruck Wurzel(1-x(n)^2) gleich dem Sinus. Also y(n) wie du es weiter unten auch berechnest :
y(n+1) = wurzel(1 - x(n+1)^2) -> Sinuswerte
Aber dein y(n+1) geht in die Gleichung, Iteration dann gar nicht mehr ein.

Ah, ok ich denke ich weiss ungefaehr was du machst. Mein koplexer Ansatz war im Grunde unnoetig. Man kann auch sofort anschreiben :

dcos(a*t)/dt=-a*sin(a*t)
und daraus folgt :
dcos(a*t)/dt=-a*Wurzel(1-(cos(a*t))^2)
dx(t)/dt=-a*Wurzel( 1-x(t)^2 )
Die Wurzel spare ich mir in meiner Version indem ich sowohl Sinus und Cosinus iterativ berechne.
(Deinen Code koennte man auch noch eheblich effizienter gestalten)
Dann integriere ich aber numerisch erster Ordnung und da geht zunaechst etwas schief. Mit welcher Methode integrierst du denn ? Weisst du das ueberhaupt ? :D Erstaunlich ist die Genauigkeit deiner Iteration.
Wie kommt denn der Ausdruck (1 - r^2/2) vor dein x(n) in x(n) * (1 - r^2/2)

Gruesse

richy
12.11.11, 03:47
Zu meiner Iteration :
Insofern erhälst du eine ungefähre Sinuskurve, sie müsste allerdings ungenau sein, da deine Konstante c=0.01 sehr belibieg scheint, Sie ist zunaecht ungenau, weil ich erster Ordnung (Euler) integriere.

http://upload.wikimedia.org/wikipedia/en/math/d/7/2/d72c1f86485cc7951555f282dde186c1.png

Und ich hab schon die Loesung waerum die zweite Methode stabil und relativ genau ist :) . In der Grafik ist die Iteration (rot) und die exakte Loesung (gruen) dargestellt :
http://home.arcor.de/richardon/2011/sinus.gif

Bis auf die roten Puenktchen fast deckungsgleich.
Hier einige Werte fuer 200 Abtastwerte pro 2*Pi:

Iteration := -.09699045186
Exakt := -.09410831333

Iteration := -.06569064212
Exakt := -.06279051954

Iteration := -.03432606403
Exakt := -.03141075908

Iteration := -.00292764181
Exakt := 0

Man kann das durch die Anzahl Abtastwerte, dt genauer haben :
dt=2*Pi/2000

Exakt := -.009424638434
Iteration := -.009462599264

Exakt := -.006283143966
Iteration := -.006322693191

Exakt := -.003141587486
Iteration := -.003182724778

An deine Genauigkeit reicht es nicht ran, dafuer ist die Iteration fast unverschaemt einfach und dennoch stabil:

> y:=0; x:=1; c:=3.14*0.01; N:=200;
>
> for i from 1 to N do
> x:=x-c*y; # Erzeugt den Cosinus
> y:=y+c*x; # Erzeugt den Sinus
> od:

c ist bei mir nicht beliebig sondern das ist dt*omega. Nach 100 Schritten bin ich im obigen Beispiel bei Pi und nach 200 Schriten bei 2*Pi

"sicherst" du x über st=x, allerdings steht diese Zuweisung innerhalb der Programmschleife, insofern wäre stets st = x(n-1)So soll es gemaess Euler auch sein. Aber wie ich vermutete ist Euler fuer manche Faelle (Systeme) instabil.
The Euler method can also be numerically unstable, especially for stiff equations. This limitation—along with its slow convergence of error with h—means that the Euler method is not often used, except as a simple example of numerical integration. The instability can be avoided by using the Euler–Cromer algorithm.
http://en.wikipedia.org/wiki/Euler%27s_method


Schauen wir mal unter Euler-Cromer :

http://en.wikipedia.org/wiki/Euler%E2%80%93Cromer_algorithm

http://upload.wikimedia.org/wikipedia/en/math/3/2/f/32f3866cc55a6a3ae99ed5a82ef5548d.png

Siehst du das Detail ?

The difference with the standard Euler method is that the semi-implicit Euler method uses v(n+1) in the equation for x(n+1), while the Euler method uses v(n).

Die stabile Integration (ohne st) ist somit eine Euler Cromer-Integration und man kann diese weiter ohne numerischen Aufwand verbessern. Fuer musikalische Anwendungen (immer zeitkritisch) waere das vollkommen ausreichend. Fuer eine naturwissenschaftliche natuerlich nicht. Da verwendet man Runge Kutta oder Adam Bashford 4 ter Ordnung.

Anm:
Ah, du hast deine Iteration irgendwie fundamental geometrisch hergeleitet, nicht algebraisch. Das scheint mir auesserst interessant, weil sie so genau ist.

Viele Gruesse

richy
12.11.11, 07:38
scheint dem von mir angesprochenen Additionstheorem zu entsprechen:

x(n+1) = x(n) * x(1) - y(n) * y(1)

Ach jetzt kapier ich deine Idee erst :-) Du meinst tatsaechlich die trigonometrischen Additionstheoreme.

http://upload.wikimedia.org/wikipedia/de/math/f/c/3/fc3b266ea031def32c9f13d0f08c9853.png
http://upload.wikimedia.org/wikipedia/de/math/2/d/4/2d4ada696dc1fb1f302309618c6cf5fa.png

x=n, y=1
Voellig ohne Integration und daher exakt. Hey das ist clever. :-)
Meine Varainate (die ich vor 25 Jahren mal kurz ausprobiert habe) stellt im Grunde eine Butterbrotrechnung mit Euler Integration dar, jedoch mit dem Trick wie beim Cordic Algorithmus. Es ist eben effizient Sinus und Cosinus gleichzeitig zu berechnen.
Was hindert dich daran dies nicht ebenfalls zu tun ? Oben stehen die Gleichungen. Das waere dann genau und effizient.
Aber dass dies etwas wirklich Neues waere ist eher nicht zu erwarten. Naja wer weiss.
Auf jeden Fall sehr interessant !

Viele Gruesse

mermanview
12.11.11, 18:24
Hallo richy,

.. juhu, dangedange :- )

Ursprünglich wollte ich eine Aussage meines damaligen (guten) Mathelehrers widerlegen:

"Es gibt keine Funktionsgleichung, deren Funktionsgraph die Sinuskurve darstellt"

Gelungen sind mir zumindest die Näherung der Sinus- und Kosinuswerte.

Mein gedanklicher Beitrag dabei waren die Koordinaten des ersten, gewählten Kreisabschnittes für den Kosinus von 1°.

x1 = 1 - r²/2 = cos(1°)

Ich bin davon ausgegengen, dass man die Längendifferenz zwischen Sekantenabschnitt und Kreisabschnitt zwecks Näherung vernachlässigen kann, wenn
man den Kreisabschnitt klein genug wählt, also nahm ich zunächst einen Kreisabschnitt von 1°, dieser entspricht der Länge von Pi/180.

Mit dem Wert als Radius schlug ich einen Konstruktionskreis um den Punkt (1|0), so dass dieser Konstruktionskreis einen gemeinsamen Punkt mit dem Einheitskreis um (0|0) bildet.

Die Gleichsetzung der beiden Kreise ergibt die genäherte x-Koordinate für cos(1°):

Wurzel(1-x²) = Wurzel(r² - (1-x)²)

=> x = 1 - r²/2.

(r = Pi/180)


Alles weitere (die Iterationsformel) entstand beim drehen und konstruieren mit Vektoren, um weitere "1°-Dreiecke" übereinander zu legen.

Dass dabei ein Additionstheorem entstand, war nicht beabsichtigt, da ich den Begriff vorher garnicht kannte.

Da ich eine Gleichung wollte (y=f(x)), ist in meiner Formel alles mit x bzw. dem Konstruktionsradius r als Konstante dargestellt:



Hier das Additionstheorem, dahinter meine Formel für den Kosinus, (darunter der Sinus)

http://upload.wikimedia.org/wikipedia/de/math/e/b/a/eba229a7b6e61571ffe9d500c03bb778.png





beide Formeln beinhalten das Gleiche, meine sieht komplizierter aus, kommt aber mit nur einer Variablen (und einer Konstanten) aus.


Habe diese Methode damals bei Wiki gepostet, als einfache Herleitung, da viele Wiki_Surfer nach so etwas fragten.
Dort wurde ich von den Mathematikern etwas verschnupft darüber aufgeklärt, dass es ein Additionstheorem darstellt.
War bloß schlichte Geometrie mit ein wenig Näherungspfusch, der kommt bei Pi- Verwendung aber immer in's Spiel.


Eine Frage die ich mir noch stelle:
Da sich im Kreis die Steigung stets um den gleichen Betrag ändert, müsste sinus&co doch eigentlich noch einfacher herzuleiten sein


soweiterstmal

Danke, Gruß Merman

PS: Ich hoffe das angehängte Bild ist verständlich
304