Numerical solution For Ax=b
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    

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 Commento
  Anton Semechko
      
 il 5 Lug 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
Risposte (0)
Vedere anche
Categorie
				Scopri di più su Nonlinear Optimization in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

