Näherungsverfahren < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 10:41 Mo 20.11.2006 | Autor: | julylein |
Weiß zufällig jemand welches Verfahren die Funktion
NIntegrate[]
von Mathematica verwendet????
Danke schonmal...
Julia
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:23 Mo 20.11.2006 | Autor: | halcyon |
Hi,
NIntegrate benutzt als voreinstellung das sogenannte Gauss-Kronrod-Verfahren. Dies ist eine Abwandlung des Gauss-Verfahrens. Weil ich nicht weiss wieviel Vorwissen Du hast erzähl ich einfach erstmal was über das Gauss-Verfahren, was für deinen Vortrag auch interessant sein könnte. Beim Gaussverfahren nähert man das Integral an, indem man ein Interpolationspolynom aus mehreren Stützstellen konstruiert und dieses dann integriert anstatt die Funktion selber. Darauf basieren auch die einfacheren Verfahren, wie zB die Trapez-Regel (Interpolationspolynome sind ersten Grades, d.h. Geraden) und die Simpson-Regel(quadratische interpolationspolynome). Diese fasst man allgemein unter dem Sammelbegriff Newton-Cotes-Formeln zusammen. Diese einfacheren Verfahren haben gemeinsam, dass die Stützstellen über das Integrationsintervall gleichmässig (d.h. äquidistant) verteilt sind. Als freie Parameter bleiben dann nur die Gewichtungen der einzelnen Funktionswerte an den Stützstellen übrig. Diese bekommt man durch die Bedingung heraus, dass Polynome bis zum Grad des Interpolationspolynoms exakt integriert werden sollen. D.h. das die Simpsonregel zB beliebige quadratische polynome exakt integrieren kann. Die Idee hinter der Gaussquadratur ist nun, das man neben den Gewichtungen der Funktionswerte an den Stützstellen auch deren Position im Integrationsintervall als freie Parameter zulässt, d.h. dass man sich damit von den äquidistanten Stützstellen löst. Um diese zusätzlichen freien Parameter zu bestimmen braucht man mehr Bedingungen, die man einfach dadurch bekommt, dass man das exakte Integrieren von Polynomen höheren Grades fordert. Während man bei den Newton-Cotes-Formeln mit n Stützstellen Polynome n-ten Grades exakt integrieren kann, erlauben die Gauss-Formeln bei gleicher Stützstellenzahl das exakte Integrieren von Polynomen des Grades 2*n-1. Der Nachteil der Gauss-Formeln ist, dass man bei nachfolgender Erhöhung der Anzahl von Stützstellen die alten Funktionswerte nicht weiterbenutzen kann, weil die alten und die neuen Stützstellen keine Stützstellen gemeinsam haben. Diese sukzessive Verfeinerung der Stützstellen ist aber sehr wünschenswert weil man dadurch abschätzen kann ob eine Näherung sich dem wahren Integralwert angleicht, da sich in diesem Fall aufeinanderfolgende Näherungswerte nicht mehr groß voneinander unterscheiden. Bei Gauss-Kronrod-Formeln bestimmt man ausgehend von einem Gauss-Verfahren mit n Stützstellen mit Gewichtungen nun m weitere Punkte so, dass sie das Integral möglichst gut annähern. Dies ist allerdings alles andere als Trivial und geht ziemlich ans Eingemachte.
Bei NIntegrate kannst Du mit der Option 'Method' die Integrationsmethode angeben. Mögliche Werte sind zB {GaussKronrod, DoubleExponential, Trapezoidal, Oscillatory, MonteCarlo, QuasiMonteCarlo}. Also zB
NIntegrate[Sin[x],{x,0,3pi},Method->QuasiMonteCarlo]
Hilfreich um die Integrationsmethoden zu verstehen ist NIntegrate allerdings nicht wirklich. Besser ist wohl, wenn du dir die entsprechenden Methoden nachprogrammierst.
Gruß,
Thies
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:11 Mo 20.11.2006 | Autor: | julylein |
Wow, danke für deine ausführliche Antwort! Habs eigentlich nicht mehr erwartet das ich eine Antwort bekomme.
Der Mathematikabefehl ist nur als Ergänzung in meiner Ausarbeitung über die Näherungsverfahren enthalten.
Beim selber-ausprogrammieren tu ich mir etwas schwer, da ich nicht besonders gut in Mathematik bin. Ich versuche halt so gut wie möglich die Formel herzuleiten und dann die Formel zu definieren.
Gibts da noch andere (bessere) Möglichkeiten?
Danke nochmal, lg Julia
|
|
|
|