Ankündigung

Einklappen
Keine Ankündigung bisher.

Sinus Cosinus Funktion

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sinus Cosinus Funktion

    Hallo alle zusammen,

    Ich würde gerne Wissen was hinter der sin() und hinter der cos() funktion steckt. bzw. wie das intern berechnet wird.

    Ich sollte ein Script erstellen der die sinfunktion nachrechnet in PHP.

    für alle Tipps wär ich dankbar.

    gruß, Flyingfox


  • #2
    Re: Sinus Cosinus Funktion

    Zitat von Flyingfox
    Ich würde gerne Wissen was hinter der sin() und hinter der cos() funktion steckt. bzw. wie das intern berechnet wird.
    Ich verstehe deine Frage nicht. Was Sinus und Cosinus sind, weißt du?

    Kommentar


    • #3
      Die Antwort wird Dich zwar nicht befriedigen, aber der entsprechende Code der PHP Funktion
      (ext/standard/math.c: )
      Code:
      PHP_FUNCTION(sin)
      {
      	zval **num;
      
      	if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE) {
      		WRONG_PARAM_COUNT;
      	}
      	convert_to_double_ex(num);
      	Z_DVAL_P(return_value) = sin(Z_DVAL_PP(num));
      	Z_TYPE_P(return_value) = IS_DOUBLE;
      }
      ruft einfach nur die entsprechende C-Bibliotheksfunktion auf

      Kommentar


      • #4
        juhu ich habs jetzt rausgefunden wie ich das lösen kann

        PHP-Code:
        //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////
        //::::::::::::::>> Fakultät <<:::::::::::::::::://
        //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////

                
        function faku($x// berechnet die fakultät der zahl $x
                    

                        if (
        $x==1){return 1;} // wenn x eins ist dann 1 rückgeben (ausnahme bei 1)
                        
        return $x*faku($x-1); // ansonsten die fakultät berechnen 
                    
        }
                    
                    
        //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////
        //:::::::::::::::::>> Hoch <<::::::::::::::::::://
        //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////

                    
                
        function Hoch($x,$n// berechnet $x^$n 
                    

                        if(
        $n==1){$produkt=$x; return $produkt;} // ausnahme wenn 1 null ist wird 1 ausgegeben
                        
        elseif($n==0){$produkt=1; return $produkt;} // wenn die hochzahl 0 ist wird der variable produkt den wert 1 zugewiesen
                        
        else{$produkt=$x;} //ansonsten wird der variable produkt der x wert zugewiesen
                         
                        
        for($i=1;$i<$n;$i++) // for schleife für die anzahl der hochrechenvorgänge x*x dann x*x*x usw... 
                        

                            
        $produkt $produkt*$x;  //loop mit den produkten
                        

                        return 
        $produkt// rückgabewert ist $produkt
                    
        }     
                    
        //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////
        //::::::::::::::::>> Sinus <<::::::::::::::::::://
        //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////
                    
                
                
        function sinus($x// berechnet sinus der zahl $x 
                    

                        
        $sin=$x// die variable sin wird mit dem wert der variable $x definiert
                        
        for($i=3;$i<99;$i+=2// alle ungeraden hochzahlen 
                        

                            
        $count++; // 0+1 =1 zähler für + und -
                            
        if($count==1// wenn z 1 ist dann 
                            
        {$sin $sin Hoch($x,$i)/faku($i);} // loop mit der $sin variable inkl. der oben definierten Funktionen subratkion wenn z=1 ist
                            
        elseif($count==2// wenn z 2 ist dann 
                            
        {$sin $sin Hoch($x,$i)/faku($i); $count=0;} // loop mit der $sin variable inkl. der oben definierten Funktionen addition wenn z=2 ist, $count wird nach der funktion wieder auf null gesetzt
                        

                        return 
        $sin// rückgabewert ist $sin
                    
        }
                    
        //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////
        //:::::::::::::::>> Cosinus <<:::::::::::::::::://
        //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////


                
        function cosinus($x// berechnet cosinus der zahl $x 
                    

                        
        $cos=1// startwert ist 1 
                        
        for($i=2;$i<100;$i+=2// alle geraden hochzahlen 
                        

                            
        $count++; // 0+1 =1 zähler für + und -
                            
        if($count==1// wenn z 1 ist dann 
                            
        {$cos $cos Hoch($x,$i)/faku($i);} // loop mit der $cos variable inkl. der oben definierten Funktionen subratkion wenn z=1 ist
                            
        elseif($count==2// wenn z 2 ist dann 
                            
        {$cos $cos Hoch($x,$i)/faku($i); $count=0;} // loop mit der $cos variable inkl. der oben definierten Funktionen subratkion wenn z=2 ist, $count wird nach der funktion wieder auf null gesetzt
                        

                        return 
        $cos// rückgabewert
                    


        gruß, Flyingfox

        Kommentar


        • #5
          Ich nutze doch dann einfach sin() und cos() ... warum auch net ^^
          privater Blog

          Kommentar


          • #6
            Zitat von Ben
            Ich nutze doch dann einfach sin() und cos() ... warum auch net ^^
            Naja, wenn es eine Aufgabe ist, diese Funktionen "nachzubauen".

            Kommentar


            • #7
              ....dann kann es sich doch eigentlich nur um eine Schul(-ungs)aufgabe handeln. oder?

              Kommentar


              • #8
                Ok. Habsch nicht dran gedacht .

                Wikipedia hat ja einen ganz guten Artikel zum Thema "Sinus und Kosinus".
                Daraus auch diese Formel


                Der Sinus wird hier per Taylorentwicklung um x = 0 approximiert.
                Jetzt, wo xabbuh es gesagt hat ... eigentlich ist das ja eine Standardaufgabe in Analysisveranstaltungen *g*.

                Demnach: Sorry .. .


                EDIT:
                Ich habe kurz noch mal nachgeschaut .. wir haben diese Taylorentwicklung des Sinus als einleitendes Beispiel gemacht und den Sinus und Kosinus letztendlich per Produktentwicklung approximiert.

                Ist ja immer so .. viele Wege führen nach Rom .

                Grüße Ben.
                privater Blog

                Kommentar


                • #9
                  Zitat von Flyingfox
                  juhu ich habs jetzt rausgefunden wie ich das lösen kann

                  PHP-Code:
                  //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////
                  //::::::::::::::>> Fakultät <<:::::::::::::::::://
                  //¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////¯\\\\\_/////

                          
                  function faku($x// berechnet die fakultät der zahl $x
                              

                                  if (
                  $x==1){return 1;} // wenn x eins ist dann 1 rückgeben (ausnahme bei 1)
                                  
                  return $x*faku($x-1); // ansonsten die fakultät berechnen 
                              


                  gruß, Flyingfox
                  Fakultät von 0 ist aber auch 1 .. oder?
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    Zitat von dsmcg
                    Fakultät von 0 ist aber auch 1 .. oder?
                    per Definition: ja
                    Aufstrebend, kompetent und werbefrei.
                    www.developers-guide.net

                    Kommentar


                    • #11
                      0! ist als 1 definiert. Ja.
                      privater Blog

                      Kommentar


                      • #12
                        wenn man jetzt aber dieser funktion eine 0 weitergibt, endet es doch in eine Endlosschlaufe, oder nicht? jedenfals gibt es nicht 1 aus, oder verstehe ich das nicht richtig? ^o)
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          Zitat von dsmcg
                          wenn man jetzt aber dieser funktion eine 0 weitergibt, endet es doch in eine Endlosschlaufe, oder nicht?
                          Zu diesem Schluss könnte man kommen, wenn man sich die Funktion so betrachtet... :wink:

                          Kommentar


                          • #14
                            ja also ist die Aufgabe ned wirklich gelöst :P
                            Wie man Fragen richtig stellt

                            Kommentar

                            Lädt...
                            X