Z szeregu Tylora

Stąd przybliżenie

dwupunktowe różnice zwykłe (progresywne)

dwupunktowe różnice wsteczne

dwupunktowe różnice centralne

trzypunktowe różnice zwykłe (prograsywne)

trzypunktowe różnice wsteczne

Pochodna funkcji

Wartość dokładna

#include <stdio.h> #include <math.h> float exp_diff_for(float x, float h) { return (exp(x+h) - exp(x))/h ; } int main() { int n; float x = 1.0, h, fx, err, ex; ex = exp(x); printf("# exact = %f\n", ex); printf("# h diff error\n"); for(h = 1e-1; h > 1e-6; h = h / 2.0) { fx = exp_diff_for(x, h); err = fabs((ex - fx) / ex); printf("%10.7lf %15.10lf %15.10lf\n", h, fx, err); } return 0; }

Dodaj do programu wyznaczającego wartość pochodnej funkcji za pomoca różnic zwykłych dokładniejszą metodę (np. dwupunktową różnice centralną, trzypunktową różnicę, ...) i porównaj błąd względny obu metod dla różnych wartości kroku .

różnice trzypunktowe zwykłe (progresywne)

różnice trzypunktowe wsteczne

różnice trzypunktowe centralne

Zobacz: Finite_difference_coefficient - współczynniki dla siatki o równoodległych węzłów

Treść zadania znajduje się w Moodle pod adresem Zadanie 3

Ćw. 1

Policzyć pochodną funkcji ⁡w punkcie korzystając z metody dwupunktowej „w przód” i „w tył” oraz różnicy centralnej. Zbadaj jak zmienia się błąd względny i bezwzględny wyznaczenia pochodnej dla różnych wartości .

Ćw. 2

Policzyć drugą pochodną funkcji ⁡w punkcie korzystając z metody trzypunktowej centralnej. Zbadaj jak zmienia się błąd względny i bezwzględny wyznaczenia pochodnej dla różnych wartości .

Ćw. 3

Plik https://www.fizyka.umk.pl/~grochu/mn1/files/heart_rate.csv zawiera przykład elektrokardiogramu. Sygnał jest rejestrowany z częstotliwością 100Hz. Napisz program, który będzie wykrywał uderzenia serca na podstawie pochodnej napięcia mierzonego na elektrodzie a następnie wyznaczy średnią wartość uderzeń na minutę.