2 Dimensionale Interpolation < Interpol.+Approx. < Numerik < Hochschule < Mathe < Vorhilfe
|
Hi,
ich würde gerne eine Funktion mit splines approximieren.
Die Funktion ist
[math]V: D\in\IR^2\to\IR^1[/math]
Das spezielle(?) ist die Definitionsmenge:
[math] D=\{x,y | \underbar{x}\le x\le \bar{x}, f(x) \le y \le \bar{y} \}[/math]
Graphisch kann man sich die Definitionsmenge so vorstellen, dass, wenn x ansteigt, die untergrenze für y (i.e. f(x)) fällt, allerdings schwächer je größer x ist. Also f'(x)<0 aber f''(0)>0.
Ich kenne den Funktionswert für alle (x,f(x)) und zusätzlich an vereinzelten Punkten in D. Ich weiß zu dem, dass die Funktion konkav und ansteigend in x und in y ist.
Meine Frage ist:
Ich würde eine solche Funktion gerne an Punkten, die ich nicht kenne interpolieren. Mein Eindruck ist, dass die meisten Interpolationsmethoden in Computerprogrammen (Matlab) davon ausgehen, dass die Funktion auf einem Rechteck der Form [a,b]x[c,b] definiert ist. Stimmt das, das eine solche Definitionsmenge problematisch für Interpolationsmethoden (ich habe v.a. splines ausprobiert) ist?
Ich muss sagen, dass ich Ökonom bin und wenig Ahnung von der Theorie hinter Funktionsapproximierung habe. Auf jeden Fall habe ich es nicht geschafft, die obige Funktion zufriedenstellend am Computer zu approximieren.
Ich wäre deshalb auch dankbar, wenn man mir grundsätzliche Hinweise geben könnte, wo ich über dieses Problem nachlesen könnte oder an welcher Stelle ich ansetzen sollte (also z.B. welche Approximationsmethode ich in welchem Computerprogramm ausprobieren sollte, ich bin aber auch an der Theorie interessiert)
Vielen Dank für Eure Hilfe & Mühe,
f-p
Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt: http://www.matheboard.de/thread.php?threadid=451533
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:47 Fr 01.04.2011 | Autor: | max3000 |
Splines stell ich mir da sehr schwierig vor.
Ich würde 3 "benachbarte" Punkt nehmen und zwischen diesen linear Interpolieren.
Das ganze ist auch unter dem Begriff baryzentrische Interpolation bekannt.
Vielleicht ist es das was du brauchst.
Aber wenn du das ganze Implementieren willst, dann wird sich sicherlich erstmal die Frage stellen, zwischen welchen bekannten Punkten denn dein x liegt, für das du den Funktionswert approximieren willst. Kannst du deine Frage etwas konkretisieren? So richtig verstanden hab ich das noch nicht. Du sagst du kennst alle (x,f(x)), und vereinzelte Punkte in D. Hab ich das richtig verstanden, dass du eine Menge von Punkten [mm] \{x_i\}_{i=0,\ldots,n} [/mm] gegeben hast, so dass
[mm] \{v_i:=V(x_i)\}_{i=0,\ldots,n} [/mm] bekannt ist?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:59 Fr 01.04.2011 | Autor: | fal-parsi |
Hallo, vielen Dank für Deine Antwort.
Ja, also mir ist der Funktionwert von V für eine Menge von Punkten [math]x_i \in D[/math] bekannt.
Ich kenne auch V(x,f(x)) für alle x.
Ich möchte eigentlich in der Lage sein den Funktionswert für jedes [math]x \in D[/math] zu approximieren.
Ich möchte nämlich am Ende des Tages das Maximum von V gegeben einiger Nebenbedingungen in D finden.
Bei linearer Interpolation bin ich mir nicht sicher, ob das mit dem maximieren so gut funktioniert. Ich würde deshalb lieber nicht linear interpolieren.
|
|
|
|
|
Hallo fal-parsi,
so wie max3000 muss ich sagen, dass ich die Aufgabe
noch nicht so ganz durchschaue. Soweit ich das Ganze
verstanden habe, schildere ich es mal in meinen Worten:
Du hast ein Gebiet D in [mm] \IR^2, [/mm] das begrenzt ist:
unten durch einen Funktionsgraph $\ y=f(x)$ mit $\ y'<0$ und $\ y''>0$
rechts durch eine Gerade [mm] x=x_{max}
[/mm]
oben durch eine Gerade [mm] y=y_{max} [/mm]
links durch eine Gerade [mm] x=x_{min}
[/mm]
Auf D soll eine Funktion [mm] V:(x,y)\mapsto{z}\in\IR [/mm] definiert werden,
deren Werte am unteren Rand (für Punkte des Graphen
von f) schon vollständig bestimmt sind und außerdem
für einige weitere in D liegende Punkte.
Falls für die Werte der Funktion V für Punkte auf der
unteren Randlinie eine feste Formel vorgegeben ist,
wäre wohl eine "Erweiterung" dieser Formel auf das
gesamte Gebiet D wünschenswert.
Ferner wäre wichtig zu wissen, ob die vorgegebenen
Werte in den zusätzlichen "Stützpunkten" exakt
getroffen werden müssen oder ob auch eine Approxi-
mation genügt.
Darf man eventuell sogar die Funktionswerte längs
der unteren Randkurve im Sinne einer akzeptablen
Approximation leicht abändern ?
Ein ganz konkretes Beispiel würde wahrscheinlich sehr
helfen, die passende Lösung zu finden. Und wie immer
bei solchen Problemen, die doch aus irgendeinem
praktischen Zusammenhang stammen, wäre es gut,
die eigentlichen Hintergründe der Fragestellung zu
erfahren. Wenn ich zum Arzt gehe, weil ich irgendwo
an meinem Körper gerötete Haut und Schmerzen habe,
fragt der Arzt auch für eine korrekte Diagnose mit
Recht danach, wo denn das sei.
LG Al-Chw.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:09 So 03.04.2011 | Autor: | fal-parsi |
Hallo Al-Chw.,
erstmal vielen Dank für Deine Mühe.
Es geht darum folgendes Problem zu lösen:
[math]W(x,y)=\max_{x',y'} \{ u(x,y,y',x')+ \beta \mathbb{E}V(x',y')\} [/math]
s.t. [math](x',y')\in C(x,y,y',x')[/math].
C ist ein Set von Nebenbedingungen. V ist die Funktion die in den anderen Post beschrieben wurde. Ich würde auch sagen, dass deine Rekapitulation bzgl. V korrekt ist.
Es geht also darum obige W(x,y) zu finden und V(x',y') ist nur eingeschränkt bekannt. Ich würde jetzt gerne V(x'',y'') dort wo V nicht bekannt ist, via Interpolation bestimmen.
Bzgl. deiner Fragen: ob interpolation oder approximierung ist mir erstmal nicht so wicht V(x,f(x)) sollte aber nicht manipuliert werden.
Hilft das dir die Problemstellung besser zu verstehen? Danke für Deine Hilfe.
Gruß,
fal-parsi.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:20 Mo 02.05.2011 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|