Standardní skalární součin

Pro standardní skalární součin $\langle \boldsymbol x,\boldsymbol y\rangle=\sum\limits_{i=1}^n x_i \overline{y_i}$ nad $\mathbb C^n$, resp $\mathbb R^n$ určete u následujících vektorů $\boldsymbol x$ a $\boldsymbol y$: - skalární součin vektorů $\boldsymbol x$ a $\boldsymbol y$, - euklidovské normy vektorů $\boldsymbol x$ a $\boldsymbol y$, - vzdálenost vektorů $\boldsymbol x$ a $\boldsymbol y$, - zdali jsou vektory $\boldsymbol x$ a $\boldsymbol y$ navzájem kolmé. Nápověda: Součiny x*y a x.dot_product(y) dávají $\sum\limits_{i=1}^n x_i y_i$ - a to i nad komplexními čísly! Komplexně sdružený vektor je možné získat metodou .conjugate(). ```python x = vector([4, 2, 3]); y = vector([1, 5, -2]); x = vector([3, 1, -2]); y = vector([1, -3, 2]); x = vector([2, -1, 4]); y = vector([5, 2, -2]); x = vector([2, 1, 4, -1]); y = vector([4, -1, 0, 2]); x = vector([2+i, 0, 4-5*i]); y = vector([1+i, 2+i, -1]); x = vector([1, 2, 1, -2*i]); y = vector([i, 2*i, i-1, 2]); ```

Nestandardní skalární součin

Pro skalární součin na $\mathbb C^3$ daný předpisem $\langle \boldsymbol x,\boldsymbol y\rangle= x_1\overline{y_1} + x_2\overline{y_2} + 2x_3\overline{y_3} + x_3\overline{y_2} + x_2\overline{y_3}$ určete u následujících vektorů $\boldsymbol x$ a $\boldsymbol y$: - skalární součin vektorů $\boldsymbol x$ a $\boldsymbol y$, - normy vektorů $\boldsymbol x$ a $\boldsymbol y$, - zdali jsou vektory $\boldsymbol x$ a $\boldsymbol y$ navzájem kolmé. Nápověda: V sage (pythonu) je možné si nadefinovat vlastní součin pomocí konstrukce: def soucin(x,y): return(x[0]* ... ) ```python x = vector([4, 2, 3]); y = vector([1, 5, -2]); x = vector([3, 1, -2]); y = vector([1, -3, 2]); x = vector([2, -1, 4]); y = vector([5, 2, -2]); x = vector([2+i, 0, 4-5*i]); y = vector([1+i, 2+i, -1]); ```

Gramova-Schmidtova ortonormalizace a kolmá projekce

V prostoru $\mathbb R^4$ se standardním skalárním součinem $\langle \boldsymbol x,\boldsymbol y\rangle=\sum\limits_{i=1}^4 x_iy_i$ určete podle Gramova-Schmidtova předpisu ortonormální bázi $Z=\{\boldsymbol z_1,\dots,\boldsymbol z_r\}$ řádkového prostoru následujících matic: Nápověda: Projekci vektoru $\boldsymbol u$ na vektor $\boldsymbol v$ jednotkové délky, čili $\langle \boldsymbol u,\boldsymbol v\rangle\boldsymbol v$, lze pro reálné vektory získat výrazem (u*v)*v. První řádek matice $\boldsymbol A$ je A[0], atd. ```python matrix([ [0, 3, 4, 0], [0, 0, 5, 0], [2, 1, 0, 2]]); matrix([ [ 2, 0, 1, 2], [ 4, 3, 2, 4], [ 6, -5, 3, 6], [ -4, 2, 4, 2]]); matrix([ [ 2, 4, 2, 1], [ -1, -2, -2, -1], [ 1, 2, 4, 2], [ 1, 2, 3, 4]]); ``` Rozšiřte ortonormální báze z předchozí úlohy na ortonormální báze $\mathbb R^4$. Nápověda: Při výpočtu je možné využít odstupňovaný tvar matice A.rref(). ```python ``` Pro matice z předchozí úlohy určete ortogonální projekci $\boldsymbol p$ vektoru $\boldsymbol a=(2,2,1,5)^{\mathrm T}$ do řádkového prostoru příslušné matice a souřadnice této projekce $[\boldsymbol p]_Z$ vzhledem k bázi $Z$. ```python a = vector([2, 2, 1, 5]); ```

Přibližné řešení soustavy lineárních rovnic

Pomocí projekce najděte nejlepší přibližné řešení soustavy $\boldsymbol A\boldsymbol x=\boldsymbol b$. Všimněte si, že sloupce matice $\boldsymbol A$ jsou vzájemně kolmé. ```python A = matrix([ [2 , 1 , 0], [4 , 2 , 0], [2 , -4 , -1], [1 , -2 , 2]]); b = vector([10, 5, 13, 9]); ```

Báze prostorů souvisejících s maticí

Pro následující matici $\boldsymbol A$ najděte ortonormální bázi $\ker(\boldsymbol A)$ a poté ji rozšiřte na bázi $\mathbb R^5$. Také najděte ortonormální bázi jejího řádkového prostoru $\boldsymbol A$ a poté ji rozšiřte na bázi $\mathbb R^5$. Jak spolu nalezené báze souvisejí? ```python A = matrix([ [ 2, 0, 3, -6, 0], [-5, 0, 3, 8, 0], [ 7, 4, 0, -14, 3], [-1, 1, -12, 10, 7], [ 5, 7, -3, -8, -1]]); ```

Matice isometrie

Rozhodněte, zdali následující matice jsou matice isometrií vzhledem ke standardnímu skalárnímu součinu na prostoru $\mathbb R^d$ odpovídající dimenze $d$. ```python 1/2*matrix([ [ 1, 1, 1, 1], [ 1, 1,-1,-1], [ 1,-1, 0, 0], [ 0, 0,-1, 1]]); 1/2*matrix([ [ 1, 1, 1, 1], [ 1, 1,-1,-1], [ 1,-1,-1, 1], [ 1,-1, 1,-1]]); 1/sqrt(2)*matrix([ [ 1, 1, 0, 0], [ 1,-1, 0, 0], [ 0, 0,-1, 1], [ 0, 0,-1,-1]]); 1/7*matrix([ [ 3, 2,-6], [-6, 3, 2], [ 2,-6, 3]]); 1/7*matrix([ [ 3, 2, 6], [-6, 3, 2], [ 2, 6,-3]]); ```