Borrar filtros
Borrar filtros

Numerical solution For Ax=b

1 visualización (últimos 30 días)
Harel Harel Shattenstein
Harel Harel Shattenstein el 4 de Jul. de 2018
Editada: Matt J el 5 de Jul. de 2018
What I manage is:
function y=fun(A,x,n)
w=[];
for i=1:length(A)
w(end+1)=A(i,i);
end
D=diagonal(w);
v=[];
for i=1:length(D)
if D(i,i)==0
v(end+1)=0;a
else
v(end+1)=D(i,i);
end
D_inv=diagonal(v);
R=A-D;
end
x=D_inv(b-R*zeros(length(n),1));
for i=2:n
x=D_inv(b-Rx);
end
y=x;
end
Is it correct?
  1 comentario
Anton Semechko
Anton Semechko el 5 de Jul. de 2018
No, your code is incorrect. You forgot to use '*' signs when doing matrix multiplication. Here is how I would do it:
function x=JacobiSolve(A,b,n)
D=diag(A);
D_inv=diag(1./D);
R=A-diag(D);
b=b(:);
x=zeros(size(b));
for i=1:n, x=D_inv*(b-R*x); end

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Problem-Based Optimization Setup en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by