% % 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
— Tomáš Řehořek 2009/11/26 20:31
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 Ax a b nulová vzdálenost. Pak bude platit F(x) = ||Ax − b||² = ||0||² = 0. Optimálnější řešení nalezneme jen s nepřekonatelnými obtížemi.
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.