interpolieren



  • Hallo zusammen,

    hat schonmal jemand versucht eine gescheite Interpolation durchzuführen und kann mir dazu ein paar Tips geben, wie man soetwas relativ einfach impelementiern kann?? Die Interpolationsmethode ist dabei ersteinmal zweitrangig.

    Danke für eure Hilfe
    Michael



  • Wie wäre es mit linearer Interpolation?

    Startwert - Endwert Wie wäre es mit linearer Interpolation?
    Das ist die einfachste Methode.

    Du hast einen Startwert Start.
    Und einen Endwert Ende.
    Jetzt muss du noch wissen, wieviele Stufen dazwischen liegen sollen.
    Stufen k.
    In einer Schleife kannst du dann zum Start Wert (Ende-Start)/k hinzufügen.
    Nach k Durchläufen ist der Endwert erreicht.



  • Ja okai, ich muss also in Schleifen die gewünschte Interpolation (ob nun linear, spline oder sonst irgendeine Methode) implementieren.
    Es gibt somit keinen Funktionsaufruf, der mir das abnehmen kann, wobei ich eben nur die gewünschten Parameter, sprich Stützstellen und Stufenanzahl übergebe???



  • Klar kannst du die Schleife auch in eine Funktion reinpacken:

    double inter(double x,int n,double*xv,double*yv)
    {
      int i=0;
      while(i<n&&xv[i]<x)++i;
      if(i==n)return yv[i-1];
      if(i==0)return yv[0];
    
      return (x-xv[i-1])*(yv[i]-yv[i-1])/(xv[i]-xv[i-1]) + yv[i-1];
    }
    

    (das wäre als Beispiel die lineare Interpolation - n Stützstellen an Position xv[0..n-1] (steigend) mit Werten yv[0..n-1] sind gegeben, f(x) wird gesucht)


Anmelden zum Antworten