Open in the MATLAB editor: f08aq_example
function f08aq_example fprintf('f08aq example results\n\n'); % Minimize ||Ax - b|| using recursive QR for m-by-n A and m-by-p B m = int64(6); n = int64(4); p = int64(2); a = [ 0.96 - 0.81i, -0.03 + 0.96i, -0.91 + 2.06i, -0.05 + 0.41i; -0.98 + 1.98i, -1.20 + 0.19i, -0.66 + 0.42i, -0.81 + 0.56i; 0.62 - 0.46i, 1.01 + 0.02i, 0.63 - 0.17i, -1.11 + 0.60i; -0.37 + 0.38i, 0.19 - 0.54i, -0.98 - 0.36i, 0.22 - 0.20i; 0.83 + 0.51i, 0.20 + 0.01i, -0.17 - 0.46i, 1.47 + 1.59i; 1.08 - 0.28i, 0.20 - 0.12i, -0.07 + 1.23i, 0.26 + 0.26i]; b = [-2.09 + 1.93i, 3.26-2.70i; 3.34 - 3.53i, -6.22+1.16i; -4.94 - 2.04i, 7.94-3.13i; 0.17 + 4.23i, 1.04-4.26i; -5.19 + 3.63i, -2.31-2.12i; 0.98 + 2.53i, -1.39-4.05i]; % Compute the QR Factorisation of A [QR, T, info] = f08ap(n,a); % Compute C = (C1) = (Q^H)*B [c1, info] = f08aq(... 'Left', 'Conjugate Transpose', QR, T, b); % Compute least-squares solutions by backsubstitution in R*X = C1 [x, info] = f07ts(... 'Upper', 'No Transpose', 'Non-Unit', QR, c1, 'n', n); % Print least-squares solutions disp('Least-squares solutions'); disp(x(1:n,:)); % Compute and print estimates of the square roots of the residual % sums of squares for j=1:p rnorm(j) = norm(x(n+1:m,j)); end fprintf('\nSquare roots of the residual sums of squares\n'); fprintf('%12.2e', rnorm); fprintf('\n');
f08aq example results Least-squares solutions -0.5044 - 1.2179i 0.7629 + 1.4529i -2.4281 + 2.8574i 5.1570 - 3.6089i 1.4872 - 2.1955i -2.6518 + 2.1203i 0.4537 + 2.6904i -2.7606 + 0.3318i Square roots of the residual sums of squares 6.88e-02 1.87e-01