コード例 #1
0
ファイル: integration.cpp プロジェクト: grimmjoe/NuMeth
double Integration::stepRectangle(double eps) const
{
	Derivator* derivator = new Derivator(f);
	Func g = derivator->derive();
	double max = g.maxModulo(ab);
	delete derivator;

	return (2*eps / (max*(ab.end() - ab.begin())));
}
コード例 #2
0
ファイル: integration.cpp プロジェクト: grimmjoe/NuMeth
double Integration::stepSimpson(double eps) const
{
	Derivator* derivator = new Derivator(f);
	Func g = derivator->derive(4);
	double max = g.maxModulo(ab);
	delete derivator;

	return pow(180*eps / (max*(ab.end() - ab.begin())), 0.25);
}
コード例 #3
0
ファイル: integration.cpp プロジェクト: grimmjoe/NuMeth
double Integration::stepTrapezoid(double eps) const
{
	Derivator* derivator = new Derivator(f);
	Func g = derivator->derive(2);
	double max = g.maxModulo(ab);
	delete derivator;

	return sqrt(12*eps / (max*(ab.end() - ab.begin())));
}
コード例 #4
0
ファイル: integration.cpp プロジェクト: grimmjoe/NuMeth
double Integration::errorSimpson() const
{
	Derivator* derivator = new Derivator(f);
	Func g = derivator->derive(4);
	double max = g.maxModulo(ab);
	double h = (ab.end() - ab.begin()) / 4;
	delete derivator;

	return (max * pow(h, 4) * (ab.end() - ab.begin())) / 180;
}
コード例 #5
0
ファイル: integration.cpp プロジェクト: grimmjoe/NuMeth
double Integration::errorRectangle() const
{
	Derivator* derivator = new Derivator(f);
	Func g = derivator->derive();
	double max = g.maxModulo(ab);
	double h = (ab.end() - ab.begin()) / 4;
	delete derivator;

	return (max * h * (ab.end() - ab.begin())) / 2;
}