Hallo!
Ich versuche gerade eine dreidimensionale numerische Integration zu implementieren. Dazu habe ich folgende Funktion
typedef double (*ftyp) (double );
double intgerate(ftyp function, double x_min, double x_max);
umgesetzt, die ein einfaches eindimensionales Integral der Funktion function(x) ausrechnet.
Nun versuchte ich damit eine Funktion int_3d zu implementieren, die ein Integral der Funktion func(x, y, z) ausrechnet:
typedef double (*f3typ) (double ,double ,double );
double int_3d(f3typ func, double x1, double x2, double y1, double y2, double z1, double z2)
{
double g(double x, double y){
double f_z(double z){
return func(x, y, z);
}
return integrate(f_z, z1, z2);
}
double h(double x){
double f_y(double y){
return g(x, y);
}
return integrate(f_y, y1, y2);
}
return integrate(h, x1, x2);
}
Natürlich ist so eine verschachtelte Definition nicht zulässig. Wie könnte man das trotzdem programmieren? Ich bin für jede Hilfe sehr dankbar.
Vielen Dank im voraus.
Ray.