Hallo zusammen,
meine Frage lautet:
Wie kann man ein Integral in C++ fuer eine beliebige Funktion
mit der Gußsche Quadratur errechnen?
Danke zu allen
Nabil
Hallo zusammen,
meine Frage lautet:
Wie kann man ein Integral in C++ fuer eine beliebige Funktion
mit der Gußsche Quadratur errechnen?
Danke zu allen
Nabil
Hallo Nabil,
Wie kann man ein Integral in C++ fuer eine beliebige Funktion
mit der Gaußsche Quadratur errechnen?
Gegenfrage: Was ist für dich eine „beliebige Funktion“? Ich kann mir ziemlich wilde Funktionen vorstellen!
Chris
Hier am Ende ist ein Beispiel :
http://gaia.iwr.uni-heidelberg.de/httpdoc/Lectures/S…
Wenn du beliebige Funktionen integrieren willst brauchst du einen Parser der die Funktionsgleichung einliest und einen Funktionswert berechnen kann. Ansonsten reicht schon eine einfach funktion „double f(double x) { }“.
Ist allerding ganz schoen kompliziert. Wie waere es denn erstmal mit Rechteck/Trapez oder Simpsonformel?
„Schnippschnapp“ da ham wirs doch wiedergefunden :
-Numerische Integration- (Billigversion)
double simpsonFormel(double l, double r, long int d, double (\*f)(double x))
{
if (l == r) return(0.0);
else if (l \> r) {
//linke \> rechte Grenze --\> vertauschen
double swap = l;
l = r;
r = swap;
}
if (d 0) d++; //gerade anzahl an stüzstellen schaffen
double delta = ((r - l) / (double)d); //deltaX = (rechte Grenze - linke Grenze) geteilt durch Schrittzahl
double A = 0.0;
double x = l + delta; //x = linke grenze + schritt (x1)
//gerade Summen : Summe 3 = 4\*(y2 + y4 + ... + y(2n-2))
for(int i = 2; i
l = linke Grenze
r = rechte Grenze
d = Anzahl der Schritte
f = Funktion f(x) deren Integral berechnet werden soll
Als Funktion muss man dann eine eigene Funktion definieren, die Funktionswerte zurückgeben kann z.B. :
double f(double x)
{
return(sqrt(1.0 + (2.0\*x\*x\*x\*x)));
}
Wenn man das Integral beliebiger Funktionen errechnen will, muss man die Eingaben des Benutzers auswerten. Der gibt eine Funktion an, die dann anstatt "f" benutzt wird...
KIM