Chrisi99 |
22.04.2004 20:46 |
Rombergverfahren in C++
Ich brauche morgen in der Schule ein Programm um das Rombergverfahren vorführen zu können.
Ich habe mit google auch schon eines gefunden, aber leider will das nicht so ganz :( :( ich kenn mich auch zu wenig aus, als dass ich das richten könnt.
vlt kann einer der Könner mal kurz den Code anschauen ! :) würde mich freuen ..
Code:
//Romberg-Verfahren in C++
#include <iostream>
#include <cmath>
using namespace std;
double a = 0.; //linker Grenzwert
double b = 1.; //Rechter Grenzwert
int m = 9; //Schrittweitenhalbierung
double f(double x)
{
return (sin(20*x*x));
} //Funktion
double Trapez(double h, int w) //Trapezregel
{
double temp = 0.;
for (int v = 0.; v < w; v++)
{
temp += h * ( f(a+v*h) + f(a+(v+1)*h)) / 2; //summieren der Funktionen
}
return temp;
}
void Romberg()
{
double T[m+1] [m+1];
for (int i = 0; i <= m; i++)
{
T[i][0] =Trapez( (b-a)/(pow(2.,i)), int(pow(2.,i)) );
}
cout << endl;
for (int k = 1; k <= m; k++)
{
for (int i = k; i <= m; i++)
{
T[i][k] = T[i][k-1]-[i-1][k-1] ) /(pow(2.,2.*k)-1);
}
}
//Ausgabe der Iterationen
for (int i = 0; i <= m; i++)
{
cout <<"T["i<<"]["<<i<<"] = "<<T[i][i]<<" "\n";
}
return;
}
int main()
{
cout << "Romberg-Verfahren.. \nIterationen: \n";
cout.precision(10);
Romberg(); //Verfahrensstart
}
mfg&THX
|