Line 37: Parse error at A: usage might be invalid MATLAB syntax.
    3 views (last 30 days)
  
       Show older comments
    
Ques.) Use Householder's method to place the following matrices in tridiagonal form.

I had a basic code provided by the tutor which I adapted to the problem above. However, when I run the I get the error in Line 37(the second last line) - Parse error at A: usage might be invalid MATLAB syntax.
% Test with the given matrix
A = [4.75 2.25 -0.25; 2.25 4.75 1.25; -0.25 1.25 4.75];
hh_tridiag(A);
function hh_tridiag(A)
    n = size(A, 1);
    for k = 1:(n-2)
        % Calculate t and alpha
        t = sqrt(sum(A((k+1):end, k).^2));
        if A(k+1, k) ~= 0
            alpha = -sign(A(k+1, k)) * t;
        else
            alpha = -t;
        end
        % Calculate r and w
        r = sqrt((alpha^2 - A(k+1, k) * alpha) / 2);
        w = zeros(n, 1);
        w(k+1) = (A(k+1, k) - alpha) / (2 * r);
        for j = (k+2):n
            w(j) = A(j, k) / (2 * r);
        end
        disp(['alpha = ', num2str(alpha), ', r = ', num2str(r), ', w = ', num2str(w')]);
        % Calculate Householder matrix P
        P = eye(n) - 2 * (w * w');
        disp(['P^(', num2str(k), ') =']);
        disp(P);
        % Update A
        A = P * A * P';
        disp(['A^(', num2str(k+1), ') =']);
        disp(A);
    end
end
2 Comments
  Dyuman Joshi
      
      
 on 16 Mar 2024
				The code runs without any error (see the edit above).
Make sure if you are running this as a script, the function is placed at the bottom of the script.
Answers (0)
See Also
Categories
				Find more on Logical in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
