Open in the MATLAB editor: f08bq_example
function f08bq_example fprintf('f08bq 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]; nb = n; % Compute the QR Factorisation of first n rows of A [QRn, Tn, info] = f08ap( ... nb,a(1:n,:)); % Compute C = (C1) = (Q^H)*B [c1, info] = f08aq( ... 'Left', 'Conjugate Transpose', QRn, Tn, b(1:n,:)); % Compute least-squares solutions by backsubstitution in R*X = C1 [x, info] = f07ts( ... 'Upper', 'No Transpose', 'Non-Unit', QRn, c1); % Print first n-row solutions disp('Solution for n rows'); disp(x(1:n,:)); % Add the remaining rows and perform QR update nb2 = m-n; l = int64(0); [R, Q, T, info] = f08bp( ... l, nb2, QRn, a(n+1:m,:)); % Apply orthogonal transformations to C [c1,c2,info] = f08bq( ... 'Left','Conjugate Transpose', l, Q, T, c1, b(n+1:m,:)); % Compute least-squares solutions for first n rows: R*X = C1 [x, info] = f07ts( ... 'Upper', 'No transpose', 'Non-Unit', R, c1); % Print least-squares solutions for all m rows disp('Least squares solution'); 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(c2(:,j)); end fprintf('Square roots of the residual sums of squares\n'); fprintf('%12.2e', rnorm); fprintf('\n');
f08bq example results Solution for n rows -0.5091 - 1.2428i 0.7569 + 1.4384i -2.3789 + 2.8651i 5.1727 - 3.6193i 1.4634 - 2.2064i -2.6613 + 2.1339i 0.4701 + 2.6964i -2.6933 + 0.2724i Least squares solution -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