Całkowanie numeryczne - metoda Simpsona. a zmodyfikowana całka

0

Mam taki oto kod całkowania numerycznego metodą Simpsona:

	double calka;
	int i, n;

	n = (xk - xp) / (float)dx;
 
	calka = 0;
	s = 0;

	for (i=1; i<n; i++)
	{
		x = xp + i*dx;
		s += func(x - dx / 2);
		calka += func(x);
	}

	s += func(xk - dx / 2);
	calka = (dx/6) * (func(xp) + func(xk) + 2*calka + 4*s);
 
	return calka;

Problem jednak polega na tym, że standardową całkę potrzebuję troszkę modyfikować.

user image

Potrzebuję zmodyfikować wyżej wymieniony kod tak aby liczyć całkę tą u góry (dodatkowe mnożenie przez x).

Ktoś mógłby doradzić jak zmodyfikować kod aby to zrealizować? Przy całkowaniu prostokątami było to proste ale tutaj za bardzo nie wiem jak to zrobić :/

0
double func_x(double x) { return func(x)*x; }

1 użytkowników online, w tym zalogowanych: 0, gości: 1