How to avoid using 'diag' function?
Mostrar comentarios más antiguos
Hello all
I've written this code to calculate vector x in Ax=b.
However, it seems that I shouldn't use diag function in my code. How can I do that? Is there any other way to do the same thing without using any Matlab built-in functions?
Thanks
function x1 = axb(A,b,e)
%This function takes the matrix of coefficients A and the vector b and the
%tolerance e as input.The output of the function shows both the number of
%iteration and the solution x.
n = length(b);
for k=1:n %k is the number of iterations
M(k)=b(k)/diag(A(k,k));
end
x0=transpose(M);
for j=1:n
x(j)=((b(j)-A(j,[1:j-1,j+1:n])*x0([1:j-1,j+1:n]))/A(j,j));
end
x1 = x';
k = 1;
while norm(x1-x0,1)>e
for j=1:n
x_new(j)=((b(j)-A(j,[1:j-1,j+1:n])*x1([1:j-1,j+1:n]))/A(j,j));
end
x0=x1;
x1=x_new';
k = k + 1;
end
k;
fprintf('\nIteration: %3d\n',k)
x = x1';
Respuesta aceptada
Más respuestas (0)
Categorías
Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!