Forum: Offtopic Hat jemand die Variationsrechnung verstanden


von A. S. (rava)


Lesenswert?

Irgendwie wurde das Thema Funktionale und Variationsrechnung bei uns 
etwas zu knapp behandelt. Jetzt habe ich's 10 Jahre lang nicht gebraucht 
und frage mich, ob das nicht vielleicht doch ganz praktisch wäre


Sagen wir ich habe eine Funktion
. Ich suche jetzt deren Inverse:
, sodass
.


Könnte man nicht ein Minimierungsproblem ansetzen?

oder so

Dieses müsste doch, z.B. in einem begrenzten Bereich lösbar sein, wenn 
man mittels Variationsrechnung nach g ableitet, oder?

Nur wie macht man das in der Praxis?

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Prinzipiell kannst Du eine Inverse durch Variationsrechnung berechnen - 
auch wenn das ein ungewöhnlicher Anwendungsfall ist. Voraussetzung ist 
natürlich auch, daß die Inverse überhaupt existiert und ebenfalls 
definit ist *).

Dann fehlt allerdings innerhalb des Doppelintegrals (ich nehme an über 
das Gebiet von Interesse) das Produkt mit der Testfunktion, die an den 
Rändern verschwindet. Da die Testfunktion (im Gegensatz zur 
Zielfunktion) an den Rändern verschwinden und an allen anderen Stellen 
definit sein muß, kann man nicht einfach die Zielfunktion als 
Testfunktion nutzen - das Produkt aus Test- und Zielfunktion ist also im 
Allgemeinen nicht Zielfunktion zum Quadrat.


*) Die Forderung, daß die Inverse im gesamten Gebiet definit ist, also 
daß die Ursprungsfunktion im gesamten Gebiet invertierbar ist und die 
Inverse keinen Sprung macht, macht die Variationsrechnung nur bei sehr 
eingeschränkten Funktionen überhaupt anwendbar.

: Bearbeitet durch User
von A. S. (rava)


Lesenswert?

Versteh ich dich richtig?
Du meinst, ich brauche einen zusätzlichen faktor alpha, der dafür sorgt, 
dass der Integrand am Rand des Integrationsbereiches 0 wird? Ich nehme 
an, weil sonst die Methode nicht funktioniert?

Also so? Da kann man sich ja etwas beliebiges ausdenken...

Und wie wäre dann das weitere Vorgehen, um g zu ermitteln?



Und ich brauche diesen Faktor alpha auch, wenn der Integrationsbereich 
ein ganzer Vektorraum ist, also von -inf bis +inf?

von Walter T. (nicolas)


Lesenswert?

A. S. schrieb:
> Du meinst, ich brauche einen zusätzlichen faktor alpha, der dafür sorgt,
> dass der Integrand am Rand des Integrationsbereiches 0 wird? Ich nehme
> an, weil sonst die Methode nicht funktioniert?
>
> Also so? Da kann man sich ja etwas beliebiges ausdenken...

Genau.

A. S. schrieb:
> Und ich brauche diesen Faktor alpha auch, wenn der Integrationsbereich
> ein ganzer Vektorraum ist, also von -inf bis +inf?

Dann verläßt Du den Bereich, wo die auf der Variationsrechnung 
basierenden Verfahren (Ritz-Verfahren, Galerkin-Verfahren) brillieren 
können. Die sind eben hauptsächlich dafür da, um echte Randwertprobleme 
zu lösen, anstelle irgendwelche Freiraumlösungen.

A. S. schrieb:
> Und wie wäre dann das weitere Vorgehen, um g zu ermitteln?

Du machst einen Ansatz für g und löst den numerisch, indem Du über das 
Gebiet integrierst und die Parameter für den Lösungsansatz von g 
bestimmst.

: Bearbeitet durch User
von A. S. (rava)


Lesenswert?

Walter T. schrieb:
> Du machst einen Ansatz für g und löst den numerisch

Ah okay. Damals in Regelungstechnik haben wir in der Variationsrechnung 
irgendwelche Hamiltonians angesetzt, Lagrange-Gleichungen gelöst und 
dann doch eher analytische Ergebnisse bekommen. Aber das war vermutlich 
doch was deutlich anderes...

