Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

courses:a4b33opt:cviceni7 [2009/10/30 09:40]
marty created
courses:a4b33opt:cviceni7 [2025/01/03 18:28] (aktuální)
Řádek 2: Řádek 2:
  
 [[https://​cw.felk.cvut.cz/​lib/​exe/​fetch.php/​courses/​a4b33opt/​cviceni/​ls2.pdf?​id=courses%3Aa4b33opt%3Acviceni%3Astart&​cache=cache|Zadání]] [[https://​cw.felk.cvut.cz/​lib/​exe/​fetch.php/​courses/​a4b33opt/​cviceni/​ls2.pdf?​id=courses%3Aa4b33opt%3Acviceni%3Astart&​cache=cache|Zadání]]
 +
 +=== Řešení druhé části cvičení pomocí QR rozkladu ===
 +
 +
 +<code matlab>
 +
 +%
 +% Function which solves Ax = b system of equations using QR decomposition
 +%
 +% Author: Martin Vejmelka <​[email protected]>​
 +%
 +
 +function [ x ] = get_solution( A, b )
 +
 +    % determining solution size
 +    asize = size(A);
 +    result_vector_size = asize(2);
 +    ​
 +    % QR decomposition
 +    [Q1, R] = qr(A, 0);
 +    ​
 +    % vector being counted
 +    x = zeros(result_vector_size,​ 1);
 +    ​
 +    % right side
 +    b2 = Q1' * b;
 +        ​
 +    % iterating through values in x and counting x
 +    for i = result_vector_size:​-1:​1
 +        x(i) = (b2(i) - (R(i,:) * x)) / R(i, i);
 +    end
 +
 +end
 +
 +
 +</​code>​
 +
 +==== Bonusovky ====
 +
 +--- //​[[[email protected]|Tomáš Řehořek]] 2009/11/26 20:31//
 +
 +=== Hodnota min(F(x)) pokud rank(A) = rank (A|b) ===
 +
 +Otázka: Čemu se rovná minimum funkce **//​F//​**(**//​x//​**) pokud platí hodnost(**A**) = hodnost([**A** **//​b//​**])?​ Vaši odpověď zdůvodněte.
 +
 +Odpověď: Podle Frobeniovy věty má soustava v takovém případě (alespoň jedno) přesné řešení. Tzn., že lze nalézt řešení, kdy je mezi vektory **A//x//** a **//b//** nulová vzdálenost. Pak bude platit F(**//​x//​**) = ||**A//​x//​** − **//​b//​**||² = ||**0**||² = 0. Optimálnější řešení nalezneme jen s nepřekonatelnými obtížemi.
 +
 +=== Platnost ||Q^T * z||² = ||z||² pokud Q je ortonormální ===
 +
 +Otázka: Dokažte, že platí ||**Q**^//​T//​ * **//​z//​**||² = ||**//​z//​**||²,​ ∀**//​z//​** ∈ ℜ^//m//, pokud **Q** ∈ ℜ^//​m//​×//​m//​ je ortonormální matice.
 +
 +Odpověď: Nejprve přepíšeme normu ||**Q**^//​T//​ * **//​z//​**||² na součin: (**Q**^//​T//​ * **//​z//​**)^//​T//​ * (**Q**^//​T//​ * **//z//**). Pak provedeme transpozici první závorky: (**Q**^//​T//​ * **//​z//​**)^//​T//​ * (**Q**^//​T//​ * **//z//**) = (**//​z//​**^//​T//​ * (**Q**^//​T//​)^//​T//​) * (**Q**^//​T//​ * **//z//**) = (**//​z//​**^//​T//​ * **Q**) * (**Q**^//​T//​ * **//z//**). Nyní využijeme asociativity maticového násobení a součin přepíšeme na **//​z//​**^//​T//​ * (**Q** * **Q**^//​T//​) * **//z//**. Z ortonormality matice **Q** vyplývá, že **Q** * **Q**^//T// = **E**, tedy dostáváme **//​z//​**^//​T//​ * **E** * **//z//**. Jednotková matice je vzhledem k násobení neutrální,​ takže máme **//​z//​**^//​T//​ * **//z//**. To ale není nic jiného, než norma ||**//​z//​**||²,​ což jsme chtěli dokázat. Pan Olšák by měl v tuto chvíli radost.
  
 ~~DISCUSSION~~ ~~DISCUSSION~~
courses/a4b33opt/cviceni7.1256892022.txt.gz · Poslední úprava: 2025/01/03 18:23 (upraveno mimo DokuWiki)
Nahoru
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0