Problem mit Randwertaufgabe

24/03/2010 - 16:25 von denis.besak | Report spam
Hallo!

Ich hoffe jemand kann einem armen Physikdoktoranden mit einem
numerischen Problem weiterhelfen. :-)
Also das Problem ist wie folgt:

Gesucht ist \int dx \int dy f(x,y) Re g(b ->0;x,y)

mit bekannter Funktion f(x,y) und die Integrale jeweils von -\infty
bis +\infty. Die Funktion g bekommt man als Loesung einer DGL bzgl. b,
die ohne hier irrelevante Konstanten

i*beta(x,y)*(g''(b) + g'(b)/b) + alpha(x,y)g(b) + D(b)g(b) = i
\DiracDelta(b) (1)

lautet. Dabei ist D(b) wiederum bekannt, ebenso wie alpha und beta.
Zum Beispiel ist (ich geb nur das an weil es eine Rolle hier spielt)

beta(x,y) = (x - y)/(2*y*(x + y)) .

Um eine eindeutige Loesung fuer (1) zu bekommen legt man
Randbedingungen fest. Fuer b-> \infty muss die Loesung gegen Null
gehen. Fuer kleine b kann man die Koeffizienten in (1) entwickeln und
nur die fuehrende Ordnung in b mitnehmen, als Naehrungsloesung bekommt
man dann sowas wie

g(b) = i*ln(b)/beta(x,y) + const. (2)

wobei "const." auch einen Realteil hat (der ist letztendlich ja auch
gesucht). Die Idee ist dann, (1) nur fuer b > 0 zu loesen und die
Deltafunktion somit nur in die Randbedingung zu stecken.

Das Problem ist nun das Folgende: Ich habe mal mit MATHEMATICA fuer
feste Werte von x,y (also ohne das Integral zu rechnen) rumprobiert
und festgestellt, dass es Probleme gibt wenn x - y klein wird (z.B.
10^-3 reicht schon). Kann das daran liegen, dass beta, der Koeffizient
vor den Ableitungstermen, dann klein wird und das Probleme bei der
numerischen Loesung hervorruft? Fuer beta -> 0 muesste doch die
Nulloesung herauskommen, die Gleichung ist dann ja (alpha + D(b))g(b)
= 0, oder ist das zu naiv gedacht? Aber je kleiner x - y und damit
beta wird, desto groesser wird das Ergebnis, das MATHEMATICA mit
shooting erhaelt. (Ausserdem gibt es immer Fehlermeldungen wie „ The
equations derived from the boundary conditions are numerically ill-
conditioned“) Das ist auch insofern schlecht als die Funktion f(x,y)
fuer x - y = 0 eine Singularitaet hat-die sollte aber harmlos sein
wenn dafuer Re g(0,x,y) = 0 ist, was numerisch aber nicht herauskommt.
Einfach die Gleichung durch beta dividieren damit es nicht mehr
explizit als Faktor vor den Ableitungen steht aendert nichts am
Ergebnis. :-(

Wie kann man das Problem so formulieren dass die numerische Loesung
nicht schiefgeht? Was ist ueberhaupt das Problem (sofern es ueberhaupt
daran liegen kann) wenn der Vorfaktor vor den Ableitungen viel kleiner
wird als der vor der Funktion selbst? Wird das dann zu einer dieser
beruehmt-beruechtigten "steifen DGL" oder was passiert da? Ist
MATHEMATICA evtl. sogar bekannt dafuer, mit sowas nicht umgehen zu
koennen und unzuverlaessige Ergebnisse zu liefern?

Bin leider in Numerik (genauso wie mein "Chef" meinen Eindruecken
zufolge) echt kein Experte, wuerde eigentlich am liebsten alles
analytisch ausrechnen, aber leider geht das hier nicht... :-(

Vielen Dank schonmal!

Denis Besak
 

Lesen sie die antworten

#1 Vogel
25/03/2010 - 03:40 | Warnen spam
"" wrote in news:203c7de7-e7df-
:

Hallo!

Ich hoffe jemand kann einem armen Physikdoktoranden mit einem
numerischen Problem weiterhelfen. :-)



Du meinst wir sollen dir "mit" einer Lösung "bei" einem Problem
weiterhelfen?
Denn ein Problem hast du ja schon selber und wie mir scheint nicht nur
eines.

Also das Problem ist wie folgt:

Gesucht ist \int dx \int dy f(x,y) Re g(b ->0;x,y)

mit bekannter Funktion f(x,y) und die Integrale jeweils von -\infty
bis +\infty. Die Funktion g bekommt man als Loesung einer DGL bzgl. b,
die ohne hier irrelevante Konstanten

i*beta(x,y)*(g''(b) + g'(b)/b) + alpha(x,y)g(b) + D(b)g(b) = i
\DiracDelta(b) (1)

lautet. Dabei ist D(b) wiederum bekannt, ebenso wie alpha und beta.
Zum Beispiel ist (ich geb nur das an weil es eine Rolle hier spielt)

beta(x,y) = (x - y)/(2*y*(x + y)) .

Um eine eindeutige Loesung fuer (1) zu bekommen legt man
Randbedingungen fest. Fuer b-> \infty muss die Loesung gegen Null
gehen. Fuer kleine b kann man die Koeffizienten in (1) entwickeln und
nur die fuehrende Ordnung in b mitnehmen, als Naehrungsloesung bekommt
man dann sowas wie

g(b) = i*ln(b)/beta(x,y) + const. (2)

wobei "const." auch einen Realteil hat (der ist letztendlich ja auch
gesucht). Die Idee ist dann, (1) nur fuer b > 0 zu loesen und die
Deltafunktion somit nur in die Randbedingung zu stecken.

Das Problem ist nun das Folgende: Ich habe mal mit MATHEMATICA fuer
feste Werte von x,y (also ohne das Integral zu rechnen) rumprobiert
und festgestellt, dass es Probleme gibt wenn x - y klein wird (z.B.
10^-3 reicht schon).



Du hast was rumprobiert und was für Probleme gibt es?

Kann das daran liegen, dass beta, der Koeffizient
vor den Ableitungstermen, dann klein wird und das Probleme bei der
numerischen Loesung hervorruft?



Das kann man nur beurteilen wenn man die numerische Methode kennt die zur
Anwendung kommt und vor allen Dingen wenn man weiss was du herumprobiert
ist.

Fuer beta -> 0 muesste doch die
Nulloesung herauskommen, die Gleichung ist dann ja



(alpha + D(b))g(b) = 0

oder ist das zu naiv gedacht? Aber je kleiner x - y und damit
beta wird, desto groesser wird das Ergebnis, das MATHEMATICA mit
shooting erhaelt.



Vieleicht weil beta(x,y) = (x-y)*..., im Nenner steht?

(Ausserdem gibt es immer Fehlermeldungen wie „ The
equations derived from the boundary conditions are numerically ill-
conditioned“) Das ist auch insofern schlecht als die Funktion f(x,y)
fuer x - y = 0 eine Singularitaet hat-die sollte aber harmlos sein
wenn dafuer Re g(0,x,y) = 0 ist, was numerisch aber nicht herauskommt.
Einfach die Gleichung durch beta dividieren damit es nicht mehr
explizit als Faktor vor den Ableitungen steht aendert nichts am
Ergebnis. :-(



Versuch sie mal mit beta zu multiplizieren.

Wie kann man das Problem so formulieren dass die numerische Loesung
nicht schiefgeht?



Das Problem? Welches Problem?

Was ist ueberhaupt das Problem (sofern es ueberhaupt
daran liegen kann) wenn der Vorfaktor vor den Ableitungen viel kleiner
wird als der vor der Funktion selbst? Wird das dann zu einer dieser
beruehmt-beruechtigten "steifen DGL" oder was passiert da? Ist
MATHEMATICA evtl. sogar bekannt dafuer, mit sowas nicht umgehen zu
koennen und unzuverlaessige Ergebnisse zu liefern?



Jetzt platz einem aber wirklich der Kragen.
Was bist du für ein Einfaltspinsel?
MATHEMATICA ist ein höchst professionelles Programm.



Umgehen mit was "sowas"?
Es soll sogar Doktoranden geben die damit nicht umgehen können.

Bin leider in Numerik (genauso wie mein "Chef" meinen Eindruecken
zufolge) echt kein Experte, wuerde eigentlich am liebsten alles
analytisch ausrechnen, aber leider geht das hier nicht... :-(



Aber dein Chef kann doch bestimmt die analytische Lösung finden?
Aber damit kennt ihr euch auch nicht aus was?



Kleiner Tip:
Es gibt hervorragende Bücher über numerische Lösungsmethoden für DGL.
Numerik ist was anderes.






Selber denken macht klug.

Ähnliche fragen