Macht aber nichts. Nehmen wir deinen Weg.
Da wir ja eh numerisch unterwegs sind, könnte man jetzt auch auf die 
Idee kommen, x und y zu samplen.

ist aber eher ne doofe Idee, oder? Die ganze schöne Glattheit ist weg.

Könnte man die Samplingpositionen stattdessen in der alten Lösung 
irgendwie reincodieren, indem man alpha so definiert, dass da nur kleine 
Fensterchen um die Samplingpunkte herum bestehen?

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

A. S. schrieb:
> Die ganze schöne Glattheit ist weg.

Samplen entspräche einem Ansatz Nullter Ordnung. Wenn Deine eigentliche 
Gleichung keine Ableitungen benötigt, (eigentlich sind die Verfahren ja 
für Differenzialgleichungen gedacht), ist das kein Problem. Du willst ja 
nur noch integrieren, was in Deinem Fall einer einfachen Summe 
entspricht.

Das ist ja gerade der Reiz an diesen Verfahren: Die benötigte 
Ableitungsordnung ist begrenzt, d.h. ich kann lokale Ansätze verwenden.

Das Quadrat über dem Term in den eckigen Klammern gehört da nicht mehr 
hin. x hat Vektorcharakter, a(x) hat Vektorcharakter, d.h. das 
Skalarprodukt aus a(x_i) * [...] muss integriert werden.

Setzt Du den folgenden Ansatz an: a(x_i) = a_i mit a_i = 1 innerhalb des 
Gebiets und a_i = 0 an den bekannten Rändern, hast Du jetzt n-m 
Gleichungen mit n-m Unbekannten, die Du nach g_i lösen kannst. m ist 
übrigens einfach die Anzahl der bekannten Stützstellen an den Rändern.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

A. S. schrieb:
> Irgendwie wurde das Thema Funktionale und Variationsrechnung bei uns
> etwas zu knapp behandelt.

Deine Aufgabenstellung entspricht doch genau der 
Legendre-Transformation. Ich habe dazu mal ein kleines Rechenbeispiel 
beigefügt.

von Walter T. (nicolas)


Lesenswert?

Joe G. schrieb:
> Deine Aufgabenstellung entspricht doch genau [dem Zweck] der
> Legendre-Transformation.

100% Zustimmung (Ergänzung von mir).

Aber war den Sinn des Threads nicht, mal ein (ehr nicht so geeignetes) 
Beispiel für Variantionsrechnung durchgezogen zu haben, um das Prinzip 
zu verstehen?

von A. S. (rava)


Lesenswert?

Ich habe nicht verstanden, wie die Legendre-Transformation dabei helfen 
kann, eine Inverse zu berechnen. Das sieht doch eher so aus, dass ich 
die Inverse schon kennen muss, um die Transformation zu ermitteln. 
Tabellen mit vorberechneten Funktionen wie bei anderen Transformationen 
finde ich auch keine.


Also zurück zur anfänglichen Formulierung.

Ich krieg's noch nicht so richtig hin. Die korrigierte Gleichung ist 
also diese:


wie wäre es mit einem Beispiel - erstmal ein eindimensionaler Fall:
Ich suche ein Verfahren, das die zugehörige Inverse rechnerisch 
ermittelt. Hier die erwartete Lösung


dann wähle ich alpha wie du vorschlägst als eine Funktion, die immer 1 
ist, außer am Rand. Für den Integrationsrand definiere ich mal 
willkürlich x in [-1; +1].



Natürlich muss ich etwas Wissen in den Ansatz stecken, was die Funktion 
angeht. Aber man könnte ja z.B. eine Fallunterscheidung wählen, sodass 
g(y) = y^c für positive y und g(y) = -(-y)^c für negative y ist. Das 
c=1/3 > 0 ist gesucht. Also:


Jetzt muss ich gar nichtmal zuerst nach dem Parameter c ableiten, 
sondern kann sogar direkt nach x integrieren...

Das haut mich jetzt nicht so um. Also ist es egal, welches c ich wähle 
und mit diesem Ansatz finde ich immer eine fehlerfreie Lösung? Wohl 
kaum!
Wenn ich übrigens erst nach c ableite und dann erst nach x integriere, 
kommt selbstverständlich das selbe Ergebnis raus.

