i am trying to solve linear equation by SVD. i get the error, "matrix dimension must agree" at the line x = V*((U'*B)./diag(S));
this is the code
% question (6) part (1) ...[show how to use SVD to solve linear systems of
% equation
%how SVD is used to solve systems of linear equations
% we have taken a system of linear equation
a = 0.00:100.00;b = 0.00:100.00;c = 0.00:100.00;d = 0.00:100.00;p = 0.00:100.00;q = 0.00:100.00;A = [a b;c d];B = [p;q];prompt = 'enter a number';a = input(prompt);b = input(prompt);c = input(prompt);d = input(prompt);p = input(prompt);q = input(prompt);%if A*x = B is a nxn linear system then
%SVD of A is
[U,S,V]=svd(A,0);%solution of the equation A*x = B is
x = V*((U'*B)./diag(S));% if we multiply U, S, V transpose then with some rounding error, we get A.
%so US(V(transpose))=A, so USVt.x = B, so x = (USVt)t*B (where t is the
%transpose. so x = Ut.st.(vt)T*b. now U is orthogonal matrix so, Ut = U
%inverse or U'. S is diagonal matrix so St=diag(S) and (Vt)t= V
disp(x);
please let me know how to solve this
Best Answer