Einzelnen Beitrag anzeigen
  #18  
Alt 12.12.11, 21:16
Benutzerbild von richy
richy richy ist offline
Singularität
 
Registriert seit: 01.05.2007
Ort: karlsruhe
Beitr?ge: 4.170
Standard AW: Math Schwingungs DZGL

Zitat:
... wenn man doch cos() und sin() verwendet um die (stauchenden und dehnenden) Konstanten c1 und c2 festzulegen, dann könnte man doch gleich jeden Winkel mit dieser C-Funktion berechnen lassen.

for(n=0;n<=360;n++)
{
. x[n]=sin[n]
. y[n]=n*(2*Pi()/360)
. plot x[n], y[n], "."
}
Ich hoffe deine Frage hat sich mit dem letzten Thread erledigt. Man springt hier 360 mal in die Sinusfunktion. Mit der Additiontheorem Variante springt man nur einmal vor der Schleife in die Sinusfunktion, denn sin(dx) oder cos(dx) sind Konstanten. Weil dx konstant ist. Und in der Schleife haben wir lediglich 4 Multiplikationen und 2 Additionen.

> for n from 0/1 to N do
> x[n+1]:=x[n]*c1-y[n]*c2; # x=Cosinus
> y[n+1]:=y[n]*c1+x[n]*c2; # y=Sinus
> od:

und dennoch bleibt unsere Grundgenauigkeit erhalten. Das ist ja gerade das schon etwas Verblueffende. Aus einem Funktionspaar (dx ,sin(dx)) kontruieren wir den kompletten Sinus mit 4 Multiplikationen voellig exakt. Oder bei deiner Taylorvorgabe in dieser Genauigkeit. Der Ausflug zur Effizenz ist somit nicht Off Topic sonder gerade einer der Hauptaspekte neben der reinen Freude an der Sache.
BTW :
Falls wir die Werte nicht speichern muessen waere der Algo noch effizienter. Auch die Schleife selbst koennte man in C weiter optimieren. Und der Code ist nun so einfach, dass man ihn auch in Maschinensprache einbinden koennte. Aber bleiben wir bei Exel/Maple.

Noch eine Frage :
Unter welcher Rubrik wolltest du die merman DZGL bei WIKI eintragen ?

Ge?ndert von richy (12.12.11 um 21:21 Uhr)
Mit Zitat antworten