Was läuft schief?

von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

A. S. schrieb:
> Was läuft schief?

Schief..... nichts. Du hast die exakte Lösung in den Ansatz eingesetzt 
und es kommt das richtige Ergebnis heraus. Das haut keinen vom Hocker, 
ist aber auch nicht verkehrt.

Wo liegt das Problem: Hier wird ein Problem behandelt, für das diese 
Verfahren nicht besonders gut geeignet sind. Die Variationsverfahren 
sind gut für Randwertprobleme, d.h. Differenzialgleichungen, bei denen 
die Ränder bekannt sind. Diese sind analytisch nur sehr schwer in den 
Griff zu bekommen, weil die Ränder beliebig kompliziert sein können. Das 
einfachste Beispiel, das mir einfällt, wäre die Wärmeleitung in einem 
Kühlkörper: Die Gleichungen sind einfach gestrickt, aber der Rand des 
Kühlkörpers hat eine beliebig komplizierte Geometrie.

Die Inverse ist weder Differenzialgleichung noch ein echtes 
Randwertproblem. Entsprechend steckt man Aufwand hinein, der eigentlich 
nicht nötig wäre.


Ich habe mal im Bild in Anhang den typischen Lösungsweg für das Problem 
skizziert. Man merkt wohl, daß man alt wird, wenn man am Ostersonntag 
nach dem Kaffee keine partielle Integration mehr hinbekommt, aber der 
Weg sollte funktionieren.

von A. S. (rava)


Lesenswert?

Ich verstehe, ich habe das Problem nur an den Randpunkten gelöst und da 
funktionieren alle Werte für c. Der Grund, warum ich nur die Randpunkte 
untersucht habe ist folgender: ich habe alpha konstant gewählt. Da das 
Problem aber rotationssymmetrisch im Ursprung ist, heben sich die Fehler 
durch falsch gewählte c im Positiven und Negativen Teil auf. Das scheint 
mir Zufall zu sein für diesen Fall. Aber ein blöder, denn offensichtlich 
hat das Integral nicht den Fehler gemessen, den es messen sollte.

Man kann meine initiale Formulierung wählen mit RMSE-Integral. Das ist 
analytisch wegen dem Quadrat schon deutlich komplizierter. Wenigstens 
für den positiven Integrationsbereich liefert die Methode aber 
brauchbare Ergebnisse. Wenn man den Bereich aber von -1 bis +1 
erweitert, fängt man an, mit komplexwertigen Zahlen zu rechnen.

Walter T. schrieb:
> Entsprechend steckt man Aufwand hinein, der eigentlich
> nicht nötig wäre.

so? welcher Aufwand ist denn nötig, um eine allgemeine mehrdimensionale 
Inverse zu berechnen oder anzunähern, die auf einem frei definierbaren 
Intervall passt? Ich sehe ja ein, dass der Weg aufwändig ist. Aber 
siehst du einen besseren? Nur her damit!

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

A. S. schrieb:
> welcher Aufwand ist denn nötig, um eine allgemeine mehrdimensionale
> Inverse zu berechnen oder anzunähern, die auf einem frei definierbaren
> Intervall passt?

Von welcher Funktion suchst Du die Inverse? i.A. ist der Beweis, dass 
die Funktion überhaupt invertierbar ist, manchmal aufwendiger als die 
Inverse selbst.


A. S. schrieb:
> Aber
> siehst du einen besseren?

Der Klassiker ist die schon oben erwähnte Legendre-Transformation.


A. S. schrieb:
> Nur her damit!

Genau. Was ist denn Deine mehrdimensionale Funktion und was das 
Intervall?

von A. S. (rava)


Lesenswert?

irgendwann vielleicht mal die Generatorfunktion hier invertieren:
https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/contrib/eager/python/examples/generative_examples/dcgan.ipynb

Das schöne ist ja, dass man nicht die exakte Lösung braucht, sondern nur 
eine, die gut genug ist.

Der Rang des Generators passt natürlich nicht. Es gehen 100 Zahlen rein, 
aber dafür kommen 256 raus. Die meisten Invertierer unter uns wird das 
abschrenken, aber ich sehe das Problem noch nicht so richtig. Wie 
gesagt, eine approximative Lösung würde ja reichen.

