Przybliżanie wielomianami

O scenariuszu

Scenariusz ten jest materiałem do przeprowadzenia 3h zajęć lekcyjnych.

Został on opracowany w ramach projektu iCSE4school na podstawie lekcji prowadzonych w latach 2015-2017 w III Liceum Ogólnokształcącym im. Stefana Batorego w Chorzowie przez Krzysztofa Jarczewskiego.

Uwaga!

W każdym z okien programu można zmieniać liczby, tekst, zmienne lub cały kod. Nie trzeba się martwić, jeśli program przestanie działać, bo po odświeżeniu strony powróci do ustawień początkowych. Często następny kod wynika z poprzedniego, więc należy ćwiczenia (algorytmy) wykonywać według kolejności.

Wstęp

Uczniowie powinni znać:

Funkcję liniową i kwadratową (4.6–10 mat_p), pojęcie wielomianu (3.6 mat_r), definicję silnia (10.1 mat_r).

Podstawowe komendy programistyczne w SageMath: działania, funkcję warunkową, pętle (1.0-II-5.22-23 inf_r).

Uczniowie na poniższych zajęciach poznają:

  • sposoby implementacji i obliczania silni,
  • pochodną funkcji i sposoby jej obliczania (11.2 mat_r),
  • wyznaczanie prostej, paraboli i wielomianu przechodzącego przez dane punkty (3.2 mat_p),
  • wzór Taylora oraz jego interpretację geometryczną.

Powyżej w nawiasach jest wpisany szczegółowy zakres nauczanych treści.

mat_p – matematyka poziom podstawowy,

mat_r – matematyka poziom rozszerzony,

inf_r – informatyka poziom rozszerzony.

Część teoretyczna

Definicja silni.

Silnia z liczby naturalnej n to iloczyn wszystkich liczb naturalnych mniejszych lub równej n. Symbolicznie zapisujemy n!.

