Einzelnen Beitrag anzeigen
Alt 22.04.2004, 20:46   #1
Chrisi99
Inventar
 
Benutzerbild von Chrisi99
 
Registriert seit: 22.12.2002
Alter: 39
Beiträge: 2.644

Mein Computer

Chrisi99 eine Nachricht über ICQ schicken
Standard 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
____________________________________
Der Unterschied zwischen Theorie und Praxis ist, das es in der Theorie keinen Unterschied zwischen Theorie und Praxis gibt, in der Praxis aber schon.

Wer schreibt, der bleibt!
Chrisi99 ist offline   Mit Zitat antworten