Es gibt zwei Schwierigkeiten:
* Das Intervall ist schwierig zu definieren. Deswegen habe ich nach 
einem samplingbasierten Verfahren gefragt: Der Definitionsbereich ist 
durch ein paar tausend Bilder gegeben. Die lassen sich als Diracs oder 
auch mit Kernel darstellen. Man kann auch versuchen, eine konvexe Hülle 
außenrum zu zeichnen. Aber ich vermute mal, alle Invertierungsversuche 
sind ziemlich bescheuert, wenn man diesen Raum der möglichen Bildern 
nicht sauberer definieren kann. Sonst findet man zwar eine Inverse, aber 
die invertiert etwas völlig anderes als man möchte.
* Am Ende wird man über 2 Mio nichtlineare, verkoppelte Gleichungen 
haben. Falls man einen Ansatz wählt, der genauso viele freie Parameter 
hat wie der Generator. Deswegen habe ich auch nach der 
Variationsrechnung gefragt. In meiner Erinnerung kam die ohne "Ansatz 
aufstellen" aus und die korrekte Lösung fällt einfach heraus, weil man 
ein Gleichungssystem nach der gesuchten Funktion ableitet (und nicht 
nach deren Parametern). Um dort hinzukommen, war mir wichtig, erstmal 
das Verfahren genau zu verstehen - deswegen die Frage mit 
Spielzeugbeispielen.

Daher trainiert man wohl Invertierte Netze genauso aufwändig, wie 
normale Netze.

Walter T. schrieb:
> Der Klassiker ist die schon oben erwähnte Legendre-Transformation.

