WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Interpolation mit gleichzeitiger Extrapolation

 

Twentyfive
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 14.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.06.2013, 21:06     Titel: Interpolation mit gleichzeitiger Extrapolation
  Antworten mit Zitat      
Hallo Gemeinschaft!
Ich bin auf der Suche nach einer Funktion, welche auf einem unregelmäßigen Gitter interpolieren und gleichzeitig extrapolieren kann.
Bisher benutze ich die Funktion griddata. Das Interpolationsverfahren v4 beinhaltet zwar eine Extrapolation, allerdings führt dies zu nicht akzeptablen Ergebnissen.
Bei der zu interpolierenden Fläche handelt es sich um einen Kreis. Da ich Stützwerte auf sechs Geraden im Kreis habe, erhalte ich sonst beim Plotten der interpolierten Werte ein Sechseck, anstatt einem Kreis.
Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


matlabnoob90
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 01.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.09.2013, 22:50     Titel:
  Antworten mit Zitat      
Hallo, ich habe zwar keine Antwort zu der Frage,
aber, das ich auf der Suche
nach einer ählnichen Funktion wie du bin,
frische ich deinen Beitrag hiermit auf Wink

Ich verwende für die 3D Interpolation (auch mit Messgitter)
die Funktion TriScatteredInterpol().

Auch ich bin auf der Suche nach einer zusätzlichen Extrapolation zwischen den Randstellen und gewünschten Stütztstellen.

Vielen Dank!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Twentyfive
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 14.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2013, 12:15     Titel:
  Antworten mit Zitat      
Servus,

also ich habe das Poblem jetzt mit der interp Interpolation gelöst. Die Interpolationsmethode 'spline' beinhaltet eine Extrapolation. Bei nicht zu starken Gradienten in den Randbereichen des Interpoaltionsgebietes führt es auch zu durchaus akzeptablen Ergebnissen.

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabnoob90
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 01.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2013, 13:49     Titel:
  Antworten mit Zitat      
Hallo,
danke schonmal für deine schnelle Antwort...
könntest du mir vllt. deinen Code zeigen?


Hier ist mein Code:
Code:

F=scatteredInterpolant(n,M,P,'natural','none');
[X,Y]=meshgrid(1400:1:3000,0:1:1200);
F_matrix=F(X,Y);
[c,h]=contourf(X,Y,P_matrix)
 


Hier ist anzumerken, dass n,M,P gegebene ein-Spalten-Vektoren sind.

Ich würde nun gerne Punkte außerhalb des Interpolationsbereichs festlegen,
und diese per Extrapolation mit der Information P füllen.

Vorschläge?
Oder hättest du / hättet ihr das ganz anders gemacht?

Danke schonmal!!!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Twentyfive
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 14.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.09.2013, 20:02     Titel:
  Antworten mit Zitat      
Hallo!
Da du scatteredInterpolant nutzt, hast du demzufolge auch keine regelmäßig angeordnete Daten!?

Hier ist die Funktion, die du nutzt erklärt. Die Funktion kann extrapolieren, allerdings nur mit niedrigen Ordnungen.
http://www.mathworks.de/de/help/mat.....eredinterpolantclass.html

[X,Y]=meshgrid(1400:1:3000,0:1:1200);
Dadurch legst du ja dein Interpoaltionsgitter fest. Du musst diese beiden Vektoren nur um dein Gebiet für die Extrapolation eeweitern. Die Funktion extrapoliert automatisch in dem Gebiet außerhalb der Stützstellen.

Habe leider meinen Quelltext gerade nicht zur Verfügung, aber der sieht genauso aus wie deiner.
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabnoob90
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 01.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2013, 00:33     Titel:
  Antworten mit Zitat      
Hi,
danke schonmal für die hilfreiche Antwort.

Nur noch ein Problem:
Mein Messgitter ist "grob" gewählt und beinhaltet mehr Punkte als meine Funktion.
Was ich damit sagen will ist, dass ich zwar (was schon sehr hilfreich ist!) die Stützstellen für die Extrapolation mit ins Messgitter nehmen kann, jedoch das Problem habe, dass oberhalb meiner begrenzenden Kurve (durch die Stütztstellen gegeben) ebenfalls extrapoliert wird.

Hättest weiterhin einen Vorschlag, wie ich ihm sagen könnte, dass er oberhalb der obersten Stützstellen nicht interpoliert, ich ihm aber trotzdem ein "meshgrid" vorgeben kann?
Ich hoffe, das war verständlich formuliert!

Liebe Grüße und danke schonmal für weitere hilfreiche Gedankenanstöße.
Private Nachricht senden Benutzer-Profile anzeigen
 
Twentyfive
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 14.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2013, 12:25     Titel:
  Antworten mit Zitat      
Hallo!
Vollständig konnte ich dir jetzt nicht folgen.
Es ist jedenfalls so, dass die Funktion nur auf dem vorgegebenen Gitter arbeitet. Das Gitter muss monoton und regelmäßig sein, also kannst du nicht irgendwelche Knoten herausnehmen. In der Funktion selbst hast du nur wenige Einstellparameter. Die einzige Möglichkeit, die ich sehe, ist einfach mit einer Schleife nach der Interpolation/Extrapolation die "ungewollten" Werte rauszuschmeißen.
Private Nachricht senden Benutzer-Profile anzeigen
 
matlabnoob90
Forum-Anfänger

Forum-Anfänger


Beiträge: 45
Anmeldedatum: 01.07.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.09.2013, 20:20     Titel:
  Antworten mit Zitat      
Naja ich hab halt ein Kennfeld, bei dem ich nur "unterhalb" des Kf interpolieren will.

Wie würd denn so eine Schleife aussehen?
danke schonmal!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.