Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
177 views
ubuntu2004
Kernel: SageMath 9.4

Nutná podmínka diferencovatelnosti

Věta.

Je-li funkce f:RnRf: \mathbb R^n\supset\to\mathbb R v bodě aa diferencovatelná, potom je funkce ff v bodě aa spojitá.

Důkaz. Z diferencovatelnosti v bodě aa plyne existence funkce α:RR\alpha: \mathbb R\supset\to \mathbb R spojité v bodě 0R0\in\mathbb R takové, že α(0)=0\alpha(0) = 0 a

f(a+h)f(a)=L(h)+hα(h),(*)f(a + h) - f(a) = L(h) + \|h\|\cdot \alpha(\Vert h\Vert), \tag{*}

hUh\in U a kde hB(0;δ), δ>0.h \in B(0;\delta),\ \delta > 0.

L:RnRL:\mathbb R^n \to \mathbb R je lineární zobrazení a tudíž je spojitou funkcí na celém prostoru Rn.\mathbb R^n. Potom máme:

limh0(f(a+h)f(a))=limh0(L(h)+hα(h))=L(0)+0α(0)=0.\lim_{\|h\|\to 0}(f(a + h) - f(a)) = \lim_{\|h\|\to 0} (L(h) + \|h\|\cdot \alpha(h))= L(\vec 0) + \|0\|\cdot \alpha(0) = 0.

Tedy limh0f(a+h)=f(a) \lim_{\|h\|\to 0} f(a + h) = f(a) a odtud již plyne spojitost funkce ff v bodě a.a. \Box

Věta.

Je-li funkce f:RnRf: \mathbb R^n \supset\to\mathbb R diferencovatelná v bodě aRn,a\in\mathbb R^n, potom pro každé vRnv\in\mathbb R^n existuje směrová derivace Dvf(a)D_vf(a) a platí: Dvf(a)=dfa(v). D_vf(a) = df_a(v).

Speciálně platí pro každé i=1,,n,i = 1,\ldots,n,

fxi(a)=Deif(a)=dfa(ei).\frac{\partial f}{\partial x_i}(a) = D_{e_i}f(a) = df_a(e_i).

Označíme-li pak gradient(f)(a)=f(a)=(fx1(a),,fxn(a)), gradient(f)(a) = \nabla f(a) = \left(\frac{\partial f}{\partial x_1}(a),\ldots, \frac{\partial f}{\partial x_n}(a)\right),

potom bude pro každé vRnv\in\mathbb R^n platit: Dvf(a)=dfa(v)=dfa(i=1nviei)=i=1nvidfa(ei)=v,f(a). D_vf(a) = df_a(v) = df_a(\sum_{i=1}^n v_ie_i) = \sum_{i=1}^n v_idf_a(e_i) = \langle v, \nabla f(a)\rangle.

Postačující podmínka diferencovatelnosti

Věta. Má-li funkce FF na okolí bodu aa spojité všechny parciální derivace, potom je zobrazení FF v bodě aa diferencovatelné.

Důkaz. Jak se ukazuje, tak důkaz stačí provést pro případ skalární funkce f:DR,f: D \to \mathbb R, kde DRnD\subset\mathbb R^n je otevřená množina obsahující bod a.a. Pro zjednodušení uvažujme funkci dvou proměnných: z=f(x,y).z = f(x,y). Označme a=(a1,a2), h=(h1,h2).a = (a_1, a_2),\ h = (h_1, h_2). Potom lze psát:

f(a+h)f(a)=(f(a+h1e1)f(a))+(f(a+h1e1+h2e2)f(a+h1e1)).f(a + h) - f(a) = (f(a + h_1e_1) - f(a)) + (f(a + h_1e_1 + h_2e_2) - f(a + h_1e_1)).

Dále s využitím Lagrangeovy věty o střední hodnotě dostáváme:

f(a+h1e1)f(a)=ddt(f(a+th1e1))(t=θ1),f(a + h_1e_1) - f(a) = \frac{d}{dt}(f(a + th_1e_1))(t=\theta_1),

