Пример #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())));
}
Пример #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);
}
Пример #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())));
}
Пример #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;
}
Пример #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;
}