Numerical solution For Ax=b
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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
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
Respuestas (0)
Ver también
Categorías
Más información sobre Linear Programming and Mixed-Integer Linear Programming en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!