DMUG-Archiv 2002

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Integral

Guten Morgen Jens,

plotten Sie nicht einfach den Realteil, sondern integrieren Sie.
Aus der Tatsache, dass Mma mit Ihrer Eingabe

With[{wh = 12, wp = 12, whu = 1680}
Plot[Integrate[f[wh, whu, wp, wpu, w], {w, 0, Infinity}], {wpu, 1675, 1685}]]

eine Grafik erzeugt hat, die Ihrer Intention nahekommt, schliessen Sie, dass
Mma das bestimmte Integral berechnen kann. Sie wissen, dass Plot[] automatisch
fuer wpu Stuetzstellen waehlt, um einen wirklichkeitsnahen Kurvenverlauf abzubilden.
Bei jeder Stuetzstelle erzwingen Sie eine weitere Integration, das ist ein efficiency leak.

In der Formel ist (Together[Ihres Ausdrucks])
f[wh, whu, wp, wpu, w] :=
4 wh wp/(Pi^2 (4 w^2 + wh^2 - 8 w whu + 4 whu^2)
(4 w^2 + wp^2 - 8 w wpu + 4 wpu^2))

Berechnet man das Integral fuer wh > 0 und wp > 0 mittels
Simplify[(Limit[Integrate[f[wh, whu, wp, wpu, w], w], w  -> DirectedInfinity[1]]  -
          Limit[Integrate[f[wh, whu, wp, wpu, w], w], w -> 0])  //. {Sign[wh] -> 1,
        Sign[wp]  -> 1}]

dann kann man dessen Ergebnis als die Funktion bredenF definieren:
bredenF[wh_, whu_, wp_, wpu_] := (Pi wh^3 +
          4 Pi wh whu^2 - Pi wh^2 wp +
          4 Pi whu^2 wp - Pi wh wp^2 + Pi wp^3 -
          8 Pi wh whu wpu - 8 Pi whu wp wpu +
          4 Pi wh wpu^2 + 4 Pi wp wpu^2 +
          2 wp (-wh^2 + 4 whu^2 + wp^2 - 8 whu wpu +
                4 wpu^2) ArcTan[2 whu/wh] +
          2 wh (wh^2 + 4 whu^2 - wp^2 - 8 whu wpu +
                4 wpu^2) ArcTan[2 wpu/wp] +
          4 wh whu wp Log[wh^2 + 4 whu^2] -
          4 wh wp wpu Log[wh^2 + 4 whu^2] -
          4 wh whu wp Log[wp^2 + 4 wpu^2] +
          4 wh wp wpu Log[wp^2 + 4 wpu^2])/(Pi^2 (wh^2 +
              4 whu^2 - 2 wh wp + wp^2 - 8 whu wpu +
              4 wpu^2) (wh^2 + 4 whu^2 + 2 wh wp + wp^2 -
              8 whu wpu + 4 wpu^2))

und damit ein glattes Bildchen erzeugen:
With[{wh = 12, wp = 12,  whu  = 1680},
Plot[{Integrate[f[wh, whu, wp, wpu, w], {w, 0, Infinity}],
bredenF[wh, whu, wp, wpu]}, {wpu, 1675, 1685},
      PlotStyle -> {RGBColor[1, 0, 0], RGBColor[0, 0, 1]}]]

Das Bildchen ist im Anhang und enthaelt  zum Vergleich in Rot
die urspruengliche numerische Schlachteplatte.

bredenF hat den Nenner

Pi^2 (wh^2 + 4 whu^2 - 2 wh wp + wp^2 - 8 whu wpu +  4 wpu^2)
(wh^2 + 4 whu^2 + 2 wh wp + wp^2 - 8 whu wpu + 4 wpu^2)

Kann dieser Nenner Null werden? Wenn etwa wh = wp = wx ist, dann
gibt es eine doppelte Nullstelle bei wpu = whu (!!) und
die Nullstellen wpu = whu +/- Sqrt[-wx^2].

Aber Sie haben Glück, die beiden Ausdruecke
Limit[Limit[bredenF[wh, whu, wp, wpu], whu -> wpu], wh -> wp]
und
Limit[Limit[bredenF[wh, whu, wp, wpu], wh -> wp], whu -> wpu]

sind beide für wp >0 und wpu >0 endlich und stimmen ueberein.

Letzlich ist zu kontrollieren, dass bredenF fuer wh -> wp und
whu -> wpu keinen endlichen Sprung macht, erst wenn das der Fall ist,
haben Sie Ihr glattes Bildchen wirklich in der Tasche.

Gruss
Udo.

> ich möchte Integral über das Produkt zweier Lorentzlinien als Funktion
> der Verschiebung einer dieser Linien berechnen (siehe *.nb im Anhang).
> Statt einer glatten Funktion erhalte ich starke Schwankungen um den
> Funktionsverlauf, den ich mir eigentlich vorgestellt hatte. Was geht
> hier schief? Wie geht es richtig?

GIF image

Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html