Integral errechnen

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! :wink:

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