Ich habe aber das konkrete Vorgehen, um damit eine Inverse zu berechnen, 
noch nicht verstanden. Bleiben wir ruhig erst bei den einfachen 
Beispielen...
Laut der Beschreibung 
(https://de.wikipedia.org/wiki/Legendre-Transformation) hängen die 
Ableitung zwischen Originalfunktion und Bildfunktion über die Inverse 
zusammen. Man könnte also meinen, es geht so:

* ich will y = u(x) invertieren
* also ermittle ich deren Integral y = U(x) = f(x)
* das transformieren ich mit Legendre zu g(y) = S(y)
* dann leite ich das ab, und erhalten x = s(y), als odie Inverse zu u(x)
Aber: um mit Legendre zu transformieren muss ich ja genau diese Inverse 
händisch ermitteln, oder nicht? Auch in dem Beispiel, das auf Wikipedia 
steht, wird die Inverse u(x) durch Umstellen ausgerechnet. Legendre 
scheint nur den Integrationsschritt zu g(y) durch andere Mathematik zu 
ersetzen. Wo hänge ich hier bei dem Thema?

> Inverse_Galerkin.jpg

Was du vorhin als Inverse_Galerkin gepostet hast, leuchtet mir auch 
nicht mehr ganz ein. Du setzt den Fehler (bzw. das Residuum) F(x) an und 
leitest den dann nach x ab, suchst also den Teil des 
Definitionsbereichs, für den dieser Fehler minimal ist? Warum suchst du 
nach x? Müsstest du nicht nach deinen Parametern suchen?
Und dann wählst du eine Testfunktion als nicht konvergierende Summe aus 
Sinus-Termen 
(https://www.wolframalpha.com/input/?i=sum_(k%3D0)%5E10+sin(k+%CF%80+x), 
die aber wenigstens rotationssymmetrisch ist und damit nicht das Problem 
hat, dass die Parameter verschwinden. Kommt nicht was völlig anderes 
heraus, wenn ich z.B. diese hier wähle: 
https://www.wolframalpha.com/input/?i=sum_(k%3D0)%5E3+cos(k+%CF%80+x) ?

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

A. S. schrieb:
> Ich habe aber das konkrete Vorgehen, um damit eine Inverse zu berechnen,
> noch nicht verstanden. Bleiben wir ruhig erst bei den einfachen
> Beispielen...

Hier mal ein weiteres einfaches Beispiel gerechnet.

von Walter T. (nicolas)


Lesenswert?

A. S. schrieb:
> irgendwann vielleicht mal

Okay... da bin ich inhaltlich abgehängt. Inwieweit es eine weitere 
Definition der Pseudoinversen gibt, die das erlaubt, und ob man diese 
mit einem Variationsverfahren findet - dafür könnte man vermutlich noch 
einen Doktor bekommen.

A. S. schrieb:
> Du setzt den Fehler (bzw. das Residuum) F(x) an und
> leitest den dann nach x ab, suchst also den Teil des
> Definitionsbereichs, für den dieser Fehler minimal ist?

Um das Minimum zu finden, müßte ich die Ableitung Null setzen. Mache ich 
aber nicht. Tatsächlich wird die Testfunktion - die Variation - 
vormultipliziert. Jetzt entspricht das einer Ansammlung von 
Richtungsableitungen über das Gebiet (nicht dem Parameterraum). 
Integriere ich jetzt über das Gebiet, hätte ich bei bekannten Parametern 
eine nackte Zahl als Ergebnis. Ein Potenzial - oder besser: Eine Art 
Wirkung. Ich kenne die Parameter aber nicht, also suche ich das Minimum 
des "Potenzials" im Parameterraum.

A. S. schrieb:
> Und dann wählst du eine Testfunktion als nicht konvergierende Summe

Das ist tatsächlich nicht schlimm. Ich wähle ja ohnehin nur eine 
endliche Zahl n-1 an Summanden, d.h. je nach der Größe von n variieren 
natürlich die Ergebnisse u_j, aber die Summe konvergiert.

sum_i v_i * cos(π i x) funktioniert deswegen nicht als Ansatz, weil es 
nicht für alle v_i die Randbedingungen 0 erfüllt.

von Diode E. (c2h5oh)


Lesenswert?

Irgendwie werde ich das Gefühl nicht los, dass ihr beide nicht vom 
gleichen redet. Aus dem Eingangspost und dem Integral das der TO dort 
hingeschrieben hat dachte ich eigentlich, er möchte die Inverse dadruch 
berechnen dass er das Integral extremiert. Dann müsste er den Integrand 
hernehmen und die Euler-Lagrangegleichungen aufstellen. Leider würde ihm 
das dann nicht wirklich weiterhelfen, da diese erst wieder auf die 
analytische Berechnung der Inversen zusammenfallen.

Insbesondere das hier

A. S. schrieb:
> Ah okay. Damals in Regelungstechnik haben wir in der Variationsrechnung
> irgendwelche Hamiltonians angesetzt, Lagrange-Gleichungen gelöst und
> dann doch eher analytische Ergebnisse bekommen. Aber das war vermutlich
> doch was deutlich anderes...

ist doch genau das was ich meine?

https://de.wikipedia.org/wiki/Variationsrechnung#Euler-Lagrange-Gleichung;_Variationsableitung;_weitere_notwendige_bzw._hinreichende_Bedingungen

von Walter T. (nicolas)


Lesenswert?

Walter T. schrieb:
> also suche ich das Minimum des "Potenzials" im Parameterraum.

Wer schreibt denn so einen Unfug? Muß ein anderes, unkonzentriertes Ich 
gewesen sein. Ich suche natürlich die Nullstelle der Wirkung im 
Parameterraum.

von A. S. (rava)


Lesenswert?

Diode E. schrieb:
> ...

Danke, dass du dich einschaltest.

Ja. Meine Aufgabenstellung ist die Berechnung einer Inverse.
Ich habe mich an mein Studium zurückerinnert und bin darauf gekommen, 
dass wir damals in der Variationsrechnung Lösungsfunktionen ermittelt 
haben, ohne einen Ansatz zu brauchen. Leider kenne ich nur die eine 
Lagrange-Anwendung und das Lesen von Wikipediaseiten bringt einen in der 
Mathematik ja bekanntlich nicht weiter -

Dass Lagrange nicht hilft, ist klar, denn dabei geht es prinzipbedingt 
um zeitabhängige Funktionen und diesen "Luxus" habe ich leider nicht. 
Aber das sagt ja nicht, dass es nicht andere Werkzeuge der 
Variationsrechnung gibt, die mir helfen.

ich werde mir mal einen ruhigen Tag nehmen, meinen Kopf leerschütteln 
und dann nochmal versuchen zu verstehen, was mr nicolas in seinen 
letzten beiden Posts versucht hat, zu erklären...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.