kde θ10,1.\theta_1\in\langle 0,1\rangle. f(a+h1e1+h2e2)f(a+h1e1)=ddt(f(a+h1e1+th2e2))(t=θ2), f(a + h_1e_1 + h_2e_2) - f(a + h_1e_1) = \frac{d}{dt}(f(a + h_1e_1 + th_2e_2))(t=\theta_2), kde θ20,1.\theta_2\in\langle 0,1\rangle.

var("t, x, y, h1, h2") f = function("f")(x,y) a = vector([x, y]) e1 = vector([1, 0]) show(a + t*h1*e1)
(h1t+x,y)\renewcommand{\Bold}[1]{\mathbf{#1}}\left(h_{1} t + x,\,y\right)
# vyjádřeme g(t)=f(a + th_1e_1): g(t) = f(x = x + t*h1, y = y) show("g(t) = \t", g(t))
g(t)x=x f(h1t+x,y)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|g(t)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | f\left(h_{1} t + x, y\right)
show("d/dt (g(t)) = \t", diff(g(t),t))
d/dtx(g(t))x=xx h1D0(f)(h1t+x,y)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|d/dt|\phantom{\verb!x!}\verb|(g(t))|\phantom{\verb!x!}\verb|=|\phantom{\verb!xx!}\verb| | h_{1} \mathrm{D}_{0}\left(f\right)\left(h_{1} t + x, y\right)
latex(diff(g, t))
t \ {\mapsto}\ h_{1} \mathrm{D}_{0}\left(f\right)\left(h_{1} t + x, y\right)

Tedy, máme ddt(f(a+th1e1))=(d/dt)g(t)= h1x(f)(h1t+x,y)=h1x(f)(a+th1e1). \frac{d}{dt}(f(a + th_1e_1)) = (d/dt)g(t) = \ h_{1}\frac{\partial}{\partial x}\left(f\right)\left(h_{1} t + x, y\right) = h_{1}\frac{\partial}{\partial x}\left(f\right)\left(a + th_1e_1\right).

Podobně se odvodí, že ddt(f(a+h1e1+th2e2))=h2y(f)(a+h1e1+th2e2). \frac{d}{dt}(f(a + h_1e_1 + th_2e_2))= h_2 \frac{\partial}{\partial y}\left(f\right)\left(a + h_1e_1 + th_2e_2\right).

Pak máme: ddt(f(a+th1e1))(t=θ1)=h1x(f)(a+θ1h1e1). \frac{d}{dt}(f(a + th_1e_1))(t=\theta_1) = h_{1}\frac{\partial}{\partial x}\left(f\right)\left(a + \theta_1h_1e_1\right). ddt(f(a+h1e1+th2e2))(t=θ2)=h2y(f)(a+h1e1+θ2h2e). \frac{d}{dt}(f(a + h_1e_1 + th_2e_2))(t=\theta_2) = h_2 \frac{\partial}{\partial y}\left(f\right)\left(a + h_1e_1 + \theta_2 h_2e\right).

Přírůstek funkce f při přechodu z bodu aa k bodu a+ha + h lze vyjádřit pomocí parciálních derivací takto: f(a+h)f(a)=(f(a+h1e1)f(a))+(f(a+h1e1+h2e2)f(a+h1e1))=ddt(f(a+th1e1))(θ1)+ddt(f(a+h1e1+th2e2))(θ2)=h1x(f)(a+θ1h1e1)+h2y(f)(a+h1e1+θ2h2e). f(a + h) - f(a) = (f(a + h_1e_1) - f(a)) + (f(a + h_1e_1 + h_2e_2) - f(a + h_1e_1))\\ = \frac{d}{dt}(f(a + th_1e_1))(\theta_1) + \frac{d}{dt}(f(a + h_1e_1 + th_2e_2))(\theta_2) \\= h_{1}\frac{\partial}{\partial x}\left(f\right)\left(a + \theta_1h_1e_1\right) + h_2 \frac{\partial}{\partial y}\left(f\right)\left(a + h_1e_1 + \theta_2 h_2e\right).

Odtud pak plyne: $$ 0\le|f(a + h) - f(a) - \langle h,\nabla f(a)\rangle| = |(h_{1}\frac{\partial}{\partial x}\left(f\right)\left(a + \theta_1h_1e_1\right)

  • h_1\frac{\partial f(a)}{\partial x})\

(h_2 \frac{\partial}{\partial y}\left(f\right)\left(a + h_1e_1 + \theta_2 h_2e\right) - h_2\frac{\partial f(a)}{\partial y})|\ =\left|h_1\left(\frac{\partial}{\partial x}\left(f\right)\left(a + \theta_1h_1e_1\right) - \frac{\partial f(a)}{\partial x}\right) + h_2\left(\frac{\partial}{\partial y}\left(f\right)\left(a + h_1e_1 + \theta_2 h_2e\right) - \frac{\partial f(a)}{\partial y}\right)\right|\le $$

Využitím Cauchy-Swartzovy nerovnosti lze poslední absolutní hodnotu odhadnout shora následovně:

h((x(f)(a+θ1h1e1)f(a)x)2+(y(f)(a+h1e1+θ2h2e)f(a)y)2)1/2.\le \|h\| \Bigg(\left(\frac{\partial}{\partial x}\left(f\right)\left(a + \theta_1h_1e_1\right) - \frac{\partial f(a)}{\partial x}\right)^2 + \left(\frac{\partial}{\partial y}\left(f\right)\left(a + h_1e_1 + \theta_2 h_2e\right) - \frac{\partial f(a)}{\partial y}\right)^2\Bigg)^{1/2}.

Ze spojitosti obou parciálních derivací v bodě aa plyne konvergence:

x(f)(a+θ1h1e1)f(a)x0,  h10\frac{\partial}{\partial x}\left(f\right)\left(a + \theta_1h_1e_1\right) - \frac{\partial f(a)}{\partial x} \to 0,\ \ h_1\to 0

a podobně y(f)(a+h1e1+θ2h2e)f(a)y0,   h1,h20. \frac{\partial}{\partial y}\left(f\right)\left(a + h_1e_1 + \theta_2 h_2e\right) - \frac{\partial f(a)}{\partial y} \to 0,\ \ \ h_1,h_2 \to 0.

Tedy (1/h)f(a+h)f(a)h,f(a)0,   h0. (1/\|h\|)\cdot|f(a + h) - f(a) - \langle h,\nabla f(a)\rangle| \to 0,\ \ \ \|h\| \to 0.

Příklad (výpočet směrové derivace)

Uvažujme funkci f(x,y)=x33xy+4y2f(x,y) = x^3 -3xy + 4y^2 a nechť v\vec v je jednotkový vektor, který svírá s kladnou poloosou x orientovaný úhel θ=π/6.\theta = \pi/6. Vypočítejte potom směrovou derivaci Dvf(1,2).D_{\vec v}f(1,2).

Řešení.

var("x, y") f(x,y) = x^3 - 3*x*y + 4*y^2 show("f_x(x,y) = \t", diff(f(x,y), x)) show("f_y(x,y) = \t", diff(f(x,y), y)) show("gradient(f) = \t", f(x,y).gradient())
f_x(x,y)x=x 3x23y\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|f_x(x,y)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | 3 \, x^{2} - 3 \, y
f_y(x,y)x=x 3x+8y\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|f_y(x,y)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | -3 \, x + 8 \, y
gradient(f)x=x (3x23y,3x+8y)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|gradient(f)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left(3 \, x^{2} - 3 \, y,\,-3 \, x + 8 \, y\right)
# Řešení: var("x, y, θ") f(x,y) = x^3 - 3*x*y + 4*y^2 show("f(x,y) = \t", f(x,y)) v = vector([cos(θ), sin(θ)]).subs(θ = pi/6) show("v = \t", v) nabla_f = f.gradient() show("gradient(f) = \t", nabla_f(x,y)) show("gradient(f)(1,2) = \t", nabla_f(x=1, y=2)) show("D_vf(1,2) = v . gradient f(1,2) = \t", v.dot_product(nabla_f(x=1, y=2)))
f(x,y)x=x x33xy+4y2\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|f(x,y)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | x^{3} - 3 \, x y + 4 \, y^{2}
vx=x (123,12)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|v|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left(\frac{1}{2} \, \sqrt{3},\,\frac{1}{2}\right)
gradient(f)x=x (3x23y,3x+8y)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|gradient(f)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left(3 \, x^{2} - 3 \, y,\,-3 \, x + 8 \, y\right)
gradient(f)(1,2)x=x (3,13)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|gradient(f)(1,2)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left(-3,\,13\right)
D_vf(1,2)x=xvx.xgradientxf(1,2)x=x 323+132\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|D_vf(1,2)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb|v|\phantom{\verb!x!}\verb|.|\phantom{\verb!x!}\verb|gradient|\phantom{\verb!x!}\verb|f(1,2)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | -\frac{3}{2} \, \sqrt{3} + \frac{13}{2}

Příklad (maximalizace směrové derivace 1)

Mějme dánu funkci f:RnRf:\mathbb R^n\supset\to \mathbb R, která je v bodě aRna\in\mathbb R^n diferencovatelná. Najděte jednotkový vektor v0Rn\vec v_0\in\mathbb R^n takový, že Dv0f(a)=maxv=1Dvf(a). D_{\vec v_0}f(a) = max_{\|\vec v\| = 1} D_{\vec v} f(a).

Řešení.

Předpokládejme, že vRn,v=1\vec v\in\mathbb R^n, \Vert\vec v\Vert = 1, potom máme: Dvf(a)=v,f(a)vf(a)=f(a). |D_{\vec v}f(a)| = |\langle v,\nabla f(a)\rangle| \le \|\vec v\|\Vert \nabla f(a)\Vert = \Vert \nabla f(a)\Vert. Předpokládejme, že f(a)>0.\Vert \nabla f(a)\Vert > 0. Pak, položíme-li v=f(a)/f(a)\vec v = \nabla f(a)/\Vert\nabla f(a)\Vert, potom v=1\Vert\vec v\Vert = 1 a dostaneme:

Dvf(a)=v,f(a)=f(a)/f(a),f(a)=1f(a)f(a),f(a)=1f(a)f(a)2=f(a).D_{\vec v}f(a) = \langle v,\nabla f(a)\rangle = \langle \nabla f(a) / \Vert \nabla f(a)\Vert, \nabla f(a)\rangle = \frac{1}{\Vert\nabla f(a)\Vert} \langle \nabla f(a), \nabla f(a)\rangle = \frac{1}{\Vert\nabla f(a)\Vert} \Vert\nabla f(a)\Vert^2 = \Vert\nabla f(a)\Vert.

Odtud je vidět, že za předpokladu, že f(a)>0\Vert\nabla f(a)\Vert > 0 je pro vektor v=f(a)/f(a)\vec v = \nabla f(a) / \Vert\nabla f(a)\Vert směrová derivace Dvf(a)D_{\vec v}f(a) maximální. V případě, kdy je f(a)=0,\Vert\nabla f(a)\Vert = 0, potom pro každé vRn\vec v\in\mathbb R^n je Dvf(a)=0.D_{\vec v}f(a) = 0. \Box

Příklad (maximalizace směrové derivace 2)

V předchozím příkladu určeme θ0,2π)\theta\in\langle 0, 2\pi) tak aby směrová derivace Dvf(2,1)D_{\vec v}f(2,1) ve směru jednotkového vektoru v=(cos(θ),sin(θ))\vec v = (\cos(\theta), \sin(\theta)) byla maximální.

Řešení.

var("x, y, θ") f(x,y) = x^3 - 3*x*y + 4*y^2 show("f(x,y) = \t", f(x,y)) v = vector([cos(θ), sin(θ)]) show("v = \t", v) print("Určete gradient funkce f v obecném bodě: ") input("Stiskni klávesu: ") show("gradient f(x,y) = \t", f(x,y).gradient()) print("Určete gradient v bodě (2,1: )") input("Stiskni klávesu") show("gradient f(2,1) = \t", f(x,y).gradient().subs(x=2, y=1)) print("Normalizujte vektor gradientu: ") input("Stiskni klávesu: ") show("gradient f(2,1)/||gradient f(2,1)|| = \t", f(x,y).gradient().subs(x=2, y=1).normalized())
f(x,y)x=x x33xy+4y2\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|f(x,y)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | x^{3} - 3 \, x y + 4 \, y^{2}
vx=x (cos(θ),sin(θ))\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|v|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left(\cos\left(θ\right),\,\sin\left(θ\right)\right)
Určete gradient funkce f v obecném bodě:
Stiskni klávesu:
Stiskni klávesu
gradientxf(x,y)x=x (3x23y,3x+8y)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|gradient|\phantom{\verb!x!}\verb|f(x,y)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left(3 \, x^{2} - 3 \, y,\,-3 \, x + 8 \, y\right)
Určete gradient v bodě (2,1: )
gradientxf(2,1)x=x (9,2)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|gradient|\phantom{\verb!x!}\verb|f(2,1)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left(9,\,2\right)
Normalizujte vektor gradientu:
Stiskni klávesu:
gradientxf(2,1)/||gradientxf(2,1)||x=x (98585,28585)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb"gradient"\phantom{\verb!x!}\verb"f(2,1)/||gradient"\phantom{\verb!x!}\verb"f(2,1)||"\phantom{\verb!x!}\verb"="\phantom{\verb!x!}\verb" " \left(\frac{9}{85} \, \sqrt{85},\,\frac{2}{85} \, \sqrt{85}\right)

Hledáme tedy de facto θ0,2π)\theta\in\langle 0,2\pi) tak, že platí: cos(θ)=98585sin(θ)=28585. \cos(\theta) = \frac{9}{85}\sqrt{85}\\ \sin(\theta) = \frac{2}{85}\sqrt{85}.

float(9*9*sqrt(85)/85 + 2*2*sqrt(85)/85)
9.219544457292887
numerical_approx(acos((9/85)*sqrt(85))) numerical_approx(asin((2/85)*sqrt(85)))
0.218668945873942
D_vf = v.dot_product(f.gradient()) # skalární součin ! show("D_vf(x,y) = \t", D_vf(x,y)) show("D_vf(2,1) = \t", D_vf(x=2,y=1))
D_vf(x,y)x=x 3(x2y)cos(θ)(3x8y)sin(θ)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|D_vf(x,y)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | 3 \, {\left(x^{2} - y\right)} \cos\left(θ\right) - {\left(3 \, x - 8 \, y\right)} \sin\left(θ\right)
D_vf(2,1)x=x 9cos(θ)+2sin(θ)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|D_vf(2,1)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | 9 \, \cos\left(θ\right) + 2 \, \sin\left(θ\right)

Poznamenejme, že je potřeba ověřit, že funkce ff je v bodě a=(2,1)a = (2,1) diferencovatelná. To plyne snadno ověřením spojitosti parciálních derivací.