\[\begin{split}\left\{ \begin{array}{ll} 0!=1 & {} \\ n!=n \cdot (n-1)!, & {} n>0 \\ \end{array} \right.\end{split}\]

Przykład.

\[\ 4!= 4 \cdot 3! =...= 4 \cdot 3 \cdot 2 \cdot 1 \cdot 1 = 24\]

Silnia w SageMath.

Pierwszy przykład liczy silnię zgodnie z definicją.

Drugi przykład przy obliczaniu silni korzysta z wbudowanej funkcji w SageMath.

Poniżej przykłady obliczania pochodnej w SageMath z wykorzystaniem instrukcji diff.

Kolejne wzory dotyczące pochodnej funkcji.

Poniżej wzory na pochodną sumy, różnicy, iloczynu i ilorazu funkcji.

\[\begin{split}\begin{array}{ll} f, g - funkcje, \hspace{1cm} c - liczba \hspace{0,2cm} rzeczywista\\ (c \cdot f)' =c \cdot f' \\ (f+g)'= f' + g' \\ (f-g)'= f' - g' \\ (f \cdot g)' = f' \cdot g + f \cdot g' \\ (f/g)'= (f' \cdot g - f \cdot g')/g^2 \end{array}\end{split}\]

Informacja

Liczba przed zmienną nie zmienia operacji na pochodnej.

Wyrażenia algebraiczne oddzielone + lub - liczą się oddzielnie.

Przykłady

Pochodne z pochodnych - pochodne wyższych rzędów.

Oczywiście, możemy obliczyć pochodną z pochodnej. Pochodne wyższego rzędu zapisujemy w następujący sposób:

\[\begin{split}f''(x) , \hspace{1,1cm} f'''(x) , \hspace{1,1cm} f''''(x),\hspace{1cm}... \\ f^{(2)}(x) , \hspace{1cm} f^{(3)}(x) , \hspace{1cm} f^{(4)}(x),\hspace{1cm}...\end{split}\]

Poniżej obliczenia wyższych rzędów pochodnej w SageMath:

Obliczanie wartości pochodnej w punkcie.

Pochodna funkcji jest oczywiście funkcją, więc możemy obliczyć wartość pochodnej dla argumentu.

Przykłady

Definicja wielomianu.

Wielomianem stopnia n zmiennej x nazywamy funkcję:

\[W(x)=a_0+a_1 \cdot x +a_2 \cdot x^2 +...+a_n \cdot x^n, \hspace{1cm} a_0, a_1, a_2, ..., a_n - współczynniki.\]

Informacja

Funkcja liniowa i funkcja kwadratowa jest wielomianem.

\[\begin{split}\begin{array}{ll} W_1(x)=a_0+a_1 \cdot x \\ W_2(x)=a_0+a_1 \cdot x +a_2 \cdot x^2 \end{array}\end{split}\]

Informatyczne obliczanie wielomianów

Informacja

Funkcja liniowa.

Wiemy, że przez dwa punkty przechodzi dokładnie jedna prosta. Ponadto znając współrzędne powyższych punktów, możemy określić wzór tej prostej. Przypomnijmy, że wzór jest funkcję liniową:

\[y = a x + b\]

Współczynnik kierunkowy i wyraz wolny możemy obliczyć z poniższych wzorów:

\[\begin{split}a=\frac{y_2-y_1}{x_2-x_1} \\ b=y_1-ax_1\end{split}\]

Wpisując odpowiednie równania, możemy narysować linię prostą przechodzącą przez dwa punkty.

Informacja

Parabola.

Poniżej znajduje się przykład dotycżący trzech punktów, które nie są współliniowe. Możemy wyznaczyć funkcję kwadratową do której należą te punkty. Więc musimy wyznaczyć z poniższych równań współczynniki a, b, c funkcji kwadratowej.

\[\begin{split}\begin{cases} y_1=ax_1^2+bx_1+c \\ y_2=ax_2^2+bx_2+c \\ y_3=ax_3^2+bx_3+c \end{cases}\end{split}\]

Te obliczenia są żmudne i czasochłonne, nawet dla konkretnego przykładu. Gdybyśmy chcieli wyznaczyć odpowiednie wzory, jak powyżej dla funkcji liniowej, to zajęłoby to nam dużo czasu.

Poniżej wykorzystamy możliwości SageMath.

Obliczamy następujące równania, z których szukamy współczynniki: a, b, c.

\[\begin{split}\begin{cases} y_1=ax_1^2+bx_1+c \\ y_2=ax_2^2+bx_2+c \\ y_3=ax_3^2+bx_3+c \end{cases}\end{split}\]

Zamieniamy powyższy układ równań na odpowiednie równanie macierzowe.

\[\begin{split}\begin{bmatrix} x_1^2&x_1&1\\x_2^2&x_2&1\\ x_3^2&x_3&1 \end{bmatrix} \begin{bmatrix} a\\b\\c\end{bmatrix} = \begin{bmatrix} y_1\\y_2\\y_3\end{bmatrix}\end{split}\]

W SageMath możemy łatwo rozwiązać powyższe równanie, wystarczy zastosować poniższe działanie:

\[M v, \hspace{3mm} where \hspace{3mm} M-matrix, \hspace{0.3cm} v-vector \hspace{0.3cm} [y1, y2, y3]\]

Wielomian

Oto przykład dla kilku losowych punktów. Otrzymana funkcja jest wielomianem.

Jeśli podasz n punktów, to na pewno przechodzi przez te punkty wielomianem stopnia mniejszego od n.

Dla losowych punktów obliczamy współczynniki wielomianu.

Rysujemy wielomian, który przechodzi przez podane punkty.

Wzór Taylora

Z analizy matematyczna znany poniższy jest wzór, który przybliża dowolną funkcję pewnym odpowiadającym tej funkcji wielomianem.

Wzór Taylora

\[\begin{aligned} f(x)=f(a)+{\frac {x-a}{1!}}f^{{(1)}}(a)+{\frac {(x-a)^{2}}{2!}}f^{{(2)}}(a)+\ldots + {\frac {(x-a)^{n}}{n!}}f^{{(n)}}(a)+\ldots \end{aligned}\]

Możemy uprościć powyższy wzór podstawiajac za a=0.

Wzór Taylora-Maclaurina.

\[\begin{aligned} f(x)&=f(0)+{\frac {x}{1!}}f^{{(1)}}(0)+{\frac {x^{2}}{2!}}f^{{(2)}}(0)+\ldots + {\frac {x^{n}}{n!}}f^{{(n)}}(0)+\ldots \end{aligned}\]

To jest przykład dla funkcji \(f(x)=sin(x)\).

Ćwiczenia dla uczniów.

Dla funkcji \(f(x)=cos(x)\) znajdź odpowiadający wielomian ze wzoru Taylora-Maclaurina.

Zastosuj wzór Taylora-Maclaurina dla funkcji \(f(x)=e^x\).

Znamy już wzór Taylora. Teraz możemy uprościć nasze obliczenia i użyć wbudowanego wzoru Taylora w SageMath.

Wnioski

Zajęcia odbywały się na dodatkowych godzinach w ramach iCSE4school w III Liceum Ogólnokształcącym im. Stefana Batorego w Chorzowie. Celem zajęć było rozszerzenie nauczania matematyki i informatyki w drugiej klasie liceum. Powyższy temat w drugiej grupie testowej był prowadzony metodą „flip teaching”, czyli uczniowie musieli się przygotować do zajęć z wykorzystaniem internetu. Pierwsze zajęcia były poświęcone silni i pochodnej funkcji. Drugie zajęcia to wielomiany i wyznaczanie wielomianu przechodzącego przez dane punkty. Według programu nauczania na lekcjach matematyki podobne zadania dotyczą szczególnych przypadków na prostej i paraboli. Ja sam spotkałem się z pytaniami uczniów, czy da się wyznaczyć odpowiednie wzory dotyczące paraboli i czy da się to uogólnić na dowolną ilość punktów. Tak więc powstała idea napisania przeze mnie programu w SageMath, który przy zadanych punktach wyznaczy wielomian przechodzący przez te punkty oraz narysuje to na wykresie. Praca domowa uczniów to zapoznanie się z pojęciem macierzy, mnożeniem macierzy przez wektor i wyznaczaniem jej wyznacznika. Trzecie zajęcia to wyznaczanie przybliżenia funkcji wielomianem przy użyciu wzoru Taylora. Po omówieniu moich przykładów uczniowie mieli w podobny sposób wyznaczyć wielomiany dla podanych funkcji. Jeżeli zauważyli pewną prawidłowość w kolejnych współczynnikach wielomianu to mieli podać hipotezę, a następnie sprawdzić ją w internecie, czy jest ona prawdziwa.

Według mnie zajęcia te mogą być dobrym uzupełnieniem i ugruntowaniem wiedzy uczniów z matematyki w trzeciej klasie liceum na poziomie rozszerzonym lub na zajęciach dodatkowych w klasie drugiej. Ponadto każdy rozdział można traktować niezależnie, czyli przeprowadzać go w czasie przeprowadzania danego materiału na lekcjach matematyki.