Effacer les filtres
Effacer les filtres

Line 37: Parse error at A: usage might be invalid MATLAB syntax.

3 vues (au cours des 30 derniers jours)
Abul Yasa Hasan
Abul Yasa Hasan le 16 Mar 2024
Commenté : Abul Yasa Hasan le 16 Mar 2024
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);
alpha = -2.2638, r = 2.2604, w = 0 0.99847 -0.0553 P^(1) = 1.0000 0 0 0 -0.9939 0.1104 0 0.1104 0.9939 A^(2) = 4.7500 -2.2638 -0.0000 -2.2638 4.4756 -1.2195 -0.0000 -1.2195 5.0244
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 commentaires
Dyuman Joshi
Dyuman Joshi le 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.
Abul Yasa Hasan
Abul Yasa Hasan le 16 Mar 2024
Thank You!

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Argument Definitions dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by