$$\int_{a}^{b} f(x) d x \approx \frac{b-a}{6}\left[f(a)+4 f\left(\frac{a+b}{2}\right)+f(b)\right]$$
Dzielimy przedział $[a,b]$ na $n$ odcinków z krokiem $h = \frac{b-a}{n}$
$$ x_0 =a, \qquad x_i = a + ih, \qquad x_n = b$$
wartość całki będzie sumą kwadratur prostych z każdego odcinka $[x_i, x_{i+1}]$
$$\int_{0}^{2} f(x) d x$$
Dla kwadratur prostych ($n=1$)
#include <stdio.h> #include <math.h> double f1(double x) { return x * x; } double midpoint_rule(double a, double b, int n, double (*func)(double)) { double s, fa, fb, x, h; int j; h = (b-a)/((double) n); s=0.0; for (j=0; j < n; j++) { x = a + (j+0.5) * h; s += (*func)(x); } s *= h; return s; } int main() { int n; double a=0.0, b=2.0; printf("Number of partitions = "); scanf("%d", &n) ; printf("f1 = %lf\n", midpoint_rule(a, b, n, f1)) ; return 0; }
Treść zadania znajduje się w Moodle pod adresem Zadanie 6
Ćw. 1
Wyznacz całki z przykładu z zajęć za pomocą metody złożonej trapezów oraz Simpsona i porównaj dokładność tych metod.
Ćw. 2
Napisz program wyznaczający przybliżoną wartość całki $\int_0^{2.5} f(x) dx$ funkcji o wartościach zawartych w tabeli
$x_i$ | $f(x_i)$ |
---|---|
0 | 1.5 |
0.5 | 2.0 |
1.0 | 2.0 |
1.5 | 1.6 |
2.0 | 1.25 |
2.5 | 0.95 |