Numerical solution For Ax=b
1 view (last 30 days)
Show older comments
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 Comment
Anton Semechko
on 5 Jul 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
Answers (0)
See Also
Categories
Find more on Linear Programming and Mixed-Integer Linear Programming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!