Ejemplo n.º 1
0
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())));
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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())));
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
0
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;
}