Naezení minima ní pochy pomocí Jacobiho metody Zadání Mějme obecnou uzavřenou křivku v 3 popsanou parametrizací t kde r {, xy, z} jsou souřadnice bodů ežících na křivce r r, (1.1) t 0, T, konturou je křivka a jejíž všechny okání extrémy eží také na křivce řešením Lapaceovy rovnice 2 2 z z 0 2 2 x y. Úkoem je naézt pochu, jejíž. Lze ukázat, že tato pocha je (1.2) na poše, která je uzavřená průmětem křivky do roviny x-y. Rovnice (1.2) je dáe dopněna okrajovou podmínkou z z t. (1.3) Úoha obecně nemá anaytické řešení a je nutno ji řešit numericky. Pro řešení úohy využijte Jacobiho iterativní metodu (bez reaxace), [2], jejíž naivní agoritmus v Matabu je přiožen na konci zadání. Agoritmus hedá iterativně řešení pomocí náhrady derivací konečnými diferencemi 1 z m, n, i 1 z m 1, n, i z m 1, n, i z m, n 1, i z m, n 1, i (1.4) 4 s tím, že v každé iteraci i je zajištěna patnost podmínky (1.3), viz násedující obrázek. Upravte agoritmus tak, aby umožni naézt řešení probému (1.2) za podmínky (1.3). Vyřešení tohoto zadání zajišťuje nárok na zápočet. Pravděpodobně budete muset
agoritmus vektorizovat (akceerace výpočtu), aproximovat hodnotu okrajové podmínky s ohedem na ekvidistantní mříž (zvažte i využití neekvidistantní mřížky [3]), vypočítat hraniční body diskretizační mřížky, případně se jinak (NaN?) vyrovnat s body mimo danou pochu. Agoritmus bude zastaven s ohedem na reativní chybu v dvou po sobě násedujících krocích v zadaném místě. V rámci soutěže se potom soustřeďte na potřebnou dobu výpočtu, kterou se snažte minimaizovat. Testovací příkad Výpočet bude ověřen, a cekový čas výpočtu změřen, pro zadání (viz obrázek): x cos t, y sin( t), 3 z sin t, 2 (1.5) T 2 s parametrizací (1.1),, kdy využijte nejméně 2500 bodů (matice bude mít kupř. 50 50 bodů, agoritmus však koncipujte tak, aby by počet bodů proměnný). Reativní přesnost řešení v bodě 11 x0, y 0 musí být menší než 11 pro hodnoty získané ve dvou po sobě jdoucích krocích metody. err 0 Poznámka: Obecnost metody může být ověřena i pro jinou křivku a jinou hodnotu okrajové podmínky. Ukázka řešení: Pro čtverec o straně 1 jsou definovány okrajové podmínky z 1 na hraně obrázek níže. x y y xmax a max, viz
Odhad řešení pro mřížku 50 50 a 4 10 iterací je zobrazen na násedujícím obrázku.
Kód: cear; cose a; cc; MM = 10000; % number of iterations (coud be any number if a given error % toerance is reached) NN = 50; % number of discretization sampes Xmat = zeros(nn); % aocation % boundary conditions Xmat(:,1) = 0; Xmat(:,) = 1; Xmat(1,:) = 0; Xmat(,:) = 1; % preaocation of the second matrix (it is not necessary if a better % soution is found... ;-) ) Xmat_new = Xmat; tic % time measurement for mm = 1:MM % reaxation (iterations are needed) for iy = 2:(NN-1) % for y-axis for ix = 2:(NN-1) % for x-axis Xmat_new(iy, ix) =... (Xmat(iy + 1, ix) + Xmat(iy - 1, ix) +... Xmat(iy, ix + 1) + Xmat(iy, ix - 1)) / 4; Xmat = Xmat_new; % assign new (improved) version of matrix for next it. toc surf(xmat); Zdroje: [1] https://en.wikipedia.org/wiki/lapace's_equation [2] https://en.wikipedia.org/wiki/reaxation_%28iterative_method%29 Pozor, pouze pro neekvidistantní mřížku. [3] http://www.scientificpython.net/pybog/non-uniform-finite-difference-approximations-to-thesecond-derivative Podmínky uděení zápočtu: Projekt si může vybrat k řešení neomezený počet studentů v daném semestru. Očekává se však individuání přístup k řešení (bude kontroována podobnost odevzdaných kódů). Projekt bude odevzdán spou s dokumentací, nejdée však v 14. týdnu (vzor dokumentace zde). Cíem je projekt zpracovat pode zadání, přičemž doba výpočtu uvozená příkazy tic a toc by měa být co nejkratší. Pro získání zápočtu je však podstatná správná funkčnost kódu, jeho přehednost, zpracování nápovědy a dokumentace.
Účast v soutěži: Každé řešení bude krátce prezentováno, datum prezentace bude stanoven po dohodě během semestru. Je tedy vyžadována příprava někoika máo sajdů, kde budou uvedeny postupy a zajímavé kroky a zjednodušení v impementaci. Prezentace soutěžních projektů bude provedena formou soutěže. Jsou zakázány části kódu kompiované do mex / d atp., ze však ibovoně využívat paraeizace a daších technik akceerace. Jediným povoeným programovacím jazykem je Matab, nejsou dovoeny tooboxy. Všechny odevzdané kódy budou porovnány na stejném stroji, se stejnou instaací a operačním systémem (typicky Win7/10 + Matab R2015b). Před vastním měřením bude proveden warm-up. Skript bude spuštěn vícekrát a soutěžní čas bude průměr získaných hodnot (krom 1. spuštění). Odstoupení od soutěže Student, který si vybra jako projekt toto soutěžní zadání, ae v průběhu semestru se rozhodne svoji práci neprezentovat, má právo ze soutěže odstoupit. Tuto skutečnost musí vyučujícím co nejdříve oznámit a bude individuáně posouzeno, jesti si student může vybrat nové zadání, anebo jesti dosud odvedenou práci upraví tak, aby spňovaa náežitosti standardního projektu (především vytvoření GUI). Kritéria pro vítězství v soutěži: Rychost kódu. Pné napnění zadání. První tři nejrychejší a správně zpracované projekty získají věcné ceny! A nehynoucí sávu ;-) Věcné výhry Katedra eektromagnetického poe, ve spoupráci s firmou Humusoft odmění vítězce násedujícími cenami. Výherce dostane havní cenu a možnost vybrat si i z ostatních cen. Druhý a třetí výherce si může vybrat z ostatních cen. Havní cena: - kurz od firmy Humusoft de vastního výběru (OOP, image processing, effective techniques,...) Ostatní ceny: - skenice 0,5 a 0,3 L s Maxweovými rovnicemi - tričko Humusoft s ogem firmy (XL) - USB disk 4GB - svítina Humusoft - propiska Humusoft - přívěšek s PC šroubováčky - kšitovka Humusoft