# 1. Definicia funkcie plochy
f_plocha <- function(x) { x * (10 - x) }
# 2. Automaticke hladanie maxima
res <- optimize(f_plocha, interval = c(0, 10), maximum = TRUE)
x_opt <- res$maximum
y_opt <- res$objective
# 3. Priprava dat pre vizualizaciu
x_hodnoty <- seq(0, 10, length.out = 100)
y_hodnoty <- f_plocha(x_hodnoty)
# 4. Kreslenie grafu
plot(x_hodnoty, y_hodnoty, type = "l", col = "blue", lwd = 2,
xlab = "Strana x (m)", ylab = "Plocha (m2)",
main = "Hladanie maximalnej plochy obdlznika")
# Pridanie bodu maxima do grafu
points(x_opt, y_opt, col = "red", pch = 19, cex = 1.5)
grid()Viazane extremy, globalne extremy
Úvod
Hladanie extremov funkcii je jednou z klucovych uloh matematickej analyzy s rozsiahlou aplikaciou v technickej praxi. Ci uz ide o hladanie maximalnej unosnosti konstrukcie alebo minimalizáciu nakladov na material, optimalizacia je základom inzinierskeho navrhovania.
V tejto správe sa zameriame na analýzu lokálnych a globálnych extrémov. Pomocou prvej a druhej derivácie identifikujeme stacionárne body a určíme charakteristiku týchto extrémov. Cieľom projektu je demonštrovať matematický postup riešenia a jeho následnú vizualizáciu v prostredí R, čo umožňuje lepšiu interpretáciu správania funkcií.
Teoretické pozadie
Pre určenie lokalnych extremov funkcie \(f(x)\) vyuzivame nastroje diferencialneho poctu. Proces analyzy pozostáva z dvoch hlavnych krokov:
Nutná podmienka existencie extrému
Bod \(x_0\), v ktorom má funkcia lokálny extrém, musí byť stacionárnym bodom. To znamená, že prvá derivácia funkcie v tomto bode je rovná nule. Definujeme ho v Rovnica 1: \[f'(x_0) = 0 \tag{1}\]
Postačujúca podmienka (druhá derivácia)
Na overenie charakteru extrému využívame druhú deriváciu \(f''(x_0)\):
Ak \(f''(x_0) > 0\), potom v bode \(x_0\) nastava lokalne minimum
Ak \(f''(x_0) < 0\), potom v bode \(x_0\) nastava lokalne maximum
Tento matematicky aparat nam umoznuje presne urcit optimalne hodnoty bez nutnosti manualneho prekreslovania grafu.
Viazané extrémy a Lagrangeova funkcia
V inžinierskej praxi často nehľadáme extrém na celej oblasti definície, ale pri dodržaní určitých podmienok (väzieb). Ak máme funkciu \(f(x, y)\) a väzbu \(g(x, y) = 0\), hľadáme tzv. viazaný extrém.
Podľa Lagrangeovej metódy zostavíme pomocnú funkciu uvedenej v Rovnica 2: \[L(x, y, \lambda) = f(x, y) + \lambda g(x, y) \tag{2}\]
Kandidátov na extrém nájdeme riešením sústavy rovníc: \[\nabla L(x, y, \lambda) = 0 \implies \begin{cases} \frac{\partial f}{\partial x} + \lambda \frac{\partial g}{\partial x} = 0 \\ \frac{\partial f}{\partial y} + \lambda \frac{\partial g}{\partial y} = 0 \\ g(x, y) = 0 \end{cases}\]
Praktická časť: Analýza konkrétnej funkcie
V tejto časti analyzujeme kvadratickú funkciu \(f(x) = x(10-x)\). Ide o konvexnú funkciu, u ktorej očakávame existenciu globálneho minima. Naším cieľom je nájsť jej minimum pomocou výpočtov v jazyku R.
Definícia funkcie a výpočet derivácie
V jazyku R definujeme funkciu a jej deriváciu. Na nájdenie presného bodu extrému využijeme funkciu uniroot.
Interaktívna 3D analýza komplexných extrémov
V tejto časti rozšírime naše skúmanie na funkcie dvoch premenných. Na demonštráciu viacerých lokálnych a globálnych extrémov využijeme funkciu \(f(x, y) = \sin(x) \cdot \cos(y)\). Tento model nám umožňuje interaktívne skúmať povrch a identifikovať jednotlivé kritické body.
library(plotly)
# 1. Definicia funkcie
f_3d <- function(x, y) { sin(x) * cos(y) }
# 2. Priprava dat (interval od 0 po 2*PI)
x_seq <- seq(0, 6.28, length.out = 50)
y_seq <- seq(0, 6.28, length.out = 50)
z_matrix <- outer(x_seq, y_seq, f_3d)
# 3. Tvorba interaktívneho grafu so skalou
fig <- plot_ly(
x = ~x_seq,
y = ~y_seq,
z = ~z_matrix,
type = "surface",
colorbar = list(title = "Hodnota Z"),
colorscale = "Viridis"
)
fig <- layout(fig,
scene = list(
xaxis = list(title = "Os X"),
yaxis = list(title = "Os Y"),
zaxis = list(title = "f(x,y)")
)
)
figZaver
V praktickej časti sme analyzovali kvadratickú funkciu plochy \(f(x) = x(10-x)\). Pomocou analytických výpočtov a ich následnej implementácie v systéme R sme potvrdili, že maximálna plocha obdĺžnika pri pevnom obvode 20 m sa dosiahne pri rozmere strany \(x = 5\) m. Tento výsledok korešponduje s matematickým predpokladom, že spomedzi všetkých pravouhlých štvoruholníkov s rovnakým obvodom má práve štvorec najväčší obsah.
Možno konštatovať, že prepojenie teoretických vedomostí o deriváciách s programovacím jazykom R poskytuje efektívny a presný nástroj na riešenie optimalizačných úloh. Dosiahnuté výsledky v plnej miere potvrdili teoretické predpoklady a demonštrovali dôležitosť matematického modelovania pri technickom rozhodovaní.
Literatura
STEWART, James. Calculus: Early Transcendentals. 8. vyd. Boston: Cengage Learning, 2015. ISBN 978-1285741550.
BACIGÁL, Tomáš. Úvod do analýzy údajov pomocou R. [online]. Bratislava: STU, 2023. Dostupné na: https://tomas-bacigal.quarto.pub/uvod-do-analyzy-udajov-pomocou-r/
TOMEK, Lukáš. Matematická analýza 2: Viazané extrémy. [online]. Dostupné na: https://sites.google.com/site/lukastomekmath/vyucba/matematick-analza-2
Google Gemini AI. Konzultácie a optimalizácia kódu v jazyku R pre Quarto Markdown. [online]. 2024. Dostupné na: https://gemini.google.com