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!