Numerical solution For Ax=b
5 views (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 Nonlinear Optimization 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!