\[ \def\_#1{\mathbf{#1}} \def\bb#1{\mathbb{#1}} \]
(T.Werner + O.Drbohlav, 2016-2018)
Jsou dány číslo $n\in\bb N$, symetrická matice $\_Q\in\bb R^{n\times n}$ a bod $\_a\in\bb R^n$. Úkolem je nalézt bod na kvadrice $\{\,\_x\in\bb R^n \mid \_x^T\_Q\_x = 1\,\}$, který je nejblíže bodu $\_a$.
test_data.mat
(nebo všechny příklady testované v automatickém hodnocení.) Proto nebuďte zklamaní, pokud tato situace nastane. Důležité ale je, abyste si svůj kód správně otestovali, byli si jistí, že implementace je správně a rozuměli tomu, proč metoda v některých případech nenajde nejlepší řešení.
x = point_quadric(Q,a)
, kde Q
je matice $n\times n$, a
je matice $n\times1$ a x
je matice $n\times1$ která je hledaným bodem na kvadrice nejbližším bodu $\_a$. Použijte pouze základní matlabské funkce (nepoužívejte např. funkce z optimalizačního toolboxu, natož funkce stažené někde z internetu). Snažte se o krátký a efektivní kód.
K dispozici máte data ''test_data.mat'', která můžete použít pro otestování svého kódu. Soubor obsahuje proměnné typu cell, Qs
, as
a xs
. Proměnné mají rozměr $9\times 10$. Pro dané i
, j
je Qs{i, j}
matice $\_Q$, as{i, j}
bod $\_a$ a xs{i, j}
referenční řešení $\_x$. Index i
čísluje typ úlohy, který je postupně:
Pro každý z těchto typů úlohy je v souboru 10 různých náhodných instancí (indexováno j
).
report.pdf
point_quadric.m
(plus jakékoli vaše pomocné funkce) a PDF zprávu do ZIP souboru a nahrajte je do upload systému. Udělejte ZIP soubor tak, aby se vaše soubory rozbalily rovnou do aktuálního adresáře, ne do nějakého podadresáře (jinak to nebude fungovat.)