# parciální der. podle x: f(x,y).gradient()[0].show() # parciální derivace podle y: f(x,y).gradient()[1].show()
3x23y\renewcommand{\Bold}[1]{\mathbf{#1}}3 \, x^{2} - 3 \, y
3x+8y\renewcommand{\Bold}[1]{\mathbf{#1}}-3 \, x + 8 \, y
g(θ) = D_vf(x=2,y=1) show("g: \t", g) plot(g, (θ, 0, 2*pi))
g:x θ  9cos(θ)+2sin(θ)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|g:|\phantom{\verb!x!}\verb| | θ \ {\mapsto}\ 9 \, \cos\left(θ\right) + 2 \, \sin\left(θ\right)
Image in a Jupyter notebook
dg = diff(g(θ), θ) show("g'(theta) = \t", dg) eq = dg == 0; show("eq : \t", eq) print(f"Vypočtěme si kořeny rovnice {eq},\n tedy rovnice: g'(theta) = 0 :") θ_0 = acos((9/85)*sqrt(85)) show("theta_0 = \t", numerical_approx(θ_0)) θ_1 = find_root(eq, 0, 2*pi) show("theta_1 = \t", θ_1) #show(dg.subs(θ = θ_1)) #show(numerical_approx(dg.subs(θ = θ_0))) d2g = diff(g(θ), θ, θ); show("g''(theta) = \t", d2g) nuls = [θ_0, θ_1] i = 0 for bod in nuls: show(f"g''(theta_{i}) = \t", numerical_approx(d2g.subs(θ = bod))) i += 1
g'(theta)x=x 2cos(θ)9sin(θ)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|g'(theta)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | 2 \, \cos\left(θ\right) - 9 \, \sin\left(θ\right)
eqx:x 2cos(θ)9sin(θ)=0\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|eq|\phantom{\verb!x!}\verb|:|\phantom{\verb!x!}\verb| | 2 \, \cos\left(θ\right) - 9 \, \sin\left(θ\right) = 0
Vypočtěme si kořeny rovnice 2*cos(θ) - 9*sin(θ) == 0, tedy rovnice: g'(theta) = 0 :
theta_0x=x 0.218668945873942\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|theta_0|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | 0.218668945873942
theta_1x=x 3.360261599463735\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|theta_1|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | 3.360261599463735
g''(theta)x=x 9cos(θ)2sin(θ)\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|g''(theta)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | -9 \, \cos\left(θ\right) - 2 \, \sin\left(θ\right)
g''(theta_0)x=x 9.21954445729289\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|g''(theta_0)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | -9.21954445729289
g''(theta_1)x=x 9.21954445729289\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|g''(theta_1)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | 9.21954445729289

Z předchozího výpočtu vyplývá, že maximální hodnoty směrové derivace dosáhneme volbou úhlu θ=θ0=0.2186...\theta = \theta_0 = 0.2186...

float(atan(2/9)) α = (θ_0 / pi) * 180 β = (θ_1 / pi) * 180 print(numerical_approx(α), numerical_approx(β), sep=" , ")
12.5288077091515 , 192.528807709152
from sympy import Eq, solve, cos, sin, symbols,evalf θ = symbols("θ") eq = Eq(2*cos(θ) - 9*sin(θ),0) sol = solve(eq, θ) float(sol[0])
0.21866894587394195

Příklad (vrstevnice a vektor gradientu)

Pro funkci z=f(x,y)z = f(x,y) načrtněte v rovině ρxy\rho_{xy} vrstevnice této funkce a a dále načrtněte vektor gradientu f(2,1).\nabla f(2,1).

var("x, y") f(x,y) = x^2 + 4*y^2 show("f(x,y) = \t", f(x,y))
f(x,y)x=x x2+4y2\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|f(x,y)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | x^{2} + 4 \, y^{2}
h = 0.5 xmin = -5; ymin = -5 xmax = 5; ymax = 5 g = Graphics() vrstevnice = contour_plot(f, (x, xmin, xmax), (y, ymin, ymax), axes=True, fill=False, labels=True) gradient_plot = arrow2d(tailpoint=(2,1), headpoint=vector([2,1]) + h * f(x,y).gradient().subs(x=2, y=1).normalized()) p = implicit_plot(f(x,y) - f(x=2,y=1), (x, xmin, xmax), (y, ymin, ymax), color="green", linestyle="--") # Nyní vypočítejme hodnotu v bodě # X1 = (2,1) + h*grad(f)(2,1) což je koncový # bod vektoru na obrázku X = vector([2,1]) + h*f(x,y).gradient().subs(x=2, y=1).normalized() grad_norm = f(x,y).gradient().subs(x=X[0],y=X[1]).normalized() gradient_plot_updated = arrow2d(tailpoint=X, headpoint= X + h*grad_norm) g = vrstevnice + p + gradient_plot + gradient_plot_updated g.show(aspect_ratio=1) #(vrstevnice + p + gradient_plot + gradient_plot_updated).show(aspect_ratio=1)
Image in a Jupyter notebook
var("x, y, θ") #f(x,y) = x^3 - 3*x*y + 4*y^2 show("f(x,y) = \t", f(x,y)) g = Graphics() xmin = -2 ; ymin = -2 xmax = 2 ; ymax = 2 g += contour_plot(f, (x, xmin, xmax), (y, ymin, ymax), fill=False, labels=True, axes=True) h = 0.5 n = 10 X = vector([2, 1]) grad = -f(x,y).gradient().subs(x=X[0],y=X[1]).normalized() for k in range(n): print(numerical_approx(f(x=X[0],y=X[1]), digits=5)) v = arrow2d(tailpoint=X, headpoint=X + h*grad) X = X + h*grad; show("X = \t", [float(X[0]), float(X[1])]) grad = -f(x,y).gradient().subs(x=X[0],y=X[1]).normalized() g += v g.show(aspect_ratio=1)
f(x,y)x=x x2+4y2\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|f(x,y)|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | x^{2} + 4 \, y^{2}
8.0000
Xx=x [1.776393202250021,0.552786404500042]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[1.776393202250021, 0.552786404500042\right]
4.3779
Xx=x [1.463242664890552,0.16299576716831254]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[1.463242664890552, 0.16299576716831254\right]
2.2474
Xx=x [1.0065285768132157,0.04050421256556125]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[1.0065285768132157, -0.04050421256556125\right]
1.0197
Xx=x [0.5128828709966495,0.03895594807399583]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[0.5128828709966495, 0.03895594807399583\right]
0.26912
Xx=x [0.03447557611010943,0.10639349361513872]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[0.03447557611010943, -0.10639349361513872\right]
0.046467
Xx=x [0.005896965448725977,0.3919738988656297]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[-0.005896965448725977, 0.3919738988656297\right]
0.61461
Xx=x [0.0040164436339981124,0.10802256475956867]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[-0.0040164436339981124, -0.10802256475956867\right]
0.046691
Xx=x [0.0006310461469126172,0.39195583561262376]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[0.0006310461469126172, 0.39195583561262376\right]
0.61452
Xx=x [0.0004297970397236228,0.10804412388617146]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[0.0004297970397236228, -0.10804412388617146\right]
0.046693
Xx=x [6.744983928980153×1005,0.3919556288593086]\renewcommand{\Bold}[1]{\mathbf{#1}}\verb|X|\phantom{\verb!x!}\verb|=|\phantom{\verb!x!}\verb| | \left[-6.744983928980153 \times 10^{-05}, 0.3919556288593086\right]
Image in a Jupyter notebook
var("z") f(x,y) = x^2 + 4*y^2 xmin = -1; xmax = 1; ymin = -1; ymax = 1 plot3d(f, (x, xmin, xmax), (y, ymin, ymax), (z, -1, 5), axes=True)

Příklad (diferencovatelnost v bodě)

Ukažte, že funkce f:RnRf:\mathbb R^n\supset\to \mathbb R jsou v bodě a=(a1,a2)dom(f)a=(a_1,a_2)\in dom(f) diferencovatelné.

f(x,y)={2x2yx4+y2, jestlizˇ(x,y)(0,0),0, jestlizˇ(x,y)=(0,0),f(x,y) = \begin{cases} \frac{2x^2y}{x^4 + y^2}, & \text{ jestliže } (x,y) \neq (0,0),\\ 0, & \text{ jestliže } (x,y) = (0,0), \end{cases}

a=(0,0).a = (0,0).

f(x,y)=(x3+y3)3,   a=(0,0).f(x,y) = (\sqrt[3]{x} + \sqrt[3]{y})^3,\ \ \ a=(0,0).
# 1 var("x, y") def f(x,y): if x != 0 or y != 0: return (2 * x^2 * y) / (x^4 + y^2) else: return 0
plot3d(f, (x, -.1, .1), (y, -.1, .1))