|
|
Interpolation bei Unstetigkeiten |
|
KardinalWest |
Forum-Anfänger
|
|
Beiträge: 42
|
|
|
|
Anmeldedatum: 15.10.08
|
|
|
|
Wohnort: Salzburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.01.2009, 17:53
Titel: Interpolation bei Unstetigkeiten
|
|
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:
|
|
|
|
|
Maddy |
Ehrenmitglied
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 02.10.08
|
|
|
|
Wohnort: Greifswald
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.01.2009, 17:58
Titel:
|
|
Prinzipiell würd ich jetzt erstmal an den Daten was ändern,
also doppelte Werte filtern, mitteln o.ä.
Dann sollte das interpolieren funktionieren.
_________________
>> why
The computer did it.
|
|
|
KardinalWest |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 42
|
|
|
|
Anmeldedatum: 15.10.08
|
|
|
|
Wohnort: Salzburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2009, 12:06
Titel:
|
|
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?
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2009, 13:13
Titel:
|
|
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.
|
|
|
KardinalWest |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 42
|
|
|
|
Anmeldedatum: 15.10.08
|
|
|
|
Wohnort: Salzburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2009, 15:24
Titel:
|
|
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....
|
|
|
Maddy |
Ehrenmitglied
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 02.10.08
|
|
|
|
Wohnort: Greifswald
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2009, 15:35
Titel:
|
|
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.
_________________
>> why
The computer did it.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2009, 15:59
Titel:
|
|
[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.
|
|
|
KardinalWest |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 42
|
|
|
|
Anmeldedatum: 15.10.08
|
|
|
|
Wohnort: Salzburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.01.2009, 16:49
Titel:
|
|
|
|
|
@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!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|