(Za „lijepi” ispis svih rezultata označite kvadratić kraj riječi Typeset.)
Elementi matematičke analize (1)
Prisjetite se (predavanje 2.) da se nove funkcije definiraju na sljedeći način:
f(x) = izraz za definiciju
Primjerice:
x ↦ x2ex
|
Granične vrijednosti funkcija
Neformalno, za funkciju f varijable x kažemo da teži ili konvergira graničnoj vrijednosti ili limesu L kada x teži vrijednosti c (koja može, ali ne mora pripadati domeni funkcije f), ako je uvijek, kad je x „neizmjerno” blizu c, vrijednost f(x) funkcije f u x „neizmjerno” blizu vrijednosti L. (Formalnu definiciju limesa naučit ćete u Matematici 1.)
![]() |
0
|
4e(−2)
|
0.5413411329464508
|
4e(−2)
|
4e(−2)
|
0.5413411329464508
|
0.5413411329464508
|
4e(−2)
|
0.541341132946451
|
0
|
+∞
|
x ↦ 1x−1
|
![]() |
Traceback (click to the left of this block for traceback) ... ValueError: power::eval(): division by zero Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_24.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("ZygxKQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmp4bxBK3/___code___.py", line 3, in <module> exec compile(u'g(_sage_const_1 ) File "", line 1, in <module> File "sage/symbolic/expression.pyx", line 5447, in sage.symbolic.expression.Expression.__call__ (build/cythonized/sage/symbolic/expression.cpp:33873) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/callable.py", line 463, in _call_element_ return SR(_the_element.substitute(**d)) File "sage/symbolic/expression.pyx", line 5299, in sage.symbolic.expression.Expression.substitute (build/cythonized/sage/symbolic/expression.cpp:32803) ValueError: power::eval(): division by zero |
∞
|
... hmm ...
+∞
|
−∞
|
x ↦ (x−1)sin(1x−1)
|
![]() |
Traceback (click to the left of this block for traceback) ... ValueError: power::eval(): division by zero Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_30.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("aCgxLik="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmp4YPztZ/___code___.py", line 3, in <module> exec compile(u'h(_sage_const_1p ) File "", line 1, in <module> File "sage/symbolic/expression.pyx", line 5447, in sage.symbolic.expression.Expression.__call__ (build/cythonized/sage/symbolic/expression.cpp:33873) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/callable.py", line 463, in _call_element_ return SR(_the_element.substitute(**d)) File "sage/symbolic/expression.pyx", line 5299, in sage.symbolic.expression.Expression.substitute (build/cythonized/sage/symbolic/expression.cpp:32803) ValueError: power::eval(): division by zero |
0
|
0
|
0
|
x ↦ xsin(1x−1)
|
![]() |
Traceback (click to the left of this block for traceback) ... ValueError: power::eval(): division by zero Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_36.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("cygxKQ=="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpeESN4E/___code___.py", line 3, in <module> exec compile(u's(_sage_const_1 ) File "", line 1, in <module> File "sage/symbolic/expression.pyx", line 5447, in sage.symbolic.expression.Expression.__call__ (build/cythonized/sage/symbolic/expression.cpp:33873) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/callable.py", line 463, in _call_element_ return SR(_the_element.substitute(**d)) File "sage/symbolic/expression.pyx", line 5299, in sage.symbolic.expression.Expression.substitute (build/cythonized/sage/symbolic/expression.cpp:32803) ValueError: power::eval(): division by zero |
ind
|
ind
|
ind
|
Derivacije funkcija
Geometrijski, derivacija funkcije f varijable x u odabranoj točki c njezine domene nagib je tangente na njezin graf u točki (c,f(c)). Nagib tangente (kao i svakoga pravca) jednak je, po definiciji, tangensu kuta α koji zatvara s osi x. Za α∈(0,π/2) je tgα>0 (slikovito rečeno, nagib je „prema gore”), pa kažemo da funkcija f raste; veći nagib znači brži rast funkcije. Za α∈(−π/2,0) je tgα<0 (nagib je „prema dolje”), a funkcija pada; po apsolutnoj vrijednosti manji nagib znači sporiji pad funkcije. (Formalnu definiciju derivacije funkcije naučit ćete u Matematici 1.)
Derivacije funkcije f u svim točkama njezine domene, u kojima postoje, zajedno tvore novu funkciju f′.
Za zorni prikaz derivacije funkcije f uveli smo (programsku) funkciju animate_tangents() koja crta tangente u nizu točaka uzduž njezina grafa (nacrtanog plavom bojom), a istodobno i graf derivacije funkcije (crvenom bojom). Ordinate točaka grafa derivacije vrijednosti su nagiba pripadnih tangenata.
Parametri funkcije animate_tangents() su:
(Kôd koji slijedi (zasad) ne trebate razumjeti. Želite li funkciju animate_tangents() upotrijebiti u drugom radnom listu, sadržaj polja morate prekopirati u taj radni list. Upozoravamo da priprema crtežâ, prije početka animacije, traje dosta dugo.)
|
![]() |
Prva derivacija
x ↦ x2ex
|
x ↦ x2ex+2xex
|
x ↦ x2ex+2xex
|
x ↦ x2ex+2xex
|
x ↦ x2ex+2xex
|
x ↦ x2ex+2xex
|
x ↦ x2ex+2xex
|
x ↦ x2ex+2xex
|
3e(−3)15e3
|
0.149361205103592301.283053847815
|
Tangentu grafa funkcije f u točki (c,f(c)) određujemo na sljedeći način:
Slijedi da je funkcija l, graf koje je tražena tangenta, dana izrazom
l(x)=f′(c)x+f(c)−f′(c)c,
ili
l(x)=f′(c)(x−c)+f(c).
c
|
x ↦ x2ex+2xex
|
x ↦ c2ec−(c2ec+2cec)(c−x)
|
Tangenta u točki (−3,f(−3)):
x ↦ 3(x+3)e(−3)+9e(−3)
|
... nagib tangente (koeficijent uz x=x1 u funkcijskom izrazu za l) jednak je derivaciji funkcije u c:
3e(−3)=3e(−3)
|
True
|
... tangenta prolazi točkom (c,f(c)):
9e(−3)=9e(−3)
|
True
|
... a b je
18e(−3)
|
... numerička aprosimacija tangente u točki (−3,f(−3)):
x ↦ 0.149361205103592x+0.896167230621551
|
False
|
... ops ... ali, kao što znamo, za „realne” brojeve r1 i r2, dobivene različitim nizovima algebarskih operacija, ne treba nikada ispitati jednakost r1=r2, nego
|r1−r2|<τa
ili
|r1−r2||r1|<τr ili |r1−r2||r2|<τr,
gdje su τa i τr odabrane točnosti, apsolutna i relativna (a odabir je točnosti jedno od tajnih umijeća numeričke analize):
|
(5.55111512312578×10−17)<(1.00000000000000×10−13)
|
True
|
(1.23885697522676×10−16)<(1.00000000000000×10−12)
|
True
|
Derivacija ne mora postojati u svim točkama funkcije:
x ↦ |x|
|
![]() |
x ↦ x+¯x2|x|
|
|
|
|
Traceback (click to the left of this block for traceback) ... ValueError: power::eval(): division by zero Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_98.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("ZGcoMCk="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpb04jgd/___code___.py", line 3, in <module> exec compile(u'dg(_sage_const_0 ) File "", line 1, in <module> File "sage/symbolic/expression.pyx", line 5447, in sage.symbolic.expression.Expression.__call__ (build/cythonized/sage/symbolic/expression.cpp:33873) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/callable.py", line 463, in _call_element_ return SR(_the_element.substitute(**d)) File "sage/symbolic/expression.pyx", line 5299, in sage.symbolic.expression.Expression.substitute (build/cythonized/sage/symbolic/expression.cpp:32803) ValueError: power::eval(): division by zero |
![]() |
|
|
|
![]() |
|
![]() |
|
Traceback (click to the left of this block for traceback) ... ValueError: power::eval(): division by zero Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_105.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("ZGgoMCk="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpGV5HzE/___code___.py", line 3, in <module> exec compile(u'dh(_sage_const_0 ) File "", line 1, in <module> File "sage/symbolic/expression.pyx", line 5447, in sage.symbolic.expression.Expression.__call__ (build/cythonized/sage/symbolic/expression.cpp:33873) File "/opt/SageMath/local/lib/python2.7/site-packages/sage/symbolic/callable.py", line 463, in _call_element_ return SR(_the_element.substitute(**d)) File "sage/symbolic/expression.pyx", line 5299, in sage.symbolic.expression.Expression.substitute (build/cythonized/sage/symbolic/expression.cpp:32803) ValueError: power::eval(): division by zero |
|
|
Stacionarne točke
Ako je f'(c) = 0 za neki c, onda je tangenta grafa funkcije f u točki \big(c, f(c)\big) horizontalna: l(x) = f(c). To znači da f u c ne raste niti pada.
![]() |
|
|
|
![]() |
U točki (-2,\, 4e^{-2}) funkcija x\mapsto x^2\,e^x ima (lokalni) maksimum, a u točki (0, 0) (lokalni) minimum.
No, točke \big(c, f(c)\big) za koje je f'(c) = 0 ne moraju uvijek biti lokalni ekstremi funkcije:
|
|
![]() |
Točka (0, 0) je točka infleksije (s horizontalnom tangentom) funkcije x\mapsto x^3. Vrsta stacionarne točke određuje se s pomoću druge derivacije (a katkad i viših derivacija); ponešto o tome na vježbama, a više (i strože) u Matematici 1.
Više derivacije
|
Druga derivacija funkcije f derivacija je njezine prve derivacije.
|
|
![]() |
|
|
|
|
Taylorov polinom
Taylorov teorem:
Ako je funkcija f „dovoljno glatka” (to jest, ako ima neprekinute derivacije do reda n+1) na intervalu (a, b), onda za po volji odabrani c\in (a, b) i za sve x\in (a, b) vrijedi
f(x) \:=\: f(c) \,+\, \dfrac{f'(c)}{1!}(x-c) \,+\, \dfrac{f''(c)}{2!}(x-c)^2 \,+\,\cdots\,+\, \dfrac{f^{(n)}(c)}{n!}(x-c)^n \,+\, R_n(x).
Aproksimacija funkcije f varijable x u okolišu točke c Taylorovim polinomom n-tog stupnja:
|
|
|
|
|
|
|
|
Funkcija animate_taylor() crta niz aproksimacija funkcije f u okolišu točke x_0 Taylorovim polinomima od stupnja 0 do stupnja n. Parametri funkcije su:
(Kôd kojim je definirana funkcija zasad ne morate razumjeti.)
|
![]() |
|
|
Derivacije funkcija više varijabli
|
|
Neka je f funkcija dviju varijabli x i y. Ako se varijabla y ne mijenja, može se uzeti da je f(\cdot,y) funkcija jedne varijable, varijable x. Njezina se derivacija, ako postoji, naziva parcijalnom derivacijom funkcije \boldsymbol{f} po varijabli \boldsymbol{x}. Analogno, ako se x ne mijenja, f(x, \cdot) je funkcija varijable y, a njezina je derivacija parcijalna derivacija funkcije \boldsymbol{f} po varijabli \boldsymbol{y}. Parcijalne se derivacije označavaju s
\dfrac{\partial f}{\partial x} i \dfrac{\partial f}{\partial y}.
|
|
|
|
|
Gradijent funkcije f je vektor čije su komponente njezine parcijalne derivacije po pojedinim varijablama:
\nabla f = \left[\begin{array}{c} \dfrac{\partial f}{\partial x} \\[1.125ex] \dfrac{\partial f}{\partial y} \end{array} \right]
|
|
Parcijalna derivacija funkcije f po varijabli x može se derivirati po varijabli x, ali i po varijabli y:
\dfrac{\partial^2 f}{\partial x^2} i \dfrac{\partial^2 f}{\partial x\,\partial y}.
Analogno, parcijalna derivacija po varijabli y može se derivirati i po y i po x:
\dfrac{\partial^2 f}{\partial y^2} i \dfrac{\partial^2 f}{\partial y\,\partial x}.
|
|
|
|
|
|
Druge se parcijalne derivacije mogu svrstati u matricu koja se naziva Hesseovom matricom:
H (f) = \left[\begin{array}{ccc} \dfrac{\partial^2 f}{\partial x^2} & \dfrac{\partial^2 f}{\partial x\,\partial y} \\[1.125ex] \dfrac{\partial^2 f}{\partial y\,\partial x} & \dfrac{\partial^2 f}{\partial y^2} \end{array} \right]
|
|
|
|