interpolation

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

  • interpolation

    Hi!
    Folgende Probleme :
    1. ich bin kein matheass
    2. ich muss ein diagramm zeichnen lassen... soweit kein problem, gibt genug klassen dafür...

    Ich habe nun einen Bereich von bsp. 1 - 6 den ich darstellen will wobei ich habe aber nur folgende werte :

    $werte[1] = 10
    $werte[2] = 24
    $werte[3] =
    $werte[4] =
    $werte[5] =
    $werte[6] = 168

    ... wie errechne ich in einer schleife duzrch das array "$werte" die werte für 3,4 und 5 damit im Diagramm die Linie nicht plötzlich auf null springt, sondern konstant bis zum nächsten gegebenen Wert steigt ?

    Ich hoffe ihr habt mich soweit verstanden...
    Vielen Dank im Vorraus ...

  • #2
    PHP-Code:
       $werte[0] = 10;
       
    $werte[1] = 24;
       
    $werte[2] = '';
       
    $werte[3] = '';
       
    $werte[4] = '';
       
    $werte[5] = 34;
       
       for (
    $i 0$i sizeof ($werte); $i++)
       {
               if (
    $werte[$i]) 
               {
                  
    $konstant $werte[$i];
               }
               else
               {
                  
    $werte[$i] = $konstant;
               }
       }
       
    print_r($werte); 
    btw: der erste index eines arrays ist die 0

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hi,

      sehe ich das richtig das hier , wenn kein wert vorhanden ist, der vorherige übernommen wird ? Das würde ja bedeuten das es keine konstante steigung von a nach b gibt, oder ? sondern treppenartig... Mein Problem ist ja grad das ich eine steigung brauche also nicht:

      PHP-Code:
      |
      |                                    
      x
      |
      |                     
      |
      |        
      x     x     x      x 
      |                          
      |       
      x
      |________________________________ 
      sondern :

      PHP-Code:
      |
      |                                  
      x
      |                            x
      |                      x
      |               x
      |        x       
      |                          
      |       
      x
      |_________________________________ 

      Aber Danke trotzdem !!!

      Kommentar


      • #4
        Du willst also einen Wert erfinden?

        1.) anzahl der fehlenden werte ermitteln (3)
        2.) differenz der beiden "umgebenden Werte" errechnen (10)
        3.) Division 2. durch 1. (3,33)

        Jetzt haste deinen erröhungsschritt. Den brauchst du nur noch zuaddieren.

        So wäre das Prinzip.

        Aber wenn du deiner Klasse einfach die Werte verschweigst, würde der graph dann nicht (nach dem gleichen) Schema automatisch gezeichnet? Immerhin gibst du den Punkt für x =1,5 auch nicht an.

        Kommentar


        • #5
          Leider muss ich den gesamten bereich zumindest anzeigen, z.B. einen ganzen monat, tag für tag ... und die Linie soll linear steigen und nicht treppenförmig... wenn ich einen wert mit null übergebe springt die linie auch auf 0 bevor sie wieder steigt... Kennst du vielleicht ne klasse die das automatisch ausrechnet ?

          Ich probier dein script erstmal aus, danke schonmal...

          Kommentar


          • #6
            Falls dir die "eckige" Kurve nicht genügt, dann such mal bei Wikipedia nach "Polynominterpolation". Das ist aber schon ziemlich rechenaufwändig...
            andreas.mkq.de

            Kommentar


            • #7
              womit zeichnest du eigentlich den graph?
              ich meine, jpgraph hatte so eine ähnliche funktion bereits eingebaut..

              Kommentar


              • #8
                Hi,

                mathematisch gesehen ein einfaches Problem:
                Du willst eine Grade (y=m*x+b) durch zwei gegebene Punkte berechen. Dazu berechnest Du erst die Steigung:
                m = (y2-y1)/(x2-x1)
                Dann setzt Du einen der gegebenen Punkte ein, um b zu berechnen:
                b = y - m*x
                Damit hast Du die Gradengleichung, mit der Du die fehlenden Punkte berechnen kannst.
                1. ich bin kein matheass
                ACK

                LG

                Kommentar


                • #9
                  oder so.

                  Kommentar

                  Lädt...
                  X