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 bei Unstetigkeiten

 

KardinalWest
Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 15.10.08
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 12.01.2009, 17:53     Titel: Interpolation bei Unstetigkeiten
  Antworten mit Zitat      
Serwus zusammen,

Mal wieder eine (blöde?) Frage meinerseits:

Ich muss einen relativ umfangreichen Messdatensatz aus Excel importieren und dann an bestimmten Stellen Zwischenwerte interpolieren. Aufgrund der Art der Daten lässt sich leider nicht vermeiden, dass manche x-Werte doppelt vorkommen. Gibt es einen Algoritmus, mit dem ich trotzdem Interpolieren kann?

vereinfachtes Beispiel:
Code:

x=[0 1 2 2 4 ];
y=[0 1 2 3 6 ];
xi=[2.5 3];
yi=interp1(x,y,xi,'cubic')
Private Nachricht senden Benutzer-Profile anzeigen


Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 12.01.2009, 17:58     Titel:
  Antworten mit Zitat      
Prinzipiell würd ich jetzt erstmal an den Daten was ändern,
also doppelte Werte filtern, mitteln o.ä.

Dann sollte das interpolieren funktionieren. Smile
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
KardinalWest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 15.10.08
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 14.01.2009, 12:06     Titel:
  Antworten mit Zitat      
Daten ändern ist leider nicht drinn...

Es handelt sich dabei um Sieblinien von Bodenproben. Interpoliert werden sollen die charakteristischen Durchmesser (also z.B.: Welcher Durchmesser wird von 10 % der Probe unterschritten etc...) Nun kann es eben vorkommen, dass zwischen zwei Sieben kein Anteil der Probe liegen bleibt (Ausfallkörnung) und somit die Massenprozent über mehrere Durchmesser konstant bleibt...

Keiner eine alternative Idee?
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2009, 13:13     Titel:
  Antworten mit Zitat      
In dem Fall bleibt aber dein y-wert konstant, das ist kein Problem.

Auf der x-achse trägst Du die Siebweite ab und auf der y-Achse die kumulierten Massen. Wenn auf dem k-ten Sieb nichts liegen bleibt, ist der y-wert beim k+1-ten Sieb eben der gleiche wie beim k-ten Sieb.

Eine Interpolation geht damit wie gewohnt.
Private Nachricht senden Benutzer-Profile anzeigen
 
KardinalWest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 15.10.08
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 14.01.2009, 15:24     Titel:
  Antworten mit Zitat      
Eben leider nicht:

Bekannte x-Werte= Massenprozent
Bekannte y-Werte= verwendete Siebdurchmesser

Interpolation an x-Werten= charakteristische Werte (10 Massenprozent, 20 usw...)
Unbekannte y-Werte= Durchmesser an diesen Stellen

Massenprozent bleiben teilweise konstant.

Egal wie man die Kurve dreht und wendet: Die Stützstellen für die Interpolation liegen auf der Achse, auf der die Werte doppelt sind....
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 14.01.2009, 15:35     Titel:
  Antworten mit Zitat      
Was erwartest du von der Interpolationan diesen Stellen?
Also wie sollte sie eigentlich mit diesen Problem-Werten umgehen?
Du hast ja eine Erwartungshaltung, die müssen wir nur matlabisch beschreiben. Wink
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Epfi
Forum-Meister

Forum-Meister



Beiträge: 1.134
Anmeldedatum: 08.01.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2009, 15:59     Titel:
  Antworten mit Zitat      
[viel Text gelöscht] Jetzt sehe ich auch das Problem. [nochmal viel Text gelöscht] Jetzt sehe ich das Problem endgültig ;) Du hast recht, mit interp() ist das so nicht möglich.

Was hälst Du von der Idee, x- und y-werte zu vertauschen, damit sich eine eindeutige Funktion ergibt und diese mit Hilfe eines Polynoms oder Splines nachzubilden um daraus dann die interpolierten Werte abzugreifen? Wäre das dööfste, was mir dazu jetzt einfallen würde.
Private Nachricht senden Benutzer-Profile anzeigen
 
KardinalWest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 42
Anmeldedatum: 15.10.08
Wohnort: Salzburg
Version: ---
     Beitrag Verfasst am: 14.01.2009, 16:49     Titel:
  Antworten mit Zitat      
@Maddy:
Im Normalfall fallen die Stellen an denen Interpoliert werden soll nicht auf die Unstetigkeiten. (Ganz auszuschließen ist es aber nicht)

@Epfi:
In meinem Programm wirken sich geringe Änderungen bei den Massenprozent im Bereich der kleinen Durchmesser stark auf die daraus berechneten Anzahlprozent der Körner und damit auf Porenraum und Filtrationsverhalten aus. Aus dem Grund wollte ich die Ausgagsdaten so wenig wie möglich beeinflussen.
Das Ganze durch ein Polynom auszudrücken kam mir auch schon in den Sinn. Kopfzerbrechen bereitet mir aber die Mathematik dahinter. Schließlich möchte ich nicht bei jeder Kurven "händisch" überprüfen, wie gut sie durch das Programm gefittet wird (Überschwinger etc...).


Meine Lösung momentan:
Wenn die Unstetigkeit am Anfang oder Ende der Kurve (0 bzw 100%)passiert, kürzt das Progamm einfach die betreffende Matrix.
Tritt das Problem irgendwo in der Mitte auf, wird wird einer der beiden Werte um eine Winzigkeit korrigiert. Nicht unbedingt elegant, funktioniert aber fürs Erste...

Danke für eure Hilfe!
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 - 2024 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.