Cvicenie - Algoritmy num. mat. a opt. 16.11.2020 13:00
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Cvičenie ukazuje implementáciu gradientovej metódy (metódy najstrmšieho spádu) v MATLABe na funkcii f(x,y) = (x−1)² + y² − 1 s presnosťou 0,001 a krokom λ = 0,8. Algoritmus v cykle s podmienkou na normu rozdielu dvoch po sebe idúcich bodov a maximálnym počtom iterácií počíta gradient pomocou ručne odvodených parciálnych derivácií (2(x−1) a 2y). Nový bod vzniká odpočítaním λ-násobku gradientu od starého bodu. Výpočet skonvergoval po 16 iteráciách do bodu približne (1; 0,003), čo zodpovedá minimu funkcie. Priebeh sa vizualizuje cez meshgrid, plot3 a hold on, pričom zelené hviezdičky označujú medzikroky a červená posledný bod. Ak zostane čas, nasleduje Newtonova metóda.
- - Gradientová metóda: nový bod x = x − λ·grad f(x), opakuje sa, kým vzdialenosť po sebe idúcich bodov nie je menšia ako presnosť.
- - Podmienka cyklu potrebuje na začiatku x a x0 s rôznymi súradnicami, aby sa cyklus vôbec spustil; maxit chráni pred nekonvergenciou.
- - Gradient sa počíta samostatnou funkciou s ručne odvodenými parciálnymi deriváciami: ∂f/∂x = 2(x−1), ∂f/∂y = 2y.
- - Parametre príkladu: f(x,y) = (x−1)² + y² − 1, presnosť 0,001, krok λ = 0,8.
- - Výsledok: po 16 iteráciách bod približne (1; 0,003), teda minimum funkcie.
- - Vizualizácia: meshgrid na plochu funkcie, plot3 na body iterácií, hold on na zachovanie grafu.
- - Kroky majú rovnakú dĺžku λ, no vo vizualizácii sa zdajú menšie, keď sa bod približuje k minimu.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky