cos(M_PI/2) +Grenzwerte



  • kasablanka schrieb:

    (kennt jemand die impl. in den MS-Compilern? :D)

    Ich wollte ja gerade mal nachgucken... Aber das ist so extrem frickeliger asm-code... hinzu kommt, dass ich weder in asm noch in mathe der überflieger bin;D
    das hier ist jedenfalls der cos(float)-asm-code für den p4(der wahrscheinlich bei jedem intel ab dem p4 ausgeführt wird) - ich hab gar nicht gewusst, dass da schon x fkt-aufrufe davor stattfinden - hätt ich auch nicht vermutet^^

    _cos_pentium4:
    63A97298  movlpd      xmm0,qword ptr [esp+4] 
    start:
    63A9729E  pextrw      eax,xmm0,3 
    63A972A3  and         ax,7FFFh 
    63A972A7  sub         ax,3030h 
    63A972AB  cmp         ax,10C5h 
    63A972AF  ja          special (63A973F7h) 
    63A972B5  movlpd      xmm1,qword ptr [PI32INV (639D0CE0h)] 
    63A972BD  mulsd       xmm1,xmm0 
    63A972C1  movlpd      xmm2,qword ptr [SHIFTER (639D0CE8h)] 
    63A972C9  cvtsd2si    edx,xmm1 
    63A972CD  addsd       xmm1,xmm2 
    63A972D1  movlpd      xmm3,qword ptr [P_1 (639D0D00h)] 
    63A972D9  subsd       xmm1,xmm2 
    63A972DD  movapd      xmm2,xmmword ptr [P_2 (639D0CF0h)] 
    63A972E5  mulsd       xmm3,xmm1 
    63A972E9  unpcklpd    xmm1,xmm1 
    63A972ED  add         edx,1C7610h 
    ??0000:
    63A972F3  movsd       xmm4,xmm0 
    ??0001:
    63A972F7  and         edx,3Fh 
    63A972FA  movapd      xmm5,xmmword ptr [SC_4 (639D0CD0h)] 
    63A97302  lea         eax,[Ctable (639D04A0h)] 
    63A97308  shl         edx,5 
    63A9730B  add         eax,edx 
    63A9730D  mulpd       xmm2,xmm1 
    63A97311  subsd       xmm0,xmm3 
    63A97315  mulsd       xmm1,mmword ptr [P_3 (639D0D08h)] 
    63A9731D  subsd       xmm4,xmm3 
    63A97321  movlpd      xmm7,qword ptr [eax+8] 
    63A97326  unpcklpd    xmm0,xmm0 
    ??0002:
    63A9732A  movsd       xmm3,xmm4 
    ??0003:
    63A9732E  subsd       xmm4,xmm2 
    63A97332  mulpd       xmm5,xmm0 
    63A97336  subpd       xmm0,xmm2 
    63A9733A  movapd      xmm6,xmmword ptr [SC_2 (639D0CB0h)] 
    63A97342  mulsd       xmm7,xmm4 
    63A97346  subsd       xmm3,xmm4 
    63A9734A  mulpd       xmm5,xmm0 
    63A9734E  mulpd       xmm0,xmm0 
    63A97352  subsd       xmm3,xmm2 
    63A97356  movapd      xmm2,xmmword ptr [eax] 
    63A9735A  subsd       xmm1,xmm3 
    63A9735E  movlpd      xmm3,qword ptr [eax+18h] 
    63A97363  addsd       xmm2,xmm3 
    63A97367  subsd       xmm7,xmm2 
    63A9736B  mulsd       xmm2,xmm4 
    63A9736F  mulpd       xmm6,xmm0 
    63A97373  mulsd       xmm3,xmm4 
    63A97377  mulpd       xmm2,xmm0 
    63A9737B  mulpd       xmm0,xmm0 
    63A9737F  addpd       xmm5,xmmword ptr [SC_3 (639D0CC0h)] 
    63A97387  mulsd       xmm4,mmword ptr [eax] 
    63A9738B  addpd       xmm6,xmmword ptr [SC_1 (639D0CA0h)] 
    63A97393  mulpd       xmm5,xmm0 
    ??0004:
    63A97397  movsd       xmm0,xmm3 
    ??0005:
    63A9739B  addsd       xmm3,mmword ptr [eax+8] 
    63A973A0  mulsd       xmm1,xmm7 
    ??0006:
    63A973A4  movsd       xmm7,xmm4 
    ??0007:
    63A973A8  addsd       xmm4,xmm3 
    63A973AC  addpd       xmm6,xmm5 
    63A973B0  movlpd      xmm5,qword ptr [eax+8] 
    63A973B5  subsd       xmm5,xmm3 
    63A973B9  subsd       xmm3,xmm4 
    63A973BD  addsd       xmm1,mmword ptr [eax+10h] 
    63A973C2  mulpd       xmm6,xmm2 
    63A973C6  addsd       xmm5,xmm0 
    63A973CA  addsd       xmm3,xmm7 
    63A973CE  addsd       xmm1,xmm5 
    63A973D2  addsd       xmm1,xmm3 
    63A973D6  addsd       xmm1,xmm6 
    63A973DA  unpckhpd    xmm6,xmm6 
    63A973DE  addsd       xmm1,xmm6 
    63A973E2  sub         esp,10h 
    63A973E5  addsd       xmm4,xmm1 
    63A973E9  movlpd      qword ptr [esp+4],xmm4 
    63A973EF  fld         qword ptr [esp+4] 
    63A973F3  add         esp,10h 
    63A973F6  ret              
    special:
    63A973F7  jg          large (63A97424h) 
    63A973F9  pextrw      eax,xmm0,3 
    63A973FE  and         ax,7FFFh 
    63A97402  pinsrw      xmm0,eax,3 
    63A97407  sub         esp,10h 
    63A9740A  movlpd      xmm1,qword ptr [ONE (639D0D30h)] 
    63A97412  subsd       xmm1,xmm0 
    63A97416  movlpd      qword ptr [esp+4],xmm1 
    63A9741C  fld         qword ptr [esp+4] 
    63A97420  add         esp,10h 
    63A97423  ret              
    large:
    63A97424  jmp         _cos_default (63A8CCDFh) 
    63A97429  lea         ecx,[ecx] 
    63A9742C  int         3    
    63A9742D  int         3    
    63A9742E  int         3    
    63A9742F  int         3    
    fFSINH:
    63A97430  mov         byte ptr [ebp-90h],0FFh 
    63A97437  call        fFEXPH (63A974D8h) 
    63A9743C  or          bl,bl 
    63A9743E  je          _rtforsnhlarge (63A974BBh) 
    63A97440  call        ExpHypCopyInv (63A9751Bh) 
    63A97445  fsubp       st(1),st 
    63A97447  jmp         SinhCoshReturn (63A97497h) 
    fFTANH:
    63A97449  fld         st(0) 
    63A9744B  fabs             
    63A9744D  fld         tbyte ptr [_tanhmaxarg (63AB5160h)] 
    63A97453  fcompp           
    63A97455  wait             
    63A97456  fnstsw      word ptr [ebp-0A0h] 
    63A9745C  wait             
    63A9745D  test        byte ptr [ebp-9Fh],41h 
    63A97464  jne         _rtfortnhlarge (63A974CAh) 
    63A97466  call        fFEXPH (63A974D8h) 
    63A9746B  or          bl,bl 
    63A9746D  je          _rtfortnhlarge (63A974CAh) 
    63A9746F  fld         st(0) 
    63A97471  call        ExpHypSum (63A97509h) 
    63A97476  fxch        st(1) 
    63A97478  call        ExpHypCopyInv (63A9751Bh) 
    63A9747D  fsubp       st(1),st 
    63A9747F  fdivrp      st(1),st 
    63A97481  ret
    

    kannst mich ja mal aufklären^^

    bb



  • @unskilled -> Kannst mich ja mal aufklären
    Also wenn das Bienchen auf das Blümchen fliegt..... *lach*
    Okay die Frage war nicht an mich.
    @Sebastian.
    Ich werd mich nicht drauf verlassen wie du sagst.
    DX sollte das rauschen sein. Also genau das, was du gesagt hast.
    Dann ist im komplexen konvergenz nach einer euklidischen norm definiert.
    Folglich ist das Vorzeichen bei pi/2 undefiniert.

    Hatte gehofft, dass man sich da ein bisschen was dabei gedacht hat, und das vorzeichen an der Stelle definiert hat.
    Aber egal. Wäre es definiert, würdet ihr es bestimmt wissen.
    Danke für Antwort.
    Gruß



  • AlexXXx schrieb:

    cos(M_PI/2) 6.12323e-17
    cos(-M_PI/2) 6.12323e-17
    cos(3/2M_PI) -1.83697e-16
    cos(-3/2
    M_PI) -1.83697e-16
    Das bedeutet:
    -Wenn ich mich cos(pi/2) in positiver richtung nähere, bekomme ich +
    -Wenn ich mich cos(pi/2) in negativer richtung nähere, bekomme ich -
    -Wenn ich mich cos(-pi/2) in positiver richtung nähere, bekomme ich -
    -Wenn ich mich cos(-pi/2) in negativer richtung nähere, bekomme ich +

    Wo siehst du hier eigentlich ein "nähern"? Du berechnest nur einzelne Werte, wie willst du daraus irgendeine Aussage über Konvergenz ableiten?

    Der Grund, warum du nicht jeweils 0 herausbekommst, liegt darin, dass sich π/2 nicht exakt als Fließkommazahl darstellen lässt, also M_PI/2 ungleich π/2 ist. Und der Cosinus von M_PI/2 ist halt einfach nicht 0, sondern etwas größer, was darauf schließen lässt, dass M_PI/2 etwas kleiner als π/2 ist. (Man kann davon ausgehen, dass die mathematischen Operationen so genau wie möglich sind, d.h. dass es keinen darstellbaren double-Wert gibt, der genauer als das ist, was sie zurückliefern.)



  • Dadurch dass man den cos(pi) also auch von cos(-pi) ausrechnen kann,
    ist eine mathematische Umlaufrichtung zu definieren.
    cos(x)=Re{e^jx}
    e^jx:
    ^d*pi/2 für d=1+4*n n=-unendlich bis +unendlich
    |
    |
    |
    M----------->n*2PI mit n=-unendlich bis +unendlich (ganze zahlen)

    Konvergenz in pi/2

    ^----->Ein Kreis um Punkt pi/2
    |
    |
    |
    M------------>n*pi

    Daraus folgt sign(Re{e^{j(pi/2)}}) ist bei einer komplexen konvergenten Folge
    nicht definiert.

    Das bedeutet dass man es wählen darf.
    Und das bedeutet, dass es sich zum standardisieren eignen würde.
    Wie hätte ich mir das erhofft:
    Da für positive n man sich eine positive Rotation des Zeigers vorstellen kann würde ich + nehmen
    Da für negative n man sich eine negative Rotation des Zeigers vorstellen kann würde ich - nehmen.
    Gruß



  • Würde man keine umlaufrichtung definieren wären die punkte pi/2 und -pi/2 nicht zu unterscheiden.
    Das ist noch wichtig
    Gruß



  • Ist das eine Antwort auf mein Posting?



  • Eine Umlaufrichtung kannst du nur haben, wenn du eine steigende oder fallende Folge an Werten in deine Formel einsetzt. Diese hast du aber nicht, wenn du nur einen Punkt ausrechnest. Die Reihe kann oszillierend um den exakten Wert konvergieren, daher ist nicht definiert, ob jetzt der positive oder negative Wert raus kommt.
    Außerdem scheinst du den Fakt konsequent zu überlesen oder zu ignorieren, dass M_PI nicht exakt der Wert des tatsächlichen Pi ist, daher hast du automatisch Fehler. Von dem her kann das Vorzeichen von dieser Ungenauigkeit herrühren.

    Und dein Beweis ist irgendwie unverständlich. Nur weil man den Wert einer Funktion an 2 verschiedenen Punkten ausrechnen kann, heißt das noch lange nicht dass man eine Umlaufrichtung hat. Und deine Formeln ohne Erklärung sind auch -- toll.



  • Bin nicht ich der der hier fragt ?? *ggg*
    Aber ja das ist die Antwort auf deine Frage.
    Wäre pi so gewählt, dass eine zahl a=cos(bpi)
    nicht gegen den exakten Wert a konvergieren würde (Das heißt nicht dass er ihn erreicht !! Wir brechne die reihe ja ab), wäre die Definition
    von cos aufgehoben, und die Funktion wäre nicht realisiert.
    Folglich ist es für die Aussage, dass cos(n
    pi) eine konvergente folge ist unwichtig, ob wir die folge abbrechen oder pi ungenau ist.
    Des weiteren frage ich mich, wiso jeder auf den Betrag aus ist.
    Der betrag ist doch so oder so nur rechenfehler.

    Gruß



  • Die Reihe kann oszillierend um den exakten Wert konvergieren

    Das ist schlich und ergreifend falsch.
    Das vorzeichen darf oszillieren, aber sonst nichts.
    Der Radius um den punktmuß kleiner werden. Du darfst dich auch incht auf ihm bewegen.



  • Wenn es keine Umlaufrichtugn bäbe, was wäre dann der wert von sin(-PI/2) ???
    Er wäre gnau gleich dem Wert von sin(pi/2)
    Damit ist bewisen dasss das Vorzeichen eine umlaufrichtung definiert.



  • AlexXXx schrieb:

    Das vorzeichen darf oszillieren, aber sonst nichts.
    Der Radius um den punktmuß kleiner werden. Du darfst dich auch incht auf ihm bewegen.

    Oszillierende Vorzeichen 😃 Das heißt Vorzeichenänderung.
    Oszillieren heißt einfach, dass du einen Wert hast, um den sich eine Kurve schlängelt, mal drüber mal drunter. cos. selber oszilliert. Und das das delta (dein Radius?) kleiner wird ist ja Voraussetzung für Konvergenz, oder?

    AlexXXx schrieb:

    Wenn es keine Umlaufrichtugn bäbe, was wäre dann der wert von sin(-PI/2) ???
    Er wäre gnau gleich dem Wert von sin(pi/2)
    Damit ist bewisen dasss das Vorzeichen eine umlaufrichtung definiert.

    Damit ist gar nix bewiesen!

    f(x) = |1/x|
    

    Wo haben wir hier einen "Umlauf"?



  • AlexXXx schrieb:

    Bin nicht ich der der hier fragt ?? *ggg*

    Ja, aber du fragst konfus und verschwurbelt, jedenfalls kommt es mir so vor, also frage ich nach. War aber wohl umsonst.



  • *ggg*
    Also immer definiert das vorzeichen keinen Umlaufsinn.
    Das ist uns beiden wohl klar.
    Dass das vorzeichen undefinirt ist, davon rede ich schon die ganze Zeit.

    Dir scheint nicht bekannt zu sein , dass man die komplexe exponentialfunktion als rotierenden zeiger auffassen kann.
    Und der kann ich mathematisch positiver oder mathematisch negativer Richtung definiert sein. Je nach Vorzeichen des Arguments der trigonometrischen Funktion.
    Dann hast du nicht verstanden, dass die konvergenz einer reihe in einem Punkt definiert ist.
    Der cos(a_1) konvergiert gegen b_1, und ist exakt b_1 wenn man die Reihenentwicklung nicht abbricht.
    Der cos(a_2) konvergiert gegen b_2, und ist exakt b_2 wenn man die Reihenentwicklung nicht abbricht.
    u.s.w.

    Die konvergenz ist über eine euklidische Norm definiert.
    Du hast geschrieben dass eine reihenentwicklung oszilierend konvergieren kann. Das ist ein Wiederspruch in sich, da die konvergenz über den konvergenzradius definiert ist und nicht über seine Richtung.

    Ich sags dir unern, aber es ist nicht meine Frage welche konfus ist=).
    Das was ich hier schreibe programmiere ich auch, und es läuft sehr gut.



  • Die cos Funktion ergibt sich doch nur dann wenn du alle
    a_n der größe nach ordnest, und die entsprechenden b_n darüber malst.
    Gruß


  • Mod

    AlexXXx schrieb:

    Ich sags dir unern, aber es ist nicht meine Frage welche konfus ist=).

    Gesetzt den Fall, dass du weißt, was du zu erklären versuchst, ist jedenfalls die Erklärung/Frage selbst völlig unklar. Mathematik lebt von klarer Begriffsbildung und vernünftigem Satzbau.
    Deine bisherigen Beiträge als Maßstab für die aufgewendete Sorgfalt bei der Formulierung genommen solltest du nicht erwarten, dass andere sich sehr bemühen, diese Beiträge zu verstehen.
    Dabei würde u.a. eine Registrierung helfen, um ggf. Korrekturen vornehmen zu können.



  • @Camper
    Ja du hast schon recht. Mein Gemüt ist auch etwas hoch gekocht. Sorry dafür.
    Auf der andere Seite ist es mir peröhnlich eben sehr klar was ich meine, und bin oft etwas entteuscht, wenn ich das was ich sagen will so schlecht rüber bringe.

    Gruß



  • AlexXXx schrieb:

    Dir scheint nicht bekannt zu sein , dass man die komplexe exponentialfunktion als rotierenden zeiger auffassen kann.
    Und der kann ich mathematisch positiver oder mathematisch negativer Richtung definiert sein. Je nach Vorzeichen des Arguments der trigonometrischen Funktion.

    Mag sein, dass der Zeiger rotiert, dass dadurch Schlüsse auf das Verhalten des Vorzeichens auf die trigonometrische Funktion anwendbar ist, will ich bewiesen haben, aber bitte exakt!
    Hier ist die Formel, von Wkipedia:
    http://upload.wikimedia.org/math/4/5/b/45b9bbe427eafbd60ea4b4f492814071.png
    Dann hast du nicht verstanden, dass die konvergenz einer reihe in einem Punkt definiert ist.

    Der cos(a_1) konvergiert gegen b_1, und ist exakt b_1 wenn man die Reihenentwicklung nicht abbricht.
    Der cos(a_2) konvergiert gegen b_2, und ist exakt b_2 wenn man die Reihenentwicklung nicht abbricht.

    Nein. Bei Konvergenz wird der Wert im Unendlichen erreicht, damit kann er per Definition nie exakt errechnet werden. Sonst bräuchte ich den Begriff Konvergenz ja gar nicht. Oder hast du schon ein Intervall gesehen, in dem das eine Ende "Unendlich" war, dort aber eine geschlossene Intervallklammer stand?

    Die konvergenz ist über eine euklidische Norm definiert.
    Du hast geschrieben dass eine reihenentwicklung oszilierend konvergieren kann. Das ist ein Wiederspruch in sich, da die konvergenz über den konvergenzradius definiert ist und nicht über seine Richtung.

    Sicher ist der Konvergenzradius entscheidend, trotzdem kann die Konvergenz oszillierend erfolgen. Außerdem steht nirgends geschrieben, dass der Radius linear abnehmen muss. Im Gegenteil, es kann auch Ausreißer geben.

    Ich sags dir unern, aber es ist nicht meine Frage welche konfus ist=).
    Das was ich hier schreibe programmiere ich auch, und es läuft sehr gut.

    Hmm, ich hab bis auf die ersten paar Posts keine Fragen mehr gesehen, und auf der ersten Seite wurde auch schon erklärt, dass du dich auf das beobachtete Verhalten nicht verlassen kannst, dass M_PI niemals exakt ist, usw.
    Die restliche Diskussion über mathematische Grundlagen hat doch mit deinem Problem nichts mehr zu tun. Wenn doch bitte mal nicht versuchen Beweise zu führen, sondern in normalem Deutsch. Die ist mathematische Ungenauigkeit nicht so problematisch.



  • Zum Beweis:
    Nimm die Reihenentwicklung, schau dir die exponenten an.
    e^jx
    Mit Punkt und Spiegelsymmetrie ergeben sich die Vorzeichen und daraus folgend die quadranten des koorinatensystems.
    Daraus kannst du dir eindeutig einen umlaufsinn in Folge des Vorzeichens ableiten.
    Auf den Beweis komst du selbst.

    Nein. Bei Konvergenz wird der Wert im Unendlichen erreicht, damit kann er per Definition nie exakt errechnet werden. Sonst bräuchte ich den Begriff Konvergenz ja gar nicht. Oder hast du schon ein Intervall gesehen, in dem das eine Ende "Unendlich" war, dort aber eine geschlossene Intervallklammer stand?

    Ja habe ich oft. Schau dir mal uneigentliche Integrale an.
    Es gibt Grenzwerte welche existieren, auch gegen offene intervalle. Boah das hat man doch schon fast in der Grundschule.
    Als Beispil nimm dir die Reihenentwicklung von e^x und setz mal 0 ein.
    Unglaublich ich kenne den Grenzwert für eine unendlich lange Folge.
    Gerechter Weise muß man aber hier sagen, dass man für die trigonometrischen Funktionen auf shannon kommt. Also eine Rechengenauigkeit für PI.
    Wenn du dir die Reihenentwicklung von den trigonometrischen Funktionen anschaust, und dir in jedem berechneten Punkt den konvergenzradius denkst, kannst du ausrechnen wie genau du PI haben mußt, dass für eine bestimmte Frequenz dein kosinus keine überschwinger enthält.

    Sicher ist der Konvergenzradius entscheidend, trotzdem kann die Konvergenz oszillierend erfolgen. Außerdem steht nirgends geschrieben, dass der Radius linear abnehmen muss. Im Gegenteil, es kann auch Ausreißer geben.

    Definition der Nullfolge:
    Eine Folge Z_n komplexer zahlen mit n>=0 heißt Nullfolge, falls zu jedem epsilon >0 eine natürliche Zahl N existiert, so dass
    |z_n| < Epsilon
    gilt.

    Definition einer Folge:
    Eine Folge Z_0 Z_1 ... komplexer Zahlen konvergiert gegen die komplexe Zahl z, falls die Differenzenfolge Z_0-Z, Z_1-z ein Nullfolge ist.

    Wenn du dir das aufmahlst siehst du, dass der konvergenzradius pro Term, welche du dazu nimmst kleiner werden muß. Die Richtung ist vollkommen bedeutungslos, da die konvergenz über den Radius definiert ist. Würde die konvergenz oszillieren, würde ich ein epsilon finden, so dass definitioni 1 nicht mehr stimmt, und somit die reihe nicht konvergent wäre.
    Du darfst zwar um den punkt auf den zu Zukonvergierst 🙂 drum rum springen, aber der Radius muß abnehmen. Wenn du das meinst, hast du Recht, aber viele kommen dann auf die Idee, dass der Konvergenzradius auch wieder zwischendurch mal größer oder gleich werden darf. Das darf er aber nicht.
    Etwas genauer: Ich will nur sagen, dass der konvergenzradius mit jedem daugenommenen term streng momoton fällt.

    Gruß



  • AlexXXx schrieb:

    Boah das hat man doch schon fast in der Grundschule.
    [...]
    Eine Folge Z_n komplexer zahlen mit n>=0 heißt Nullfolge, falls zu jedem epsilon >0 eine natürliche Zahl N existiert, so dass
    |z_n| < Epsilon
    gilt.

    Das üben wir aber nochmal. Vielleicht kommst du mal von deinem hohen Ross runter und erklärst in einfachen, aber möglichst exakten Worten, was du eigentlich vorhast?



  • Nase Rümpf, Beleidigt bin, Abhau....
    Sorry bin grad ziemlich gestresst.
    Mir wurde schon gesagt, dass die vorzeichen nicht von c++ definiert sind.
    Dadurch kann ich sie nicht verwenden, und eigentlich ist die frage schon beantwortet.
    Das man das in der Grundschule schon hat ist natürlich schwachsinn.
    Und ganz so einfach ist es auch nicht. Das stimmt schon.
    Die konvergenz über die Definition der nullfolgen ist so gebächlich, und wenn man sie sich aufmalt wirklich ganz einfach. Das hört sich hier nur total blöd an.
    Mich darf man heitn icht so ernst nehmen. Gruß


Anmelden zum Antworten