Line 37: Parse error at A: usage might be invalid MATLAB syntax.
조회 수: 3 (최근 30일)
이전 댓글 표시
Ques.) Use Householder's method to place the following matrices in tridiagonal form.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1643816/image.png)
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
Dyuman Joshi
2024년 3월 16일
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.
답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Argument Definitions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!